[jboss-cvs] JBossAS SVN: r109533 - in trunk: webservices/src/main/java/org/jboss/webservices/integration/invocation and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Nov 29 06:36:53 EST 2010


Author: richard.opalka at jboss.com
Date: 2010-11-29 06:36:52 -0500 (Mon, 29 Nov 2010)
New Revision: 109533

Modified:
   trunk/component-matrix/pom.xml
   trunk/webservices/src/main/java/org/jboss/webservices/integration/invocation/InvocationHandlerEJB3.java
Log:
[JBWS-3171] fixing WebServiceContext EJB3 injection regression

Modified: trunk/component-matrix/pom.xml
===================================================================
--- trunk/component-matrix/pom.xml	2010-11-29 08:35:17 UTC (rev 109532)
+++ trunk/component-matrix/pom.xml	2010-11-29 11:36:52 UTC (rev 109533)
@@ -54,7 +54,7 @@
     <version.jboss.jbossts>4.13.1.Final</version.jboss.jbossts>
     <version.jboss.jbossws-native>3.4.0.CR3</version.jboss.jbossws-native>
     <version.jboss.jbossws-cxf>3.4.0.CR3</version.jboss.jbossws-cxf>
-    <version.jboss.jbossws-common>1.4.1.CR1</version.jboss.jbossws-common>
+    <version.jboss.jbossws-common>1.4.1.CR2</version.jboss.jbossws-common>
     <version.jboss.jbossws-framework>3.4.1.CR1</version.jboss.jbossws-framework>
     <version.jboss.jbossws-spi>1.4.1.CR2</version.jboss.jbossws-spi>
     <version.jboss.jms-integration-tests>1.0.1.GA</version.jboss.jms-integration-tests>

Modified: trunk/webservices/src/main/java/org/jboss/webservices/integration/invocation/InvocationHandlerEJB3.java
===================================================================
--- trunk/webservices/src/main/java/org/jboss/webservices/integration/invocation/InvocationHandlerEJB3.java	2010-11-29 08:35:17 UTC (rev 109532)
+++ trunk/webservices/src/main/java/org/jboss/webservices/integration/invocation/InvocationHandlerEJB3.java	2010-11-29 11:36:52 UTC (rev 109533)
@@ -25,15 +25,18 @@
 
 import javax.naming.Context;
 import javax.naming.NamingException;
+import javax.xml.ws.WebServiceContext;
 import javax.xml.ws.WebServiceException;
 
 import org.jboss.ejb3.EJBContainer;
 import org.jboss.webservices.integration.util.ASHelper;
+import org.jboss.wsf.common.injection.ThreadLocalAwareWebServiceContext;
 import org.jboss.wsf.common.invocation.AbstractInvocationHandler;
 import org.jboss.wsf.spi.SPIProvider;
 import org.jboss.wsf.spi.SPIProviderResolver;
 import org.jboss.wsf.spi.deployment.Endpoint;
 import org.jboss.wsf.spi.invocation.Invocation;
+import org.jboss.wsf.spi.invocation.InvocationContext;
 import org.jboss.wsf.spi.invocation.integration.InvocationContextCallback;
 import org.jboss.wsf.spi.invocation.integration.ServiceEndpointContainer;
 import org.jboss.wsf.spi.ioc.IoCContainerProxy;
@@ -117,6 +120,7 @@
       try
       {
          // prepare for invocation
+         this.onBeforeInvocation(wsInvocation);
          final ServiceEndpointContainer ejbContainer = this.getEjb3Container();
          final InvocationContextCallback invocationCallback = new EJB3InvocationContextCallback(wsInvocation);
          final Class<?> implClass = ejbContainer.getServiceImplementationClass();
@@ -133,6 +137,10 @@
          this.log.error("Method invocation failed with exception: " + t.getMessage(), t);
          this.handleInvocationException(t);
       }
+      finally
+      {
+     	 this.onAfterInvocation(wsInvocation);
+      }
    }
 
    public Context getJNDIContext(final Endpoint ep) throws NamingException
@@ -142,6 +150,42 @@
    }
 
    /**
+    * Injects webservice context on target bean.
+    *
+    *  @param invocation current invocation
+    */
+   @Override
+   protected void onBeforeInvocation(final Invocation invocation)
+   {
+      final WebServiceContext wsContext = this.getWebServiceContext(invocation);
+      ThreadLocalAwareWebServiceContext.getInstance().setMessageContext(wsContext);
+   }
+
+   /**
+    * Cleanups injected webservice context on target bean.
+    *
+    * @param invocation current invocation
+    */
+   @Override
+   protected void onAfterInvocation(final Invocation invocation)
+   {
+      ThreadLocalAwareWebServiceContext.getInstance().setMessageContext(null);
+   }
+
+   /**
+    * Returns WebServiceContext associated with this invocation.
+    *
+    * @param invocation current invocation
+    * @return web service context or null if not available
+    */
+   private WebServiceContext getWebServiceContext(final Invocation invocation)
+   {
+      final InvocationContext invocationContext = invocation.getInvocationContext();
+
+      return invocationContext.getAttachment(WebServiceContext.class);
+   }
+
+   /**
     * EJB3 invocation callback allowing EJB 3 beans to access Web Service invocation properties.
     */
    private static final class EJB3InvocationContextCallback implements InvocationContextCallback



More information about the jboss-cvs-commits mailing list