[jboss-svn-commits] JBossWS SVN: r693 - in trunk/src: main/java/org/jboss/ws/jaxrpc main/java/org/jboss/ws/jaxws main/java/org/jboss/ws/metadata main/java/org/jboss/ws/server test/java/org/jboss/test/ws/samples/dynamichandler

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Aug 4 10:50:09 EDT 2006


Author: thomas.diesler at jboss.com
Date: 2006-08-04 10:49:57 -0400 (Fri, 04 Aug 2006)
New Revision: 693

Modified:
   trunk/src/main/java/org/jboss/ws/jaxrpc/HandlerDelegateJAXRPC.java
   trunk/src/main/java/org/jboss/ws/jaxws/HandlerDelegateJAXWS.java
   trunk/src/main/java/org/jboss/ws/metadata/EndpointMetaData.java
   trunk/src/main/java/org/jboss/ws/server/ServiceEndpointManager.java
   trunk/src/test/java/org/jboss/test/ws/samples/dynamichandler/DynamicHandlerTestCase.java
Log:
Restore dynamic server handlers

Modified: trunk/src/main/java/org/jboss/ws/jaxrpc/HandlerDelegateJAXRPC.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/jaxrpc/HandlerDelegateJAXRPC.java	2006-08-04 14:38:53 UTC (rev 692)
+++ trunk/src/main/java/org/jboss/ws/jaxrpc/HandlerDelegateJAXRPC.java	2006-08-04 14:49:57 UTC (rev 693)
@@ -71,13 +71,15 @@
    public boolean callRequestHandlerChain(ServiceEndpointInfo seInfo, HandlerType type)
    {
       SOAPMessageContextJAXRPC msgContext = (SOAPMessageContextJAXRPC)MessageContextAssociation.peekMessageContext();
+      ServerEndpointMetaData sepMetaData = seInfo.getServerEndpointMetaData();
 
       // Initialize the handler chain
-      if (jaxrpcHandlerChain == null)
+      if (sepMetaData.isHandlersInitialized() == false)
       {
          initHandlerChain(seInfo, HandlerType.PRE);
          initHandlerChain(seInfo, HandlerType.JAXRPC);
          initHandlerChain(seInfo, HandlerType.POST);
+         sepMetaData.setHandlersInitialized(true);
       }
 
       boolean status = true;

Modified: trunk/src/main/java/org/jboss/ws/jaxws/HandlerDelegateJAXWS.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/jaxws/HandlerDelegateJAXWS.java	2006-08-04 14:38:53 UTC (rev 692)
+++ trunk/src/main/java/org/jboss/ws/jaxws/HandlerDelegateJAXWS.java	2006-08-04 14:49:57 UTC (rev 693)
@@ -118,13 +118,15 @@
    public boolean callRequestHandlerChain(ServiceEndpointInfo seInfo, HandlerType type)
    {
       SOAPMessageContextJAXWS msgContext = (SOAPMessageContextJAXWS)MessageContextAssociation.peekMessageContext();
+      ServerEndpointMetaData sepMetaData = seInfo.getServerEndpointMetaData();
 
       // Initialize the handler chain
-      if (jaxwsHandlerChain == null)
+      if (sepMetaData.isHandlersInitialized() == false)
       {
          initHandlerChain(seInfo, HandlerType.PRE);
          initHandlerChain(seInfo, HandlerType.JAXWS);
          initHandlerChain(seInfo, HandlerType.POST);
+         sepMetaData.setHandlersInitialized(true);
       }
 
       boolean status = true;

Modified: trunk/src/main/java/org/jboss/ws/metadata/EndpointMetaData.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/metadata/EndpointMetaData.java	2006-08-04 14:38:53 UTC (rev 692)
+++ trunk/src/main/java/org/jboss/ws/metadata/EndpointMetaData.java	2006-08-04 14:49:57 UTC (rev 693)
@@ -98,6 +98,8 @@
    private List<OperationMetaData> operations = new ArrayList<OperationMetaData>();
    // The optional handlers
    private List<UnifiedHandlerMetaData> jaxrpcHandlers = new ArrayList<UnifiedHandlerMetaData>();
+   // True if the handlers are initialized
+   private boolean handlersInitialized;
 
    public EndpointMetaData(ServiceMetaData service, QName qname, Type type)
    {
@@ -372,6 +374,7 @@
    public void clearHandlers()
    {
       jaxrpcHandlers.clear();
+      handlersInitialized = false;
    }
 
    public List<UnifiedHandlerMetaData> getHandlers(HandlerType type)
@@ -382,6 +385,16 @@
       return new ArrayList<UnifiedHandlerMetaData>(jaxrpcHandlers);
    }
 
+   public boolean isHandlersInitialized()
+   {
+      return handlersInitialized;
+   }
+
+   public void setHandlersInitialized(boolean flag)
+   {
+      this.handlersInitialized = flag;
+   }
+
    /**
     * @see UnifiedMetaData#eagerInitialize()
     */

Modified: trunk/src/main/java/org/jboss/ws/server/ServiceEndpointManager.java
===================================================================
--- trunk/src/main/java/org/jboss/ws/server/ServiceEndpointManager.java	2006-08-04 14:38:53 UTC (rev 692)
+++ trunk/src/main/java/org/jboss/ws/server/ServiceEndpointManager.java	2006-08-04 14:49:57 UTC (rev 693)
@@ -527,8 +527,8 @@
          throw new WSException("Endpoint expected to be in STOPED state");
 
       ServerEndpointMetaData sepMetaData = wsEndpoint.getServiceEndpointInfo().getServerEndpointMetaData();
-
       sepMetaData.clearHandlers();
+      
       for (UnifiedHandlerMetaData handlerMetaData : handlers)
       {
          sepMetaData.addHandler(handlerMetaData);

Modified: trunk/src/test/java/org/jboss/test/ws/samples/dynamichandler/DynamicHandlerTestCase.java
===================================================================
--- trunk/src/test/java/org/jboss/test/ws/samples/dynamichandler/DynamicHandlerTestCase.java	2006-08-04 14:38:53 UTC (rev 692)
+++ trunk/src/test/java/org/jboss/test/ws/samples/dynamichandler/DynamicHandlerTestCase.java	2006-08-04 14:49:57 UTC (rev 693)
@@ -37,6 +37,7 @@
 import org.jboss.test.ws.JBossWSTest;
 import org.jboss.test.ws.JBossWSTestSetup;
 import org.jboss.ws.jaxrpc.ServiceExt;
+import org.jboss.ws.metadata.j2ee.UnifiedHandlerMetaData;
 
 /**
  * Test dynamic handlers
@@ -100,16 +101,16 @@
       ObjectName oname = ObjectNameFactory.create("jboss.ws:service=ServiceEndpointManager");
       ObjectName serviceID = new ObjectName("jboss.ws:context=jbossws-samples-dynamichandler,endpoint=TestService");
 
-      List infos = (List)server.invoke(oname, "getHandlerInfos", new Object[]{serviceID}, new String[]{"javax.management.ObjectName"});
-      Iterator it = infos.iterator();
+      List handlers = (List)server.invoke(oname, "getHandlerMetaData", new Object[]{serviceID}, new String[]{"javax.management.ObjectName"});
+      Iterator it = handlers.iterator();
       while (it.hasNext())
       {
-         HandlerInfo info = (HandlerInfo)it.next();
-         if (info.getHandlerClass() == ServerSideHandler.class)
+         UnifiedHandlerMetaData handlerMetaData = (UnifiedHandlerMetaData)it.next();
+         if (handlerMetaData.getHandlerClass().equals(ServerSideHandler.class.getName()))
             it.remove();
       }
       server.invoke(oname, "stopServiceEndpoint", new Object[]{serviceID}, new String[]{"javax.management.ObjectName"});
-      server.invoke(oname, "setHandlerInfos", new Object[]{serviceID, infos}, new String[]{"javax.management.ObjectName", "java.util.List"});
+      server.invoke(oname, "setHandlerMetaData", new Object[]{serviceID, handlers}, new String[]{"javax.management.ObjectName", "java.util.List"});
       server.invoke(oname, "startServiceEndpoint", new Object[]{serviceID}, new String[]{"javax.management.ObjectName"});
       
       String res = endpoint.testHandlers("InitalMessage");




More information about the jboss-svn-commits mailing list