summaryrefslogtreecommitdiffstats
path: root/bundle-plugin/src/main/java/com/yahoo/container/plugin/mojo/GenerateOsgiManifestMojo.java
diff options
context:
space:
mode:
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.java15
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);