diff options
author | gjoranv <gjoranv@gmail.com> | 2023-10-02 13:16:56 +0200 |
---|---|---|
committer | gjoranv <gjoranv@gmail.com> | 2023-10-02 22:15:32 +0200 |
commit | 39a9045c54a645fc58fce44817ef5b26531704df (patch) | |
tree | 086a724d51413e2c921062c4adab55be722b7b5c /bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/Analyze.java | |
parent | 9f846510fcbd73285e87df0404c8477e66c836d5 (diff) |
Fail if project class files are built for JDK version > 17.
- Skip checking compile scoped deps, as they must be compatible
with the project's target version. The dependencies could also
be multi-release jars containing newer class files.
Diffstat (limited to 'bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/Analyze.java')
-rw-r--r-- | bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/Analyze.java | 17 |
1 files changed, 12 insertions, 5 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 4fd8e936f3d..515562eb423 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 @@ -18,24 +18,31 @@ import java.util.Optional; * * @author Tony Vaagenes * @author ollivir + * @author gjoranv */ public class Analyze { + public enum JdkVersionCheck { + ENABLED, + DISABLED + } + + static ClassFileMetaData analyzeClass(File classFile) { - return analyzeClass(classFile, null); + return analyzeClass(classFile, null, JdkVersionCheck.DISABLED); } - public static ClassFileMetaData analyzeClass(File classFile, ArtifactVersion artifactVersion) { + public static ClassFileMetaData analyzeClass(File classFile, ArtifactVersion artifactVersion, JdkVersionCheck jdkVersionCheck) { try { - return analyzeClass(new FileInputStream(classFile), artifactVersion); + return analyzeClass(new FileInputStream(classFile), artifactVersion, jdkVersionCheck); } catch (Exception 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, ArtifactVersion artifactVersion, JdkVersionCheck jdkVersionCheck) { try { - AnalyzeClassVisitor visitor = new AnalyzeClassVisitor(artifactVersion); + AnalyzeClassVisitor visitor = new AnalyzeClassVisitor(artifactVersion, jdkVersionCheck); new ClassReader(inputStream).accept(visitor, ClassReader.SKIP_DEBUG); return visitor.result(); } catch (IOException e) { |