@{documented.name} Changelog

## @{project.version}

## 1.25.0

- Updated plugin versions.
- Updated to Checkstyle 13.4.2.
- Removed support for rewrite-maven-plugin.
- Sonatype's OSSRH service has been discontinued. Open-source components are now deployed to The Central Repository via Publish OSSRH Staging API.
- No longer using deprecated &lt;passphrase&gt; parameter for Apache Maven GPG Plugin. Instead, using `gpg-agent` for development systems and `MAVEN_GPG_PASSPHRASE` environment variable for Jenkins CI/CD builds.
- New `\${notDevMode}` property that is the negation of the existing `\${devMode}` property. It will be `false` only when the "development" profile is active and `true` otherwise.
- Updated to Apache Axis2 2.0.0.

- New set of `publish.tomcat7-maven-plugin.*` profiles that centralize configuration of deployments via tomcat7-maven-plugin. Profiles are enabled in `profile.d/` and configured via properties.

  Supports:
  - Both non-parallel and parallel deployments.
  - Up to two Tomcat instances with per-instance configurations and concurrent deployment.
  - Deployment actions use username and password from `~/.m2/settings.xml`.
  - Skips deployment if server already running the same as current build by fingerprint comparison. This interacts well with reproducible builds.
  - Parallel deployments use timestamp-based version to help Tomcat retain the correct versions. Previously, "build-999" was not replaced by "build-1000".
  - For Jenkins CI/CD builds, includes "-build-###" in the version.
  - For non-parallel deployments, restarts Tomcat and clears the work directory of all `*.java` and `*.class` files.
  - Verifies deployed fingerprint matches current build to catch quietly failing deployment scenarios.
  - For parallel builds, verifies deployed version matches expected version to catch quietly failing deployment scenarios.
  - Both global and per-Tomcat warmup/test HTTP requests.
- Updated plugin dependencies.
- Java updates:
  1. Java 25 is now current stable
  2. Java 26 is now current stable
  3. Java 27 is new beta

## 1.24.2

- Updated plugin versions.
- Temporarily added new PGP keys that we'll work on getting merged into s4u/pgp-keys-map.

## 1.24.1

- Updated to latest release of PGP keys map to maven artifacts.
- Updated plugin versions.
- Upgraded maven-javadoc-plugin to 3.6.3. MJAVADOC-682 is resolved so removed the "reactor" profile.
- Java updates:
  1. Java 20 is now end-of-life
  2. Java 21 is now current stable
  3. Java 22 is new beta

## 1.24.0

- Stripping any `-POST-SNAPSHOT` from versions used in Javadoc doctitle, header, packagesheader, and windowtitle.
- Added more robots `noindex, nofollow` to javadocs.

- New property `\${subproject.subpath}` that is the path to the sub-project. This should be empty for the top-level project or the path (ending in slash) to append to `\${project.url}`.

  One important use is the offsetting of the generated Javadoc `apidocs/` URL. This is because others may publish our sub-project API docs that we do not publish directly (such as books). When published, we do not want conflicting canonical URLs.

  Sub-projects that both share the same `\${project.url}` and generate Javadocs must override this value.

- Build steps selection is much more based on properties, where the phase is set to "none" to disable. Although not 100%, this is a major step in this direction.
- Google Analytics tracking code is no longer added using the `&lt;bottom&gt;` section in maven-javadoc-plugin. Instead, the tracking code is added by the build of the website publishing the API docs using the new AO Ant Tasks project. Importantly, the tracking code is no longer included in Javadocs released to Maven Central.
- GPG signing may be skipped with new profile activated by presence of `profile.d/maven.gpg.skip`. When active, the `maven.deploy.skip`, `maven.install.skip`, and `skipNexusStagingDeployMojo` profiles must also be active. This is primarily used for projects that only run directly in NetBeans.
- To fully satisfy Central Repository Requirements, all projects must deploy javadoc classifier when have any `*.java` file, even if only a `module-info.java`. Projects that have no public API now generate a placeholder javadoc artifact, with the `index.html` describing the reason why Javadocs are not present. The generated artifacts also contain an empty `element-list`.

## 1.23.1

