diff options
Diffstat (limited to 'bundle-plugin/src/main/java/com/yahoo')
3 files changed, 15 insertions, 18 deletions
diff --git a/bundle-plugin/src/main/java/com/yahoo/container/plugin/bundle/AnalyzeBundle.java b/bundle-plugin/src/main/java/com/yahoo/container/plugin/bundle/AnalyzeBundle.java index 08cac58aad1..8b32c6c0d0d 100644 --- a/bundle-plugin/src/main/java/com/yahoo/container/plugin/bundle/AnalyzeBundle.java +++ b/bundle-plugin/src/main/java/com/yahoo/container/plugin/bundle/AnalyzeBundle.java @@ -43,18 +43,18 @@ public class AnalyzeBundle { } } - public static List<String> publicApiPackagesAggregated(Collection<File> jarFiles) { + public static List<String> nonPublicApiPackagesAggregated(Collection<File> jarFiles) { return jarFiles.stream() - .map(AnalyzeBundle::publicApiPackages) + .map(AnalyzeBundle::nonPublicApiPackages) .flatMap(List::stream) .distinct() .toList(); } - static List<String> publicApiPackages(File jarFile) { + private static List<String> nonPublicApiPackages(File jarFile) { var manifest = getOsgiManifest(jarFile); if (manifest == null) return Collections.emptyList(); - return getMainAttributeValue(manifest, "X-JDisc-PublicApi-Package") + return getMainAttributeValue(manifest, "X-JDisc-Non-PublicApi-Export-Package") .map(s -> Arrays.asList(s.split(","))) .orElseGet(ArrayList::new); } diff --git a/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/Packages.java b/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/Packages.java index 48a128c2f0d..a9f95f2b2f2 100644 --- a/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/Packages.java +++ b/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/Packages.java @@ -7,7 +7,6 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.stream.Collectors; /** * Utility methods related to packages. @@ -37,19 +36,17 @@ public class Packages { } /** - * Returns the imported Vespa packages that don't exist in the given set of allowed packages. + * Returns the imported packages that exist in the given set of disallowed packages. */ - public static List<String> disallowedVespaImports(Map<String, ImportPackages.Import> imports, List<String> allowed) { + public static List<String> disallowedImports(Map<String, ImportPackages.Import> imports, List<String> disallowed) { if (imports == null || imports.isEmpty()) return List.of(); - var publicApi = allowed == null ? Set.of() : new HashSet<>(allowed); + var importedSet = new HashSet<>(imports.keySet()); + var disallowedSet = disallowed == null ? Set.of() : new HashSet<>(disallowed); - Set<String> yahooImports = imports.keySet().stream() - .filter(pkg -> pkg.startsWith("com.yahoo") || pkg.startsWith("ai.vespa.")) - .collect(Collectors.toSet()); - - List<String> disallowedImports = yahooImports.stream().collect(Collectors.groupingBy(publicApi::contains)).get(false); - return disallowedImports == null ? List.of() : disallowedImports; + return importedSet.stream() + .filter(disallowedSet::contains) + .toList(); } public static PackageMetaData analyzePackages(Set<ClassFileMetaData> allClasses) { 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 9537fed420c..ff802668427 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 @@ -26,8 +26,8 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import static com.yahoo.container.plugin.bundle.AnalyzeBundle.exportedPackagesAggregated; -import static com.yahoo.container.plugin.bundle.AnalyzeBundle.publicApiPackagesAggregated; -import static com.yahoo.container.plugin.classanalysis.Packages.disallowedVespaImports; +import static com.yahoo.container.plugin.bundle.AnalyzeBundle.nonPublicApiPackagesAggregated; +import static com.yahoo.container.plugin.classanalysis.Packages.disallowedImports; import static com.yahoo.container.plugin.osgi.ExportPackages.exportsByPackageName; import static com.yahoo.container.plugin.osgi.ImportPackages.calculateImports; import static com.yahoo.container.plugin.util.Files.allDescendantFiles; @@ -95,7 +95,7 @@ public class GenerateOsgiManifestMojo extends AbstractGenerateOsgiManifestMojo { List<Artifact> providedJarArtifacts = artifactSet.getJarArtifactsProvided(); List<File> providedJarFiles = providedJarArtifacts.stream().map(Artifact::getFile).toList(); List<Export> exportedPackagesFromProvidedJars = exportedPackagesAggregated(providedJarFiles); - List<String> publicApiPackagesFromProvidedJars = publicApiPackagesAggregated(providedJarFiles); + List<String> nonPublicApiPackagesFromProvidedJars = nonPublicApiPackagesAggregated(providedJarFiles); // Packages from Export-Package/PublicApi headers in provided scoped jars Set<String> exportedPackagesFromProvidedDeps = ExportPackages.packageNames(exportedPackagesFromProvidedJars); @@ -125,7 +125,7 @@ public class GenerateOsgiManifestMojo extends AbstractGenerateOsgiManifestMojo { includedPackages.definedPackages(), exportsByPackageName(exportedPackagesFromProvidedJars)); - List<String> nonPublicApiUsed = disallowedVespaImports(calculatedImports, publicApiPackagesFromProvidedJars); + List<String> nonPublicApiUsed = disallowedImports(calculatedImports, nonPublicApiPackagesFromProvidedJars); logNonPublicApiUsage(nonPublicApiUsed); Map<String, String> manifestContent = generateManifestContent(artifactSet.getJarArtifactsToInclude(), calculatedImports, includedPackages); |