diff options
Diffstat (limited to 'bundle-plugin/src/main/java/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.java')
-rw-r--r-- | bundle-plugin/src/main/java/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.java | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/bundle-plugin/src/main/java/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.java b/bundle-plugin/src/main/java/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.java index 818e1510bd6..2781decdf79 100644 --- a/bundle-plugin/src/main/java/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.java +++ b/bundle-plugin/src/main/java/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.java @@ -39,7 +39,9 @@ import static com.yahoo.container.plugin.util.Files.allDescendantFiles; public class GenerateOsgiManifestMojo extends AbstractGenerateOsgiManifestMojo { private enum BundleType { - CORE, INTERNAL, USER + CORE, // up to container-dev + INTERNAL, // other vespa bundles (need not be set for groupId 'com.yahoo.vespa') + USER } @Parameter @@ -98,7 +100,7 @@ public class GenerateOsgiManifestMojo extends AbstractGenerateOsgiManifestMojo { logMissingPackages(exportedPackagesFromProvidedDeps, projectPackages, compileJarsPackages, includedPackages); } else { getLog().warn(("This project does not have '%s' as provided dependency, so the generated 'Import-Package' " + - "OSGi header may be missing important packages.").formatted(wantedProvidedDependency(bundleType))); + "OSGi header may be missing important packages.").formatted(wantedProvidedDependency())); } logOverlappingPackages(projectPackages, exportedPackagesFromProvidedDeps); logUnnecessaryPackages(compileJarsPackages, exportedPackagesFromProvidedDeps); @@ -117,14 +119,19 @@ public class GenerateOsgiManifestMojo extends AbstractGenerateOsgiManifestMojo { } } - private static String wantedProvidedDependency(BundleType bundleType) { - return switch (bundleType) { + private String wantedProvidedDependency() { + return switch (effectiveBundleType()) { case CORE -> "jdisc_core"; case INTERNAL -> "container-dev"; case USER -> "container"; }; } + private BundleType effectiveBundleType() { + if (bundleType != BundleType.USER) return bundleType; + return project.getGroupId().equals("com.yahoo.vespa") ? BundleType.INTERNAL : BundleType.USER; + } + private void addAdditionalManifestProperties(Map<String, String> manifestContent, PackageTally includedPackages) { addIfNotEmpty(manifestContent, "X-JDisc-PublicApi-Package", publicApi(includedPackages)); addIfNotEmpty(manifestContent, "Bundle-Activator", bundleActivator); |