currentClassLoader
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ public abstract class JsonDynEncoder<T> extends ObjectEncoder<JsonWriter, T> {
|
||||
}
|
||||
}
|
||||
final Map<String, AccessibleObject> 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
|
||||
|
||||
@@ -69,7 +69,7 @@ public abstract class ProtobufDynEncoder<T> extends ProtobufObjectEncoder<T> {
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
@@ -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('/', '.');
|
||||
|
||||
@@ -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<H>) Creator.create(classLoader.loadClass(newDynName.replace('/', '.')));
|
||||
} catch (Throwable ex) {
|
||||
|
||||
@@ -560,7 +560,7 @@ public class HttpServlet extends Servlet<HttpContext, HttpRequest, HttpResponse>
|
||||
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 {
|
||||
|
||||
@@ -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('/', '.'));
|
||||
|
||||
@@ -54,7 +54,7 @@ public interface SncpAsyncHandler<V, A> extends CompletionHandler<V, A> {
|
||||
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<SncpAsyncHandler>) Creator.create(newHandlerClazz);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -80,7 +80,7 @@ public abstract class EntityFullFunc<T> {
|
||||
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 {
|
||||
|
||||
@@ -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_"
|
||||
|
||||
@@ -1002,7 +1002,7 @@ public interface Attribute<T, F> {
|
||||
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) {
|
||||
|
||||
@@ -679,7 +679,7 @@ public interface Copier<S, D> extends BiFunction<S, D, D> {
|
||||
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('$', '_')
|
||||
|
||||
@@ -292,7 +292,7 @@ public interface Creator<T> {
|
||||
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 {
|
||||
|
||||
@@ -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<Function<Object, CompletableFuture>> monoFuncClass = null;
|
||||
try {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -91,7 +91,7 @@ public interface Invoker<C, R> {
|
||||
} 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('$', '_'));
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -67,7 +67,7 @@ public interface Reproduce<D, S> extends BiFunction<D, S, D> {
|
||||
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('$', '_');
|
||||
|
||||
@@ -662,7 +662,7 @@ public abstract class TypeToken<T> {
|
||||
|
||||
// 注意: RetResult<Map<String, Long>[]> 这种泛型带[]的尚未实现支持
|
||||
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));
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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};
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user