NMW OSS Parent Changelog


Snapshot Notes


Release Notes


Release Notes


Release Notes


Release Notes

  • Enabled dependency audits on builds.
  • Java™ EE updates:
    1. Default version changed from Java™ EE 6 to Java™ EE 7
    2. Updated apidocs URL for Jakarta EE 8
    3. Added Jakarta EE 9
    4. Added Jakarta EE 9.1
  • Changed default Java version from 1.8 to 11
  • Enabled dependency bytecode version checks on builds. This will ensure a project does not inadvertently depend on a library of a newer Java version than the project itself. The check is skipped when the development profile is active.
  • Updated plugin versions.
  • Bundle-SymbolicName is now defined to be the same as Java 9+ module names.
  • The "release" profile is now only to be used for production non-SNAPSHOT releases. SNAPSHOT builds should only use the "POST-SNAPSHOT" profile. Local development builds should now use the "development" profile, and may optionally use the "POST-SNAPSHOT" profile.
  • Reverted maven-dependency-plugin from version 3.2.0 to 3.1.2 until Issue 753 is resolved.
  • Reverted maven-javadoc-plugin from version 3.3.0 to 3.0.1 since reactor builds are failing with "Exit code: 1 - error: module not found: …" on projects with Java 9+ modules. Please see Issue 682.
  • Several profiles may now be conveniently activated by the presence of files in an optional profile.d directory. This technique is primarily a workaround for profiles not being able to be activated by properties of sub-projects, and has the added benefit that the set of profiles across all projects is easily manipulated through Bash scripts.

    This includes maven.javadoc.skip, maven.install.skip, maven.deploy.skip, and skipNexusStagingDeployMojo, which all have the expected skipping behavior matching the property of the same name.

  • Nexus Repository Manager URL is now defined in a $nexusUrl property. The URL should end with a slash (/) and is used for both distributionManagement/snapshotRepository and nexus-staging-maven-plugin/nexusUrl. Defaults to https://oss.sonatype.org/ since groupId com.newmediaworks is on the original Sonatype Nexus Repository Manager.


Release Notes

  • Java updates:
    1. Java 15 is now end-of-life
    2. Java 16 is now current stable
    3. Java 17 is new beta


Release Notes


Release Notes

  • Switched back to generating Javadocs links with target="_top" on all versions of Java. Eventhough the API Docs are generated without frames as of Java 9, they may still be used within frames in other contexts, such as when viewed at https://javadoc.io/.

    Furthermore, browsers are increasingly blocking or issuing warnings when a link tries to go to a different site within a frame. This change ensures links always escape frames.

  • New build properties ${build.isSnapshot} and ${build.notSnapshot} that are set to true or false, depending in whether the ${project.version} is, or is not respectively, *-SNAPSHOT.
  • Updated plugin versions.


Release Notes

  • Added default NetBeans server settings.
  • Added default NetBeans hint settings.
  • Java updates:
    1. Java 14 is now end-of-life
    2. Java 15 is now current stable
    3. Java 16 is new beta
  • Updated plugin versions.


Release Notes

  • Added default NetBeans formatting settings.
  • Added default NetBeans line ending settings.
  • Added plugin repositories to match repositories.
  • Now analyzing dependencies during release builds.
  • Now automatically configures rulesUri for versions-maven-plugin when the versions-rules.xml file exists, via a new versions-rules profile.
  • Updated plugin versions.


Release Notes

  • Corrected the default value for the Maven build property documented.javadoc.link.javaee.
  • Set <detectOfflineLinks>false</detectOfflineLinks> on maven-javadoc-plugin.

    Projects are built and released on an individual basis, and thus we manually link between projects to not rely on reactor / aggregator builds to achieve proper linking.

    Furthermore, we maximize the use of offline links from javadoc artifacts. This has several benefits:

    1. Repeatable builds: linking is done against the specified version versus whatever is published online
    2. More reliable build: does not depend on external apidocs server to be online
    3. Higher build performance: uses locally cached artifacts instead of http/https requests on each build
    4. Offline builds: when all artifacts are already locally available
    5. Private builds: linking to apidocs from private projects not publicly available
    6. Chicken-and-Egg resolved: can link between projects before publishing any of them
    7. New version linking: links are properly created before releasing new versions

    Default <links /> converted to <offlineLinks /> on maven-javadoc-plugin, taking advantage of the new AO Javadoc Offline project. Furthermore, the offline links also include JavaMail and Java EE.

    Offline links are enabled by the new offlineLinks profile, which is activated by the presence of src/main/java. If desired, this profile may be deactivated during a build with mvn -P'!offlineLinks' ….

  • Moved configuration into <pluginManagement /> where appropriate.

    One notable consequence is that Javadocs are now fully formatted without requiring the release profile.

  • Restored Built-By manifest entry on bundle and war packaging.
  • Now supporting generated resources on all projects.
  • Enabled the wagon-ssh-external extension on all projects, which supports access to artifact repositories via scpexe://… URLs.

    Projects that have access to their parent either directly or over HTTP/HTTPS may remove wagon-ssh-external from their .mvn/extensions.xml. However, if the parent is accessed through scpexe://…, the declaration in extensions.xml is still required.


