This commit is contained in:
Clebert Suconic 2018-11-15 09:27:01 -05:00
commit ea2bd92755
6 changed files with 18 additions and 10 deletions

View File

@ -35,7 +35,11 @@ public final class ClassloadingUtil {
private static final String INSTANTIATION_EXCEPTION_MESSAGE = "Your class must have a constructor without arguments. If it is an inner class, it must be static!";
public static Object newInstanceFromClassLoader(final String className) {
ClassLoader loader = ClassloadingUtil.class.getClassLoader();
return newInstanceFromClassLoader(ClassloadingUtil.class, className);
}
public static Object newInstanceFromClassLoader(final Class<?> classOwner, final String className) {
ClassLoader loader = classOwner.getClassLoader();
try {
Class<?> clazz = loader.loadClass(className);
return clazz.newInstance();
@ -60,7 +64,11 @@ public final class ClassloadingUtil {
}
public static Object newInstanceFromClassLoader(final String className, Object... objs) {
ClassLoader loader = ClassloadingUtil.class.getClassLoader();
return newInstanceFromClassLoader(ClassloadingUtil.class, className, objs);
}
public static Object newInstanceFromClassLoader(final Class<?> classOwner, final String className, Object... objs) {
ClassLoader loader = classOwner.getClassLoader();
try {
Class<?>[] parametersType = new Class<?>[objs.length];
for (int i = 0; i < objs.length; i++) {

View File

@ -982,7 +982,7 @@ public class ClientSessionFactoryImpl implements ClientSessionFactoryInternal, C
return AccessController.doPrivileged(new PrivilegedAction<ConnectorFactory>() {
@Override
public ConnectorFactory run() {
return (ConnectorFactory) ClassloadingUtil.newInstanceFromClassLoader(connectorFactoryClassName);
return (ConnectorFactory) ClassloadingUtil.newInstanceFromClassLoader(ClientSessionFactoryImpl.class, connectorFactoryClassName);
}
});
}

View File

@ -278,8 +278,8 @@ public final class ServerLocatorImpl implements ServerLocatorInternal, Discovery
AccessController.doPrivileged(new PrivilegedAction<Object>() {
@Override
public Object run() {
loadBalancingPolicy = (ConnectionLoadBalancingPolicy) ClassloadingUtil.newInstanceFromClassLoader(connectionLoadBalancingPolicyClassName);
return null;
loadBalancingPolicy = (ConnectionLoadBalancingPolicy) ClassloadingUtil.newInstanceFromClassLoader(ServerLocatorImpl.class, connectionLoadBalancingPolicyClassName);
return null;
}
});
}
@ -1888,7 +1888,7 @@ public final class ServerLocatorImpl implements ServerLocatorInternal, Discovery
String[] arrayInterceptor = interceptorList.split(",");
for (String strValue : arrayInterceptor) {
Interceptor interceptor = (Interceptor) ClassloadingUtil.newInstanceFromClassLoader(strValue.trim());
Interceptor interceptor = (Interceptor) ClassloadingUtil.newInstanceFromClassLoader(ServerLocatorImpl.class, strValue.trim());
interceptors.add(interceptor);
}
return null;

View File

@ -65,7 +65,7 @@ public class TransportConfigurationUtil {
@Override
public Object run() {
try {
return ClassloadingUtil.newInstanceFromClassLoader(className);
return ClassloadingUtil.newInstanceFromClassLoader(TransportConfigurationUtil.class, className);
} catch (IllegalStateException e) {
return null;
}

View File

@ -152,7 +152,7 @@ public class ActiveMQConnectionFactory extends JNDIStorable implements Connectio
AccessController.doPrivileged(new PrivilegedAction<Object>() {
@Override
public Object run() {
ClientProtocolManagerFactory protocolManagerFactory = (ClientProtocolManagerFactory) ClassloadingUtil.newInstanceFromClassLoader(protocolManagerFactoryStr);
ClientProtocolManagerFactory protocolManagerFactory = (ClientProtocolManagerFactory) ClassloadingUtil.newInstanceFromClassLoader(ActiveMQConnectionFactory.class, protocolManagerFactoryStr);
serverLocator.setProtocolManagerFactory(protocolManagerFactory);
return null;
}

View File

@ -723,7 +723,7 @@ public final class FileConfigurationParser extends XMLConfigurationUtil {
ActiveMQServerPlugin serverPlugin = AccessController.doPrivileged(new PrivilegedAction<ActiveMQServerPlugin>() {
@Override
public ActiveMQServerPlugin run() {
return (ActiveMQServerPlugin) ClassloadingUtil.newInstanceFromClassLoader(clazz);
return (ActiveMQServerPlugin) ClassloadingUtil.newInstanceFromClassLoader(FileConfigurationParser.class, clazz);
}
});
@ -926,7 +926,7 @@ public final class FileConfigurationParser extends XMLConfigurationUtil {
SecuritySettingPlugin securitySettingPlugin = AccessController.doPrivileged(new PrivilegedAction<SecuritySettingPlugin>() {
@Override
public SecuritySettingPlugin run() {
return (SecuritySettingPlugin) ClassloadingUtil.newInstanceFromClassLoader(clazz);
return (SecuritySettingPlugin) ClassloadingUtil.newInstanceFromClassLoader(FileConfigurationParser.class, clazz);
}
});