Author: heiko.braun(a)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;
}