- Avoiding second invocation of bundle:manifest during Jenkins "Deploy" stage. The second invocation was polluting the `MANIFEST.MF` with an extra entry `Originally-Created-By: Apache Maven Bundle Plugin 5.1.9`.
- Reproducible build `\${project.build.outputTimestamp}` set back to `\${git.commit.time}`. The property was replaced with a fixed timestamp by Maven Release Plugin during the last release. This caused all child projects to incorrectly use the time that the parent was released, not that of the project's last commit as intended.
- Only doing the second filtering pass of `src/main/resources-filtered` for packaging type "bundle", which none of our projects currently use. This is a workaround for bundle:bundle not including filtered resources directly. This also results in a cleaner and more reproducible `MANIFEST.MF`, with `Include-Resource` no longer including `\${project.build.directory}/resources-filtered`.
- Removed unused build property `\${javase.bootclasspath}`.
- Defined all versions as Maven properties.

- Enabled jacoco-maven-plugin in `&lt;reporting&gt;` (generated site reports).

  Please note that `mvn site` is currently broken due to MSITE-973. We expect this problem to be resolved when maven-site-plugin-4.0.0-M10 is released.

- AO Ant Tasks are now run on every build.
  1. Patches timestamps from the last build for entries that are not modified. These optimized reproducible artifacts accomplish the following:
     1. Fine-grained timestamp tracking of AAR/JAR/WAR/ZIP artifact entries
     2. Reduced number of distinct build artifacts
     3. Correct maintenance and propagation of last-modified time for caching layers, clients, and related tools such as sitemap generators
  2. SEO filtering of Javadocs, including canonical meta tags, robots noindex, rel="nofollow" links, and XML sitemaps.
- Set &lt;ignoreNonCompile&gt;true&lt;/ignoreNonCompile&gt; as the default for all projects.

- release:prepare has no way to avoid it replacing `\${git.commit.time}` with a fixed ISO8601 timestamp. Having a fixed timestamp has some arguable benefits regarding build reproducibility, so we're not going to fight this.

  Releases now use fixed ISO8601 timestamps while snapshots continue to use `\${git.commit.time}`. This means that all child projects must define their own `\${project.build.outputTimestamp}` property in order to not inherit the timestamp of the parent during releases.

  Since releases no longer depend on `\${git.commit.time}`, the git-commit-id-maven-plugin goals are disabled under the `release` profile.

  We also added an enforcer rule to ensure `\${project.build.outputTimestamp}` is correctly set back to `\${git.commit.time}` after a release.

- OSGi improvements:
  1. Implementation-Version now uses correct OSGi version format. Previously was using `\${project.version}`, but now uses `\${parsedVersion.osgiVersion}` from build-helper:parse-version.
  2. Added `_nouses` to avoid NP-hard time complexity in "uses" resolvers.
- New `\${devMode}` property that will be `true` only when the "development" profile is active. "publish" profile may not be activated at the same time as "development" profile.

## 1.23.0

- Reproducible build `\${project.build.outputTimestamp}` is now based off `\${git.commit.time}` via git-commit-id-maven-plugin.
- Builds now require Java 11 or newer.
- Builds now require Maven 3.9.0 or newer for profile activation by packaging.

- Using packaging=jar instead of packaging=bundle for all jar projects. OSGi manifest entries are still added, however, as documented at Adding OSGi metadata to existing projects without changing the packaging type . This has the side effect that projects that were previously packaging=jar will now have OSGi manifest entries added. None of our projects were previously of the jar packaging.

  This change is required since maven-bundle-plugin has been adding entries with a constant and hard-coded timestamp of 1980-02-01.

  These constant timestamps are incompatible with the automatic lastModified parameters added by AO Servlet Last Modified when the resource is contained in a JAR file within `WEB-INF/lib`. This has resulted in browsers using out-of-date cached content.

## 1.22.0

- Updated plugin versions.
- Java updates:
  1. Java 19 is now end-of-life
  2. Java 20 is now current stable
  3. Java 21 is new beta
- New automatic profile for per-project PGP keys map via `pgp-keys-map.list` file in project root.

## 1.21.2

- Updated default project settings for NetBeans 17.
- Updated plugin versions.
- Updated to latest release of PGP keys map to maven artifacts.

## 1.21.1

- Updated plugin versions.
- Updated to latest release of PGP keys map to maven artifacts.
- New build property `\${build.versionNoPostSnapshot}` that contains the project version number without any trailing `-POST-SNAPSHOT`. For example, version 1.2.3-SNAPSHOT remains 1.2.3-SNAPSHOT while both 1.2.3 and 1.2.3-POST-SNAPSHOT become 1.2.3.

## 1.21.0