Release Notes

  • Added axis2-aar-maven-plugin for building web services.
    1. Configured manifest entries consistent with other plugins.
  • Changed Built-By manifest entries from defaulting to blank to now defaulting to ${project.organization.name}.
  • Enabled <attachClasses>true</attachClasses> on maven-war-plugin when src/main/java exists. This allows the classes to by used as a dependency. This is particularly useful for our multi-project translation tools.
  • Set <trimStackTrace>false</trimStackTrace> on maven-surefire-plugin. The full stack traces of exceptions during testing should help in debugging.
  • Defined default build resources of both src/main/resources and src/main/resources-filtered (filtered). Previously, we had obtained this behavior through configuring plugins directly, but missed the more proper approach of defining in project/build/resources. This cleans-up the implementation, and allows other parts of the configuration to work correctly when projects define different or additional resources.
  • Defined default test resources of both src/test/resources and src/test/resources-filtered (filtered). This is for consistency with the definition of compilation resources.
  • Added tests, test-javadoc, and test-sources artifacts, unless empty.
  • Configured maven-war-plugin to support filtered META-INF/context.xml, which is used to provide development values to web applications:
    1. Added filtered web resources src/main/webapp-filtered, which is expected to include a META-INF/context.xml. This means that projects must have a src/main/webapp-filtered directory, even if just an empty directory.
    2. Excluded src/main/webapp/META-INF/context.xml so that the filtered version may be used. This file still must be present, however, as NetBeans uses this file to determine how to deploy to local development Tomcat.
    3. META-INF/context.xml is not included in the WAR file. The expectation is production values will be provided by the container.


Release Notes


Release Notes

  • Changed default Java version 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 setting build properties maven.compiler.source and maven.compiler.target.
  • Now setting build property javadoc.link.javamail in parent POM instead of on a per-project basis.
  • Now setting builds properties documented.javase.version and documented.javadoc.link.javase in parent POM, with the default Java version (currently 1.8). This allows books to not specify the Java version of the documented project when it is the default.
  • Renamed some build properties to better represent their usage:
    1. Consolidated build properties compiler.bootclasspath and javac.bootclasspath into a single property java.bootclasspath.
    2. javaVersion to javase.version
    3. javac.link.javaApi to javadoc.link.javase
    4. javac.link.javaApi.jdk* to javadoc.link.javase.*
    5. javac.link.javaeeApi.* to javadoc.link.javaee.*
    6. javac.link.javamailApi to javadoc.link.javamail
    7. java.bootclasspath to javase.bootclasspath
    8. javase.bootclasspath* to javase.bootclasspath.*
    9. documented.javaVersion to documented.javase.version
    10. documented.javac.link.javaApi to documented.javadoc.link.javase
  • Renamed profile bootclasspaths to javase.bootclasspath.
  • Added build properties for Java EE:
    1. javaee.version,default 6
    2. javadoc.link.javaee, default ${javadoc.link.javaee.6}
    3. documented.javaee.version, default 6
    4. documented.javadoc.link.javaee, default ${javadoc.link.javaee.6}
  • Added <source> configuration to maven-javadoc-plugin to build correctly in Java 11.
  • Simplified use of maven-gpg-plugin:
  • Now using --release instead of -bootclasspath when building with JDK >= 9.
  • Java updates:
    1. Java 13 is now end-of-life
    2. Java 14 is now current stable
    3. Java 15 is new beta
  • Changed default doclint from -Xdoclint:none to -Xdoclint:all,-missing.
  • Updated plugin versions.


Release Notes

  • To significantly reduce the size of Javadocs, using new NMW Javadoc Resources project instead of data: URLs.


Release Notes

  • Java updates:
    1. Java 12 is now end-of-life
    2. Java 13 is now current stable
    3. Java 14 is new beta
  • Updated plugin versions.


Release Notes


Release Notes

  • Changed Include-Resource to {maven-resources}, target/resources-filtered in order to not leak full build paths into META-INF/MANIFEST.MF


Release Notes

  • New profile "POST-SNAPSHOT" that enables the use of post-release builds as dependencies.

    This profile is not active by default. Activate in ~/.m2/settings.xml to use post-release builds as dependencies:


    This profile must not be active while performing a release. Deactivate with:

    mvn -Prelease,'!POST-SNAPSHOT' …

    Post-release builds happen after a release and before a new -SNAPSHOT is started. They are used to ensure that previous releases still compile against newer dependencies.

    Furthermore, post-release builds may contain the following changes without being promoted to the next -SNAPSHOT version:

    1. Updated parent POM
    2. Updated POM
    3. Updated Java version (without any source code changes)
    4. Updated dependency versions
    5. Updated javadocs
    6. Updated documentation
    7. Updated unit tests
    8. Deprecated methods and classes
    9. Renamed private fields and local variables
    10. Other changes to white-space or comments

    Post-release builds also allow NetBeans to correctly connect projects together for those who are actively developing multiple modules.

    Those who are only using the dependency can use the regular release to avoid the overhead of the daily check for updates.


Release Notes

  • Project moved to GitHub and Maven.
  • Set maven-surefire-plugin back to default configuration for better interaction with standard development tools.