diff --git a/src/main/java/org/redkale/boot/AppConfig.java b/src/main/java/org/redkale/boot/AppConfig.java index 8837f30af..86f84df97 100644 --- a/src/main/java/org/redkale/boot/AppConfig.java +++ b/src/main/java/org/redkale/boot/AppConfig.java @@ -150,7 +150,7 @@ class AppConfig { if (compileMode || this.classLoader instanceof RedkaleClassLoader.RedkaleCacheClassLoader) { this.serverClassLoader = this.classLoader; } else { - // this.serverClassLoader = RedkaleClassLoader.getRedkaleClassLoader(this.classLoader); + // this.serverClassLoader = RedkaleClassLoader.currentClassLoader(this.classLoader); this.serverClassLoader = this.classLoader; } } diff --git a/src/main/java/org/redkale/convert/json/JsonDynEncoder.java b/src/main/java/org/redkale/convert/json/JsonDynEncoder.java index 6d779e700..0862849b1 100644 --- a/src/main/java/org/redkale/convert/json/JsonDynEncoder.java +++ b/src/main/java/org/redkale/convert/json/JsonDynEncoder.java @@ -66,7 +66,7 @@ public abstract class JsonDynEncoder extends ObjectEncoder { } } final Map mixedNames = mixedNames0; - RedkaleClassLoader loader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader loader = RedkaleClassLoader.currentClassLoader(); final String newDynName = "org/redkaledyn/convert/json/_Dyn" + JsonDynEncoder.class.getSimpleName() + "__" + clazz.getName().replace('.', '_').replace('$', '_') + "_" + factory.getFeatures() + "_" + Utility.md5Hex(elementb.toString()); // tiny必须要加上, 同一个类会有多个字段定制Convert diff --git a/src/main/java/org/redkale/convert/pb/ProtobufDynEncoder.java b/src/main/java/org/redkale/convert/pb/ProtobufDynEncoder.java index 05a162854..e3f9e7bb2 100644 --- a/src/main/java/org/redkale/convert/pb/ProtobufDynEncoder.java +++ b/src/main/java/org/redkale/convert/pb/ProtobufDynEncoder.java @@ -69,7 +69,7 @@ public abstract class ProtobufDynEncoder extends ProtobufObjectEncoder { } } - RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); final String newDynName = "org/redkaledyn/convert/pb/_Dyn" + ProtobufDynEncoder.class.getSimpleName() + "__" + clazz.getName().replace('.', '_').replace('$', '_') + "_" + factory.getFeatures() + "_" + Utility.md5Hex(elementb.toString()); // tiny必须要加上, 同一个类会有多个字段定制Convert diff --git a/src/main/java/org/redkale/mq/spi/MessageModuleEngine.java b/src/main/java/org/redkale/mq/spi/MessageModuleEngine.java index 77560fc71..209561fc3 100644 --- a/src/main/java/org/redkale/mq/spi/MessageModuleEngine.java +++ b/src/main/java/org/redkale/mq/spi/MessageModuleEngine.java @@ -454,7 +454,7 @@ public class MessageModuleEngine extends ModuleEngine { } } if (boost != null && Utility.isNotEmpty(boost.consumerBytes)) { - RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); boost.consumerBytes.forEach((innerFullName, bytes) -> { try { String clzName = innerFullName.replace('/', '.'); diff --git a/src/main/java/org/redkale/net/http/HttpContext.java b/src/main/java/org/redkale/net/http/HttpContext.java index 8e80dc743..b1d06b1bc 100644 --- a/src/main/java/org/redkale/net/http/HttpContext.java +++ b/src/main/java/org/redkale/net/http/HttpContext.java @@ -108,7 +108,7 @@ public class HttpContext extends Context { final String handlerDesc = Type.getDescriptor(CompletionHandler.class); final String newDynName = "org/redkaledyn/http/handler/_DynHttpAsyncHandler__" + handlerClass.getName().replace('.', '/').replace('$', '_'); - RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); try { return (Creator) Creator.create(classLoader.loadClass(newDynName.replace('/', '.'))); } catch (Throwable ex) { diff --git a/src/main/java/org/redkale/net/http/HttpServlet.java b/src/main/java/org/redkale/net/http/HttpServlet.java index 71ee3ac46..9c414fdc5 100644 --- a/src/main/java/org/redkale/net/http/HttpServlet.java +++ b/src/main/java/org/redkale/net/http/HttpServlet.java @@ -560,7 +560,7 @@ public class HttpServlet extends Servlet for (Class cz : method.getParameterTypes()) { tmpps.append("__").append(cz.getName().replace('.', '_')); } - RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); final String newDynName = "org/redkaledyn/http/servlet/action/_DynHttpActionServlet__" + this.getClass().getName().replace('.', '_').replace('$', '_') + "__" + method.getName() + tmpps; try { diff --git a/src/main/java/org/redkale/net/sncp/SncpActionServlet.java b/src/main/java/org/redkale/net/sncp/SncpActionServlet.java index ca51bca0c..966f7ead0 100644 --- a/src/main/java/org/redkale/net/sncp/SncpActionServlet.java +++ b/src/main/java/org/redkale/net/sncp/SncpActionServlet.java @@ -74,7 +74,7 @@ public abstract class SncpActionServlet extends SncpServlet { this.actionid = actionid; this.method = method; this.paramComposeBeanType = SncpRemoteAction.createParamComposeBeanType( - RedkaleClassLoader.getRedkaleClassLoader(), + RedkaleClassLoader.currentClassLoader(), Sncp.getServiceType(service), method, actionid, @@ -356,7 +356,7 @@ public abstract class SncpActionServlet extends SncpServlet { final boolean boolReturnTypeFuture = Future.class.isAssignableFrom(method.getReturnType()); final String newDynName = "org/redkaledyn/sncp/servlet/action/_DynSncpActionServlet__" + resourceType.getSimpleName() + "_" + method.getName() + "_" + actionid; - RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); Class newClazz = null; try { newClazz = classLoader.loadClass(newDynName.replace('/', '.')); diff --git a/src/main/java/org/redkale/net/sncp/SncpAsyncHandler.java b/src/main/java/org/redkale/net/sncp/SncpAsyncHandler.java index fd0ce0e7f..e8c54ce5f 100644 --- a/src/main/java/org/redkale/net/sncp/SncpAsyncHandler.java +++ b/src/main/java/org/redkale/net/sncp/SncpAsyncHandler.java @@ -54,7 +54,7 @@ public interface SncpAsyncHandler extends CompletionHandler { final String realHandlerDesc = Type.getDescriptor(CompletionHandler.class); final String newDynName = "org/redkaledyn/sncp/handler/_Dyn" + sncpHandlerClass.getSimpleName() + "__" + handlerClass.getName().replace('.', '/').replace('$', '_'); - RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); try { Class newHandlerClazz = classLoader.loadClass(newDynName.replace('/', '.')); return (Creator) Creator.create(newHandlerClazz); diff --git a/src/main/java/org/redkale/net/sncp/SncpRemoteAction.java b/src/main/java/org/redkale/net/sncp/SncpRemoteAction.java index 02bd1c5da..f63e80172 100644 --- a/src/main/java/org/redkale/net/sncp/SncpRemoteAction.java +++ b/src/main/java/org/redkale/net/sncp/SncpRemoteAction.java @@ -101,7 +101,7 @@ public final class SncpRemoteAction { this.paramTypes = TypeToken.getGenericType(method.getGenericParameterTypes(), serviceImplClass); this.paramClasses = method.getParameterTypes(); Type pt = createParamComposeBeanType( - RedkaleClassLoader.getRedkaleClassLoader(), + RedkaleClassLoader.currentClassLoader(), serviceImplClass, method, actionid, diff --git a/src/main/java/org/redkale/source/EntityFullFunc.java b/src/main/java/org/redkale/source/EntityFullFunc.java index d75e469d5..dff250b05 100644 --- a/src/main/java/org/redkale/source/EntityFullFunc.java +++ b/src/main/java/org/redkale/source/EntityFullFunc.java @@ -80,7 +80,7 @@ public abstract class EntityFullFunc { final String objectDesc = Type.getDescriptor(Object.class); final String serisDesc = Type.getDescriptor(Serializable[].class); - RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); final String newDynName = "org/redkaledyn/source/_Dyn" + EntityFullFunc.class.getSimpleName() + "__" + entityType.getName().replace('.', '_').replace('$', '_'); try { diff --git a/src/main/java/org/redkale/source/spi/DataSqlMapperBuilder.java b/src/main/java/org/redkale/source/spi/DataSqlMapperBuilder.java index c229c651b..62c83d70d 100644 --- a/src/main/java/org/redkale/source/spi/DataSqlMapperBuilder.java +++ b/src/main/java/org/redkale/source/spi/DataSqlMapperBuilder.java @@ -60,7 +60,7 @@ public final class DataSqlMapperBuilder { if (!mapperType.isInterface()) { throw new SourceException(mapperType + " is not interface"); } - final RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + final RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); final Class entityType = entityType(mapperType); final String supDynName = mapperType.getName().replace('.', '/'); final String newDynName = "org/redkaledyn/source/mapper/_DynDataSqlMapper_" diff --git a/src/main/java/org/redkale/util/Attribute.java b/src/main/java/org/redkale/util/Attribute.java index 407419946..b674c1500 100644 --- a/src/main/java/org/redkale/util/Attribute.java +++ b/src/main/java/org/redkale/util/Attribute.java @@ -1002,7 +1002,7 @@ public interface Attribute { final String interDesc = Type.getDescriptor(TypeToken.typeToClass(subclass)); final String columnDesc = Type.getDescriptor(column); Class realclz = TypeToken.typeToClass(subclass); - RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); try { classLoader.loadClass(realclz.getName()); } catch (ClassNotFoundException e) { diff --git a/src/main/java/org/redkale/util/Copier.java b/src/main/java/org/redkale/util/Copier.java index c7def0d97..d77ebff60 100644 --- a/src/main/java/org/redkale/util/Copier.java +++ b/src/main/java/org/redkale/util/Copier.java @@ -679,7 +679,7 @@ public interface Copier extends BiFunction { final String srcClassName = srcClass.getName().replace('.', '/'); final String destDesc = Type.getDescriptor(destClass); final String srcDesc = Type.getDescriptor(srcClass); - final RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + final RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); final String utilClassName = Utility.class.getName().replace('.', '/'); final String newDynName = "org/redkaledyn/copier/_Dyn" + Copier.class.getSimpleName() + "_" + options + "__" + srcClass.getName().replace('.', '_').replace('$', '_') diff --git a/src/main/java/org/redkale/util/Creator.java b/src/main/java/org/redkale/util/Creator.java index 5b16f47a0..621236510 100644 --- a/src/main/java/org/redkale/util/Creator.java +++ b/src/main/java/org/redkale/util/Creator.java @@ -292,7 +292,7 @@ public interface Creator { final String supDynName = Creator.class.getName().replace('.', '/'); final String interName = clazz.getName().replace('.', '/'); final String interDesc = Type.getDescriptor(clazz); - RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); final String newDynName = "org/redkaledyn/creator/_Dyn" + Creator.class.getSimpleName() + "__" + clazz.getName().replace('.', '_').replace('$', '_') + (paramCount < 0 ? "" : ("_" + paramCount)); try { diff --git a/src/main/java/org/redkale/util/Flows.java b/src/main/java/org/redkale/util/Flows.java index 16103fda5..c712c1408 100644 --- a/src/main/java/org/redkale/util/Flows.java +++ b/src/main/java/org/redkale/util/Flows.java @@ -115,7 +115,7 @@ public abstract class Flows { if (!"executable".equals(System.getProperty("org.graalvm.nativeimage.kind"))) { // not native-image try { // - RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); reactorMonoClass0 = classLoader.loadClass("reactor.core.publisher.Mono"); Class> monoFuncClass = null; try { diff --git a/src/main/java/org/redkale/util/Inners.java b/src/main/java/org/redkale/util/Inners.java index 027ee2d51..89aca880e 100644 --- a/src/main/java/org/redkale/util/Inners.java +++ b/src/main/java/org/redkale/util/Inners.java @@ -231,7 +231,7 @@ class Inners { } final String interName = clazz.getName().replace('.', '/'); final String interDesc = org.redkale.asm.Type.getDescriptor(clazz); - final RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + final RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); final String newDynName = "org/redkaledyn/creator/_DynArrayFunction__" + clazz.getName().replace('.', '_').replace('$', '_'); try { diff --git a/src/main/java/org/redkale/util/Invoker.java b/src/main/java/org/redkale/util/Invoker.java index bbbe6d51f..714112988 100644 --- a/src/main/java/org/redkale/util/Invoker.java +++ b/src/main/java/org/redkale/util/Invoker.java @@ -91,7 +91,7 @@ public interface Invoker { } else if (returnType == void.class) { returnDesc = Type.getDescriptor(Void.class); } - RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); StringBuilder sbpts = new StringBuilder(); for (Class c : method.getParameterTypes()) { sbpts.append('_').append(c.getName().replace('.', '_').replace('$', '_')); diff --git a/src/main/java/org/redkale/util/RedkaleClassLoader.java b/src/main/java/org/redkale/util/RedkaleClassLoader.java index ab6d55a10..a0c0c4fac 100644 --- a/src/main/java/org/redkale/util/RedkaleClassLoader.java +++ b/src/main/java/org/redkale/util/RedkaleClassLoader.java @@ -93,10 +93,8 @@ public class RedkaleClassLoader extends URLClassLoader { super(urls, parent); } - public static RedkaleClassLoader getRedkaleClassLoader(ClassLoader loader) { - if (loader == null) { - loader = Thread.currentThread().getContextClassLoader(); - } + public static RedkaleClassLoader currentClassLoader() { + ClassLoader loader = Thread.currentThread().getContextClassLoader(); if (loader instanceof RedkaleClassLoader) { return (RedkaleClassLoader) loader; } @@ -109,10 +107,6 @@ public class RedkaleClassLoader extends URLClassLoader { return new RedkaleClassLoader(loader); } - public static RedkaleClassLoader getRedkaleClassLoader() { - return getRedkaleClassLoader(Thread.currentThread().getContextClassLoader()); - } - public static URI getConfResourceAsURI(String confURI, String file) { if (file.startsWith("http:") || file.startsWith("https:") || file.startsWith("ftp:")) { return URI.create(file); diff --git a/src/main/java/org/redkale/util/Reproduce.java b/src/main/java/org/redkale/util/Reproduce.java index 38c7d450e..e496883d8 100644 --- a/src/main/java/org/redkale/util/Reproduce.java +++ b/src/main/java/org/redkale/util/Reproduce.java @@ -67,7 +67,7 @@ public interface Reproduce extends BiFunction { final String srcClassName = srcClass.getName().replace('.', '/'); final String destDesc = Type.getDescriptor(destClass); final String srcDesc = Type.getDescriptor(srcClass); - final RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + final RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); final String newDynName = "org/redkaledyn/reproduce/_Dyn" + Reproduce.class.getSimpleName() + "__" + destClass.getName().replace('.', '_').replace('$', '_') + "__" + srcClass.getName().replace('.', '_').replace('$', '_'); diff --git a/src/main/java/org/redkale/util/TypeToken.java b/src/main/java/org/redkale/util/TypeToken.java index 7f2b7e227..15fbeed82 100644 --- a/src/main/java/org/redkale/util/TypeToken.java +++ b/src/main/java/org/redkale/util/TypeToken.java @@ -662,7 +662,7 @@ public abstract class TypeToken { // 注意: RetResult[]> 这种泛型带[]的尚未实现支持 private static Type createParameterizedType0(final Class rawType, final Type... actualTypeArguments) { - RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); StringBuilder tmpps = new StringBuilder(getClassTypeDescriptor(rawType)); for (Type cz : actualTypeArguments) { tmpps.append(" ").append(getClassTypeDescriptor(cz)); diff --git a/src/test/java/org/redkale/test/cached/CachedInstanceTest.java b/src/test/java/org/redkale/test/cached/CachedInstanceTest.java index af0fa4bef..977ab10e3 100644 --- a/src/test/java/org/redkale/test/cached/CachedInstanceTest.java +++ b/src/test/java/org/redkale/test/cached/CachedInstanceTest.java @@ -46,7 +46,7 @@ public class CachedInstanceTest { @BeforeAll public static void init() throws Exception { - classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + classLoader = RedkaleClassLoader.currentClassLoader(); CacheMemorySource remoteSource = new CacheMemorySource("cache-remote"); remoteSource.init(null); resourceFactory = ResourceFactory.create(); diff --git a/src/test/java/org/redkale/test/http/RestConvertTest.java b/src/test/java/org/redkale/test/http/RestConvertTest.java index 17ef31174..fac38f105 100644 --- a/src/test/java/org/redkale/test/http/RestConvertTest.java +++ b/src/test/java/org/redkale/test/http/RestConvertTest.java @@ -45,7 +45,7 @@ public class RestConvertTest { Method method = Application.class.getDeclaredMethod("initWorkExecutor"); method.setAccessible(true); method.invoke(application); - RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); // ------------------------ 初始化 CService ------------------------------------ RestConvertService service = Sncp.createSimpleLocalService(application.getClassLoader(), RestConvertService.class, resFactory); diff --git a/src/test/java/org/redkale/test/http/RestSleepTest.java b/src/test/java/org/redkale/test/http/RestSleepTest.java index 97edaac38..83a990916 100644 --- a/src/test/java/org/redkale/test/http/RestSleepTest.java +++ b/src/test/java/org/redkale/test/http/RestSleepTest.java @@ -40,7 +40,7 @@ public class RestSleepTest { method.invoke(application); // ------------------------ 初始化 CService ------------------------------------ - RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); RestSleepService service = Sncp.createSimpleLocalService(application.getClassLoader(), RestSleepService.class, resFactory); HttpServer server = new HttpServer(application, System.currentTimeMillis(), resFactory); diff --git a/src/test/java/org/redkale/test/mq/MessagedInstanceTest.java b/src/test/java/org/redkale/test/mq/MessagedInstanceTest.java index a7bac7e67..c128eb129 100644 --- a/src/test/java/org/redkale/test/mq/MessagedInstanceTest.java +++ b/src/test/java/org/redkale/test/mq/MessagedInstanceTest.java @@ -54,7 +54,7 @@ public class MessagedInstanceTest { application = Application.create(true); resourceFactory = application.getResourceFactory(); engine = new MessageModuleEngine(application); - classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + classLoader = RedkaleClassLoader.currentClassLoader(); MessageAgent agent = createMessageAgent(application, "mymq"); MessageAgent[] messageAgents = new MessageAgent[] {agent}; diff --git a/src/test/java/org/redkale/test/websocket/dyn/GameTest.java b/src/test/java/org/redkale/test/websocket/dyn/GameTest.java index 3063165e7..97488ee78 100644 --- a/src/test/java/org/redkale/test/websocket/dyn/GameTest.java +++ b/src/test/java/org/redkale/test/websocket/dyn/GameTest.java @@ -22,7 +22,7 @@ public class GameTest { @Test public void run() throws Exception { - RedkaleClassLoader classLoader = RedkaleClassLoader.getRedkaleClassLoader(); + RedkaleClassLoader classLoader = RedkaleClassLoader.currentClassLoader(); WebSocketServlet servlet = Rest.createRestWebSocketServlet(classLoader, GameWebSocket.class, null); } }