diff --git a/README.md b/README.md index 5fab982..3c02ad5 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,9 @@ to check if a project requests a Jakarta EE dependency with a version less than or equal to the maximum "bad" version; if it encounters one, it replaces it with the mapped Java EE library version instead. -## Caveats with [gradle-consistent-versions](https://github.com/palantir/gradle-consistent-versions) +## Caveats + +### Caveats with [gradle-consistent-versions](https://github.com/palantir/gradle-consistent-versions) This plugin works with the gradle-consistent-versions plugin, but currently only correctly replaces transitive Jakarta dependencies @@ -85,6 +87,16 @@ an explicit dependency on the corresponding Java EE library instead version of the Jakarta EE dependency with the updated `jakarta` namespace. +### Note about Glassfish repackaged OSGi bundles + +Glassfish ships some jars that are a repackaging of some Jakarta EE/Java EE components +as an OSGi bundle. Because this can sometimes cause lead to conflicting +names on the classpath, this plugin also replaces some of these Glassfish jars +with their (non-OSGi) Java EE equivalents. + +If you use this plugin and your project explicitly needs the Glassfish OSGi +bundle jar as well, please [file a Github issue](https://github.com/palantir/jakarta-package-alignment/issues). + ## License This project is made available under the diff --git a/changelog/@unreleased/pr-110.v2.yml b/changelog/@unreleased/pr-110.v2.yml new file mode 100644 index 0000000..4c2b103 --- /dev/null +++ b/changelog/@unreleased/pr-110.v2.yml @@ -0,0 +1,5 @@ +type: improvement +improvement: + description: replace some glassfish osgi bundles with java ee equivalents + links: + - https://github.com/palantir/jakarta-package-alignment/pull/110 diff --git a/jakarta-package-alignment-mappings/src/main/java/com/palantir/gradle/jakartapackagealignment/VersionMappings.java b/jakarta-package-alignment-mappings/src/main/java/com/palantir/gradle/jakartapackagealignment/VersionMappings.java index 655351b..2946042 100644 --- a/jakarta-package-alignment-mappings/src/main/java/com/palantir/gradle/jakartapackagealignment/VersionMappings.java +++ b/jakarta-package-alignment-mappings/src/main/java/com/palantir/gradle/jakartapackagealignment/VersionMappings.java @@ -235,6 +235,22 @@ private static Map createMappings() { new MavenCoordinate("jakarta.xml.ws", "jakarta.xml.ws-api", "2.3.3"), new MavenCoordinate("javax.xml.ws", "jaxws-api", "2.3.1"))); + // glassfish hk2 repackages some components as an OSGi bundle + // we assume no OSGi usage in conjunction with this plugin, keeping the hk2 dependency + // around could lead to conflicting class names on the classpath + addMapping( + allMappings, + "org.glassfish.hk2.external:jakarta.inject", + new VersionMapping( + new MavenCoordinate("org.glassfish.hk2.external", "jakarta.inject", "2.6.1"), + new MavenCoordinate("javax.inject", "javax.inject", "1"))); + addMapping( + allMappings, + "org.glassfish.hk2.external:javax.inject", + new VersionMapping( + new MavenCoordinate("org.glassfish.hk2.external", "javax.inject", "2.4.0"), + new MavenCoordinate("javax.inject", "javax.inject", "1"))); + return allMappings; }