Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Upgrade to Java 8
  • Upgrade to Maven 3.26.5 3 prerequisite
  • Move to SLF4J everywhere
  • Replace Plexus Container with Sisu Shim
  • Use JSR 330 annotations instead of Plexus one
  • Partially breaking behavior to overcome 10+ years of technical debt (previous big step was the full extraction of Doxia 1.1 from Maven core in 2010, followed by a non-breaking maintenance phase for 10 years...)

...

  • Remove Doxia Logging API (replaced by SLF4J)
  • Remove deprecated macros (SWF, SSI)
  • Remove deprecated modules:
    • old formats: Confluence, DocBook, TWiki
    • page-oriented output formats: FOP, iText, LaTeX, RTF
  • Remove deprecated code
  • Replace XHTML module with XHTML5 as default
  • Section titles (see Doxia API sectionTitle(int) API) are now converted to HTML <h1> to <h5> <h6> (Doxia API sectionTitle1() to Doxia API sectionTitle5sectionTitle6()) for XHTML5 instead of from <h2>
  • Upgrade to Flexmark 0.62.2
  • Remove all non-HTML5 elements and attributes
  • Use id attribute for XHTML5 throughout instead of name for anchors
  • Change notion for verbatim content
  • Correct semantics of SinkEventAttributes#BOXED with #SOURCE

  • Create consistent Doxia IDs throughout based on XML id definition
  • Optionally create anchors for indexable entries (used in TOC macro)
  • Sink implementations must only implement overloaded Doxia 1.1/2.0 methods (taking an additional argument SinkEventAttributes). The overloaded Doxia 1.0 variants only delegate to the Doxia 1.1/2.0 equivalent as final methods in AbstractSink and therefore must no longer be implemented anywhere else (
    Jira
    serverASF JIRA
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    keyDOXIA-709
    )
  • Preformatted (verbatim) and code output is now handled by <pre>  and <pre><code> elements
  • Sections must be consecutive otherwise the behavior is undefined

Further details in Jira release notes: https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12354039&styleName=Html&projectId=12317230

