[jbossws-commits] JBossWS SVN: r4533 - in legacy/branches/jbossws-1.2.1.GA_CP: integration-jboss42/src/java/org/jboss/ws/integration/jboss42 and 4 other directories.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Fri Sep 7 09:01:33 EDT 2007


Author: heiko.braun at jboss.com
Date: 2007-09-07 09:01:33 -0400 (Fri, 07 Sep 2007)
New Revision: 4533

Modified:
   legacy/branches/jbossws-1.2.1.GA_CP/build/version.properties
   legacy/branches/jbossws-1.2.1.GA_CP/integration-jboss42/src/java/org/jboss/ws/integration/jboss42/ServiceEndpointInterceptor.java
   legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/core/CommonSOAPBinding.java
   legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/client/HandlerRegistryImpl.java
   legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/UnifiedHandlerMetaData.java
   legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/metadata/umdm/HandlerMetaData.java
Log:
JBCTS-647: webservices handlerinfo test failures, JBCTS-623:  Handler message change failure, align dependencies with JBAPP_CP01

Modified: legacy/branches/jbossws-1.2.1.GA_CP/build/version.properties
===================================================================
--- legacy/branches/jbossws-1.2.1.GA_CP/build/version.properties	2007-09-07 12:56:24 UTC (rev 4532)
+++ legacy/branches/jbossws-1.2.1.GA_CP/build/version.properties	2007-09-07 13:01:33 UTC (rev 4533)
@@ -5,8 +5,8 @@
 specification.vendor=JBoss (http://www.jboss.org)
 specification.version=jbossws-1.2
 
-version.id=1.2.1.GA
-repository.id=1.2.1.GA
+version.id=1.2.1.GA_CP01
+repository.id=1.2.1.GA_CP01
 
 implementation.title=JBoss Web Services (JBossWS)
 implementation.url=http://www.jboss.org/products/jbossws
@@ -16,7 +16,7 @@
 # Thirdparty library versions that are referenced in component-info.xml
 apache-xmlsec=1.3.0
 ibm-wsdl4j=1.6.2
-javassist=3.5.0.CR1
+javassist=3.5.0.GA
 jbossws-wsconsume-impl=2.0.0
 jbpm-bpel=1.1.0.Beta5
 sun-jaxb=2.0.3jboss
@@ -33,12 +33,12 @@
 jboss-remoting-jboss50=2.2.0.GA
 
 # JBossAS-4.2
-jboss-jbossxb-jboss42=1.0.0.CR10
+jboss-jbossxb-jboss42=1.0.0.GA_CP01
 jboss-microcontainer-jboss42=1.0.2
-jboss-remoting-jboss42=2.0.0.GA
+jboss-remoting-jboss42=2.2.2.GA
 
 # JBossAS-4.0
-jboss-jbossxb-jboss40=1.0.0.CR10
+jboss-jbossxb-jboss40=1.0.0.GA_CP01
 jboss-microcontainer-jboss40=1.0.2
 jboss-remoting-jboss40=1.4.3.GA
 

Modified: legacy/branches/jbossws-1.2.1.GA_CP/integration-jboss42/src/java/org/jboss/ws/integration/jboss42/ServiceEndpointInterceptor.java
===================================================================
--- legacy/branches/jbossws-1.2.1.GA_CP/integration-jboss42/src/java/org/jboss/ws/integration/jboss42/ServiceEndpointInterceptor.java	2007-09-07 12:56:24 UTC (rev 4532)
+++ legacy/branches/jbossws-1.2.1.GA_CP/integration-jboss42/src/java/org/jboss/ws/integration/jboss42/ServiceEndpointInterceptor.java	2007-09-07 13:01:33 UTC (rev 4533)
@@ -24,6 +24,7 @@
 // $Id$
 
 import javax.xml.soap.SOAPMessage;
+import javax.xml.soap.SOAPEnvelope;
 
 import org.jboss.ejb.plugins.AbstractInterceptor;
 import org.jboss.invocation.Invocation;
@@ -34,10 +35,16 @@
 import org.jboss.ws.core.CommonMessageContext;
 import org.jboss.ws.core.EndpointInvocation;
 import org.jboss.ws.core.MessageAbstraction;
+import org.jboss.ws.core.CommonSOAP11Binding;
+import org.jboss.ws.core.CommonSOAPBinding;
 import org.jboss.ws.core.jaxrpc.SOAPFaultHelperJAXRPC;
+import org.jboss.ws.core.jaxrpc.SOAP11BindingJAXRPC;
+import org.jboss.ws.core.jaxrpc.SOAP12BindingJAXRPC;
 import org.jboss.ws.core.soap.SOAPMessageImpl;
+import org.jboss.ws.core.soap.SOAPEnvelopeImpl;
 import org.jboss.ws.metadata.umdm.OperationMetaData;
 import org.jboss.ws.metadata.umdm.HandlerMetaData.HandlerType;
+import org.jboss.ws.Constants;
 
 /**
  * This Interceptor does the ws4ee handler processing.
@@ -86,6 +93,29 @@
             // Call the next interceptor in the chain
             if (handlersPass)
             {
+
+               // [JBCTS-623] Check if handlers modified the payload
+
+               if (msgContext.isModified())
+               {
+                  log.debug("Handler modified payload, unbind message again");
+                  SOAPMessage reqMessage = msgContext.getSOAPMessage();
+                  SOAPEnvelopeImpl env =  (SOAPEnvelopeImpl)reqMessage.getSOAPPart().getEnvelope();
+
+                  CommonSOAPBinding soapBinding;
+                  if(env.getNamespaceURI().equals(Constants.NS_SOAP11_ENV) )
+                  {
+                     soapBinding = new SOAP11BindingJAXRPC();
+                  }
+                  else
+                  {
+                     soapBinding = new SOAP12BindingJAXRPC();
+                  }
+
+                  epInv = soapBinding.unbindRequestMessage(opMetaData, msgContext.getMessageAbstraction());
+               }
+
+
                // The SOAPContentElements stored in the EndpointInvocation might have changed after
                // handler processing. Get the updated request payload. This should be a noop if request
                // handlers did not modify the incomming SOAP message.

Modified: legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/core/CommonSOAPBinding.java
===================================================================
--- legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/core/CommonSOAPBinding.java	2007-09-07 12:56:24 UTC (rev 4532)
+++ legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/core/CommonSOAPBinding.java	2007-09-07 13:01:33 UTC (rev 4533)
@@ -79,6 +79,8 @@
 import org.jboss.ws.metadata.umdm.TypesMetaData;
 import org.jboss.xb.binding.NamespaceRegistry;
 import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Node;
 
 /**
  * The SOAPBinding interface is an abstraction for the SOAP binding.
@@ -305,6 +307,29 @@
 
                Name elName = soapBodyElement.getElementName();
 
+               //               
+               NodeList childNodes = soapBodyElement.getChildNodes();
+               int childElementsLength = 0;
+               for ( int i=0; i<childNodes.getLength(); i++)
+               {
+                  if(childNodes.item(i).getNodeType() == Node.ELEMENT_NODE)
+                  {
+                     childElementsLength++;
+                  }
+               }
+
+               int expectedNumChildElements = 0;
+               for (ParameterMetaData paramMetaData : opMetaData.getParameters())
+               {
+                  if(!paramMetaData.isInHeader() && !paramMetaData.isSwA() && paramMetaData.getMode()!=ParameterMode.OUT )
+                  {
+                     expectedNumChildElements++;
+                  }
+               }
+
+               if(childElementsLength!=expectedNumChildElements)
+                  throw new BindingException("The number of child elements doesn't match OperationMetaData: " + elName);
+               
                QName elQName = new QName(elName.getURI(), elName.getLocalName(), elName.getPrefix());
                elQName = namespaceRegistry.registerQName(elQName);
             }

Modified: legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/client/HandlerRegistryImpl.java
===================================================================
--- legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/client/HandlerRegistryImpl.java	2007-09-07 12:56:24 UTC (rev 4532)
+++ legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/client/HandlerRegistryImpl.java	2007-09-07 13:01:33 UTC (rev 4533)
@@ -24,12 +24,12 @@
 // $Id$
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.Iterator;
 
 import javax.xml.namespace.QName;
 import javax.xml.rpc.handler.HandlerChain;
@@ -42,6 +42,7 @@
 import org.jboss.ws.metadata.umdm.HandlerMetaDataJAXRPC;
 import org.jboss.ws.metadata.umdm.ServiceMetaData;
 import org.jboss.ws.metadata.umdm.HandlerMetaData.HandlerType;
+import org.jboss.ws.metadata.j2ee.serviceref.UnifiedInitParamMetaData;
 
 /** 
  * Provides support for the programmatic configuration of
@@ -115,7 +116,25 @@
          handler.setEndpointMetaData(epMetaData);
          handler.setHandlerClassName(info.getHandlerClass().getName());
          handler.setSoapRoles(roles);
-         
+
+         // pass the init parameters
+         ArrayList<UnifiedInitParamMetaData> params = new ArrayList<UnifiedInitParamMetaData>();
+         Iterator configkeys = info.getHandlerConfig().keySet().iterator();
+         while(configkeys.hasNext())
+         {
+            String name = (String)configkeys.next();
+            if(info.getHandlerConfig().get(name) instanceof String) // might be Object instances used internally 
+            {
+               String value = (String)info.getHandlerConfig().get(name);
+               UnifiedInitParamMetaData initParam = new UnifiedInitParamMetaData();
+               initParam.setParamName(name);
+               initParam.setParamValue(value);
+               params.add(initParam);
+            }
+         }
+
+         handler.setInitParams(params);
+
          Set<QName> headers = new HashSet<QName>();
          for (QName header : info.getHeaders())
             headers.add(header);

Modified: legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/UnifiedHandlerMetaData.java
===================================================================
--- legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/UnifiedHandlerMetaData.java	2007-09-07 12:56:24 UTC (rev 4532)
+++ legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/UnifiedHandlerMetaData.java	2007-09-07 13:01:33 UTC (rev 4533)
@@ -132,7 +132,7 @@
       HandlerMetaDataJAXRPC hmd = new HandlerMetaDataJAXRPC(type);
       hmd.setHandlerName(getHandlerName());
       hmd.setHandlerClassName(getHandlerClass());
-      hmd.seiInitParams(getInitParams());
+      hmd.setInitParams(getInitParams());
       hmd.setSoapHeaders(getSoapHeaders());
       hmd.setSoapRoles(getSoapRoles());
       hmd.setPortNames(getPortNames());
@@ -144,7 +144,7 @@
       HandlerMetaDataJAXWS hmd = new HandlerMetaDataJAXWS(type);
       hmd.setHandlerName(getHandlerName());
       hmd.setHandlerClassName(getHandlerClass());
-      hmd.seiInitParams(getInitParams());
+      hmd.setInitParams(getInitParams());
       if (handlerChain != null)
       {
          hmd.setProtocolBindings(handlerChain.getProtocolBindings());

Modified: legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/metadata/umdm/HandlerMetaData.java
===================================================================
--- legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/metadata/umdm/HandlerMetaData.java	2007-09-07 12:56:24 UTC (rev 4532)
+++ legacy/branches/jbossws-1.2.1.GA_CP/jbossws-core/src/java/org/jboss/ws/metadata/umdm/HandlerMetaData.java	2007-09-07 13:01:33 UTC (rev 4533)
@@ -144,7 +144,7 @@
       return soapHeaders;
    }
 
-   public void seiInitParams(List<UnifiedInitParamMetaData> initParams)
+   public void setInitParams(List<UnifiedInitParamMetaData> initParams)
    {
       this.initParams = initParams;
    }




More information about the jbossws-commits mailing list