[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