This page documents all changes which affect public usage. For a complete list see JIRA project releases.
General
- Upgrade to Java 8
- Upgrade to Maven 3.6.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...)
Stack
The entire stack consists of multiple components which make up the entire system to produce and render documents for Maven sites and report plugins: the wider overview is available in Maven Site Plugin documentation.
Doxia 2.0.0
- 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<h6>
(Doxia API sectionTitle1() to Doxia API sectionTitle6()) 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
- Create consistent Doxia IDs throughout based on XML id definition
- Optionally create anchors for indexable entries (used in TOC macro)
- The format changed compared to the IDs created by maven-fluido-skin via its AnchorJS library (using Uppercase characters as well)
- Change notion for verbatim content
Correct semantics of
SinkEventAttributes#BOXED
with#SOURCE
- 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 ( - DOXIA-709Getting issue details... STATUS ) - Preformatted (verbatim) and code output is now handled by
<pre>
and<pre><code
> elements
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 ofLocale#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
toDocumentRendeneringContext
- Rename
Renderer
toSiteRenderer
- 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 Doxia 2.0.0
- Locale must not be null (use
Locale#ROOT
instead) MavenReport#canGenerateReport()
can now throw an exceptionMavenReportRenderer#render()
can now throw an exceptionMavenReport#getOutputName()
has been deprecated in favor of#getOutputPath()
- Refined definition of runtime behavior
Maven Reporting Impl 4.0.0
- Upgrade to Maven Reporting API 4.0.0
- Upgrade to Doxia 2.0.0
- Upgrade to Doxia Sitetools 2.0.0
- Render with a skin when report plugin is run in standalone mode (defaults to Maven Fluido Skin)
- Notify skin via Velocity context property whether running in standalone or site mode
- Properly use
SinkEventAttributes#SOURCE
by providing#verbatimText()
and#verbatimSource
- Propagate
${project.build.outputTimestamp}
and$publishDate
- Remove duplicate autogenerated anchors
- Use site decoration like Maven Site Plugin when run in standalone mode, but without navigation. Focus on report.
- Support markdown output instead of HTML site
- Refined definition of runtime behavior
- Consistently log when report execution is skipped
- The output directory properly differs when a plugin is run in standalone mode compared to site mode
Maven Reporting Exec 2.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 ofLocale#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
Progress
Necessary changes performed at our (reporting) plugins
Format: {repository}
: {branch-for-doxia-1.x}
; {branch-for-doxia-2.0.0}
- maven-help-plugin:
maven-help-plugin-3.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 with our group id (org.apache.maven.plugins
) will not be upgraded.
Migration Notes
Reporting Plugin Maintainers
- Sink tables must start with
Sink#table()
+Sink#tableRows()
and end withSink#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 Site Plugin (Reporting Plugins) Users
- When using multiple locales, make sure that you supply
default
as well otherwise no root site will be generated - You must supply a skin if you are using a site descriptor (
site.xml
) - Use Maven Fluido Skin for custom Google-related properties
- Local repository must be purged or at least stale site descriptors deleted (
find ~/.m2/repository -name \*site\*.xml -size 0 -delete
) to properly resolve remote site descriptors again (site.xml
)
Open Issues/TODOs
- Update all documentation in
src/site/
Internal
Component Release Order
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.