From 4df29ba6063fb5fc79da6b5f43ac9ba3fe622a7b Mon Sep 17 00:00:00 2001 From: artpar Date: Sat, 6 Jan 2024 14:55:31 +0530 Subject: [PATCH] [0.1.40] compatible with java 21 --- pom.xml | 2 +- src/main/java/io/unlogged/Constants.java | 2 +- .../io/unlogged/core/javac/JavacImportList.java | 7 ++++++- .../java/io/unlogged/weaver/UnloggedVisitor.java | 13 +++++++++++-- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 1a6146c6..12cd2b9a 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ unlogged-sdk video.bug - 0.1.39 + 0.1.40 8 diff --git a/src/main/java/io/unlogged/Constants.java b/src/main/java/io/unlogged/Constants.java index 1447b3fa..3733024d 100644 --- a/src/main/java/io/unlogged/Constants.java +++ b/src/main/java/io/unlogged/Constants.java @@ -5,5 +5,5 @@ public class Constants { private Constants() {} - public static final String AGENT_VERSION = "0.1.39"; + public static final String AGENT_VERSION = "0.1.40"; } diff --git a/src/main/java/io/unlogged/core/javac/JavacImportList.java b/src/main/java/io/unlogged/core/javac/JavacImportList.java index 82ab66d4..07c510f7 100644 --- a/src/main/java/io/unlogged/core/javac/JavacImportList.java +++ b/src/main/java/io/unlogged/core/javac/JavacImportList.java @@ -49,7 +49,12 @@ public JavacImportList(JCCompilationUnit cud) { @Override public String getFullyQualifiedNameForSimpleNameNoAliasing(String unqualified) { for (JCTree def : defs) { if (!(def instanceof JCImport)) continue; - JCTree qual = ((JCImport) def).qualid; + JCTree qual = null; + try { + qual = (JCTree) def.getClass().getField("qualid").get(def); + } catch (IllegalAccessException | NoSuchFieldException e) { + throw new RuntimeException(e); + } if (!(qual instanceof JCFieldAccess)) continue; String simpleName = ((JCFieldAccess) qual).name.toString(); if (simpleName.equals(unqualified)) { diff --git a/src/main/java/io/unlogged/weaver/UnloggedVisitor.java b/src/main/java/io/unlogged/weaver/UnloggedVisitor.java index a0b69206..437441eb 100644 --- a/src/main/java/io/unlogged/weaver/UnloggedVisitor.java +++ b/src/main/java/io/unlogged/weaver/UnloggedVisitor.java @@ -1,6 +1,8 @@ package io.unlogged.weaver; -import com.insidious.common.weaver.*; +import com.insidious.common.weaver.ClassInfo; +import com.insidious.common.weaver.DataInfo; +import com.insidious.common.weaver.MethodInfo; import com.sun.tools.javac.tree.JCTree; import com.sun.tools.javac.util.List; import io.unlogged.core.TypeLibrary; @@ -11,6 +13,7 @@ import io.unlogged.core.javac.JavacTreeMaker; import org.jetbrains.annotations.NotNull; +import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.Map; import java.util.Random; @@ -90,7 +93,13 @@ private String qualifiedNameFromString(JavacNode typeNode, TypeResolver typeReso @Override public void visitCompilationUnit(JavacNode top, JCTree.JCCompilationUnit unit) { for (JCTree.JCImport anImport : unit.getImports()) { - typeLibrary.addType(anImport.getQualifiedIdentifier().toString()); + try { + typeLibrary.addType(anImport.getClass().getMethod("getQualifiedIdentifier") + .invoke(anImport).toString() + ); + } catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { + throw new RuntimeException(e); + } } }