SemanticCMS Core Servlet Changelog

semanticcms-core-servlet-1.20.0-SNAPSHOT

Snapshot Notes

  • Added script support for AO Web Resources.
  • PageUtils.toDateTime(Object) no longer throws IOException.

semanticcms-core-servlet-1.19.1

Release Notes

  • Removed incorrect direct declaration of a POM dependency. Uses of the previous release may fail with: Execution attach-javadocs of goal org.apache.maven.plugins:maven-javadoc-plugin:3.6.0:jar failed: '…/javaee-web-api-bom-7.0.1.pom' not allowed on the path, only outputDirectories and jars are accepted

semanticcms-core-servlet-1.19.0

Release Notes

semanticcms-core-servlet-1.18.4

Release Notes

semanticcms-core-servlet-1.18.3

Release Notes

  • Updated dependencies.
  • Renamed application-scope variable from "semanticCMS" to "semanticCms".

semanticcms-core-servlet-1.18.2

Release Notes

semanticcms-core-servlet-1.18.1

Release Notes

  • Updated dependencies.
  • Improved XML parser security.

semanticcms-core-servlet-1.18.0

Release Notes

  • Updated to Java™ EE 7 Web Profile (Servlet 3.1, JSP 2.3, EL 3.0, and JSTL 1.2).
  • Minimum Java version changed from 1.8 to 11.
  • 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.

semanticcms-core-servlet-1.17.1

Release Notes

  • Updated dependencies.
  • Implemented automatic newline and tab indentation.

semanticcms-core-servlet-1.17.0

Release Notes

  • 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.

semanticcms-core-servlet-1.16.0

Release Notes

  • Updated dependencies.

semanticcms-core-servlet-1.15.1

Release Notes

  • Fixed bug for absolute links to elements on the same page. Previously, links to the same page were always written as anchor-only, which would then prevent rewriting into absolute form.

semanticcms-core-servlet-1.15.0

Release Notes

  • Minimum Java version changed from 1.7 to 1.8.
  • Reduced use of property substitutions in pom.xml. This is to help 3rd-party parsers that fail to perform full Maven-compatible substitutions.
  • Now supports page attributes for serialization (default "auto") and doctype (default "HTML5").
  • Setting more values during captures:
    1. Registering doctype with new methods DoctypeEE.set(…) and DoctypeEE.get(…).
    2. Setting response content type to match the default serialization (HTML / XHTML) that will be applied during final render.
    3. Setting response character set to UTF-8.
    4. Better shielding non-concurrency sub-requests during captures with request and response wrappers.
  • Moved Servlet subrequest utilities to new AO Servlet Subrequest project.
  • Using AO Fluent HTML for HTML generation.
  • Optimized ServletContext attribute initialization and concurrency.
  • PageImpl now establishes a page context for AO Web Resources.
  • Now configures AO Web Resources for Theme and View.
  • Removed UrlUtils, with the sole remaining method writeHref moved to LinkImpl.
  • Updated dependencies.

semanticcms-core-servlet-1.14.0

Release Notes

semanticcms-core-servlet-1.13.0

Release Notes

  • Using managed dependencies:
    1. This project uses managed dependencies.
    2. This project's managed dependencies may also be imported by other projects.
  • Now supporting media="print" stylesheets.

semanticcms-core-servlet-1.12.0

Release Notes

  • Minimum Java version changed from 1.6 to 1.7.
  • PageRefResolver.getCurrentPageRef(…) now accepts an optional parameter to optionally return null on missing book instead of throwing ServletException.

semanticcms-core-servlet-1.11.0

Release Notes

  • New release for bug fixes in underlying AO Encoding library.
  • Nodes, including both pages and elements, now have properties.
  • Updated dependencies.
  • May now specify anchor to link to non-SemanticCMS-element targets.

semanticcms-core-servlet-1.10.0

Release Notes

  • New AO OSS Parent POM to simplify pom.xml files.
  • Added support for dateCreated, datePublished, dateModified, and dateReviewed.
  • Project documentation moved to per-project book in SemanticCMS format.
  • Added changelog as top-level project link.
  • /WEB-INF/books.properties changed to XML at /WEB-INF/books.xml with XML Schema defined at books-1.0.xsd.

semanticcms-core-servlet-1.9.0

Release Notes

  • Improved Javadoc formatting.
  • Improved README formatting.
  • Added component registry.
  • shortTitle may now be specified on a per-parent basis, for when the shortTitle only makes sense within the context of that specific parent. This is useful for navigation items such as breadcrumbs or trees.
  • Clearer exception message on PageRef mismatch because page on same paths in different books would give ambiguous and misleading message.
  • Book title is optional, view titles now taking that into consideration.
  • Including Google Analytics in error pages, too.
  • Added method to get all the applicable parents for a given view.
  • Response content type set on capture for more consistent capture states. This also resolves issue where capture before content type set caused a NPE when trying to resolve MediaType.
  • View now determines the canonical URL for itself and a given page.
  • Canonical URL is now set on a per-book basis.

