Author: ron.sigal(a)jboss.com
Date: 2009-05-12 01:59:04 -0400 (Tue, 12 May 2009)
New Revision: 5197
Modified:
remoting2/branches/2.2/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java
Log:
JBREM-1127: Introduced useCurrentThreadClassLoader variable and related behavior.
Modified:
remoting2/branches/2.2/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java
===================================================================
---
remoting2/branches/2.2/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java 2009-05-12
05:56:17 UTC (rev 5196)
+++
remoting2/branches/2.2/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java 2009-05-12
05:59:04 UTC (rev 5197)
@@ -43,6 +43,7 @@
private String invokerSessionID = new GUID().toString();
private boolean parentFirstClassLoading = true;
private boolean changeInvalidStateToCannotConnect = false;
+ private boolean useCurrentThreadClassLoader;
public MicroRemoteClientInvoker(InvokerLocator locator)
{
@@ -93,13 +94,27 @@
// and the current thread's class loader. This allows to load remoting
classes as well as
// user's classes.
ClassLoader remotingClassLoader = null;
- if (parentFirstClassLoading)
+ if (useCurrentThreadClassLoader)
{
- remotingClassLoader = new RemotingClassLoader(getClassLoader(),
Thread.currentThread().getContextClassLoader());
+ if (parentFirstClassLoading)
+ {
+ remotingClassLoader = new RemotingClassLoader(getClassLoader(), null);
+ }
+ else
+ {
+ remotingClassLoader = new RemotingClassLoader(null, getClassLoader());
+ }
}
else
{
- remotingClassLoader = new
RemotingClassLoader(Thread.currentThread().getContextClassLoader(), getClassLoader());
+ if (parentFirstClassLoading)
+ {
+ remotingClassLoader = new RemotingClassLoader(getClassLoader(),
Thread.currentThread().getContextClassLoader());
+ }
+ else
+ {
+ remotingClassLoader = new
RemotingClassLoader(Thread.currentThread().getContextClassLoader(), getClassLoader());
+ }
}
// try by locator (in case unmarshaller class name specified)
@@ -566,6 +581,13 @@
String sflag = flag.toString();
changeInvalidStateToCannotConnect = Boolean.valueOf(sflag).booleanValue();
}
+
+ flag = configuration.get(Remoting.USE_CURRENT_THREAD_CLASS_LOADER);
+ if (flag != null)
+ {
+ String sflag = flag.toString();
+ useCurrentThreadClassLoader = Boolean.valueOf(sflag).booleanValue();
+ }
}
/**
Show replies by date