Doxia Sitetools 2.0.0

  • Upgrade to Doxia 2.0.0
  • Remove DocRenderer = document-oriented rendering, leaving only SiteRenderer in place = site-oriented rendering
  • Remove deprecated code
  • Fail if deprecated ${reports}, ${parentProject} or ${modules} is found
  • Upgrade to Velocity 2.3 and Velocity Tools 3.1
  • Require a skin if a site descriptor (site.xml) has been provided
  • Don't inject bannerLeft is none is set
  • Locale must not be null
  • Deprecate and remove Google-related site descriptor properties
  • Don't create anchors behind the user's back (avoid mess and duplication)
  • Remove internal (pseudo) skin and use Maven Fluido Skin by default
  • Overhaul locale support (make Locale#ROOT instead of Locale#ENGLISH default and use full locale)
  • Don't link modules if module isn't part of the reactor or site hasn't been generated
  • Remove support for Maven 1.x style site directory layout
  • Add time zone field to site descriptor for reproducible site; defaults to Etc/UTC 
  • Replace skin and site descriptor resolution with Maven Resolver API
  • Rename RenderingContext  to DocumentRendeneringContext 
  • Rename Renderer to SiteRenderer
  • Rename Doxia Decoration Model to Maven Site Model along with package and root class
  • Transparently handle 0-byte pseudo marker site descriptors
  • Harmonize path output for rendered documents
  • Introduction of a new, more streamlined and clean up site model (old one is converted on the fly)
  • DocumentRenderer#getOutputName()has been deprecated in favor of #getOutputPath()
  • DocumentRenderingContext#getInputName()/ #getOutputName() have been deprecated in favor of #getInputPath()/#getOutputPath()
  • Velocity context properties $alignedFileName, $currentFileName, $decoration have been deprecated in favor of $alignedFilePath, $currentFilePath, $site
  • For all indexable entries anchors will be created by default
  • Add possiblity to configure parsers
  • Allow to attribute site directories for handed-edited content and generated one
  • Each document title is built from most specific to general part

Maven Reporting API 4.0.0

...

  • Upgrade to Maven Reporting API 4.0.0
  • Upgrade to Doxia 2.0.0
  • Remove usage of deprecated local repository

Maven Site Plugin 3.20.0/4.0.0

  • Upgrade to Maven Reporting API 4.0.0
  • Upgrade to Doxia 2.0.0
  • Upgrade to Doxia Sitetools 2.0.0
  • Upgrade to Maven Reporting Exec 2.0.0
  • Execute reports for all configured locales
  • Overhaul locale support (make Locale#ROOT instead of Locale#ENGLISH default and use full locale)
  • Propagate ${project.build.outputTimestamp} and $publishDate
  • Make external reports run/served with site:run
  • Reserved XML chars are properly escaped
  • Many locale awareness fixes
  • Mark several mojos as thread-safe
  • Consisntly log information what type and how many documents are rendered (include site plugin internal ones)
  • Turn sitemap into a report
  • Improve output of source/generator for site:run
  • Consistently log when report execution is skipped
  • Generate handed-edited content and generated one in one go instead of multiple runs

Note that 3.20.0 is a Doxia 2.0.0 compatible version for Maven 3.x while 4.0.0 is reserved for Maven 4. The jump to 3.20.0 is on purpose leaving a gap between 3.12.x.

Maven Fluido Skin 2.0.0

  • Upgrade to Doxia Sitetools 2.0.0
  • Reserved XML chars are properly escaped
  • Fix CSS-related issues
  • Support standalone mode
  • Improve Doxia integration
  • Rewrite skin template for new site model

...

Necessary changes performed at our (reporting) plugins

Format: {jira-projectrepository}: {lastbranch-for-doxia-1.x-compat}; {branch-for-doxia-2.0.0}: {version-next}

  • maven-help-plugin: maven-help-pluginMPIR: api-3.1.1/impl-3.2.0 [X]; doxia-2.0.0: 4.0.0-M1-SNAPSHOT
  • MPLUGIN: api-3.1.1/impl-3.2.0 [X]; doxia-2.0.0: 3.9.0-SNAPSHOT
  • JXR: api-3.1.1/impl-3.2.0 [X]; doxia-2.0.0: 4.0.0-M1-SNAPSHOT
  • MPMD: api-3.1.1/impl-3.2.0 [X]; doxia-2.0.0: 4.0.0-M1-SNAPSHOT
  • MJAVADOC: api-3.1.1 [X]; doxia-2.0.0: 3.6.0-SNAPSHOT
  • MCHECKSTYLE: api-3.1.1/impl-3.2.0 [X]; doxia-2.0.0: 4.0.0-M1-SNAPSHOT
  • MCHANGES: Won't do, plugin has too many dependencies
  • MPH: api-3.1.1 [X]; doxia-2.0.0: 3.5.0-SNAPSHOT
  • SUREFIRE: api-3.1.1/impl-3.2.0 [X]; doxia-2.0.0: 3.2.0-SNAPSHOT
  • MPDF: api-3.1.1 [X]; no upgrade, page-oriented support has been removed
  • MDEP: api-3.1.1/impl-3.2.0 [X]; doxia-2.0.0: 3.2.0-SNAPSHOT
  • MINVOKER: api-3.1.1/impl-3.2.0 [X]; doxia-2.0.0: 3.7.0-SNAPSHOT
  • MSKINS Fluido: 1.11.x; master: 2.0.0-M8
  • 4.x; master
  • maven-project-info-reports-plugin: maven-project-info-reports-plugin-3.6.x; master
  • maven-invoker-plugin: maven-invoker-plugin-3.7.x; mater
  • maven-dependency-plugin: maven-dependency-plugin-3.7.x; master
  • maven-plugin-tools: maven-plugin-tools-3.14.x; master
  • maven-jxr: jxr-3.4.x; master
  • maven-pmd-plugin: maven-pmd-plugin-3.24.x; master
  • maven-javadoc-plugin: maven-javadoc-plugin-3.8.x; master
  • maven-checkstyle-plugin: maven-checkstyle-plugin-3.4.x; master
  • maven-surefire: surefire-3.4.x; master

Note: other reporting plugin will not be upgraded.

Migration Notes

Reporting Plugin Maintainers

  • Sink tables must start with Sink#table() + Sink#tableRows() and end with Sink#tableRows_() + Sink#table_()
  • Runs UTs and ITs and compare HTML output with Doxia 1.x stack. If anything breaks for you, report with us.
  • Anchors must be placed before the target element
  • Make sure to take care of the signature changes in the Reporting Plugin API
  • When linking to output of other plugins you must calculate the default path to it dynamically

Skin

...

Maintainers

  • Table border attribute is not used anymore, it has been replaced with the CSS class bodyTableBorder
  • Maven Site Model is now availabe as  $site Velocity context property

...

  • maven-doxia

  • maven-reporting-api

  • maven-doxia-sitetools

  • maven-reporting-impl

  • maven-reporting-exec

  • maven-site-plugin

  • maven-fluido-skin

Followed by the reporting plugins.