- Enabled Reproducible Builds:
  1. Removed `Implementation-Build-Date` from all manifest.
  2. Set `notimestamp` in maven-javadoc-plugin.
  3. `build.currentYear` property is now extracted from `project.build.outputTimestamp`. As a result, buildnumber-maven-plugin is no longer part of the build.
  4. Upgraded maven-javadoc-plugin from 3.0.1 to 3.4.1. Due to MJAVADOC-682 not yet resolved, builds will revert to version 3.0.1 under a new "reactor" profile.
  5. Changed Jenkins builds from Java 11 to Java 17.
  6. Jenkins builds now use `.m2/repository-jdk-\${jdk}` for all Java versions. Previously, builds for `\${deployJdk}` used `.m2/repository`. This change makes it unnecessary to rename local repositories when changing `\${deployJdk}`.

## 1.20.2

- Updated plugin versions.
- Updated to latest release of PGP keys map to maven artifacts.

## 1.20.1

- Updated to latest release of PGP keys map to maven artifacts.

## 1.20.0

- Jakarta EE updates:
  1. Added Jakarta EE 10

## 1.19.9

- Java updates:
  1. Java 18 is now end-of-life
  2. Java 19 is now current stable
  3. Java 20 is new beta

## 1.19.8

- Updated plugin versions.
- Updated to latest release of PGP keys map to maven artifacts.

## 1.19.7

- Updated to latest release of PGP keys map to maven artifacts.

## 1.19.6

- Updated plugin versions.
- Updated to latest release of PGP keys map to maven artifacts.

## 1.19.5

- Updated to latest release of PGP keys map to maven artifacts.
- Updated to Apache Axis2 1.8.2.

## 1.19.4

- Updated to latest release of PGP keys map to maven artifacts.

## 1.19.3

- Updated to latest release of PGP keys map to maven artifacts.

## 1.19.2

- Updated to Apache Axis2 1.8.1.

## 1.19.1

- Updated to Checkstyle 10.3.
- Updated to latest release of PGP keys map to maven artifacts.

## 1.19.0

- `javax.activation:activation` apidocs now link to .

## 1.18.0

- Updated to latest release of PGP keys map to maven artifacts.
- Updated plugin versions.
- Limited the workaround for JDK-8215291 to only builds in `JDK &lt; 12` with no `src/main/java/module-info.java`. The previous mitigation was applied too broadly and broke the search URLs for projects with modules.
- Reduced size of Javadoc top section and fixed scroll position in Java 11.

- Enabled Checkstyle on all builds using Apache Maven Checkstyle Plugin.

  The default style is based on Google's Java Style Checkstyle, but with the maximum line length increased to 200 characters.

  By default, builds fail on Checkstyle error. Each project that cannot immediately be adapted to pass the analysis should configure the plugin with `&lt;failOnViolation&gt;false&lt;/failOnViolation&gt;`.

- Enabled SpotBugs on all builds using SpotBugs Maven Plugin.

  By default, builds fail on SpotBugs error. Each project that cannot immediately be adapted to pass the analysis should configure the plugin with `&lt;failOnError&gt;false&lt;/failOnError&gt;`.

## 1.17.4

- Updated to latest release of PGP keys map to maven artifacts.
- An alternate build directory (other than the default `target`) may now be selected by providing an `alt.build.dir` property. We use this in continuous integration to be able to concurrently build a project for multiple JDK versions, significantly reducing the build time.
- nexus-staging-maven-plugin is now only enabled by a new `nexus` profile. This is to support regular deployments via maven-deploy-plugin in continuous integration.
- Added Jenkins continuous integration.

## 1.17.3

- "skip-war" profile improvements to increase local development speed:
  1. Enforces "development" profile is also active
  2. Disables PGP artifact verification
  3. Disables GPG artifact signing
- Updated to latest release of PGP keys map to maven artifacts.
- Enabled verifying PGP keys of "provided" dependencies.
- Java updates:
  1. Java 16 is now end-of-life
  2. Java 17 is now current stable
  3. Java 18 is new beta

## 1.17.2

- Updated to latest release of PGP keys map to maven artifacts.

## 1.17.1

- Updated to latest releases of PGP keys map to maven artifacts and AO PGP Keys Map.
- Updated to Apache Axis2 1.8.0.
- Updated plugin versions.

## 1.16.0

- Added new "coverage" profile that enables JaCoCo unit test code coverage. This is expected to primarily be used within continuous integration systems, and may be used as a basis for SonarCloud/SonarQube analysis.
- Now verifying artifact PGP signatures on all builds. This means that GPG signing is now performed for all builds, including local-only builds with the "development" profile active.

## 1.15.0

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

## 1.14.1

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

## 1.14.0