semanticcms-core-servlet-1.8.1

Release Notes

  • display-name defined in web-fragment.xml was causing "The display name was defined in multiple fragments with different value"
  • Using latest releases of dependencies.

semanticcms-core-servlet-1.8.0

Release Notes

  • Improved Javadoc formatting.
  • Supporting concurrent subrequests to leverage multiple cores within a single request. This is pushing the boundaries on the spec and has only been tested in Tomcat 7.0 and 8.5. Off by default and should be considered experimental. We use this for our internal content-heavy documentation, but not on the public-facing sites.
  • Now automatically maintains some ThreadLocal values between caller and executor during concurrent processing, and provides wrapper hook for subclasses to extend.
  • Made accesses to cache thread safe by locking on cache Map.
  • Implemented a basic level of concurrency within depth first traversals.
  • Core taglib now supports deferred expressions.
  • Link class is now a deferred expression and only evaluated on body captures.
  • Avoiding calling writeTo when capturing.
  • Now looking in cache for already existing META capture to fulfill a PAGE request.
  • Moved page cache to a new PageCache class.
  • Made parent-child verification more thorough while also performing on par with verification completely disabled.
  • Concurrency choices are now delegated to the CountConcurrencyFIlter.
  • Now selects one of three page cache implementations based on if export enabled, if concurrent subrequests are allowed, and current request concurrency.
  • Always avoiding concurrent implementations on single-CPU systems.
  • Using page traversals in more places to allow for concurrent subrequests.
  • Each lock object now a small empty class to help identify lock contention.

    The lock contention profiler in NetBeans is just showing "java.lang.Object" all over, and can't seem to get from the lock object id to the actual object in the heap dump using OQL (id not found).

  • Using ServletContextCache for more throughput on Tomcat.
  • Created concurrent depth first traversal.
  • Only writing element marker when needed now.
  • pageRef fields interned for great .equals performance during traversals.
  • Cache now exposed as public, and provides methods that use thread safety consistent with the caching and concurrency strategy selected for the current request.

semanticcms-core-servlet-1.7

Release Notes

  • Use dependencyManagement instead of dependency for junit.
  • Default theme now used as fallback when none other registered.
  • Now supporting per-page allowRobots setting.
  • Now all types of elements may be hidden.
  • Views now provide general purpose links, not just specifically CSS links.

semanticcms-core-servlet-1.6

Release Notes

  • Improved Maven configuration for Java EE 6 dependencies.

semanticcms-core-servlet-1.5

Release Notes

  • Making use of web-fragment.xml to remove common configuration from per-app web.xml.
  • Added headInclude registry.
  • Moved automatic Git to separate packages.
  • Moved exporting header to semanticcms namespace.
  • More view control over links to view.
  • Added global and per-view script registry.
  • Views may now use parameters.

semanticcms-core-servlet-1.4

Release Notes

  • Moved styles to separate package.
  • Hyperlinks now optional on links.
  • Allowing "small" link instead of eliminating hyperlink altogether.
  • Created parent pom for all SemanticCMS components.
  • Requires latest version of aocode-public.

semanticcms-core-servlet-1.3

Release Notes

  • Now generating missing ids when first accesssed, not at the end of the page. This fixes bug where IDs were missing from elements.
  • To avoid easily making broken links, may no longer link to generated element ids.
  • Application-scope variables combined into single "semanticCMS" variable.
  • Allowing links to generated IDs when specifically enabled.
  • Added view registry.
  • Require latest ao-servlet-filter dependency.
  • Now supporting *.jspx files.
  • Defined how themes and views interact.
  • May now exclude robots from specific views.
  • New tree view where filters for a given element type.
  • Now passing arguments through includes.
  • Passing args as Map<String, ?> instead of forcing Map<String, Object>
  • Pulled files out of core and made files be elements.
  • May now filter elements by arbitrary conditions.
  • Using auto temp file wrapper in all places.
  • Views can now hide themselves when not relevant to a given page.
  • Navigation based on centrally registered views more.
  • Added demo mode.
  • CSS links may now be registered for global use.
  • Pulled openFile out of core.

semanticcms-core-servlet-1.2

Release Notes

  • Renamed project from ao-web-page-servlet to semanticcms-core-servlet.

ao-web-page-servlet-1.1

Release Notes

  • Reverted to Java 1.6 for Android and Java EE 6 compatibility.

ao-web-page-servlet-1.0

Release Notes

  • Project moved to GitHub and Maven.