diff options
Diffstat (limited to 'bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis')
-rw-r--r-- | bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/Analyze.java | 15 | ||||
-rw-r--r-- | bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/AnalyzeClassVisitor.java | 17 |
2 files changed, 9 insertions, 23 deletions
diff --git a/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/Analyze.java b/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/Analyze.java index d586f324f77..13a306a0c1c 100644 --- a/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/Analyze.java +++ b/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/Analyze.java @@ -1,18 +1,17 @@ // Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.plugin.classanalysis; -import org.apache.maven.artifact.versioning.ArtifactVersion; import org.objectweb.asm.AnnotationVisitor; import org.objectweb.asm.ClassReader; import org.objectweb.asm.Opcodes; import org.objectweb.asm.Type; import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Optional; +import static com.yahoo.container.plugin.util.IO.withFileInputStream; /** * Main entry point for class analysis @@ -22,20 +21,16 @@ import java.util.Optional; */ public class Analyze { public static ClassFileMetaData analyzeClass(File classFile) { - return analyzeClass(classFile, null); - } - - public static ClassFileMetaData analyzeClass(File classFile, ArtifactVersion artifactVersion) { try { - return analyzeClass(new FileInputStream(classFile), artifactVersion); - } catch (Exception e) { + return withFileInputStream(classFile, Analyze::analyzeClass); + } catch (RuntimeException e) { throw new RuntimeException("An error occurred when analyzing " + classFile.getPath(), e); } } - public static ClassFileMetaData analyzeClass(InputStream inputStream, ArtifactVersion artifactVersion) { + public static ClassFileMetaData analyzeClass(InputStream inputStream) { try { - AnalyzeClassVisitor visitor = new AnalyzeClassVisitor(artifactVersion); + AnalyzeClassVisitor visitor = new AnalyzeClassVisitor(); new ClassReader(inputStream).accept(visitor, ClassReader.SKIP_DEBUG); return visitor.result(); } catch (IOException e) { 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 e37a9caa7cc..0225c43e4b8 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,7 +3,6 @@ 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; @@ -28,11 +27,8 @@ class AnalyzeClassVisitor extends ClassVisitor implements ImportCollector { private Set<String> imports = new HashSet<>(); private Optional<ExportPackageAnnotation> exportPackageAnnotation = Optional.empty(); - private final Optional<ArtifactVersion> defaultExportPackageVersion; - - AnalyzeClassVisitor(ArtifactVersion defaultExportPackageVersion) { + AnalyzeClassVisitor() { super(Opcodes.ASM7); - this.defaultExportPackageVersion = Optional.ofNullable(defaultExportPackageVersion); } @Override @@ -103,14 +99,9 @@ class AnalyzeClassVisitor extends ClassVisitor implements ImportCollector { private AnnotationVisitor visitExportPackage() { return new AnnotationVisitor(Opcodes.ASM7) { - 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 int major = defaultVersionValue("major"); + private int minor = defaultVersionValue("minor"); + private int micro = defaultVersionValue("micro"); private String qualifier = defaultVersionValue("qualifier"); @Override |