aboutsummaryrefslogtreecommitdiffstats
path: root/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassVisitor.java
diff options
context:
space:
mode:
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.java17
1 files changed, 13 insertions, 4 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 0225c43e4b8..e37a9caa7cc 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
@@ -3,6 +3,7 @@ package com.yahoo.container.plugin.classanalysis;
import com.yahoo.osgi.annotation.ExportPackage;
import com.yahoo.osgi.annotation.Version;
+import org.apache.maven.artifact.versioning.ArtifactVersion;
import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.Attribute;
import org.objectweb.asm.ClassVisitor;
@@ -27,8 +28,11 @@ class AnalyzeClassVisitor extends ClassVisitor implements ImportCollector {
private Set<String> imports = new HashSet<>();
private Optional<ExportPackageAnnotation> exportPackageAnnotation = Optional.empty();
- AnalyzeClassVisitor() {
+ private final Optional<ArtifactVersion> defaultExportPackageVersion;
+
+ AnalyzeClassVisitor(ArtifactVersion defaultExportPackageVersion) {
super(Opcodes.ASM7);
+ this.defaultExportPackageVersion = Optional.ofNullable(defaultExportPackageVersion);
}
@Override
@@ -99,9 +103,14 @@ class AnalyzeClassVisitor extends ClassVisitor implements ImportCollector {
private AnnotationVisitor visitExportPackage() {
return new AnnotationVisitor(Opcodes.ASM7) {
- private int major = defaultVersionValue("major");
- private int minor = defaultVersionValue("minor");
- private int micro = defaultVersionValue("micro");
+ private int major = defaultExportPackageVersion.map(ArtifactVersion::getMajorVersion)
+ .orElse(defaultVersionValue("major"));
+ private int minor = defaultExportPackageVersion.map(ArtifactVersion::getMinorVersion)
+ .orElse(defaultVersionValue("minor"));
+ private int micro = defaultExportPackageVersion.map(ArtifactVersion::getIncrementalVersion)
+ .orElse(defaultVersionValue("micro"));
+
+ // Default qualifier is the empty string.
private String qualifier = defaultVersionValue("qualifier");
@Override