- Updated plugin versions.
- Removed offline Javadocs for `com.servlets:cos`, since we have eradicated it from all projects in favor of the standard file upload API and JavaMail.
- Added workaround for "undefined" in URL during Javadoc search when project has no modules.

## 1.13.0

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

  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.

## 1.12.0

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

## 1.11.0

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

## 1.10.0

- Corrected the default value for the Maven build property `documented.javadoc.link.javaee`.

- Set `&lt;detectOfflineLinks&gt;false&lt;/detectOfflineLinks&gt;` 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 `&lt;links /&gt;` converted to `&lt;offlineLinks /&gt;` 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 `&lt;pluginManagement /&gt;` 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.

## 1.9.0

- 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 `&lt;attachClasses&gt;true&lt;/attachClasses&gt;` 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 `&lt;trimStackTrace&gt;false&lt;/trimStackTrace&gt;` 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.

## 1.8.0

- Newer versions of Javadocs no longer use frames. We now build API docs with `target="_self"` for JDK &gt;= 9.

  We still support building with older JDK versions, in which `target="_top"` is used so that links can escape the frames.

- Updated plugin versions.

## 1.7.0

- 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 &lt;source&gt; configuration to maven-javadoc-plugin to build correctly in Java 11.
- Simplified use of maven-gpg-plugin:
  - Changed lockMode to a fixed value "multiple"
  - Removed defaultKeyring
  - Removed useAgent
  - Removed publicKeyring
  - Removed secretKeyring
- Now using `--release` instead of `-bootclasspath` when building with JDK &gt;= 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.

## 1.6.0

- To significantly reduce the size of Javadocs, using new AO Javadoc Resources project instead of `data:` URLs.

## 1.5.0

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

## 1.4.0

- Set delimiters for maven-war-plugin to match the configuration of maven-resources-plugin, using `@{*}`.

  Also enabled filteringDeploymentDescriptors by default.

- Updated plugin versions.

## 1.3.1

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

## 1.3.0

- 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:

          &lt;profile&gt;
            &lt;id&gt;POST-SNAPSHOT&lt;/id&gt;
            &lt;activation&gt;
              &lt;activeByDefault&gt;true&lt;/activeByDefault&gt;
            &lt;/activation&gt;
            &lt;properties&gt;
              &lt;POST-SNAPSHOT&gt;-POST-SNAPSHOT&lt;/POST-SNAPSHOT&gt;
            &lt;/properties&gt;
          &lt;/profile&gt;

  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.

## 1.2.0

- No longer including JUnit version in dependencyManagement. Each project should specify its own JUnit version.
- Set maven-surefire-plugin back to default configuration for better interaction with standard development tools.
- No longer excluding Java EE Web API 6 from version updates. Instead, projects are encouraged to use the new Java EE Web Profile BOM project.
- Removed the repository "java.net2" that was going to . All the artifacts we require are in The Central Repository.
- Supporting parallel development of projects from unrelated clients:
  1. Multiple GPG signing keys.
  2. Multiple OSSRH accounts.
  3. Multiple SSH keys for different GitHub accounts.
  4. Sharing of all these resources with each client for business continuity.
- Updated plugin versions.

## 1.1.0

- Changed AORepo Maven artifact repository URL to include trailing slash.
- Added support for packaging as OSGi bundles as `&lt;packaging&gt;bundle&lt;/packaging&gt;` via the Maven Bundle Plugin.
- Now including unfiltered form of `src/main/resources-filtered` in source artifacts.
- Fixed bug: `build.currentYear` property was only available during release builds.
- Now supporting Java 12:
  1. Changed default Java version from 1.6 to 1.7
  2. Renamed Maven build property names to not conflict with newer versions of Java:
     1. `*.jdk15` → `*.jdk5`
     2. `*.jdk16` → `*.jdk6`
     3. `*.jdk17` → `*.jdk7`
     4. `*.jdk18` → `*.jdk8`
- Fixed cross-project linking of javadocs (really this time). The issue was our redirects from `*/apidocs/` to `*/apidocs/index.html` were interacting with a Maven plugin bug: [MJAVADOC-539] Upgrading plugin from 3.0.0 to 3.0.1 and 3.1.0 breaks certain external javadoc links.
- Changed minimum Maven version enforcement from `&lt;prerequisites&gt;&lt;maven&gt;…&lt;/maven&gt;&lt;/prerequisites&gt;` to use the Maven Enforcer Plugin instead. This eliminates the warnings introduced in Maven 3.5.0.
- Updated plugin versions.

## 1.0.0

- New AORepo project.