Now supports Java 9+ modules. Due to still having filename-based automatic module dependencies,
*-SNAPSHOT versions include module-info.class while releases include the
Automatic-Module-Name manifest entry. To minimize the difference between these
modes, module-info.java does not perform any transitive requires.
Reduced use of property substitutions in pom.xml.
This is to help 3rd-party parsers that fail to perform full Maven-compatible substitutions.
Now outputting HTML or XHTML based on the current response content type.
This should eliminate validator warnings when used as HTML.
Now supports skin attributes for serialization (default "auto") and doctype (default "HTML5").
Skins are now responsible for writing the DOCTYPE and html tag, too.
Removed support or IE 6, 7, 8, and 9 since all are end-of-life.
Added support for Web development file types *.less, *.sass,
*.scss, *.css.map, and *.js.map.
Cleaned-up use of JspTagException versus JspException. Generally,
methods declare throws JspException while actually throwing instances of
JspTagException. The exception to this is private implementation methods that
both declare and throw JspTagException.
Split development-only classes into a new sub-project in devel/. This
sub-project is used only for development and is never deployed to artifact repositories.
No longer trimming passwords.
VNC keystore moved from web resource /WEB-INF/keystore to filesystem
resource conf/keystore. This assumes that Tomcat is running with a working
directory containing the conf/ folder, which is true on the
AOServ Platform. This has two advantages:
The webapp may be deployed as an unexploded WAR file.
The keystore may be updated separately from the application. This is used, for example,
by Let's Encrypt renewal hooks.
Search engines are spiraling off target due to the "authenticationTarget" being rewritten into
the URL for clients with cookies disabled. A servlet filter now sets a header
X-Robots-Tag: noindex, nofollow for any request that contains any
Implemented automatic newline and tab indentation.
Project documentation moved to per-project book in SemanticCMS format.
Added changelog as top-level project link.
Taglib tlib-version is now set automatically during build.
Unfortunately, we cannot include "-SNAPSHOT" on snapshot builds due to the requirement of "Dewey decimal"
for taglib versions. The unambiguous full version is annotated via comment.
Improved Javadoc formatting.
Improved README formatting.
No more page stack, just show title for current page only.
Using latest releases of dependencies.
Using standard filter set provided by SemanticCMS.
SessionFilter moved from main web.xml to web-fragment.xml,
so it can be ordered between other fragments instead of
always being top of the filter chain.
Project moved to GitHub and Maven.
Moved Java implementation to aoweb-struts-core package.
Packaged for compatibility with old Ant build system.
Storing PageTag on request attribute so can capture across jsp:includes.