aboutsummaryrefslogtreecommitdiffstats
path: root/bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/Analyze.java
diff options
context:
space:
mode:
authorgjoranv <gjoranv@gmail.com>2023-10-02 13:16:56 +0200
committergjoranv <gjoranv@gmail.com>2023-10-02 22:15:32 +0200
commit39a9045c54a645fc58fce44817ef5b26531704df (patch)
tree086a724d51413e2c921062c4adab55be722b7b5c /bundle-plugin/src/main/java/com/yahoo/container/plugin/classanalysis/Analyze.java
parent9f846510fcbd73285e87df0404c8477e66c836d5 (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.java17
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) {