summaryrefslogtreecommitdiffstats
path: root/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassVisitor.java
diff options
context:
space:
mode:
authorgjoranv <gv@yahooinc.com>2023-05-19 17:21:04 +0200
committergjoranv <gv@yahooinc.com>2023-05-23 01:34:20 +0200
commit8e40763559f4d32d51a65f5f53d8334299420969 (patch)
treeca863bb50931284c34107110258f9e5f26e94ce9 /bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassVisitor.java
parentbebeaa9ef2df005a1abd088e0375c4dc869e2986 (diff)
Process @PublicApi annotation and collect annotated packages.
Diffstat (limited to 'bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassVisitor.java')
-rw-r--r--bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassVisitor.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassVisitor.java b/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassVisitor.java
index 46a35b07ea7..e57af606b3a 100644
--- a/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassVisitor.java
+++ b/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassVisitor.java
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.container.plugin.classanalysis;
+import com.yahoo.api.annotations.PublicApi;
import com.yahoo.osgi.annotation.ExportPackage;
import com.yahoo.osgi.annotation.Version;
import org.apache.maven.artifact.versioning.ArtifactVersion;
@@ -28,6 +29,7 @@ class AnalyzeClassVisitor extends ClassVisitor implements ImportCollector {
private String name = null;
private final Set<String> imports = new HashSet<>();
private Optional<ExportPackageAnnotation> exportPackageAnnotation = Optional.empty();
+ private boolean isPublicApi = false;
private final Optional<ArtifactVersion> defaultExportPackageVersion;
@@ -159,6 +161,9 @@ class AnalyzeClassVisitor extends ClassVisitor implements ImportCollector {
public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
if (ExportPackage.class.getName().equals(Type.getType(desc).getClassName())) {
return visitExportPackage();
+ } if (PublicApi.class.getName().equals(Type.getType(desc).getClassName())) {
+ isPublicApi = true;
+ return null;
} else {
if (visible) {
addImportWithTypeDesc(desc);
@@ -169,7 +174,8 @@ class AnalyzeClassVisitor extends ClassVisitor implements ImportCollector {
ClassFileMetaData result() {
assert (!imports.contains("int"));
- return new ClassFileMetaData(name, imports, exportPackageAnnotation);
+ var packageInfo = new PackageInfo(Packages.packageName(name), exportPackageAnnotation, isPublicApi);
+ return new ClassFileMetaData(name, imports, packageInfo);
}
}