You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2006/09/23 01:43:13 UTC
svn commit: r449127 - in /webservices/axis2/trunk/java/modules:
integration/test/org/apache/axis2/spring/SpringServiceTest.java
kernel/src/org/apache/axis2/Constants.java
kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java
Author: dims
Date: Fri Sep 22 16:43:12 2006
New Revision: 449127
URL: http://svn.apache.org/viewvc?view=rev&rev=449127
Log:
Fix for AXIS2-1214 - Context envContext = (Context)initContext.lookup("java:comp/env") throws NameNotFoundException
- Keep the old Axis2 1.0 behavior as default (don't save/restore) the class loader.
- Spring folks or others who rely on TCCL to find the classes in the aar can throw in the switch for "forceTCCL" if/when they need it in services.xml
Modified:
webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/spring/SpringServiceTest.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java
Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/spring/SpringServiceTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/spring/SpringServiceTest.java?view=diff&rev=449127&r1=449126&r2=449127
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/spring/SpringServiceTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/spring/SpringServiceTest.java Fri Sep 22 16:43:12 2006
@@ -36,7 +36,6 @@
import org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier;
import org.apache.axis2.integration.UtilServer;
import org.apache.axis2.integration.UtilServerBasedTestCase;
-import org.apache.axis2.receivers.AbstractMessageReceiver;
import org.apache.axis2.receivers.RawXMLINOutMessageReceiver;
import org.apache.axis2.wsdl.WSDLConstants;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -131,6 +130,7 @@
service.setClassLoader(Thread.currentThread().getContextClassLoader());
service.addParameter(new Parameter(Constants.SERVICE_OBJECT_SUPPLIER, supplierName));
+ service.addParameter(new Parameter(Constants.SERVICE_FORCE_TCCL, "true"));
service.addParameter(new Parameter(SpringAppContextAwareObjectSupplier.SERVICE_SPRING_BEANNAME, beanName));
AxisOperation axisOp = new InOutAxisOperation(opName);
@@ -153,6 +153,7 @@
service.setClassLoader(Thread.currentThread().getContextClassLoader());
service.addParameter(new Parameter(Constants.SERVICE_OBJECT_SUPPLIER, supplierName));
+ service.addParameter(new Parameter(Constants.SERVICE_FORCE_TCCL, "true"));
service.addParameter(new Parameter(SpringAppContextAwareObjectSupplier.SERVICE_SPRING_BEANNAME, beanName));
AxisOperation axisOp = new OutInAxisOperation(opName);
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java?view=diff&rev=449127&r1=449126&r2=449127
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java Fri Sep 22 16:43:12 2006
@@ -106,6 +106,7 @@
//Parameter name of Service impl class
public static final String SERVICE_CLASS = "ServiceClass";
public static final String SERVICE_OBJECT_SUPPLIER = "ServiceObjectSupplier";
+ public static final String SERVICE_FORCE_TCCL = "forceTCCL";
/**
* Field REQUEST_URL_PREFIX
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java?view=diff&rev=449127&r1=449126&r2=449127
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/receivers/AbstractMessageReceiver.java Fri Sep 22 16:43:12 2006
@@ -24,6 +24,7 @@
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.util.MultiParentClassLoader;
+import org.apache.axis2.util.JavaUtils;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.ServiceContext;
import org.apache.axis2.description.AxisService;
@@ -39,9 +40,10 @@
// public static final String SERVICE_CLASS = "ServiceClass";
// public static final String SERVICE_OBJECT_SUPPLIER = "ServiceObjectSupplier";
public static final String SCOPE = "scope";
+ protected boolean forceTCCL = false;
protected void saveTCCL(MessageContext msgContext) {
- if (msgContext.getAxisService() != null &&
+ if (forceTCCL && msgContext.getAxisService() != null &&
msgContext.getAxisService().getClassLoader() != null) {
Thread.currentThread().setContextClassLoader(new MultiParentClassLoader(new URL[]{}, new ClassLoader[]{
msgContext.getAxisService().getClassLoader(),
@@ -51,9 +53,11 @@
}
protected void restoreTCCL() {
- ClassLoader tccl = Thread.currentThread().getContextClassLoader();
- if (tccl != null && tccl instanceof MultiParentClassLoader) {
- Thread.currentThread().setContextClassLoader(((MultiParentClassLoader) tccl).getParents()[1]);
+ if(forceTCCL) {
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ if (tccl != null && tccl instanceof MultiParentClassLoader) {
+ Thread.currentThread().setContextClassLoader(((MultiParentClassLoader) tccl).getParents()[1]);
+ }
}
}
@@ -71,6 +75,13 @@
msgContext.getOperationContext().getServiceContext().getAxisService();
ClassLoader classLoader = service.getClassLoader();
+ if(service.getParameter(Constants.SERVICE_FORCE_TCCL) != null) {
+ Parameter serviceObjectParam =
+ service.getParameter(Constants.SERVICE_FORCE_TCCL);
+ String value = ((String)
+ serviceObjectParam.getValue()).trim();
+ forceTCCL = JavaUtils.isTrue(value);
+ }
// allow alternative definition of makeNewServiceObject
if (service.getParameter(Constants.SERVICE_OBJECT_SUPPLIER) != null) {
Parameter serviceObjectParam =
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org