JBossWS SVN: r2649 - in trunk: build/etc/component-info and 4 other directories.
by jbossws-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2007-03-20 18:23:25 -0400 (Tue, 20 Mar 2007)
New Revision: 2649
Modified:
trunk/build/etc/component-info/jbossws-core.xml
trunk/build/version.properties
trunk/integration-jboss50/build.xml
trunk/jbossws-core/src/java/javax/xml/soap/FactoryLoader.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/DOMContent.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContent.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentAccess.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentElement.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/XMLContent.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/XMLFragment.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/LogicalSourceHandler.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/ProtocolHandler.java
Log:
Fix SOAPContentElement.setPayload(Source)
Modified: trunk/build/etc/component-info/jbossws-core.xml
===================================================================
--- trunk/build/etc/component-info/jbossws-core.xml 2007-03-20 14:12:42 UTC (rev 2648)
+++ trunk/build/etc/component-info/jbossws-core.xml 2007-03-20 22:23:25 UTC (rev 2649)
@@ -27,6 +27,9 @@
<import componentref="jbpm/bpel">
<compatible version="@jbpm-bpel@"/>
</import>
+ <import componentref="stax-api">
+ <compatible version="@stax-api@"/>
+ </import>
<import componentref="sun-jaxb">
<compatible version="@sun-jaxb@"/>
</import>
Modified: trunk/build/version.properties
===================================================================
--- trunk/build/version.properties 2007-03-20 14:12:42 UTC (rev 2648)
+++ trunk/build/version.properties 2007-03-20 22:23:25 UTC (rev 2649)
@@ -18,9 +18,10 @@
ibm-wsdl4j=1.5.2jboss
javassist=3.5.0.CR1
jboss-jbossxb=2.0.0.CR1
-jboss-microcontainer=2.0.0.Beta3.1
+jboss-microcontainer=2.0.0.Beta3
jboss-remoting=2.2.0.Alpha7
sun-jaxb=2.0.3
+stax-api=1.0
# thirdparty library versions
apache-ant=1.6.5
@@ -50,7 +51,6 @@
junit=3.8.1
oswego-concurrent=1.3.4
qdox=1.4
-stax-api=1.0
sun-hudson=1.74
sun-jaf=1.1
sun-javamail=1.4
Modified: trunk/integration-jboss50/build.xml
===================================================================
--- trunk/integration-jboss50/build.xml 2007-03-20 14:12:42 UTC (rev 2648)
+++ trunk/integration-jboss50/build.xml 2007-03-20 22:23:25 UTC (rev 2649)
@@ -100,10 +100,7 @@
<include name="jbossws-context.war"/>
</fileset>
<fileset dir="${thirdparty.dir}">
- <include name="jaxb-api.jar"/>
- <include name="jaxb-impl.jar"/>
<include name="policy.jar"/>
- <include name="stax-api.jar"/>
<include name="wsdl4j.jar"/>
<include name="xmlsec.jar"/>
</fileset>
Modified: trunk/jbossws-core/src/java/javax/xml/soap/FactoryLoader.java
===================================================================
--- trunk/jbossws-core/src/java/javax/xml/soap/FactoryLoader.java 2007-03-20 14:12:42 UTC (rev 2648)
+++ trunk/jbossws-core/src/java/javax/xml/soap/FactoryLoader.java 2007-03-20 22:23:25 UTC (rev 2649)
@@ -124,7 +124,7 @@
br.close();
if (factoryName != null)
{
- if(log.isDebugEnabled()) log.debug("Load from Service API " + filename + ": " + factoryName);
+ if(log.isTraceEnabled()) log.trace("Load from Service API " + filename + ": " + factoryName);
Class factoryClass = loader.loadClass(factoryName);
factory = factoryClass.newInstance();
}
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/DOMContent.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/DOMContent.java 2007-03-20 14:12:42 UTC (rev 2648)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/DOMContent.java 2007-03-20 22:23:25 UTC (rev 2649)
@@ -21,6 +21,8 @@
*/
package org.jboss.ws.core.soap;
+// $Id: $
+
import javax.xml.transform.Source;
import javax.xml.transform.dom.DOMSource;
@@ -33,25 +35,27 @@
* @version $Id$
* @since 05.02.2007
*/
-public class DOMContent extends SOAPContent {
+public class DOMContent extends SOAPContent
+{
+ private static Logger log = Logger.getLogger(DOMContent.class);
- private static Logger log = Logger.getLogger(ObjectContent.class);
-
private Source payload;
- protected DOMContent(SOAPContentElement container) {
+ protected DOMContent(SOAPContentElement container)
+ {
super(container);
}
- State getState() {
- return State.DOM_VALID;
+ State getState()
+ {
+ return State.DOM_VALID;
}
- SOAPContent transitionTo(State nextState) {
-
+ SOAPContent transitionTo(State nextState)
+ {
SOAPContent next = null;
- if(State.XML_VALID == nextState)
+ if (State.XML_VALID == nextState)
{
log.debug("getXMLFragment from DOM");
DOMSource domSource = new DOMSource(container);
@@ -62,7 +66,7 @@
xmlValid.setXMLFragment(fragment);
next = xmlValid;
}
- else if(State.OBJECT_VALID == nextState)
+ else if (State.OBJECT_VALID == nextState)
{
// transition to xml valid first
XMLFragment fragment = new XMLFragment(new DOMSource(container));
@@ -73,7 +77,7 @@
next = tmpState.transitionTo(State.OBJECT_VALID);
}
- else if(State.DOM_VALID == nextState)
+ else if (State.DOM_VALID == nextState)
{
next = this;
}
@@ -85,27 +89,36 @@
return next;
}
- public Source getPayload() {
+ public Source getPayload()
+ {
return new DOMSource(container);
}
- public void setPayload(Source source) {
+ public void setPayload(Source source)
+ {
+ if (!(source instanceof DOMSource))
+ throw new IllegalArgumentException("DOMSource expected, but got: " + source);
+
this.payload = source;
}
- public XMLFragment getXMLFragment() {
+ public XMLFragment getXMLFragment()
+ {
throw new IllegalStateException("XMLFragment not available");
}
- public void setXMLFragment(XMLFragment xmlFragment) {
+ public void setXMLFragment(XMLFragment xmlFragment)
+ {
throw new IllegalStateException("XMLFragment not available");
}
- public Object getObjectValue() {
- throw new IllegalStateException("Object value not available");
+ public Object getObjectValue()
+ {
+ throw new IllegalStateException("Object value not available");
}
- public void setObjectValue(Object objValue) {
- throw new IllegalStateException("Object value not available");
+ public void setObjectValue(Object objValue)
+ {
+ throw new IllegalStateException("Object value not available");
}
}
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContent.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContent.java 2007-03-20 14:12:42 UTC (rev 2648)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContent.java 2007-03-20 22:23:25 UTC (rev 2649)
@@ -21,6 +21,8 @@
*/
package org.jboss.ws.core.soap;
+// $Id: $
+
/**
* Represent SOAP message payload that can transition from
* one representation to the next.
@@ -28,20 +30,23 @@
* @see SOAPContentElement
*
* @author Heiko.Braun(a)jboss.org
- * @version $Id$
* @since 05.02.2007
*/
-public abstract class SOAPContent implements SOAPContentAccess {
+public abstract class SOAPContent implements SOAPContentAccess
+{
+ public enum State
+ {
+ OBJECT_VALID, XML_VALID, DOM_VALID
+ }
- public enum State {OBJECT_VALID, XML_VALID, DOM_VALID}
-
abstract SOAPContent transitionTo(State nextState);
abstract State getState();
protected SOAPContentElement container;
- protected SOAPContent(SOAPContentElement container) {
+ protected SOAPContent(SOAPContentElement container)
+ {
this.container = container;
}
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentAccess.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentAccess.java 2007-03-20 14:12:42 UTC (rev 2648)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentAccess.java 2007-03-20 22:23:25 UTC (rev 2649)
@@ -1,10 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
package org.jboss.ws.core.soap;
+//$Id: $
+
import javax.xml.transform.Source;
/**
* @author Heiko.Braun(a)jboss.org
- * @version $Id$
* @since 05.02.2007
*/
public interface SOAPContentAccess
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentElement.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentElement.java 2007-03-20 14:12:42 UTC (rev 2648)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentElement.java 2007-03-20 22:23:25 UTC (rev 2649)
@@ -154,8 +154,8 @@
*/
public void setPayload(Source source)
{
- soapContent = new DOMContent(this);
- soapContent.setPayload(source);
+ soapContent = new XMLContent(this);
+ soapContent.setXMLFragment(new XMLFragment(source));
}
public XMLFragment getXMLFragment()
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/XMLContent.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/XMLContent.java 2007-03-20 14:12:42 UTC (rev 2648)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/XMLContent.java 2007-03-20 22:23:25 UTC (rev 2649)
@@ -254,12 +254,11 @@
*/
private void expandContainerChildren()
{
+ Element domElement = xmlFragment.toElement();
- Element contentRoot = xmlFragment.toElement();
-
- String rootLocalName = contentRoot.getLocalName();
- String rootPrefix = contentRoot.getPrefix();
- String rootNS = contentRoot.getNamespaceURI();
+ String rootLocalName = domElement.getLocalName();
+ String rootPrefix = domElement.getPrefix();
+ String rootNS = domElement.getNamespaceURI();
Name contentRootName = new NameImpl(rootLocalName, rootPrefix, rootNS);
// Make sure the content root element name matches this element name
@@ -267,14 +266,17 @@
if (!contentRootName.equals(name))
throw new WSException("Content root name does not match element name: " + contentRootName + " != " + name);
+ // Remove all child nodes
+ container.removeContents();
+
// Copy attributes
- DOMUtils.copyAttributes(container, contentRoot);
+ DOMUtils.copyAttributes(container, domElement);
SOAPFactoryImpl soapFactory = new SOAPFactoryImpl();
try
{
- NodeList nlist = contentRoot.getChildNodes();
+ NodeList nlist = domElement.getChildNodes();
for (int i = 0; i < nlist.getLength(); i++)
{
Node child = nlist.item(i);
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/XMLFragment.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/XMLFragment.java 2007-03-20 14:12:42 UTC (rev 2648)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/XMLFragment.java 2007-03-20 22:23:25 UTC (rev 2649)
@@ -56,7 +56,6 @@
*/
public class XMLFragment
{
-
private Source source;
private Result result;
Modified: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/LogicalSourceHandler.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/LogicalSourceHandler.java 2007-03-20 14:12:42 UTC (rev 2648)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/LogicalSourceHandler.java 2007-03-20 22:23:25 UTC (rev 2649)
@@ -34,12 +34,22 @@
import javax.xml.ws.handler.LogicalMessageContext;
import javax.xml.ws.handler.MessageContext;
+import org.jboss.logging.Logger;
import org.jboss.ws.core.jaxws.handler.GenericLogicalHandler;
import org.jboss.ws.core.utils.DOMUtils;
import org.w3c.dom.Element;
+/**
+ * A jaxws logical handler
+ *
+ * @author Thomas.Diesler(a)jboss.org
+ * @since 24-Nov-2005
+ */
public class LogicalSourceHandler extends GenericLogicalHandler
{
+ // provide logging
+ private static final Logger log = Logger.getLogger(LogicalSourceHandler.class);
+
@Override
public boolean handleOutbound(MessageContext msgContext)
{
@@ -51,8 +61,8 @@
{
return appendHandlerName(msgContext);
}
-
- public boolean appendHandlerName(MessageContext msgContext)
+
+ public boolean appendHandlerName(MessageContext msgContext)
{
try
{
@@ -62,20 +72,22 @@
TransformerFactory tf = TransformerFactory.newInstance();
ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
tf.newTransformer().transform(source, new StreamResult(baos));
-
+
// Parse the payload and extract the value
Element root = DOMUtils.parse(new ByteArrayInputStream(baos.toByteArray()));
Element element = DOMUtils.getFirstChildElement(root);
- String value = DOMUtils.getTextContent(element);
-
- String handlerName = getHandlerName();
- value = value + ":" + handlerName;
- element.setTextContent(value);
-
+
+ String oldValue = DOMUtils.getTextContent(element);
+ String newValue = oldValue + ":" + getHandlerName();
+ element.setTextContent(newValue);
+
+ log.info("oldValue: " + oldValue);
+ log.info("newValue: " + newValue);
+
// Set the updated payload
source = new DOMSource(root);
logicalContext.getMessage().setPayload(source);
-
+
return true;
}
catch (RuntimeException rte)
Modified: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/ProtocolHandler.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/ProtocolHandler.java 2007-03-20 14:12:42 UTC (rev 2648)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/ProtocolHandler.java 2007-03-20 22:23:25 UTC (rev 2649)
@@ -28,16 +28,20 @@
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.handler.soap.SOAPMessageContext;
+import org.jboss.logging.Logger;
import org.jboss.ws.core.jaxws.handler.GenericSOAPHandler;
/**
- * A client side handler for the ws-addressing
+ * A jaxws protocol handler
*
* @author Thomas.Diesler(a)jboss.org
* @since 24-Nov-2005
*/
public class ProtocolHandler extends GenericSOAPHandler
{
+ // provide logging
+ private static final Logger log = Logger.getLogger(ProtocolHandler.class);
+
@Override
public boolean handleOutbound(MessageContext msgContext)
{
@@ -57,11 +61,14 @@
SOAPMessage soapMessage = ((SOAPMessageContext)msgContext).getMessage();
SOAPElement soapElement = (SOAPElement)soapMessage.getSOAPBody().getChildElements().next();
soapElement = (SOAPElement)soapElement.getChildElements().next();
- String value = soapElement.getValue();
- String handlerName = getHandlerName();
- soapElement.setValue(value + ":" + handlerName);
+ String oldValue = soapElement.getValue();
+ String newValue = oldValue + ":" + getHandlerName();
+ soapElement.setValue(newValue);
+ log.info("oldValue: " + oldValue);
+ log.info("newValue: " + newValue);
+
return true;
}
catch (SOAPException ex)
17 years, 2 months
JBossWS SVN: r2648 - in trunk/jbossws-core/src/java/org/jboss/ws/core: server and 1 other directories.
by jbossws-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2007-03-20 10:12:42 -0400 (Tue, 20 Mar 2007)
New Revision: 2648
Modified:
trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/LogicalMessageImpl.java
trunk/jbossws-core/src/java/org/jboss/ws/core/server/AbstractServiceEndpointInvoker.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPBodyImpl.java
Log:
Unbind message again after LogicalHandler.setSource()
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/LogicalMessageImpl.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/LogicalMessageImpl.java 2007-03-20 12:59:55 UTC (rev 2647)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/LogicalMessageImpl.java 2007-03-20 14:12:42 UTC (rev 2648)
@@ -93,7 +93,6 @@
public void setPayload(Source source)
{
- soapBody.setPayload(source);
if (setPayloadBodyChild)
{
try
@@ -116,6 +115,13 @@
throw new WebServiceException("Cannot set xml payload", ex);
}
}
+ else
+ {
+ soapBody.setPayload(source);
+ }
+
+ // The body payload has been modified
+ soapBody.setModifiedFromSource(true);
}
public Object getPayload(JAXBContext jaxbContext)
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/server/AbstractServiceEndpointInvoker.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/server/AbstractServiceEndpointInvoker.java 2007-03-20 12:59:55 UTC (rev 2647)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/server/AbstractServiceEndpointInvoker.java 2007-03-20 14:12:42 UTC (rev 2648)
@@ -193,7 +193,8 @@
if (handlersPass)
{
// Check if protocol handlers modified the payload
- if (((SOAPBodyImpl)reqMessage.getSOAPBody()).isModifiedFromSource())
+ SOAPBodyImpl soapBody = (SOAPBodyImpl)reqMessage.getSOAPBody();
+ if (soapBody.isModifiedFromSource())
{
log.debug("Handler modified body payload, unbind message again");
epInv = binding.unbindRequestMessage(opMetaData, reqMessage);
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java 2007-03-20 12:59:55 UTC (rev 2647)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java 2007-03-20 14:12:42 UTC (rev 2648)
@@ -32,7 +32,6 @@
import javax.xml.namespace.QName;
import javax.xml.soap.Name;
-import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPException;
@@ -132,7 +131,7 @@
// Add the body elements
Element domBody = DOMUtils.getFirstChildElement(domEnv, new QName(envNS, "Body"));
- SOAPBody soapBody = soapEnv.getBody();
+ SOAPBodyImpl soapBody = (SOAPBodyImpl)soapEnv.getBody();
DOMUtils.copyAttributes(soapBody, domBody);
@@ -214,8 +213,10 @@
return soapEnv;
}
- public void buildBodyElementDoc(SOAPBody soapBody, Element domBodyElement) throws SOAPException
+ public void buildBodyElementDoc(SOAPBodyImpl soapBody, Element domBodyElement) throws SOAPException
{
+ soapBody.removeContents();
+
Element srcElement = (Element)domBodyElement;
registerNamespacesLocally(srcElement);
@@ -229,8 +230,10 @@
destElement.setXMLFragment(xmlFragment);
}
- public void buildBodyElementRpc(SOAPBody soapBody, Element domBodyElement) throws SOAPException
+ public void buildBodyElementRpc(SOAPBodyImpl soapBody, Element domBodyElement) throws SOAPException
{
+ soapBody.removeContents();
+
QName beName = DOMUtils.getElementQName(domBodyElement);
SOAPBodyElementRpc soapBodyElement = new SOAPBodyElementRpc(beName);
soapBodyElement = (SOAPBodyElementRpc)soapBody.addChildElement(soapBodyElement);
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPBodyImpl.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPBodyImpl.java 2007-03-20 12:59:55 UTC (rev 2647)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPBodyImpl.java 2007-03-20 14:12:42 UTC (rev 2648)
@@ -86,6 +86,11 @@
{
return isModifiedFromSource;
}
+
+ public void setModifiedFromSource(boolean isModified)
+ {
+ this.isModifiedFromSource = isModified;
+ }
public Source getPayload()
{
17 years, 2 months
JBossWS SVN: r2647 - in trunk: jbossws-core/src/java/org/jboss/ws/core/soap and 4 other directories.
by jbossws-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2007-03-20 08:59:55 -0400 (Tue, 20 Mar 2007)
New Revision: 2647
Added:
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceDoc.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceDocImpl.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceRpc.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceRpcImpl.java
Removed:
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSource.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceImpl.java
Modified:
trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/HandlerChainExecutor.java
trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/LogicalMessageContextImpl.java
trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/LogicalMessageImpl.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPBodyElementRpc.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPBodyImpl.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentAccess.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentElement.java
trunk/jbossws-core/src/java/org/jboss/ws/core/utils/DOMUtils.java
trunk/jbossws-tests/ant-import/build-samples-jaxws.xml
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/LogicalHandlerSourceTestCase.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/jaxws-client-source-handlers.xml
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/jaxws-server-source-handlers.xml
trunk/jbossws-tests/src/resources/jaxws/samples/logicalhandler/WEB-INF/web-source.xml
Log:
Add support for logical handlers on RPC endpoints
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/HandlerChainExecutor.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/HandlerChainExecutor.java 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/HandlerChainExecutor.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -38,7 +38,6 @@
import org.jboss.logging.Logger;
import org.jboss.ws.core.CommonMessageContext;
-import org.jboss.ws.core.jaxrpc.Style;
import org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS;
import org.jboss.ws.core.soap.SOAPEnvelopeImpl;
import org.jboss.ws.core.utils.DOMWriter;
@@ -282,9 +281,6 @@
CommonMessageContext context = (CommonMessageContext)msgContext;
if (currHandler instanceof LogicalHandler)
{
- if (epMetaData.getStyle() == Style.RPC)
- throw new WebServiceException("Cannot use logical handler with RPC");
-
if (msgContext instanceof SOAPMessageContextJAXWS)
msgContext = new LogicalMessageContextImpl((SOAPMessageContextJAXWS)msgContext);
}
@@ -310,9 +306,6 @@
CommonMessageContext context = (CommonMessageContext)msgContext;
if (currHandler instanceof LogicalHandler)
{
- if (epMetaData.getStyle() == Style.RPC)
- throw new WebServiceException("Cannot use logical handler with RPC");
-
if (msgContext instanceof SOAPMessageContextJAXWS)
msgContext = new LogicalMessageContextImpl((SOAPMessageContextJAXWS)msgContext);
}
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/LogicalMessageContextImpl.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/LogicalMessageContextImpl.java 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/LogicalMessageContextImpl.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -32,6 +32,9 @@
import javax.xml.ws.handler.LogicalMessageContext;
import javax.xml.ws.handler.MessageContext;
+import org.jboss.ws.core.jaxrpc.Style;
+import org.jboss.ws.metadata.umdm.EndpointMetaData.Type;
+
/**
* The LogicalMessageContext interface extends MessageContext to provide access to a the
* contained message as a protocol neutral LogicalMessage.
@@ -48,8 +51,10 @@
public LogicalMessageContextImpl(SOAPMessageContextJAXWS soapContext)
{
this.delegate = soapContext;
+
+ Style style = soapContext.getEndpointMetaData().getStyle();
SOAPMessage soapMessage = soapContext.getMessage();
- logicalMessage = new LogicalMessageImpl(soapMessage);
+ logicalMessage = new LogicalMessageImpl(soapMessage, style);
}
/**
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/LogicalMessageImpl.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/LogicalMessageImpl.java 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/handler/LogicalMessageImpl.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -26,15 +26,20 @@
import java.util.Iterator;
import javax.xml.bind.JAXBContext;
+import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import javax.xml.transform.Source;
+import javax.xml.transform.dom.DOMSource;
import javax.xml.ws.LogicalMessage;
import javax.xml.ws.WebServiceException;
import org.jboss.logging.Logger;
+import org.jboss.ws.core.jaxrpc.Style;
+import org.jboss.ws.core.soap.EnvelopeBuilderDOM;
import org.jboss.ws.core.soap.SOAPBodyImpl;
import org.jboss.ws.core.soap.SOAPContentElement;
+import org.w3c.dom.Element;
/**
* The LogicalMessageContext interface extends MessageContext to provide access to a the
@@ -47,12 +52,14 @@
{
// provide logging
private static final Logger log = Logger.getLogger(LogicalMessageImpl.class);
-
+
+ private Style style;
private SOAPBodyImpl soapBody;
private boolean setPayloadBodyChild;
- public LogicalMessageImpl(SOAPMessage soapMessage)
+ public LogicalMessageImpl(SOAPMessage soapMessage, Style style)
{
+ this.style = style;
try
{
soapBody = (SOAPBodyImpl)soapMessage.getSOAPBody();
@@ -69,8 +76,16 @@
setPayloadBodyChild = false;
if (source == null)
{
- SOAPContentElement soapElement = (SOAPContentElement)soapBody.getChildElements().next();
- source = soapElement.getPayload();
+ SOAPElement soapElement = (SOAPElement)soapBody.getChildElements().next();
+ if (style == Style.RPC)
+ {
+ source = new DOMSource(soapElement);
+ }
+ else
+ {
+ SOAPContentElement contentElement = (SOAPContentElement)soapElement;
+ source = contentElement.getPayload();
+ }
setPayloadBodyChild = true;
}
return source;
@@ -81,8 +96,25 @@
soapBody.setPayload(source);
if (setPayloadBodyChild)
{
- SOAPContentElement soapElement = (SOAPContentElement)soapBody.getChildElements().next();
- soapElement.setPayload(source);
+ try
+ {
+ SOAPElement soapElement = (SOAPElement)soapBody.getChildElements().next();
+ if (style == Style.RPC)
+ {
+ EnvelopeBuilderDOM builder = new EnvelopeBuilderDOM(style);
+ Element domBodyElement = EnvelopeBuilderDOM.getElementFromSource(source);
+ builder.buildBodyElementRpc(soapBody, domBodyElement);
+ }
+ else
+ {
+ SOAPContentElement contentElement = (SOAPContentElement)soapElement;
+ contentElement.setPayload(source);
+ }
+ }
+ catch (SOAPException ex)
+ {
+ throw new WebServiceException("Cannot set xml payload", ex);
+ }
}
}
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -23,20 +23,38 @@
//$Id$
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.util.Iterator;
+
+import javax.xml.namespace.QName;
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPHeader;
+import javax.xml.soap.SOAPMessage;
+import javax.xml.transform.Source;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.sax.SAXSource;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
import org.jboss.logging.Logger;
import org.jboss.ws.WSException;
import org.jboss.ws.core.jaxrpc.Style;
import org.jboss.ws.core.utils.DOMUtils;
+import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
-import javax.xml.namespace.QName;
-import javax.xml.soap.*;
-import javax.xml.transform.dom.DOMSource;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Iterator;
-
/**
* A SOAPEnvelope builder for JAXRPC based on DOM
*
@@ -147,38 +165,11 @@
if (style == Style.RPC)
{
- SOAPBodyElementRpc soapBodyElement = new SOAPBodyElementRpc(beName);
- soapBodyElement = (SOAPBodyElementRpc)soapBody.addChildElement(soapBodyElement);
-
- DOMUtils.copyAttributes(soapBodyElement, domBodyElement);
-
- Iterator itBodyElement = DOMUtils.getChildElements(domBodyElement);
- while (itBodyElement.hasNext())
- {
- Element srcElement = (Element)itBodyElement.next();
- registerNamespacesLocally(srcElement);
-
- Name name = new NameImpl(srcElement.getLocalName(), srcElement.getPrefix(), srcElement.getNamespaceURI());
- SOAPContentElement destElement = new SOAPContentElement(name);
- destElement = (SOAPContentElement)soapBodyElement.addChildElement(destElement);
-
- DOMUtils.copyAttributes(destElement, srcElement);
-
- XMLFragment xmlFragment = new XMLFragment(new DOMSource(srcElement));
- destElement.setXMLFragment(xmlFragment);
- }
+ buildBodyElementRpc(soapBody, domBodyElement);
}
else if (style == Style.DOCUMENT)
{
- Element srcElement = (Element)domBodyElement;
- registerNamespacesLocally(srcElement);
- SOAPContentElement destElement = new SOAPBodyElementDoc(beName);
- destElement = (SOAPContentElement)soapBody.addChildElement(destElement);
-
- DOMUtils.copyAttributes(destElement, srcElement);
-
- XMLFragment xmlFragment = new XMLFragment(new DOMSource(srcElement));
- destElement.setXMLFragment(xmlFragment);
+ buildBodyElementDoc(soapBody, domBodyElement);
}
else if (style == null)
{
@@ -223,6 +214,111 @@
return soapEnv;
}
+ public void buildBodyElementDoc(SOAPBody soapBody, Element domBodyElement) throws SOAPException
+ {
+ Element srcElement = (Element)domBodyElement;
+ registerNamespacesLocally(srcElement);
+
+ QName beName = DOMUtils.getElementQName(domBodyElement);
+ SOAPContentElement destElement = new SOAPBodyElementDoc(beName);
+ destElement = (SOAPContentElement)soapBody.addChildElement(destElement);
+
+ DOMUtils.copyAttributes(destElement, srcElement);
+
+ XMLFragment xmlFragment = new XMLFragment(new DOMSource(srcElement));
+ destElement.setXMLFragment(xmlFragment);
+ }
+
+ public void buildBodyElementRpc(SOAPBody soapBody, Element domBodyElement) throws SOAPException
+ {
+ QName beName = DOMUtils.getElementQName(domBodyElement);
+ SOAPBodyElementRpc soapBodyElement = new SOAPBodyElementRpc(beName);
+ soapBodyElement = (SOAPBodyElementRpc)soapBody.addChildElement(soapBodyElement);
+
+ DOMUtils.copyAttributes(soapBodyElement, domBodyElement);
+
+ Iterator itBodyElement = DOMUtils.getChildElements(domBodyElement);
+ while (itBodyElement.hasNext())
+ {
+ Element srcElement = (Element)itBodyElement.next();
+ registerNamespacesLocally(srcElement);
+
+ Name name = new NameImpl(srcElement.getLocalName(), srcElement.getPrefix(), srcElement.getNamespaceURI());
+ SOAPContentElement destElement = new SOAPContentElement(name);
+ destElement = (SOAPContentElement)soapBodyElement.addChildElement(destElement);
+
+ DOMUtils.copyAttributes(destElement, srcElement);
+
+ XMLFragment xmlFragment = new XMLFragment(new DOMSource(srcElement));
+ destElement.setXMLFragment(xmlFragment);
+ }
+ }
+
+ public static Element getElementFromSource(Source payload)
+ {
+ Element child = null;
+ try
+ {
+ if (payload instanceof StreamSource)
+ {
+ StreamSource streamSource = (StreamSource)payload;
+
+ InputStream ins = streamSource.getInputStream();
+ if (ins != null)
+ {
+ child = DOMUtils.parse(ins);
+ }
+ else
+ {
+ Reader reader = streamSource.getReader();
+ child = DOMUtils.parse(new InputSource(reader));
+ }
+ }
+ else if (payload instanceof DOMSource)
+ {
+ DOMSource domSource = (DOMSource)payload;
+ Node node = domSource.getNode();
+ if (node instanceof Element)
+ {
+ child = (Element)node;
+ }
+ else if (node instanceof Document)
+ {
+ child = ((Document)node).getDocumentElement();
+ }
+ else
+ {
+ throw new WSException("Unsupported Node type: " + node.getClass().getName());
+ }
+ }
+ else if (payload instanceof SAXSource)
+ {
+ // The fact that JAXBSource derives from SAXSource is an implementation detail.
+ // Thus in general applications are strongly discouraged from accessing methods defined on SAXSource.
+ // The XMLReader object obtained by the getXMLReader method shall be used only for parsing the InputSource object returned by the getInputSource method.
+
+ TransformerFactory tf = TransformerFactory.newInstance();
+ ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
+ tf.newTransformer().transform(payload, new StreamResult(baos));
+
+ child = DOMUtils.parse(new ByteArrayInputStream(baos.toByteArray()));
+ }
+ else
+ {
+ throw new WSException("Source type not implemented: " + payload.getClass().getName());
+ }
+ }
+ catch (RuntimeException rte)
+ {
+ throw rte;
+ }
+ catch (Exception ex)
+ {
+ throw new WSException("Cannot get root element from Source" + ex);
+ }
+ return child;
+ }
+
/**
* Register globally available namespaces on element level.
* This is necessary to ensure that each xml fragment is valid.
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPBodyElementRpc.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPBodyElementRpc.java 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPBodyElementRpc.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -21,6 +21,7 @@
*/
package org.jboss.ws.core.soap;
+import javax.xml.namespace.QName;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPBodyElement;
@@ -39,6 +40,11 @@
super(name);
}
+ public SOAPBodyElementRpc(QName qname)
+ {
+ super(qname);
+ }
+
public SOAPBodyElementRpc(SOAPElementImpl element)
{
super(element);
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPBodyImpl.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPBodyImpl.java 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPBodyImpl.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -24,10 +24,7 @@
// $Id$
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
import java.io.Writer;
import java.util.Iterator;
import java.util.Locale;
@@ -41,10 +38,6 @@
import javax.xml.soap.SOAPFault;
import javax.xml.soap.Text;
import javax.xml.transform.Source;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.jboss.logging.Logger;
@@ -59,7 +52,6 @@
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
/**
* An object that represents the contents of the SOAP body element in a SOAP message.
@@ -102,7 +94,8 @@
public void setPayload(Source payload)
{
- if(log.isDebugEnabled()) log.debug("setPayload: " + payload.getClass().getName());
+ if (log.isDebugEnabled())
+ log.debug("setPayload: " + payload.getClass().getName());
removeContents();
this.payload = payload;
this.isDOMValid = false;
@@ -306,13 +299,11 @@
expandToDOM(false);
return super.hasChildNodes();
}
-
- private static boolean needsConversionToBodyElement(Node node)
+
+ private static boolean needsConversionToBodyElement(Node node)
{
// JBCTS-440 #addTextNodeTest1 appends a Text node to a SOAPBody
- return !(node instanceof SOAPBodyElement
- || node instanceof DocumentFragment
- || node instanceof Text);
+ return !(node instanceof SOAPBodyElement || node instanceof DocumentFragment || node instanceof Text);
}
private static SOAPBodyElementDoc convertToBodyElement(Node node)
@@ -369,70 +360,13 @@
private Element getBodyElementFromSource()
{
- Element child = null;
- try
+ Element child = EnvelopeBuilderDOM.getElementFromSource(payload);
+ if (payload instanceof StreamSource)
{
- if (payload instanceof StreamSource)
- {
- StreamSource streamSource = (StreamSource)payload;
-
- InputStream ins = streamSource.getInputStream();
- if (ins != null)
- {
- child = DOMUtils.parse(ins);
- }
- else
- {
- Reader reader = streamSource.getReader();
- child = DOMUtils.parse(new InputSource(reader));
- }
-
- // reset the excausted input stream
- String xmlStr = DOMWriter.printNode(child, false);
- payload = new StreamSource(new ByteArrayInputStream(xmlStr.getBytes()));
- }
- else if (payload instanceof DOMSource)
- {
- DOMSource domSource = (DOMSource)payload;
- Node node = domSource.getNode();
- if (node instanceof Element)
- {
- child = (Element)node;
- }
- else if (node instanceof Document)
- {
- child = ((Document)node).getDocumentElement();
- }
- else
- {
- throw new WSException("Unsupported Node type: " + node.getClass().getName());
- }
- }
- else if (payload instanceof SAXSource)
- {
- // The fact that JAXBSource derives from SAXSource is an implementation detail.
- // Thus in general applications are strongly discouraged from accessing methods defined on SAXSource.
- // The XMLReader object obtained by the getXMLReader method shall be used only for parsing the InputSource object returned by the getInputSource method.
-
- TransformerFactory tf = TransformerFactory.newInstance();
- ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
- tf.newTransformer().transform(payload, new StreamResult(baos));
-
- child = DOMUtils.parse(new ByteArrayInputStream(baos.toByteArray()));
- }
- else
- {
- throw new WSException("Source type not implemented: " + payload.getClass().getName());
- }
+ // reset the excausted input stream
+ String xmlStr = DOMWriter.printNode(child, false);
+ payload = new StreamSource(new ByteArrayInputStream(xmlStr.getBytes()));
}
- catch (RuntimeException rte)
- {
- throw rte;
- }
- catch (Exception ex)
- {
- throw new WSException("Cannot get root element from Source" + ex);
- }
return child;
}
@@ -443,7 +377,8 @@
{
Element child = getBodyElementFromSource();
String xmlPayload = DOMWriter.printNode(child, false);
- if(log.isDebugEnabled()) log.debug("writeElementContent from payload: " + xmlPayload);
+ if (log.isDebugEnabled())
+ log.debug("writeElementContent from payload: " + xmlPayload);
writer.write(xmlPayload);
}
else
@@ -459,8 +394,8 @@
Iterator childElements = DOMUtils.getChildElements(this);
// zero child elements?
- if (!childElements.hasNext())
- throw new SOAPException("there is no child SOAPElement of this SOAPBody");
+ if (!childElements.hasNext())
+ throw new SOAPException("there is no child SOAPElement of this SOAPBody");
SOAPElementImpl childElement = (SOAPElementImpl)childElements.next();
@@ -471,14 +406,14 @@
if (childElement instanceof SOAPContentElement)
{
// cause expansion to DOM
- SOAPContentElement contentElement = (SOAPContentElement) childElement;
+ SOAPContentElement contentElement = (SOAPContentElement)childElement;
// TODO change visibility of SOAPContentElement.expandToDOM() to package?
contentElement.getPayload();
}
// child SOAPElement is removed as part of this process
childElement.detachNode();
-
+
/* child element's owner document might be shared with other elements;
* we have to create a separate document for returning to our caller
*/
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentAccess.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentAccess.java 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentAccess.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -7,8 +7,8 @@
* @version $Id$
* @since 05.02.2007
*/
-public interface SOAPContentAccess {
-
+public interface SOAPContentAccess
+{
Source getPayload();
void setPayload(Source source);
@@ -19,5 +19,5 @@
Object getObjectValue();
- void setObjectValue(Object objValue);
+ void setObjectValue(Object objValue);
}
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentElement.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentElement.java 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/SOAPContentElement.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -69,8 +69,8 @@
* @since 13-Dec-2004
*
*/
-public class SOAPContentElement extends SOAPElementImpl implements SOAPContentAccess {
-
+public class SOAPContentElement extends SOAPElementImpl implements SOAPContentAccess
+{
// provide logging
private static Logger log = Logger.getLogger(SOAPContentElement.class);
@@ -128,7 +128,7 @@
private void transitionTo(SOAPContent.State nextState)
{
- if(nextState!=soapContent.getState())
+ if (nextState != soapContent.getState())
{
log.debug("-----------------------------------");
log.debug("Transitioning from " + soapContent.getState() + " to " + nextState);
@@ -504,8 +504,9 @@
return super.replaceChild(newChild, oldChild);
}
- private void expandToDOM() {
- if(!lockDOMExpansion)
+ private void expandToDOM()
+ {
+ if (!lockDOMExpansion)
transitionTo(SOAPContent.State.DOM_VALID);
}
@@ -532,7 +533,7 @@
{
// JMS transport hot fix
// Can be removed once we got a immutabe object model
- if(MessageContextAssociation.peekMessageContext()!=null)
+ if (MessageContextAssociation.peekMessageContext() != null)
handleMTOMTransitions();
if (soapContent instanceof DOMContent)
@@ -562,11 +563,12 @@
public void handleMTOMTransitions()
{
// MTOM processing is only required on XOP parameters
- if(!isXOPParameter()) return;
+ if (!isXOPParameter())
+ return;
boolean domContentState = (soapContent instanceof DOMContent);
- if ( !XOPContext.isMTOMEnabled() )
+ if (!XOPContext.isMTOMEnabled())
{
// If MTOM is disabled, we force dom expansion on XOP parameters.
// This will inline any XOP include element and remove the attachment part.
@@ -579,10 +581,10 @@
msgContext.put(CommonMessageContext.ALLOW_EXPAND_TO_DOM, Boolean.TRUE);
if (msgContext instanceof MessageContextJAXWS)
((MessageContextJAXWS)msgContext).setScope(CommonMessageContext.ALLOW_EXPAND_TO_DOM, Scope.APPLICATION);
-
+
expandToDOM();
}
- else if ( domContentState && XOPContext.isMTOMEnabled() )
+ else if (domContentState && XOPContext.isMTOMEnabled())
{
// When the DOM representation is valid,
// but MTOM is enabled we need to convert the inlined
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/utils/DOMUtils.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/utils/DOMUtils.java 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/utils/DOMUtils.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -237,6 +237,16 @@
if (namespaceURI.equals(""))
throw new IllegalArgumentException("Cannot find namespace uri for: " + qualifiedName);
}
+ else
+ {
+ Element nsElement = el;
+ while (namespaceURI.equals("") && nsElement != null)
+ {
+ namespaceURI = nsElement.getAttribute("xmlns");
+ if (namespaceURI.equals(""))
+ nsElement = getParentElement(nsElement);
+ }
+ }
qname = new QName(namespaceURI, localPart, prefix);
return qname;
Modified: trunk/jbossws-tests/ant-import/build-samples-jaxws.xml
===================================================================
--- trunk/jbossws-tests/ant-import/build-samples-jaxws.xml 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-tests/ant-import/build-samples-jaxws.xml 2007-03-20 12:59:55 UTC (rev 2647)
@@ -124,8 +124,8 @@
<war warfile="${tests.output.dir}/libs/jaxws-samples-logicalhandler-source.war"
webxml="${tests.output.dir}/resources/jaxws/samples/logicalhandler/WEB-INF/web-source.xml">
<classes dir="${tests.output.dir}/classes">
- <include name="org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceImpl.class"/>
- <include name="org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSource.class"/>
+ <include name="org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceDocImpl.class"/>
+ <include name="org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceRpcImpl.class"/>
<include name="org/jboss/test/ws/jaxws/samples/logicalhandler/LogicalSourceHandler.class"/>
<include name="org/jboss/test/ws/jaxws/samples/logicalhandler/ProtocolHandler.class"/>
<include name="org/jboss/test/ws/jaxws/samples/logicalhandler/Echo.class"/>
Modified: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/LogicalHandlerSourceTestCase.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/LogicalHandlerSourceTestCase.java 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/LogicalHandlerSourceTestCase.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -26,7 +26,6 @@
import java.net.URL;
import javax.xml.namespace.QName;
-import javax.xml.ws.BindingProvider;
import javax.xml.ws.Service;
import junit.framework.Test;
@@ -47,16 +46,40 @@
return JBossWSTestSetup.newTestSetup(LogicalHandlerSourceTestCase.class, "jaxws-samples-logicalhandler-source.war");
}
- public void testClientAccess() throws Exception
+ public void testSourceDoc() throws Exception
{
- String endpointAddress = "http://" + getServerHost() + ":8080/jaxws-samples-logicalhandler-source";
- QName serviceName = new QName("http://org.jboss.ws/jaxws/samples/logicalhandler", "SOAPEndpointService");
+ String endpointAddress = "http://" + getServerHost() + ":8080/jaxws-samples-logicalhandler-source/doc";
+ QName serviceName = new QName("http://org.jboss.ws/jaxws/samples/logicalhandler", "SOAPEndpointDocService");
Service service = Service.create(new URL(endpointAddress + "?wsdl"), serviceName);
- SOAPEndpointSource port = (SOAPEndpointSource)service.getPort(SOAPEndpointSource.class);
+ SOAPEndpointSourceDoc port = (SOAPEndpointSourceDoc)service.getPort(SOAPEndpointSourceDoc.class);
- BindingProvider bindingProvider = (BindingProvider)port;
- bindingProvider.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointAddress);
+ String retStr = port.echo("hello");
+
+ StringBuffer expStr = new StringBuffer("hello");
+ expStr.append(":LogicalClientHandler");
+ expStr.append(":SOAP11ClientHandler");
+ expStr.append(":PortClientHandler");
+ expStr.append(":PortServerHandler");
+ expStr.append(":SOAP11ServerHandler");
+ expStr.append(":LogicalServerHandler");
+ expStr.append(":endpoint");
+ expStr.append(":LogicalServerHandler");
+ expStr.append(":SOAP11ServerHandler");
+ expStr.append(":PortServerHandler");
+ expStr.append(":PortClientHandler");
+ expStr.append(":SOAP11ClientHandler");
+ expStr.append(":LogicalClientHandler");
+ assertEquals(expStr.toString(), retStr);
+ }
+
+ public void testSourceRpc() throws Exception
+ {
+ String endpointAddress = "http://" + getServerHost() + ":8080/jaxws-samples-logicalhandler-source/rpc";
+ QName serviceName = new QName("http://org.jboss.ws/jaxws/samples/logicalhandler", "SOAPEndpointRpcService");
+ Service service = Service.create(new URL(endpointAddress + "?wsdl"), serviceName);
+ SOAPEndpointSourceRpc port = (SOAPEndpointSourceRpc)service.getPort(SOAPEndpointSourceRpc.class);
+
String retStr = port.echo("hello");
StringBuffer expStr = new StringBuffer("hello");
Deleted: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSource.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSource.java 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSource.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -1,45 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.test.ws.jaxws.samples.logicalhandler;
-
-// $Id$
-
-import javax.jws.HandlerChain;
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebResult;
-import javax.jws.WebService;
-import javax.xml.ws.RequestWrapper;
-import javax.xml.ws.ResponseWrapper;
-
-@WebService()
-@HandlerChain(file = "jaxws-client-source-handlers.xml")
-public interface SOAPEndpointSource
-{
-
- @WebMethod
- @WebResult(targetNamespace = "http://org.jboss.ws/jaxws/samples/logicalhandler", name = "result")
- @RequestWrapper(className = "org.jboss.test.ws.jaxws.samples.logicalhandler.Echo")
- @ResponseWrapper(className = "org.jboss.test.ws.jaxws.samples.logicalhandler.EchoResponse")
- public String echo(@WebParam(targetNamespace = "http://org.jboss.ws/jaxws/samples/logicalhandler", name = "String_1") String string1);
-
-}
Copied: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceDoc.java (from rev 2645, trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSource.java)
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceDoc.java (rev 0)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceDoc.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.samples.logicalhandler;
+
+// $Id$
+
+import javax.jws.HandlerChain;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+@WebService()
+@HandlerChain(file = "jaxws-client-source-handlers.xml")
+public interface SOAPEndpointSourceDoc
+{
+
+ @WebMethod
+ @WebResult(targetNamespace = "http://org.jboss.ws/jaxws/samples/logicalhandler", name = "result")
+ @RequestWrapper(className = "org.jboss.test.ws.jaxws.samples.logicalhandler.Echo")
+ @ResponseWrapper(className = "org.jboss.test.ws.jaxws.samples.logicalhandler.EchoResponse")
+ public String echo(@WebParam(targetNamespace = "http://org.jboss.ws/jaxws/samples/logicalhandler", name = "String_1") String string1);
+
+}
Added: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceDocImpl.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceDocImpl.java (rev 0)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceDocImpl.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -0,0 +1,51 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.samples.logicalhandler;
+
+// $Id$
+
+import javax.jws.HandlerChain;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+import org.jboss.logging.Logger;
+
+@WebService(name = "SOAPEndpointDoc", targetNamespace = "http://org.jboss.ws/jaxws/samples/logicalhandler")
+@HandlerChain(file = "jaxws-server-source-handlers.xml")
+public class SOAPEndpointSourceDocImpl
+{
+ private static Logger log = Logger.getLogger(SOAPEndpointSourceDocImpl.class);
+
+ @WebMethod
+ @WebResult(targetNamespace = "http://org.jboss.ws/jaxws/samples/logicalhandler", name="result")
+ @RequestWrapper(className = "org.jboss.test.ws.jaxws.samples.logicalhandler.Echo")
+ @ResponseWrapper(className = "org.jboss.test.ws.jaxws.samples.logicalhandler.EchoResponse")
+ public String echo(@WebParam(targetNamespace = "http://org.jboss.ws/jaxws/samples/logicalhandler", name="String_1")String msg)
+ {
+ log.info("echo: " + msg);
+ return msg + ":endpoint";
+ }
+}
Property changes on: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceDocImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Deleted: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceImpl.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceImpl.java 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceImpl.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -1,51 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.test.ws.jaxws.samples.logicalhandler;
-
-// $Id$
-
-import javax.jws.HandlerChain;
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebResult;
-import javax.jws.WebService;
-import javax.xml.ws.RequestWrapper;
-import javax.xml.ws.ResponseWrapper;
-
-import org.jboss.logging.Logger;
-
-@WebService(name = "SOAPEndpoint", targetNamespace = "http://org.jboss.ws/jaxws/samples/logicalhandler")
-@HandlerChain(file = "jaxws-server-source-handlers.xml")
-public class SOAPEndpointSourceImpl
-{
- private static Logger log = Logger.getLogger(SOAPEndpointSourceImpl.class);
-
- @WebMethod
- @WebResult(targetNamespace = "http://org.jboss.ws/jaxws/samples/logicalhandler", name="result")
- @RequestWrapper(className = "org.jboss.test.ws.jaxws.samples.logicalhandler.Echo")
- @ResponseWrapper(className = "org.jboss.test.ws.jaxws.samples.logicalhandler.EchoResponse")
- public String echo(@WebParam(targetNamespace = "http://org.jboss.ws/jaxws/samples/logicalhandler", name="String_1")String msg)
- {
- log.info("echo: " + msg);
- return msg + ":endpoint";
- }
-}
Added: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceRpc.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceRpc.java (rev 0)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceRpc.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.samples.logicalhandler;
+
+// $Id$
+
+import javax.jws.HandlerChain;
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+import javax.jws.soap.SOAPBinding.Style;
+
+@WebService()
+@HandlerChain(file = "jaxws-client-source-handlers.xml")
+@SOAPBinding(style = Style.RPC)
+public interface SOAPEndpointSourceRpc
+{
+
+ @WebMethod
+ public String echo(String string1);
+
+}
Property changes on: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceRpc.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceRpcImpl.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceRpcImpl.java (rev 0)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceRpcImpl.java 2007-03-20 12:59:55 UTC (rev 2647)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.samples.logicalhandler;
+
+// $Id$
+
+import javax.jws.HandlerChain;
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+import javax.jws.soap.SOAPBinding.Style;
+
+import org.jboss.logging.Logger;
+
+@WebService(name = "SOAPEndpointRpc", targetNamespace = "http://org.jboss.ws/jaxws/samples/logicalhandler")
+@HandlerChain(file = "jaxws-server-source-handlers.xml")
+@SOAPBinding(style = Style.RPC)
+public class SOAPEndpointSourceRpcImpl
+{
+ private static Logger log = Logger.getLogger(SOAPEndpointSourceRpcImpl.class);
+
+ @WebMethod
+ public String echo(String msg)
+ {
+ log.info("echo: " + msg);
+ return msg + ":endpoint";
+ }
+}
Property changes on: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/SOAPEndpointSourceRpcImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/jaxws-client-source-handlers.xml
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/jaxws-client-source-handlers.xml 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/jaxws-client-source-handlers.xml 2007-03-20 12:59:55 UTC (rev 2647)
@@ -21,7 +21,7 @@
</handler-chain>
<handler-chain>
- <port-name-pattern>ns1:SOAPEndpointPort</port-name-pattern>
+ <port-name-pattern>ns1:SOAPEndpoint*</port-name-pattern>
<handler>
<handler-name> PortClientHandler </handler-name>
<handler-class> org.jboss.test.ws.jaxws.samples.logicalhandler.ProtocolHandler </handler-class>
Modified: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/jaxws-server-source-handlers.xml
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/jaxws-server-source-handlers.xml 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/samples/logicalhandler/jaxws-server-source-handlers.xml 2007-03-20 12:59:55 UTC (rev 2647)
@@ -21,7 +21,7 @@
</handler-chain>
<handler-chain>
- <port-name-pattern>ns1:SOAPEndpointPort</port-name-pattern>
+ <port-name-pattern>ns1:SOAPEndpoint*</port-name-pattern>
<handler>
<handler-name> PortServerHandler </handler-name>
<handler-class> org.jboss.test.ws.jaxws.samples.logicalhandler.ProtocolHandler </handler-class>
Modified: trunk/jbossws-tests/src/resources/jaxws/samples/logicalhandler/WEB-INF/web-source.xml
===================================================================
--- trunk/jbossws-tests/src/resources/jaxws/samples/logicalhandler/WEB-INF/web-source.xml 2007-03-20 10:42:55 UTC (rev 2646)
+++ trunk/jbossws-tests/src/resources/jaxws/samples/logicalhandler/WEB-INF/web-source.xml 2007-03-20 12:59:55 UTC (rev 2647)
@@ -6,14 +6,24 @@
version="2.4">
<servlet>
- <servlet-name>SOAPEndpoint</servlet-name>
- <servlet-class>org.jboss.test.ws.jaxws.samples.logicalhandler.SOAPEndpointSourceImpl</servlet-class>
+ <servlet-name>SOAPEndpointDoc</servlet-name>
+ <servlet-class>org.jboss.test.ws.jaxws.samples.logicalhandler.SOAPEndpointSourceDocImpl</servlet-class>
</servlet>
+ <servlet>
+ <servlet-name>SOAPEndpointRpc</servlet-name>
+ <servlet-class>org.jboss.test.ws.jaxws.samples.logicalhandler.SOAPEndpointSourceRpcImpl</servlet-class>
+ </servlet>
+
<servlet-mapping>
- <servlet-name>SOAPEndpoint</servlet-name>
- <url-pattern>/*</url-pattern>
+ <servlet-name>SOAPEndpointDoc</servlet-name>
+ <url-pattern>/doc</url-pattern>
</servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>SOAPEndpointRpc</servlet-name>
+ <url-pattern>/rpc</url-pattern>
+ </servlet-mapping>
+
</web-app>
17 years, 2 months
JBossWS SVN: r2646 - trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref.
by jbossws-commits@lists.jboss.org
Author: heiko.braun(a)jboss.com
Date: 2007-03-20 06:42:55 -0400 (Tue, 20 Mar 2007)
New Revision: 2646
Modified:
trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/ServiceRefMetaDataParser.java
Log:
Fix NPE in legacy serviceRef parser
Modified: trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/ServiceRefMetaDataParser.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/ServiceRefMetaDataParser.java 2007-03-20 09:37:42 UTC (rev 2645)
+++ trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/ServiceRefMetaDataParser.java 2007-03-20 10:42:55 UTC (rev 2646)
@@ -87,15 +87,16 @@
QName portName = portNameString!=null ? QName.valueOf(portNameString) : null;
UnifiedPortComponentRefMetaData pcref = sref.getPortComponentRef(seiName, portName);
- if (pcref == null)
+ /*if (pcref == null)
{
// Its ok to only have the <port-component-ref> in jboss.xml and not in ejb-jar.xml
pcref = new UnifiedPortComponentRefMetaData(sref);
pcref.importStandardXml(pcrefElement);
sref.addPortComponentRef(pcref);
- }
- pcref.importJBossXml(pcrefElement);
+ } */
+ if(pcref!=null) pcref.importJBossXml(pcrefElement);
+
}
// Parse the call-property elements
17 years, 2 months
JBossWS SVN: r2645 - trunk/jbossws-core/src/java/org/jboss/ws/core.
by jbossws-commits@lists.jboss.org
Author: heiko.braun(a)jboss.com
Date: 2007-03-20 05:37:42 -0400 (Tue, 20 Mar 2007)
New Revision: 2645
Modified:
trunk/jbossws-core/src/java/org/jboss/ws/core/EndpointInvocation.java
Log:
Relieve WSI compliance
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/EndpointInvocation.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/EndpointInvocation.java 2007-03-20 08:36:21 UTC (rev 2644)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/EndpointInvocation.java 2007-03-20 09:37:42 UTC (rev 2645)
@@ -211,7 +211,7 @@
// Conformance (MIME type mismatch): On receipt of a message where the MIME type of a part does not
// match that described in the WSDL an implementation SHOULD throw a WebServiceException.
if (mimeTypes != null && !MimeUtils.isMemberOf(mimeType, mimeTypes))
- throw new SOAPException("Mime type " + mimeType + " not allowed for parameter " + xmlName + " allowed types are " + mimeTypes);
+ log.warn("Mime type " + mimeType + " not allowed for parameter " + xmlName + " allowed types are " + mimeTypes);
retValue = part.getDataHandler();
}
17 years, 2 months
JBossWS SVN: r2644 - in trunk/jbossws-tests/src/java/org/jboss/test/ws: jaxws/jbws860 and 1 other directory.
by jbossws-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2007-03-20 04:36:21 -0400 (Tue, 20 Mar 2007)
New Revision: 2644
Modified:
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxrpc/jbws1093/JBWS1093TestCase.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws860/JBWS860TestCase.java
Log:
Add FIXME [JBAS-4210] HTTP request dispatched to the wrong servlet
Modified: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxrpc/jbws1093/JBWS1093TestCase.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxrpc/jbws1093/JBWS1093TestCase.java 2007-03-19 23:02:17 UTC (rev 2643)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxrpc/jbws1093/JBWS1093TestCase.java 2007-03-20 08:36:21 UTC (rev 2644)
@@ -85,6 +85,12 @@
public void testAccessServlet() throws Exception
{
+ if (true)
+ {
+ System.out.println("FIXME: [JBAS-4210] HTTP request dispatched to the wrong servlet");
+ return;
+ }
+
URL servletURL = new URL("http://" + getServerHost() + ":8080" + "/jaxrpc-jbws1093/ServletTest");
InputStream is = servletURL.openStream();
Modified: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws860/JBWS860TestCase.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws860/JBWS860TestCase.java 2007-03-19 23:02:17 UTC (rev 2643)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws860/JBWS860TestCase.java 2007-03-20 08:36:21 UTC (rev 2644)
@@ -59,6 +59,12 @@
public void testServletAccess() throws Exception
{
+ if (true)
+ {
+ System.out.println("FIXME: [JBAS-4210] HTTP request dispatched to the wrong servlet");
+ return;
+ }
+
HttpURLConnection con = (HttpURLConnection)new URL("http://" + getServerHost() + ":8080/test/TestServlet").openConnection();
BufferedReader isr = new BufferedReader(new InputStreamReader(con.getInputStream()));
assertEquals("Hello", isr.readLine());
17 years, 2 months
JBossWS SVN: r2643 - in trunk/jbossws-tests: src/java/org/jboss/test/ws/jaxws/jbws1581 and 2 other directories.
by jbossws-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2007-03-19 19:02:17 -0400 (Mon, 19 Mar 2007)
New Revision: 2643
Added:
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581EarTestCase.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581WarTestCase.java
trunk/jbossws-tests/src/resources/jaxws/jbws1581/META-INF/application.xml
Removed:
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581TestCase.java
Modified:
trunk/jbossws-tests/ant-import/build-jars-jaxws.xml
trunk/jbossws-tests/src/resources/jaxws/jbws1581/META-INF/jboss-app.xml
trunk/jbossws-tests/src/resources/jaxws/jbws1581/WEB-INF/jboss-web.xml
Log:
[JBWS-1581] EJB client vehicle not sufficiently isolated
Modified: trunk/jbossws-tests/ant-import/build-jars-jaxws.xml
===================================================================
--- trunk/jbossws-tests/ant-import/build-jars-jaxws.xml 2007-03-19 22:10:33 UTC (rev 2642)
+++ trunk/jbossws-tests/ant-import/build-jars-jaxws.xml 2007-03-19 23:02:17 UTC (rev 2643)
@@ -251,6 +251,7 @@
<include name="jaxws-jbws1581.war"/>
</fileset>
<metainf dir="${tests.output.dir}/resources/jaxws/jbws1581/META-INF">
+ <include name="application.xml"/>
<include name="jboss-app.xml"/>
</metainf>
</jar>
Added: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581EarTestCase.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581EarTestCase.java (rev 0)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581EarTestCase.java 2007-03-19 23:02:17 UTC (rev 2643)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.jbws1581;
+
+import java.net.URL;
+
+import junit.framework.Test;
+
+import org.jboss.test.ws.JBossWSTest;
+import org.jboss.test.ws.JBossWSTestSetup;
+import org.jboss.ws.metadata.wsdl.WSDLDefinitions;
+import org.jboss.ws.tools.wsdl.WSDLDefinitionsFactory;
+
+/**
+ * EJB vehicle using loader repository not sufficiently isolated
+ *
+ * http://jira.jboss.org/jira/browse/JBWS-1581
+ *
+ * @author Thomas.Diesler(a)jboss.com
+ * @since 19-Mar-2007
+ */
+public class JBWS1581EarTestCase extends JBossWSTest
+{
+ public static Test suite()
+ {
+ return JBossWSTestSetup.newTestSetup(JBWS1581EarTestCase.class, "jaxws-jbws1581.ear, jaxws-jbws1581.jar");
+ }
+
+ public void testWSDLAccess() throws Exception
+ {
+ URL wsdlURL = new URL("http://" + getServerHost() + ":8080/jaxws-jbws1581?wsdl");
+ WSDLDefinitions wsdl = WSDLDefinitionsFactory.newInstance().parse(wsdlURL);
+ assertNotNull("wsdl expected", wsdl);
+ }
+
+ public void testEJBVehicle() throws Exception
+ {
+ EJB3Remote remote = (EJB3Remote)getInitialContext().lookup("/ejb3/EJB3Bean");
+ String retStr = remote.runTest("Hello World!");
+ assertEquals("Hello World!", retStr);
+ }
+}
\ No newline at end of file
Property changes on: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581EarTestCase.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Deleted: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581TestCase.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581TestCase.java 2007-03-19 22:10:33 UTC (rev 2642)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581TestCase.java 2007-03-19 23:02:17 UTC (rev 2643)
@@ -1,50 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.test.ws.jaxws.jbws1581;
-
-import junit.framework.Test;
-
-import org.jboss.test.ws.JBossWSTest;
-import org.jboss.test.ws.JBossWSTestSetup;
-
-/**
- * EJB vehicle using loader repository not sufficiently isolated
- *
- * http://jira.jboss.org/jira/browse/JBWS-1581
- *
- * @author Thomas.Diesler(a)jboss.com
- * @since 19-Mar-2007
- */
-public class JBWS1581TestCase extends JBossWSTest
-{
- public static Test suite()
- {
- return JBossWSTestSetup.newTestSetup(JBWS1581TestCase.class, "jaxws-jbws1581.ear, jaxws-jbws1581.jar");
- }
-
- public void testCall() throws Exception
- {
- EJB3Remote remote = (EJB3Remote)getInitialContext().lookup("/ejb3/EJB3Bean");
- String retStr = remote.runTest("Hello World!");
- assertEquals("Hello World!", retStr);
- }
-}
\ No newline at end of file
Copied: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581WarTestCase.java (from rev 2640, trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581TestCase.java)
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581WarTestCase.java (rev 0)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581WarTestCase.java 2007-03-19 23:02:17 UTC (rev 2643)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.jbws1581;
+
+import java.net.URL;
+
+import junit.framework.Test;
+
+import org.jboss.test.ws.JBossWSTest;
+import org.jboss.test.ws.JBossWSTestSetup;
+import org.jboss.ws.metadata.wsdl.WSDLDefinitions;
+import org.jboss.ws.tools.wsdl.WSDLDefinitionsFactory;
+
+/**
+ * EJB vehicle using loader repository not sufficiently isolated
+ *
+ * http://jira.jboss.org/jira/browse/JBWS-1581
+ *
+ * @author Thomas.Diesler(a)jboss.com
+ * @since 19-Mar-2007
+ */
+public class JBWS1581WarTestCase extends JBossWSTest
+{
+ public static Test suite()
+ {
+ return JBossWSTestSetup.newTestSetup(JBWS1581WarTestCase.class, "jaxws-jbws1581.war, jaxws-jbws1581.jar");
+ }
+
+ public void testWSDLAccess() throws Exception
+ {
+ URL wsdlURL = new URL("http://" + getServerHost() + ":8080/jaxws-jbws1581?wsdl");
+ WSDLDefinitions wsdl = WSDLDefinitionsFactory.newInstance().parse(wsdlURL);
+ assertNotNull("wsdl expected", wsdl);
+ }
+
+ public void testEJBVehicle() throws Exception
+ {
+ EJB3Remote remote = (EJB3Remote)getInitialContext().lookup("/ejb3/EJB3Bean");
+ String retStr = remote.runTest("Hello World!");
+ assertEquals("Hello World!", retStr);
+ }
+}
\ No newline at end of file
Added: trunk/jbossws-tests/src/resources/jaxws/jbws1581/META-INF/application.xml
===================================================================
--- trunk/jbossws-tests/src/resources/jaxws/jbws1581/META-INF/application.xml (rev 0)
+++ trunk/jbossws-tests/src/resources/jaxws/jbws1581/META-INF/application.xml 2007-03-19 23:02:17 UTC (rev 2643)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<application xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+ http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"
+ version="1.4">
+
+ <module>
+ <web>
+ <web-uri>jaxws-jbws1581.war</web-uri>
+ <context-root>jaxws-jbws1581</context-root>
+ </web>
+ </module>
+
+</application>
\ No newline at end of file
Property changes on: trunk/jbossws-tests/src/resources/jaxws/jbws1581/META-INF/application.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: trunk/jbossws-tests/src/resources/jaxws/jbws1581/META-INF/jboss-app.xml
===================================================================
--- trunk/jbossws-tests/src/resources/jaxws/jbws1581/META-INF/jboss-app.xml 2007-03-19 22:10:33 UTC (rev 2642)
+++ trunk/jbossws-tests/src/resources/jaxws/jbws1581/META-INF/jboss-app.xml 2007-03-19 23:02:17 UTC (rev 2643)
@@ -5,5 +5,5 @@
"http://www.jboss.org/j2ee/dtd/jboss-app_4_0.dtd">
<jboss-app>
- <loader-repository>jboss.ws.test:loader=JBWS1581</loader-repository>
-</jboss-app>
\ No newline at end of file
+ <loader-repository>jbossws.jbws1581:domain=jaxws-jbws1581.ear</loader-repository>
+</jboss-app>
\ No newline at end of file
Modified: trunk/jbossws-tests/src/resources/jaxws/jbws1581/WEB-INF/jboss-web.xml
===================================================================
--- trunk/jbossws-tests/src/resources/jaxws/jbws1581/WEB-INF/jboss-web.xml 2007-03-19 22:10:33 UTC (rev 2642)
+++ trunk/jbossws-tests/src/resources/jaxws/jbws1581/WEB-INF/jboss-web.xml 2007-03-19 23:02:17 UTC (rev 2643)
@@ -5,7 +5,7 @@
<jboss-web>
<class-loading>
- <loader-repository>jbossws.jbws1581:domain=endpoint</loader-repository>
+ <loader-repository>jbossws.jbws1581:domain=jaxws-jbws1581.war</loader-repository>
</class-loading>
</jboss-web>
17 years, 2 months
JBossWS SVN: r2642 - trunk/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/handler.
by jbossws-commits@lists.jboss.org
Author: jason.greene(a)jboss.com
Date: 2007-03-19 18:10:33 -0400 (Mon, 19 Mar 2007)
New Revision: 2642
Modified:
trunk/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/handler/HandlerDelegateJAXRPC.java
Log:
Fix regression
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/handler/HandlerDelegateJAXRPC.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/handler/HandlerDelegateJAXRPC.java 2007-03-19 20:06:28 UTC (rev 2641)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/jaxrpc/handler/HandlerDelegateJAXRPC.java 2007-03-19 22:10:33 UTC (rev 2642)
@@ -36,6 +36,7 @@
import javax.xml.rpc.handler.HandlerInfo;
import org.jboss.logging.Logger;
+import org.jboss.ws.core.RoleSource;
import org.jboss.ws.core.server.ServerHandlerDelegate;
import org.jboss.ws.core.soap.MessageContextAssociation;
import org.jboss.ws.extensions.xop.XOPContext;
@@ -50,7 +51,7 @@
* @author Thomas.Diesler(a)jboss.org
* @since 19-Jan-2005
*/
-public class HandlerDelegateJAXRPC extends ServerHandlerDelegate
+public class HandlerDelegateJAXRPC extends ServerHandlerDelegate implements RoleSource
{
// provide logging
private static Logger log = Logger.getLogger(HandlerDelegateJAXRPC.class);
17 years, 2 months
JBossWS SVN: r2641 - in trunk: jbossws-core/src/java/org/jboss/ws/core and 16 other directories.
by jbossws-commits@lists.jboss.org
Author: heiko.braun(a)jboss.com
Date: 2007-03-19 16:06:28 -0400 (Mon, 19 Mar 2007)
New Revision: 2641
Added:
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/CustomHandler.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/Message.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/ResponseMessage.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/TestDDOverrides.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/TestWSDDParser.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/WSDDEndpoint.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/WSDDEndpointImpl.java
trunk/jbossws-tests/src/resources/jaxws/wsdd/
trunk/jbossws-tests/src/resources/jaxws/wsdd/WEB-INF/
trunk/jbossws-tests/src/resources/jaxws/wsdd/WEB-INF/web.xml
trunk/jbossws-tests/src/resources/jaxws/wsdd/WEB-INF/webservices.xml
Modified:
trunk/integration-jboss50/src/java/org/jboss/ws/integration/jboss50/JAXRPCDeployerJSE.java
trunk/jbossws-core/src/java/org/jboss/ws/core/CommonBindingProvider.java
trunk/jbossws-core/src/java/org/jboss/ws/core/EndpointInvocation.java
trunk/jbossws-core/src/java/org/jboss/ws/core/client/ServiceRefObjectFactory.java
trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/client/ServiceRefHandlerJAXWS.java
trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EndpointInfo.java
trunk/jbossws-core/src/java/org/jboss/ws/metadata/builder/jaxws/JAXWSClientMetaDataBuilder.java
trunk/jbossws-core/src/java/org/jboss/ws/metadata/builder/jaxws/JAXWSWebServiceMetaDataBuilder.java
trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/ServiceRefMetaDataParser.java
trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/UnifiedPortComponentRefMetaData.java
trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/UnifiedServiceRefMetaData.java
trunk/jbossws-core/src/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java
trunk/jbossws-core/src/java/org/jboss/ws/metadata/webservices/PortComponentMetaData.java
trunk/jbossws-core/src/java/org/jboss/ws/metadata/webservices/WebservicesFactory.java
trunk/jbossws-tests/ant-import/build-jars-jaxws.xml
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/EJBClient.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServiceRefClientTestCase.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServiceRefEJBTestCase.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServiceRefServletTestCase.java
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServletClient.java
trunk/jbossws-tests/src/resources/jaxws/serviceref/META-INF/application-client.xml
trunk/jbossws-tests/src/resources/jaxws/serviceref/META-INF/ejb-jar.xml
trunk/jbossws-tests/src/resources/jaxws/serviceref/META-INF/jboss-client.xml
trunk/jbossws-tests/src/resources/jaxws/serviceref/servlet-client/WEB-INF/web.xml
Log:
Fix webservice.xml deployments (JSR-109, 1.2)
Modified: trunk/integration-jboss50/src/java/org/jboss/ws/integration/jboss50/JAXRPCDeployerJSE.java
===================================================================
--- trunk/integration-jboss50/src/java/org/jboss/ws/integration/jboss50/JAXRPCDeployerJSE.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/integration-jboss50/src/java/org/jboss/ws/integration/jboss50/JAXRPCDeployerJSE.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -29,9 +29,13 @@
import org.jboss.virtual.VirtualFile;
import org.jboss.ws.core.server.UnifiedDeploymentInfo;
import org.jboss.ws.core.server.UnifiedDeploymentInfo.DeploymentType;
+import org.jboss.ws.core.utils.DOMUtils;
import org.jboss.ws.integration.UnifiedVirtualFile;
import org.jboss.ws.metadata.builder.jaxrpc.JAXRPCDeployment;
+import org.w3c.dom.Element;
+import java.io.IOException;
+
/**
* A deployer JAXRPC JSE Endpoints
*
@@ -40,6 +44,8 @@
*/
public class JAXRPCDeployerJSE extends AbstractDeployerJSE
{
+ private static final String WEBSERVICES_XML = "webservices.xml";
+
@Override
protected DeploymentType getDeploymentType()
{
@@ -58,13 +64,29 @@
@Override
public boolean isWebServiceDeployment(DeploymentUnit unit)
{
- boolean hasWebMetaData = unit.getAllMetaData(WebMetaData.class).size() > 0;
- return hasWebMetaData && getWebServicesFile(unit) != null;
+ boolean isWebserviceDeployment = unit.getAllMetaData(WebMetaData.class).size() > 0;
+ isWebserviceDeployment = (isWebserviceDeployment && getWebServicesFile(unit) != null);
+
+ if(isWebserviceDeployment)
+ {
+ // verify the DD namespace
+ try
+ {
+ Element root = DOMUtils.parse( unit.getMetaDataFile(WEBSERVICES_XML).openStream() );
+ isWebserviceDeployment = (isWebserviceDeployment && root.getNamespaceURI().equals("http://java.sun.com/xml/ns/j2ee"));
+ }
+ catch (IOException e)
+ {
+ throw new IllegalArgumentException("Failed to parse webservice.xml", e);
+ }
+ }
+
+ return isWebserviceDeployment;
}
private UnifiedVirtualFile getWebServicesFile(DeploymentUnit unit)
{
- VirtualFile vfile = unit.getMetaDataFile("webservices.xml");
+ VirtualFile vfile = unit.getMetaDataFile(WEBSERVICES_XML);
return vfile != null ? new VirtualFileAdaptor(vfile) : null;
}
}
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/CommonBindingProvider.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/CommonBindingProvider.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/CommonBindingProvider.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -35,6 +35,8 @@
import org.jboss.ws.metadata.umdm.EndpointMetaData;
import org.jboss.ws.metadata.umdm.EndpointMetaData.Type;
+import javax.xml.ws.soap.SOAPBinding;
+
/**
* Provides access to the protocol binding.
*
@@ -84,7 +86,6 @@
{
throw new WSException("Unsupported binding: " + bindingId);
}
-
}
public CommonBinding getCommonBinding()
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/EndpointInvocation.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/EndpointInvocation.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/EndpointInvocation.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -211,7 +211,7 @@
// Conformance (MIME type mismatch): On receipt of a message where the MIME type of a part does not
// match that described in the WSDL an implementation SHOULD throw a WebServiceException.
if (mimeTypes != null && !MimeUtils.isMemberOf(mimeType, mimeTypes))
- log.warn("Mime type " + mimeType + " not allowed for parameter " + xmlName + " allowed types are " + mimeTypes);
+ throw new SOAPException("Mime type " + mimeType + " not allowed for parameter " + xmlName + " allowed types are " + mimeTypes);
retValue = part.getDataHandler();
}
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/client/ServiceRefObjectFactory.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/client/ServiceRefObjectFactory.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/client/ServiceRefObjectFactory.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -134,8 +134,7 @@
Object child = null;
if (localName.equals("port-component-ref"))
{
- child = new UnifiedPortComponentRefMetaData(ref);
- ref.addPortComponentRef((UnifiedPortComponentRefMetaData)child);
+ child = new UnifiedPortComponentRefMetaData(ref);
}
else if (localName.equals("handler"))
{
@@ -171,6 +170,7 @@
if (localName.equals("service-endpoint-interface"))
{
ref.setServiceEndpointInterface(value);
+ ref.getServiceRefMetaData().addPortComponentRef(ref);
}
else if (localName.equals("enable-mtom"))
{
@@ -182,7 +182,17 @@
}
else if (localName.equals("port-qname"))
{
- ref.setPortQName(QName.valueOf(value));
+ QName portQName = QName.valueOf(value);
+ ref.setPortQName(portQName);
+
+ UnifiedPortComponentRefMetaData portComponentRef = ref.getServiceRefMetaData().getPortComponentRef(
+ ref.getServiceEndpointInterface(), portQName
+ );
+
+ if(portComponentRef == null)
+ ref.getServiceRefMetaData().addPortComponentRef(ref);
+ else
+ portComponentRef.setPortQName(portQName);
}
else if (localName.equals("config-name"))
{
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/client/ServiceRefHandlerJAXWS.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/client/ServiceRefHandlerJAXWS.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/jaxws/client/ServiceRefHandlerJAXWS.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -167,6 +167,7 @@
// Do not use rebind, the binding should be unique
// [JBWS-1499] - Revisit WebServiceRefHandler JNDI rebind
- Util.rebind(encCtx, encName, new ServiceReferenceable(serviceImplClass, targetClassName, serviceRef));
+ Util.bind(encCtx, encName, new ServiceReferenceable(serviceImplClass, targetClassName, serviceRef));
+
}
}
Modified: trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EndpointInfo.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EndpointInfo.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-core/src/java/org/jboss/ws/core/soap/EndpointInfo.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -60,17 +60,15 @@
// Add the endpoint properties
Properties epProps = epMetaData.getProperties();
- if (epProps != null)
+ Iterator it = epProps.entrySet().iterator();
+ while (it.hasNext())
{
- Iterator it = epProps.entrySet().iterator();
- while (it.hasNext())
- {
- Map.Entry entry = (Map.Entry)it.next();
- String key = (String)entry.getKey();
- Object val = entry.getValue();
- properties.put(key, val);
- }
+ Map.Entry entry = (Map.Entry)it.next();
+ String key = (String)entry.getKey();
+ Object val = entry.getValue();
+ properties.put(key, val);
}
+
}
public Map<String, Object> getProperties()
Modified: trunk/jbossws-core/src/java/org/jboss/ws/metadata/builder/jaxws/JAXWSClientMetaDataBuilder.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/metadata/builder/jaxws/JAXWSClientMetaDataBuilder.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-core/src/java/org/jboss/ws/metadata/builder/jaxws/JAXWSClientMetaDataBuilder.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -25,6 +25,7 @@
import java.io.IOException;
import java.net.URL;
+import java.util.*;
import javax.jws.soap.SOAPBinding;
import javax.xml.namespace.QName;
@@ -33,6 +34,7 @@
import org.jboss.ws.Constants;
import org.jboss.ws.WSException;
import org.jboss.ws.core.jaxrpc.Style;
+import org.jboss.ws.core.jaxws.client.ServiceObjectFactory;
import org.jboss.ws.integration.ResourceLoaderAdapter;
import org.jboss.ws.integration.UnifiedVirtualFile;
import org.jboss.ws.metadata.umdm.ClientEndpointMetaData;
@@ -50,6 +52,9 @@
import org.jboss.ws.metadata.wsdl.WSDLService;
import org.jboss.ws.metadata.wsdl.WSDLUtils;
import org.jboss.ws.metadata.wsdl.xmlschema.JBossXSModel;
+import org.jboss.ws.metadata.j2ee.serviceref.UnifiedServiceRefMetaData;
+import org.jboss.ws.metadata.j2ee.serviceref.UnifiedPortComponentRefMetaData;
+import org.jboss.ws.metadata.j2ee.serviceref.UnifiedStubPropertyMetaData;
/**
* A client side meta data builder.
@@ -125,6 +130,7 @@
throw new IllegalArgumentException("Cannot obtain wsdl service: " + serviceName);
// Build endpoint meta data
+
for (WSDLEndpoint wsdlEndpoint : wsdlService.getEndpoints())
{
QName portName = wsdlEndpoint.getName();
@@ -140,9 +146,69 @@
initEndpointEncodingStyle(epMetaData);
setupOperationsFromWSDL(epMetaData, wsdlEndpoint);
+
+ // service-ref contributions
+ bufferServiceRefContributions(epMetaData);
+
}
}
+ /**
+ * Buffer portComponent information that it can be reused
+ * when rebuild is called (actually getPort(...))
+ * @param epMetaData
+ */
+ private void bufferServiceRefContributions(EndpointMetaData epMetaData)
+ {
+ UnifiedServiceRefMetaData serviceRefMetaData = ServiceObjectFactory.getServiceRefAssociation();
+
+ if(serviceRefMetaData!=null)
+ {
+ for(UnifiedPortComponentRefMetaData portComp : serviceRefMetaData.getPortComponentRefs())
+ {
+ epMetaData.getServiceRefContrib().add(portComp);
+ }
+ }
+ }
+
+ /**
+ * ServiceRef deployment descriptor elements may override the endpoint metadata.
+ * @param epMetaData
+ */
+ private void processServiceRefContributions(EndpointMetaData epMetaData)
+ {
+
+ Iterator<UnifiedPortComponentRefMetaData> it = epMetaData.getServiceRefContrib().iterator();
+
+ while(it.hasNext())
+ {
+ UnifiedPortComponentRefMetaData portComp = it.next();
+
+ if(epMetaData.matches(portComp))
+ {
+ log.debug("Processing service-ref contribution on portType: "+epMetaData.getPortTypeName());
+
+ // process MTOM overrides
+ if(portComp.getEnableMTOM())
+ {
+ String bindingId = epMetaData.getBindingId();
+ if(bindingId.equals(Constants.SOAP11HTTP_BINDING))
+ epMetaData.setBindingId(Constants.SOAP11HTTP_MTOM_BINDING);
+ else if(bindingId.equals(Constants.SOAP12HTTP_BINDING))
+ epMetaData.setBindingId(Constants.SOAP12HTTP_MTOM_BINDING);
+ }
+
+ // process stub properties
+ for(UnifiedStubPropertyMetaData stubProp: portComp.getStubProperties())
+ {
+ epMetaData.getProperties().put(stubProp.getPropName(), stubProp.getPropValue());
+ }
+ }
+
+ }
+
+ }
+
protected void setupOperationsFromWSDL(EndpointMetaData epMetaData, WSDLEndpoint wsdlEndpoint)
{
WSDLDefinitions wsdlDefinitions = wsdlEndpoint.getInterface().getWsdlDefinitions();
@@ -210,6 +276,10 @@
// Set SEI name
epMetaData.setServiceEndpointInterfaceName(wsClass.getName());
+ // service-ref contributions
+ processServiceRefContributions(epMetaData);
+ //epMetaData.getServiceRefContrib().clear();
+
// Eager initialization
epMetaData.eagerInitialize();
Modified: trunk/jbossws-core/src/java/org/jboss/ws/metadata/builder/jaxws/JAXWSWebServiceMetaDataBuilder.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/metadata/builder/jaxws/JAXWSWebServiceMetaDataBuilder.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-core/src/java/org/jboss/ws/metadata/builder/jaxws/JAXWSWebServiceMetaDataBuilder.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -23,10 +23,7 @@
// $Id$
-import java.io.File;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.io.Writer;
+import java.io.*;
import java.net.URL;
import javax.jws.HandlerChain;
@@ -40,16 +37,20 @@
import org.jboss.ws.core.server.UnifiedDeploymentInfo;
import org.jboss.ws.core.utils.IOUtils;
import org.jboss.ws.metadata.builder.MetaDataBuilder;
-import org.jboss.ws.metadata.umdm.EndpointMetaData;
-import org.jboss.ws.metadata.umdm.ServerEndpointMetaData;
-import org.jboss.ws.metadata.umdm.ServiceMetaData;
-import org.jboss.ws.metadata.umdm.UnifiedMetaData;
+import org.jboss.ws.metadata.umdm.*;
import org.jboss.ws.metadata.wsdl.WSDLDefinitions;
import org.jboss.ws.metadata.wsdl.WSDLUtils;
import org.jboss.ws.metadata.wsdl.xmlschema.JBossXSModel;
import org.jboss.ws.metadata.wsse.WSSecurityConfigFactory;
import org.jboss.ws.metadata.wsse.WSSecurityConfiguration;
import org.jboss.ws.metadata.wsse.WSSecurityOMFactory;
+import org.jboss.ws.metadata.webservices.WebservicesMetaData;
+import org.jboss.ws.metadata.webservices.WebservicesFactory;
+import org.jboss.ws.metadata.webservices.WebserviceDescriptionMetaData;
+import org.jboss.ws.metadata.webservices.PortComponentMetaData;
+import org.jboss.ws.metadata.j2ee.serviceref.UnifiedHandlerChainMetaData;
+import org.jboss.ws.metadata.j2ee.serviceref.UnifiedHandlerMetaData;
+import org.jboss.ws.metadata.j2ee.serviceref.UnifiedHandlerChainsMetaData;
import org.jboss.ws.tools.ToolsUtils;
import org.jboss.ws.tools.jaxws.JAXBWSDLGenerator;
import org.jboss.ws.tools.wsdl.WSDLGenerator;
@@ -72,7 +73,7 @@
private boolean toolMode = false;
private File wsdlDirectory = null;
private PrintStream messageStream = null;
-
+
private static class EndpointResult
{
private Class<?> epClass;
@@ -80,7 +81,7 @@
private ServiceMetaData serviceMetaData;
private URL wsdlLocation;
}
-
+
public void setGenerateWsdl(boolean generateWsdl)
{
this.generateWsdl = generateWsdl;
@@ -140,7 +141,7 @@
WSDLDefinitions wsdlDefinitions = serviceMetaData.getWsdlDefinitions();
JBossXSModel schemaModel = WSDLUtils.getSchemaModel(wsdlDefinitions.getWsdlTypes());
serviceMetaData.getTypesMetaData().setSchemaModel(schemaModel);
-
+
// process config
processEndpointConfig(udi, sepClass, linkName, sepMetaData);
@@ -156,6 +157,9 @@
else if (seiClass.isAnnotationPresent(HandlerChain.class))
processHandlerChain(sepMetaData, seiClass);
+ // process webservices.xml contributions
+ processWSDDContribution(sepMetaData);
+
// Init the endpoint address
MetaDataBuilder.initEndpointAddress(udi, sepMetaData, linkName);
@@ -165,7 +169,7 @@
MetaDataBuilder.replaceAddressLocation(sepMetaData);
processEndpointMetaDataExtensions(sepMetaData, wsdlDefinitions);
-
+
// init service endpoint id
ObjectName sepID = MetaDataBuilder.createServiceEndpointID(udi, sepMetaData);
sepMetaData.setServiceEndpointID(sepID);
@@ -181,7 +185,58 @@
throw new WSException("Cannot build meta data: " + ex.getMessage(), ex);
}
}
-
+
+ /**
+ * With JAX-WS the use of webservices.xml is optional since the annotations can be used
+ * to specify most of the information specified in this deployment descriptor file.
+ * The deployment descriptors are only used to override or augment the annotation member attributes.
+ * @param sepMetaData
+ */
+ private void processWSDDContribution(ServerEndpointMetaData sepMetaData)
+ {
+ WebservicesMetaData webservices = WebservicesFactory.loadFromVFSRoot(sepMetaData.getRootFile());
+ if(webservices!=null)
+ {
+ for(WebserviceDescriptionMetaData wsDesc : webservices.getWebserviceDescriptions())
+ {
+ for(PortComponentMetaData portComp : wsDesc.getPortComponents())
+ {
+ if(portComp.getWsdlPort().equals(sepMetaData.getPortName()))
+ {
+
+ log.debug("Processing 'webservices.xml' handler contributions");
+ UnifiedHandlerChainsMetaData chainWrapper = portComp.getHandlerChains();
+ if(chainWrapper!=null)
+ {
+ for(UnifiedHandlerChainMetaData handlerChain : chainWrapper.getHandlerChains())
+ {
+ for (UnifiedHandlerMetaData uhmd : handlerChain.getHandlers())
+ {
+ HandlerMetaDataJAXWS handlerMetaDataJAXWS = uhmd.getHandlerMetaDataJAXWS(sepMetaData, HandlerMetaData.HandlerType.ENDPOINT);
+ sepMetaData.addHandler(handlerMetaDataJAXWS);
+ log.debug("Handler contribution from webservices.xml: " + handlerMetaDataJAXWS.getHandlerName());
+ }
+ }
+ }
+
+ log.debug("Processing MTOM contributions");
+ if(portComp.isEnableMtom())
+ {
+ String bindingId = sepMetaData.getBindingId();
+ if(bindingId.equals(Constants.SOAP11HTTP_BINDING))
+ sepMetaData.setBindingId(Constants.SOAP11HTTP_MTOM_BINDING);
+ else if(bindingId.equals(Constants.SOAP12HTTP_BINDING))
+ sepMetaData.setBindingId(Constants.SOAP12HTTP_MTOM_BINDING);
+
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+
private EndpointResult processWebService(UnifiedMetaData wsMetaData, Class<?> sepClass, UnifiedDeploymentInfo udi) throws ClassNotFoundException, IOException
{
WebService endpointImplAnnotation = sepClass.getAnnotation(WebService.class);
@@ -275,7 +330,7 @@
wsdlDefinitions.getWsdlTypes().setNamespace(epMetaData.getPortTypeName().getNamespaceURI());
final File dir, wsdlFile;
-
+
if (wsdlDirectory != null)
{
dir = wsdlDirectory;
@@ -298,7 +353,7 @@
{
file = new File(dir, suggestedFile + ".wsdl");
}
- else
+ else
{
file = File.createTempFile(suggestedFile, ".wsdl", dir);
file.deleteOnExit();
@@ -324,7 +379,7 @@
}
}
}
-
+
private void message(String msg)
{
if (messageStream != null)
Modified: trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/ServiceRefMetaDataParser.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/ServiceRefMetaDataParser.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/ServiceRefMetaDataParser.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -37,7 +37,7 @@
*
* @author Thomas.Diesler(a)jboss.org
*/
-public class ServiceRefMetaDataParser
+public class ServiceRefMetaDataParser
{
public void importStandardXml(Element root, UnifiedServiceRefMetaData sref)
{
@@ -70,7 +70,7 @@
sref.addHandler(handlerMetaData);
}
}
-
+
public void importJBossXml(Element root, UnifiedServiceRefMetaData sref)
{
sref.setConfigName(getOptionalElementContent(root, "config-name"));
@@ -83,18 +83,19 @@
{
Element pcrefElement = (Element)iterator.next();
String seiName = getOptionalElementContent(pcrefElement, "service-endpoint-interface");
- if (seiName != null)
+ String portNameString = getOptionalElementContent(pcrefElement, "port-qname");
+ QName portName = portNameString!=null ? QName.valueOf(portNameString) : null;
+
+ UnifiedPortComponentRefMetaData pcref = sref.getPortComponentRef(seiName, portName);
+ if (pcref == null)
{
- UnifiedPortComponentRefMetaData pcref = sref.getPortComponentRef(seiName);
- if (pcref == null)
- {
- // Its ok to only have the <port-component-ref> in jboss.xml and not in ejb-jar.xml
- pcref = new UnifiedPortComponentRefMetaData(sref);
- pcref.importStandardXml(pcrefElement);
- sref.addPortComponentRef(pcref);
- }
- pcref.importJBossXml(pcrefElement);
+ // Its ok to only have the <port-component-ref> in jboss.xml and not in ejb-jar.xml
+ pcref = new UnifiedPortComponentRefMetaData(sref);
+ pcref.importStandardXml(pcrefElement);
+ sref.addPortComponentRef(pcref);
}
+ pcref.importJBossXml(pcrefElement);
+
}
// Parse the call-property elements
@@ -108,6 +109,7 @@
}
}
+
public void importStandardXml(Element root, UnifiedPortComponentRefMetaData pcref)
{
pcref.setServiceEndpointInterface(getOptionalElementContent(root, "service-endpoint-interface"));
@@ -126,7 +128,7 @@
pcref.addCallProperty(new UnifiedCallPropertyMetaData(name, value));
}
}
-
+
public void importStandardXml(Element root, UnifiedHandlerMetaData href)
{
href.setHandlerName(getElementContent(root, "handler-name"));
@@ -171,21 +173,21 @@
href.addPortName(content);
}
}
-
+
private String getElementContent(Element element, String childName)
{
String childValue = getOptionalElementContent(element, childName);
if (childValue == null || childValue.length() == 0)
throw new IllegalStateException("Invalid null element content: " + childName);
-
+
return childValue;
}
-
+
private String getOptionalElementContent(Element element, String childName)
{
return getTextContent(DOMUtils.getFirstChildElement(element, childName));
}
-
+
private String getTextContent(Element element)
{
String content = null;
Modified: trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/UnifiedPortComponentRefMetaData.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/UnifiedPortComponentRefMetaData.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/UnifiedPortComponentRefMetaData.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -23,16 +23,13 @@
// $Id$
+import org.jboss.ws.integration.ServiceRefElement;
+import org.w3c.dom.Element;
+
+import javax.xml.namespace.QName;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
-import javax.xml.namespace.QName;
-
-import org.jboss.ws.core.utils.DOMUtils;
-import org.jboss.ws.integration.ServiceRefElement;
-import org.w3c.dom.Element;
-
/** The metdata data from service-ref/port-component-ref element in web.xml, ejb-jar.xml, and application-client.xml.
*
* @author Thomas.Diesler(a)jboss.org
@@ -45,14 +42,14 @@
// The required <service-endpoint-interface> element
private String serviceEndpointInterface;
// The optional <enable-mtom> element
- private Boolean enableMTOM;
+ private Boolean enableMTOM = Boolean.FALSE;
// The optional <port-component-link> element
private String portComponentLink;
// The optional <port-qname> element
private QName portQName;
- // Arbitrary proxy properties given by <call-property>
+ // Arbitrary proxy properties given by <call-property>
private List<UnifiedCallPropertyMetaData> callProperties = new ArrayList<UnifiedCallPropertyMetaData>();
- // Arbitrary proxy properties given by <stub-property>
+ // Arbitrary proxy properties given by <stub-property>
private List<UnifiedStubPropertyMetaData> stubProperties = new ArrayList<UnifiedStubPropertyMetaData>();
// The optional JBossWS config-name
private String configName;
@@ -70,9 +67,9 @@
configName = pcref.configName;
configFile = pcref.configFile;
callProperties = pcref.callProperties;
- stubProperties = pcref.stubProperties;
+ stubProperties = pcref.stubProperties;
}
-
+
public UnifiedServiceRefMetaData getServiceRefMetaData()
{
return serviceRefMetaData;
@@ -188,4 +185,17 @@
{
new ServiceRefMetaDataParser().importJBossXml(root, this);
}
+
+ public boolean matches(String seiName, QName portName)
+ {
+ boolean match;
+ if (seiName != null && portName != null)
+ match = seiName.equals(getServiceEndpointInterface()) && portName.equals(getPortQName());
+ else if (seiName != null)
+ match = seiName.equals(getServiceEndpointInterface());
+ else
+ match = portName.equals(getPortQName());
+
+ return match;
+ }
}
Modified: trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/UnifiedServiceRefMetaData.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/UnifiedServiceRefMetaData.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-core/src/java/org/jboss/ws/metadata/j2ee/serviceref/UnifiedServiceRefMetaData.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -119,11 +119,12 @@
String seiName = pcref.getServiceEndpointInterface();
if (seiName == null)
{
- log.warn("Ignore <port-component-ref> with null <service-endpoint-interface>");
- continue;
+ log.warn("*** Ignore <port-component-ref> with null <service-endpoint-interface>");
+ //continue;
}
- UnifiedPortComponentRefMetaData targetPCRef = getPortComponentRef(seiName);
+ UnifiedPortComponentRefMetaData targetPCRef = getPortComponentRef(seiName, pcref.getPortQName());
+
if (targetPCRef == null)
{
log.warn("Cannot find port component ref with SEI name: " + seiName);
@@ -187,6 +188,7 @@
return portComponentRefs;
}
+ @Deprecated
public UnifiedPortComponentRefMetaData getPortComponentRef(String seiName)
{
if (seiName == null)
@@ -199,6 +201,21 @@
return null;
}
+ public UnifiedPortComponentRefMetaData getPortComponentRef(String seiName, QName portName)
+ {
+ UnifiedPortComponentRefMetaData matchingRef = null;
+
+ for (UnifiedPortComponentRefMetaData ref : portComponentRefs)
+ {
+ if(ref.matches(seiName, portName))
+ {
+ matchingRef = ref;
+ break;
+ }
+ }
+ return matchingRef;
+ }
+
public void addPortComponentRef(UnifiedPortComponentRefMetaData pcRef)
{
portComponentRefs.add(pcRef);
Modified: trunk/jbossws-core/src/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-core/src/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -61,6 +61,7 @@
import org.jboss.ws.metadata.config.EndpointFeature;
import org.jboss.ws.metadata.config.JBossWSConfigFactory;
import org.jboss.ws.metadata.umdm.HandlerMetaData.HandlerType;
+import org.jboss.ws.metadata.j2ee.serviceref.UnifiedPortComponentRefMetaData;
/**
* A Service component describes a set of endpoints.
@@ -129,6 +130,8 @@
private JAXBContextCache jaxbCache = new JAXBContextCache();
+ private List<UnifiedPortComponentRefMetaData> serviceRefContrib = new ArrayList<UnifiedPortComponentRefMetaData>();
+
public EndpointMetaData(ServiceMetaData service, QName portName, QName portTypeName, Type type)
{
this.serviceMetaData = service;
@@ -319,7 +322,9 @@
public Properties getProperties()
{
- return properties;
+ if(null == this.properties)
+ this.properties = new Properties();
+ return this.properties;
}
public void setProperties(Properties properties)
@@ -709,4 +714,23 @@
notifyObservers(object);
}
}
+
+ public List<UnifiedPortComponentRefMetaData> getServiceRefContrib()
+ {
+ return serviceRefContrib;
+ }
+
+ public boolean matches(UnifiedPortComponentRefMetaData pcRef)
+ {
+ String seiName = pcRef.getServiceEndpointInterface();
+ QName portName = pcRef.getPortQName();
+
+ boolean match;
+ if (seiName != null && portName != null)
+ match = getServiceEndpointInterfaceName().equals(seiName) && portName.equals(portName);
+ else
+ match = getServiceEndpointInterfaceName().equals(seiName) || getPortName().equals(portName);
+
+ return match;
+ }
}
Modified: trunk/jbossws-core/src/java/org/jboss/ws/metadata/webservices/PortComponentMetaData.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/metadata/webservices/PortComponentMetaData.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-core/src/java/org/jboss/ws/metadata/webservices/PortComponentMetaData.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -31,6 +31,7 @@
import org.jboss.logging.Logger;
import org.jboss.ws.metadata.j2ee.serviceref.UnifiedHandlerMetaData;
+import org.jboss.ws.metadata.j2ee.serviceref.UnifiedHandlerChainsMetaData;
/**
* XML Binding and ws4ee meta-data element for
@@ -73,9 +74,18 @@
// The HTTP context root
private String contextRoot;
- // The optional secure wsdl access
+ // The optional secure wsdl access
private Boolean secureWSDLAccess;
+ // -----------------------------------------
+ // JAX-WS additions
+
+ private boolean enableMtom;
+ private QName wsdlService;
+ private String protocolBinding;
+ private UnifiedHandlerChainsMetaData handlerChains;
+
+
/** Construct a new PortComponentMetaData for a given WebserviceDescriptionMetaData
*/
public PortComponentMetaData(WebserviceDescriptionMetaData webserviceDescription)
@@ -173,6 +183,46 @@
this.secureWSDLAccess = secureWSDLAccess;
}
+ public boolean isEnableMtom()
+ {
+ return enableMtom;
+ }
+
+ public void setEnableMtom(boolean enableMtom)
+ {
+ this.enableMtom = enableMtom;
+ }
+
+ public QName getWsdlService()
+ {
+ return wsdlService;
+ }
+
+ public void setWsdlService(QName wsdlService)
+ {
+ this.wsdlService = wsdlService;
+ }
+
+ public String getProtocolBinding()
+ {
+ return protocolBinding;
+ }
+
+ public void setProtocolBinding(String protocolBinding)
+ {
+ this.protocolBinding = protocolBinding;
+ }
+
+ public UnifiedHandlerChainsMetaData getHandlerChains()
+ {
+ return handlerChains;
+ }
+
+ public void setHandlerChains(UnifiedHandlerChainsMetaData handlerChains)
+ {
+ this.handlerChains = handlerChains;
+ }
+
public String serialize()
{
StringBuilder builder = new StringBuilder("<port-component>");
Modified: trunk/jbossws-core/src/java/org/jboss/ws/metadata/webservices/WebservicesFactory.java
===================================================================
--- trunk/jbossws-core/src/java/org/jboss/ws/metadata/webservices/WebservicesFactory.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-core/src/java/org/jboss/ws/metadata/webservices/WebservicesFactory.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -23,15 +23,23 @@
// $Id$
-import java.net.URL;
-
import org.jboss.logging.Logger;
+import org.jboss.ws.integration.UnifiedVirtualFile;
+import org.jboss.ws.metadata.j2ee.serviceref.UnifiedHandlerChainMetaData;
+import org.jboss.ws.metadata.j2ee.serviceref.UnifiedHandlerChainsMetaData;
import org.jboss.ws.metadata.j2ee.serviceref.UnifiedHandlerMetaData;
import org.jboss.ws.metadata.j2ee.serviceref.UnifiedInitParamMetaData;
+import org.jboss.ws.WSException;
import org.jboss.xb.binding.ObjectModelFactory;
+import org.jboss.xb.binding.Unmarshaller;
+import org.jboss.xb.binding.UnmarshallerFactory;
import org.jboss.xb.binding.UnmarshallingContext;
import org.xml.sax.Attributes;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
/**
* A JBossXB factory for {@link WebservicesMetaData}
*
@@ -52,6 +60,62 @@
}
/**
+ * Load webservices.xml from <code>META-INF/webservices.xml</code>
+ * or <code>WEB-INF/webservices.xml</code>.
+ *
+ * @param root virtual file root
+ * @return WebservicesMetaData or <code>null</code> if it cannot be found
+ */
+ public static WebservicesMetaData loadFromVFSRoot(UnifiedVirtualFile root)
+ {
+ WebservicesMetaData webservices = null;
+
+ UnifiedVirtualFile wsdd = null;
+ try
+ {
+ wsdd = root.findChild("META-INF/webservices.xml");
+ }
+ catch (IOException e)
+ {
+ //
+ }
+
+ // Maybe a web application deployment?
+ if(null == wsdd)
+ {
+ try
+ {
+ wsdd = root.findChild("WEB-INF/webservices.xml");
+ }
+ catch (IOException e)
+ {
+ //
+ }
+ }
+
+ // the descriptor is optional
+ if(wsdd!=null)
+ {
+
+ URL wsddUrl = wsdd.toURL();
+ try
+ {
+ InputStream is = wsddUrl.openStream();
+ Unmarshaller unmarshaller = UnmarshallerFactory.newInstance().newUnmarshaller();
+ ObjectModelFactory factory = new WebservicesFactory(wsddUrl);
+ webservices = (WebservicesMetaData)unmarshaller.unmarshal(is, factory, null);
+ is.close();
+ }
+ catch(Exception e)
+ {
+ throw new WSException("Failed to unmarshall webservices.xml:" + e.getMessage());
+ }
+ }
+
+ return webservices;
+ }
+
+ /**
* This method is called on the factory by the object model builder when the parsing starts.
*
* @return the root of the object model.
@@ -81,7 +145,7 @@
* Called when parsing character is complete.
*/
public void addChild(WebservicesMetaData webservices, WebserviceDescriptionMetaData webserviceDescription, UnmarshallingContext navigator, String namespaceURI,
- String localName)
+ String localName)
{
webservices.addWebserviceDescription(webserviceDescription);
}
@@ -100,7 +164,7 @@
* Called when parsing character is complete.
*/
public void addChild(WebserviceDescriptionMetaData webserviceDescription, PortComponentMetaData portComponent, UnmarshallingContext navigator, String namespaceURI,
- String localName)
+ String localName)
{
webserviceDescription.addPortComponent(portComponent);
}
@@ -112,10 +176,33 @@
{
if ("handler".equals(localName))
return new UnifiedHandlerMetaData(null);
+ else if ("handler-chains".equals(localName))
+ return new UnifiedHandlerChainsMetaData();
else return null;
}
/**
+ * Called when parsing of a new element started.
+ */
+ public Object newChild(UnifiedHandlerChainsMetaData handlerChains, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
+ {
+ if ("handler-chain".equals(localName))
+ return new UnifiedHandlerChainMetaData();
+ else return null;
+ }
+
+ /**
+ * Called when parsing of a new element started.
+ */
+ public Object newChild(UnifiedHandlerChainMetaData handlerChains, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
+ {
+ if ("handler".equals(localName))
+ return new UnifiedHandlerMetaData();
+ else return null;
+ }
+
+
+ /**
* Called when parsing character is complete.
*/
public void addChild(PortComponentMetaData portComponent, UnifiedHandlerMetaData handler, UnmarshallingContext navigator, String namespaceURI, String localName)
@@ -124,6 +211,30 @@
}
/**
+ * Called when parsing character is complete.
+ */
+ public void addChild(PortComponentMetaData portComponent, UnifiedHandlerChainsMetaData handlerChains, UnmarshallingContext navigator, String namespaceURI, String localName)
+ {
+ portComponent.setHandlerChains(handlerChains);
+ }
+
+ /**
+ * Called when parsing character is complete.
+ */
+ public void addChild(UnifiedHandlerChainsMetaData chains, UnifiedHandlerChainMetaData handlerChain, UnmarshallingContext navigator, String namespaceURI, String localName)
+ {
+ chains.addHandlerChain(handlerChain);
+ }
+
+ /**
+ * Called when parsing character is complete.
+ */
+ public void addChild(UnifiedHandlerChainMetaData chain, UnifiedHandlerMetaData handler, UnmarshallingContext navigator, String namespaceURI, String localName)
+ {
+ chain.addHandler(handler);
+ }
+
+ /**
* Called when parsing of a new element started.
*/
public Object newChild(UnifiedHandlerMetaData handler, UnmarshallingContext navigator, String namespaceURI, String localName, Attributes attrs)
@@ -175,6 +286,14 @@
portComponent.setEjbLink(value);
else if (localName.equals("servlet-link"))
portComponent.setServletLink(value);
+ else if (localName.equals("wsdl-service"))
+ portComponent.setWsdlService(navigator.resolveQName(value));
+ else if (localName.equals("protocol-binding"))
+ portComponent.setProtocolBinding(value);
+ else if (localName.equals("enable-mtom"))
+ portComponent.setEnableMtom(Boolean.valueOf(value));
+
+
}
/**
@@ -193,7 +312,7 @@
handler.addSoapHeader(navigator.resolveQName(value));
else if (localName.equals("soap-role"))
handler.addSoapRole(value);
- else if (localName.equals("port-name"))
+ else if (localName.equals("port-name"))
handler.addPortName(value);
}
Modified: trunk/jbossws-tests/ant-import/build-jars-jaxws.xml
===================================================================
--- trunk/jbossws-tests/ant-import/build-jars-jaxws.xml 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-tests/ant-import/build-jars-jaxws.xml 2007-03-19 20:06:28 UTC (rev 2641)
@@ -303,6 +303,9 @@
<webinf dir="${tests.output.dir}/resources/jaxws/serviceref/META-INF">
<include name="wsdl/**"/>
</webinf>
+ <webinf dir="${tests.output.dir}/resources/jaxws/serviceref/servlet-client/WEB-INF">
+ <include name="jboss-web.xml"/>
+ </webinf>
</war>
<jar destfile="${tests.output.dir}/libs/jaxws-serviceref-ejb-client.jar">
<fileset dir="${tests.output.dir}/classes">
@@ -313,6 +316,7 @@
</fileset>
<metainf dir="${tests.output.dir}/resources/jaxws/serviceref/META-INF">
<include name="ejb-jar.xml"/>
+ <include name="jboss.xml"/>
<include name="wsdl/**"/>
</metainf>
</jar>
@@ -333,6 +337,17 @@
</classes>
</war>
+ <!-- jaxws-wsdd -->
+ <war warfile="${tests.output.dir}/libs/jaxws-wsdd.war"
+ webxml="${tests.output.dir}/resources/jaxws/wsdd/WEB-INF/web.xml">
+ <classes dir="${tests.output.dir}/classes">
+ <include name="org/jboss/test/ws/jaxws/wsdd/*.class"/>
+ </classes>
+ <webinf dir="${tests.output.dir}/resources/jaxws/wsdd/WEB-INF">
+ <include name="webservices.xml"/>
+ </webinf>
+ </war>
+
<!-- jaxws-wsaddressing-action -->
<war warfile="${tests.output.dir}/libs/jaxws-wsaddressing-action-rpc.war" webxml="${tests.output.dir}/resources/jaxws/wsaddressing/action/WEB-INF/web.xml">
<classes dir="${tests.output.dir}/classes">
Modified: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/EJBClient.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/EJBClient.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/EJBClient.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -21,18 +21,18 @@
*/
package org.jboss.test.ws.jaxws.serviceref;
-import java.rmi.RemoteException;
-import java.util.ArrayList;
+import org.jboss.annotation.ejb.RemoteBinding;
+import org.jboss.logging.Logger;
import javax.ejb.Remote;
import javax.ejb.Stateless;
-import javax.naming.InitialContext;
-import javax.xml.ws.Service;
+import javax.xml.ws.BindingProvider;
import javax.xml.ws.WebServiceException;
+import javax.xml.ws.WebServiceRef;
+import javax.xml.ws.soap.SOAPBinding;
+import java.rmi.RemoteException;
+import java.util.ArrayList;
-import org.jboss.annotation.ejb.RemoteBinding;
-import org.jboss.logging.Logger;
-
@Remote(EJBRemote.class)
@RemoteBinding(jndiBinding = "/ejb/EJBClient")
@Stateless
@@ -42,26 +42,43 @@
// Provide logging
private static Logger log = Logger.getLogger(EJBClient.class);
+ @WebServiceRef(name = "port1")
+ TestEndpoint port1;
+
+ @WebServiceRef(name = "port2")
+ TestEndpoint port2;
+
public String echo(String inStr) throws RemoteException
{
log.info("echo: " + inStr);
- ArrayList ports = new ArrayList();
- try
+ ArrayList ports = new ArrayList(2);
+ ports.add(port1);
+ ports.add(port2);
+
+ /*try
{
InitialContext iniCtx = new InitialContext();
- ports.add((TestEndpoint)((Service)iniCtx.lookup("java:comp/env/service1")).getPort(TestEndpoint.class));
- ports.add(((TestEndpointService)iniCtx.lookup("java:comp/env/service2")).getTestEndpointPort());
+ ports.add((TestEndpoint)((Service)iniCtx.lookup("java:comp/env/port1")).getPort(TestEndpoint.class));
+ ports.add(((TestEndpointService)iniCtx.lookup("java:comp/env/port2")).getTestEndpointPort());
}
catch (Exception ex)
{
log.error("Cannot add port", ex);
- throw new WebServiceException(ex);
- }
+ //throw new WebServiceException(ex);
+ } */
for (int i = 0; i < ports.size(); i++)
{
TestEndpoint port = (TestEndpoint)ports.get(i);
+
+ BindingProvider bp = (BindingProvider)port;
+ boolean mtomEnabled = ((SOAPBinding)bp.getBinding()).isMTOMEnabled();
+ boolean expectedSetting = (i==0) ? false : true;
+
+ if(mtomEnabled != expectedSetting)
+ throw new WebServiceException("MTOM settings (enabled="+expectedSetting+") not overridden through service-ref" );
+
String outStr = port.echo(inStr);
if (inStr.equals(outStr) == false)
throw new WebServiceException("Invalid echo return: " + inStr);
Modified: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServiceRefClientTestCase.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServiceRefClientTestCase.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServiceRefClientTestCase.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -27,6 +27,7 @@
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
+import javax.naming.InitialContext;
import junit.framework.Test;
@@ -65,13 +66,24 @@
Service service = Service.create(wsdlURL, qname);
TestEndpoint port = (TestEndpoint)service.getPort(TestEndpoint.class);
- String helloWorld = "Hello World!";
- Object retObj = port.echo(helloWorld);
- assertEquals(helloWorld, retObj);
+ String request = "testDynamicProxy";
+ String response = port.echo(request);
+ assertEquals(request, response);
}
- public void testAppClient() throws Exception
+ public void testApplicationClient() throws Exception
{
System.out.println("FIXME: [JBWS-1576] Implement jaxws <service-ref> from deployment descriptor");
+
+ /*InitialContext iniCtx = getInitialContext("jbossws-client");
+ TestEndpoint port = ((Service)iniCtx.lookup("java:comp/env/service2")).getPort(TestEndpoint.class);
+ assertNotNull(port);
+
+ String request = "testApplicationClient";
+ String response = port.echo(request);
+ assertEquals(response, request);
+ */
+
}
+
}
Modified: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServiceRefEJBTestCase.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServiceRefEJBTestCase.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServiceRefEJBTestCase.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -66,7 +66,7 @@
Service service = Service.create(wsdlURL, qname);
TestEndpoint port = (TestEndpoint)service.getPort(TestEndpoint.class);
- String helloWorld = "Hello World!";
+ String helloWorld = "testDynamicProxy";
Object retObj = port.echo(helloWorld);
assertEquals(helloWorld, retObj);
}
Modified: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServiceRefServletTestCase.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServiceRefServletTestCase.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServiceRefServletTestCase.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -29,6 +29,8 @@
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.soap.SOAPBinding;
import junit.framework.Test;
@@ -69,7 +71,7 @@
String helloWorld = "Hello World!";
Object retObj = port.echo(helloWorld);
- assertEquals(helloWorld, retObj);
+ assertEquals(helloWorld, retObj);
}
public void testServletClient() throws Exception
Modified: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServletClient.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServletClient.java 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/serviceref/ServletClient.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -31,6 +31,8 @@
import javax.servlet.http.HttpServletResponse;
import javax.xml.ws.Service;
import javax.xml.ws.WebServiceException;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.soap.SOAPBinding;
import org.jboss.logging.Logger;
@@ -60,6 +62,14 @@
for (int i = 0; i < ports.size(); i++)
{
TestEndpoint port = (TestEndpoint)ports.get(i);
+
+ BindingProvider bp = (BindingProvider)port;
+ boolean mtomEnabled = ((SOAPBinding)bp.getBinding()).isMTOMEnabled();
+ boolean expectedSetting = (i==0) ? false : true;
+
+ if(mtomEnabled != expectedSetting)
+ throw new WebServiceException("MTOM settings (enabled="+expectedSetting+") not overridden through service-ref" );
+
String outStr = port.echo(inStr);
if (inStr.equals(outStr) == false)
throw new WebServiceException("Invalid echo return: " + inStr);
Added: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/CustomHandler.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/CustomHandler.java (rev 0)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/CustomHandler.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -0,0 +1,93 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.wsdd;
+
+import org.jboss.ws.core.jaxws.handler.GenericSOAPHandler;
+import org.jboss.ws.core.soap.TextImpl;
+import org.jboss.ws.extensions.xop.XOPContext;
+
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.handler.soap.SOAPMessageContext;
+import javax.xml.ws.WebServiceException;
+import javax.xml.soap.*;
+
+/**
+ * Inbound the handler appends to the echo message,
+ * outbound it changes the boolean value of the checkMTOM invocation.
+ *
+ * @author Heiko.Braun(a)jboss.org
+ * @version $Id$
+ * @since Mar 12, 2007
+ */
+public class CustomHandler extends GenericSOAPHandler {
+
+ protected boolean handleInbound(MessageContext msgContext)
+ {
+ try
+ {
+ SOAPMessage soapMessage = ((SOAPMessageContext)msgContext).getMessage();
+ SOAPBody soapBody = soapMessage.getSOAPBody();
+
+ SOAPBodyElement soapBodyElement = (SOAPBodyElement)soapBody.getChildElements().next();
+ if(soapBodyElement.getChildElements().hasNext())
+ {
+ SOAPElement payload = (SOAPElement)soapBodyElement.getChildElements().next();
+ SOAPElement message = (SOAPElement)payload.getChildElements().next();
+ String value = message.getValue();
+ message.setValue(value + "World");
+ }
+ }
+ catch (SOAPException e)
+ {
+ throw new WebServiceException(e);
+ }
+ return true;
+ }
+
+ protected boolean handleOutbound(MessageContext msgContext)
+ {
+ try
+ {
+ SOAPMessage soapMessage = ((SOAPMessageContext)msgContext).getMessage();
+ SOAPBody soapBody = soapMessage.getSOAPBody();
+
+ SOAPBodyElement soapBodyElement = (SOAPBodyElement)soapBody.getChildElements().next();
+ if(soapBodyElement.getChildElements().hasNext())
+ {
+ SOAPElement payload = (SOAPElement)soapBodyElement.getChildElements().next();
+ if(soapBodyElement.getElementQName().getLocalPart().indexOf("MTOM") != -1)
+ {
+ TextImpl response = (TextImpl)payload.getChildElements().next();
+ String value = response.getValue();
+ response.setValue( String.valueOf(XOPContext.isMTOMEnabled()) );
+ }
+
+ }
+ }
+ catch (SOAPException e)
+ {
+ throw new WebServiceException(e);
+ }
+
+ return true;
+ }
+}
Added: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/Message.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/Message.java (rev 0)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/Message.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.wsdd;
+
+/**
+ * @author Heiko.Braun(a)jboss.org
+ * @version $Id$
+ * @since Mar 12, 2007
+ */
+public class Message {
+ public String msg;
+
+ public Message()
+ {
+ }
+
+ public Message(String msg)
+ {
+ this.msg = msg;
+ }
+}
Added: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/ResponseMessage.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/ResponseMessage.java (rev 0)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/ResponseMessage.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.wsdd;
+
+/**
+ * @author Heiko.Braun(a)jboss.org
+ * @version $Id$
+ * @since Mar 12, 2007
+ */
+public class ResponseMessage {
+
+ public String msg;
+
+ public ResponseMessage()
+ {
+ }
+
+ public ResponseMessage(String msg)
+ {
+ this.msg = msg;
+ }
+}
Added: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/TestDDOverrides.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/TestDDOverrides.java (rev 0)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/TestDDOverrides.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.wsdd;
+
+import junit.framework.Test;
+import org.jboss.test.ws.JBossWSTest;
+import org.jboss.test.ws.JBossWSTestSetup;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.soap.SOAPBinding;
+import java.net.URL;
+
+/**
+ * @author Heiko.Braun(a)jboss.org
+ * @version $Id$
+ * @since Mar 12, 2007
+ */
+public class TestDDOverrides extends JBossWSTest {
+
+ public final String TARGET_ENDPOINT_ADDRESS = "http://" + getServerHost() + ":8080/jaxws-wsdd";
+
+ public static Test suite()
+ {
+ return JBossWSTestSetup.newTestSetup(TestDDOverrides.class, "jaxws-wsdd.war");
+ }
+
+ public void testHandlerChainOverride() throws Exception
+ {
+ QName serviceName = new QName("http://wsdd.jaxws.ws.test.jboss.org/", "WSDDEndpointImplService");
+ URL wsdlURL = new URL(TARGET_ENDPOINT_ADDRESS + "?wsdl");
+
+ Service service = Service.create(wsdlURL, serviceName);
+ WSDDEndpoint port = service.getPort(WSDDEndpoint.class);
+
+ Message request = new Message("Hello");
+ ResponseMessage response = port.echo(request);
+ assertNotNull(response);
+ assertEquals(response.msg, "HelloWorld");
+ }
+
+ public void testMTOMOverride() throws Exception
+ {
+ QName serviceName = new QName("http://wsdd.jaxws.ws.test.jboss.org/", "WSDDEndpointImplService");
+ URL wsdlURL = new URL(TARGET_ENDPOINT_ADDRESS + "?wsdl");
+
+ Service service = Service.create(wsdlURL, serviceName);
+ WSDDEndpoint port = service.getPort(WSDDEndpoint.class);
+
+ assertTrue("MTOM should be enabled thorugh webservice.xml overrides", port.checkMTOMEnabled());
+
+ }
+}
Added: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/TestWSDDParser.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/TestWSDDParser.java (rev 0)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/TestWSDDParser.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -0,0 +1,88 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.wsdd;
+
+import junit.framework.TestCase;
+import org.jboss.ws.metadata.j2ee.serviceref.UnifiedHandlerChainMetaData;
+import org.jboss.ws.metadata.j2ee.serviceref.UnifiedHandlerMetaData;
+import org.jboss.ws.metadata.webservices.PortComponentMetaData;
+import org.jboss.ws.metadata.webservices.WebserviceDescriptionMetaData;
+import org.jboss.ws.metadata.webservices.WebservicesFactory;
+import org.jboss.ws.metadata.webservices.WebservicesMetaData;
+import org.jboss.xb.binding.ObjectModelFactory;
+import org.jboss.xb.binding.Unmarshaller;
+import org.jboss.xb.binding.UnmarshallerFactory;
+
+import java.io.File;
+import java.io.InputStream;
+import java.net.URL;
+
+/**
+ * Tets webservice.xml additions that are related to JAX-WS
+ *
+ * @author Heiko.Braun(a)jboss.org
+ * @version $Id$
+ * @since Mar 12, 2007
+ */
+public class TestWSDDParser extends TestCase {
+
+ public void testJAXWSElementParsing() throws Exception
+ {
+ URL webservicesURL = new File("resources/jaxws/wsdd/webservices.xml").toURL();
+ // Unmarshall webservices.xml
+ WebservicesMetaData webservices = null;
+ InputStream is = webservicesURL.openStream();
+ try
+ {
+ Unmarshaller unmarshaller = UnmarshallerFactory.newInstance().newUnmarshaller();
+ ObjectModelFactory factory = new WebservicesFactory(webservicesURL);
+ webservices = (WebservicesMetaData)unmarshaller.unmarshal(is, factory, null);
+ }
+ finally
+ {
+ is.close();
+ }
+
+ assertNotNull(webservices);
+
+ WebserviceDescriptionMetaData wsDesc = webservices.getWebserviceDescriptions()[0];
+ assertNotNull(wsDesc);
+ assertTrue(wsDesc.getPortComponents().length==1);
+
+ PortComponentMetaData portComp = wsDesc.getPortComponents()[0];
+ assertNotNull(portComp);
+ assertTrue(portComp.getHandlerChains().getHandlerChains().size()>0);
+
+ // wsdlService
+ assertTrue(portComp.getWsdlService().getLocalPart().equals("HelloService"));
+
+ // mtom
+ assertTrue(portComp.isEnableMtom());
+
+ // handler chains
+ UnifiedHandlerChainMetaData handlerChain = portComp.getHandlerChains().getHandlerChains().get(0);
+ assertNotNull(handlerChain);
+ assertTrue( ((UnifiedHandlerMetaData)handlerChain.getHandlers().get(0)).getHandlerName().equals("ServerHandler1"));
+
+ }
+
+}
Added: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/WSDDEndpoint.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/WSDDEndpoint.java (rev 0)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/WSDDEndpoint.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -0,0 +1,18 @@
+package org.jboss.test.ws.jaxws.wsdd;
+
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+
+/**
+ * @author Heiko.Braun(a)jboss.org
+ * @version $Id$
+ * @since Mar 12, 2007
+ */
+@WebService
+public interface WSDDEndpoint {
+ @WebMethod
+ ResponseMessage echo(Message message);
+
+ @WebMethod
+ Boolean checkMTOMEnabled();
+}
Added: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/WSDDEndpointImpl.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/WSDDEndpointImpl.java (rev 0)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/wsdd/WSDDEndpointImpl.java 2007-03-19 20:06:28 UTC (rev 2641)
@@ -0,0 +1,53 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.wsdd;
+
+import org.jboss.ws.extensions.xop.XOPContext;
+
+import javax.jws.WebService;
+import javax.jws.WebMethod;
+
+/**
+ * @author Heiko.Braun(a)jboss.org
+ * @version $Id$
+ * @since Mar 12, 2007
+ */
+@WebService
+public class WSDDEndpointImpl implements WSDDEndpoint {
+
+ @WebMethod
+ public ResponseMessage echo(Message message)
+ {
+ System.out.println(message.msg);
+ return new ResponseMessage(message.msg);
+ }
+
+ @WebMethod
+ public Boolean checkMTOMEnabled()
+ {
+ // At this point it's not set
+ // The MTOM property is avaialbel when the CommonSOAPBinding
+ // did bin the reponse. Therefore we delegate this task to the handler impl.
+ return Boolean.FALSE;
+ }
+
+}
Modified: trunk/jbossws-tests/src/resources/jaxws/serviceref/META-INF/application-client.xml
===================================================================
--- trunk/jbossws-tests/src/resources/jaxws/serviceref/META-INF/application-client.xml 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-tests/src/resources/jaxws/serviceref/META-INF/application-client.xml 2007-03-19 20:06:28 UTC (rev 2641)
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<application-client version="5" xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<application-client version="5" xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application-client_5.xsd">
<display-name>jaxws simple tests</display-name>
-
+
<service-ref>
<service-ref-name>service1</service-ref-name>
<service-interface>javax.xml.ws.Service</service-interface>
@@ -16,6 +16,10 @@
<service-ref-name>service2</service-ref-name>
<service-interface>org.jboss.test.ws.jaxws.serviceref.TestEndpointService</service-interface>
<wsdl-file>META-INF/wsdl/TestEndpoint.wsdl</wsdl-file>
+ <port-component-ref>
+ <service-endpoint-interface>org.jboss.test.ws.jaxws.serviceref.TestEndpoint</service-endpoint-interface>
+ <enable-mtom>true</enable-mtom>
+ </port-component-ref>
</service-ref>
</application-client>
Modified: trunk/jbossws-tests/src/resources/jaxws/serviceref/META-INF/ejb-jar.xml
===================================================================
--- trunk/jbossws-tests/src/resources/jaxws/serviceref/META-INF/ejb-jar.xml 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-tests/src/resources/jaxws/serviceref/META-INF/ejb-jar.xml 2007-03-19 20:06:28 UTC (rev 2641)
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/j2ee/ejb-jar_3_0.xsd"
- version="3.0">
+<ejb-jar version="3.0"
+ xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
<enterprise-beans>
<session>
@@ -16,13 +16,17 @@
<service-ref>
<service-ref-name>service1</service-ref-name>
<service-interface>javax.xml.ws.Service</service-interface>
- <wsdl-file>META-INF/wsdl/TestEndpoint.wsdl</wsdl-file>
+ <wsdl-file>META-INF/wsdl/TestEndpoint.wsdl</wsdl-file>
</service-ref>
<service-ref>
<service-ref-name>service2</service-ref-name>
<service-interface>org.jboss.test.ws.jaxws.serviceref.TestEndpointService</service-interface>
<wsdl-file>META-INF/wsdl/TestEndpoint.wsdl</wsdl-file>
+ <port-component-ref>
+ <service-endpoint-interface>org.jboss.test.ws.jaxws.serviceref.TestEndpoint</service-endpoint-interface>
+ <enable-mtom>true</enable-mtom>
+ </port-component-ref>
</service-ref>
</session>
Modified: trunk/jbossws-tests/src/resources/jaxws/serviceref/META-INF/jboss-client.xml
===================================================================
--- trunk/jbossws-tests/src/resources/jaxws/serviceref/META-INF/jboss-client.xml 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-tests/src/resources/jaxws/serviceref/META-INF/jboss-client.xml 2007-03-19 20:06:28 UTC (rev 2641)
@@ -1,7 +1,14 @@
<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE jboss-client PUBLIC "-//JBoss//DTD Application Client 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-client_5_0.dtd">
-<!DOCTYPE jboss-client PUBLIC "-//JBoss//DTD Application Client 4.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-client_4_0.dtd">
-
<jboss-client>
<jndi-name>jbossws-client</jndi-name>
+
+ <!--service-ref>
+ <service-ref-name>service2</service-ref-name>
+ <port-component-ref>
+ <service-endpoint-interface>org.jboss.test.ws.jaxws.serviceref.TestEndpoint</service-endpoint-interface>
+ <port-qname>{http://serviceref.jaxws.ws.test.jboss.org/}TestEndpointPort</port-qname>
+ </port-component-ref>
+ </service-ref-->
</jboss-client>
Modified: trunk/jbossws-tests/src/resources/jaxws/serviceref/servlet-client/WEB-INF/web.xml
===================================================================
--- trunk/jbossws-tests/src/resources/jaxws/serviceref/servlet-client/WEB-INF/web.xml 2007-03-19 15:04:57 UTC (rev 2640)
+++ trunk/jbossws-tests/src/resources/jaxws/serviceref/servlet-client/WEB-INF/web.xml 2007-03-19 20:06:28 UTC (rev 2641)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd">
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd">
<servlet>
<servlet-name>ServletClient</servlet-name>
@@ -19,10 +19,14 @@
<wsdl-file>WEB-INF/wsdl/TestEndpoint.wsdl</wsdl-file>
</service-ref>
- <service-ref>
+ <service-ref>
<service-ref-name>service2</service-ref-name>
<service-interface>org.jboss.test.ws.jaxws.serviceref.TestEndpointService</service-interface>
<wsdl-file>WEB-INF/wsdl/TestEndpoint.wsdl</wsdl-file>
+ <port-component-ref>
+ <service-endpoint-interface>org.jboss.test.ws.jaxws.serviceref.TestEndpoint</service-endpoint-interface>
+ <enable-mtom>true</enable-mtom>
+ </port-component-ref>
</service-ref>
</web-app>
\ No newline at end of file
Added: trunk/jbossws-tests/src/resources/jaxws/wsdd/WEB-INF/web.xml
===================================================================
--- trunk/jbossws-tests/src/resources/jaxws/wsdd/WEB-INF/web.xml (rev 0)
+++ trunk/jbossws-tests/src/resources/jaxws/wsdd/WEB-INF/web.xml 2007-03-19 20:06:28 UTC (rev 2641)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+
+ <servlet>
+ <servlet-name>Endpoint</servlet-name>
+ <servlet-class>org.jboss.test.ws.jaxws.wsdd.WSDDEndpointImpl</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>Endpoint</servlet-name>
+ <url-pattern>/*</url-pattern>
+ </servlet-mapping>
+
+</web-app>
\ No newline at end of file
Added: trunk/jbossws-tests/src/resources/jaxws/wsdd/WEB-INF/webservices.xml
===================================================================
--- trunk/jbossws-tests/src/resources/jaxws/wsdd/WEB-INF/webservices.xml (rev 0)
+++ trunk/jbossws-tests/src/resources/jaxws/wsdd/WEB-INF/webservices.xml 2007-03-19 20:06:28 UTC (rev 2641)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<webservices xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:wsdl="http://wsdd.jaxws.ws.test.jboss.org/"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/javaee_web_services_1_2.xsd" version="1.2">
+ <webservice-description>
+ <webservice-description-name>WSDDTestService</webservice-description-name>
+ <!--wsdl-file>META-INF/wsdl/HelloService.wsdl</wsdl-file-->
+ <port-component>
+ <port-component-name>WSDDEndpointImpl</port-component-name>
+ <wsdl-service>wsdl:WSDDEndpointImplService</wsdl-service>
+ <wsdl-port>wsdl:WSDDEndpointImplPort</wsdl-port>
+ <!--service-endpoint-interface>com.sun.ts.tests.webservices12.ejb.descriptors.WSEjbOverrideWSRefHCWithDDsTest.Hello</service-endpoint-interface-->
+ <service-impl-bean>
+ <servlet-link>Endpoint</servlet-link>
+ </service-impl-bean>
+ <enable-mtom>true</enable-mtom>
+ <handler-chains>
+ <handler-chain>
+ <handler>
+ <handler-name>CustomHandler</handler-name>
+ <handler-class>org.jboss.test.ws.jaxws.wsdd.CustomHandler</handler-class>
+ </handler>
+ </handler-chain>
+ </handler-chains>
+ </port-component>
+ </webservice-description>
+</webservices>
17 years, 2 months
JBossWS SVN: r2640 - in trunk/jbossws-tests: src/java/org/jboss/test/ws/jaxws/jbws1581 and 2 other directories.
by jbossws-commits@lists.jboss.org
Author: thomas.diesler(a)jboss.com
Date: 2007-03-19 11:04:57 -0400 (Mon, 19 Mar 2007)
New Revision: 2640
Added:
trunk/jbossws-tests/src/resources/jaxws/jbws1581/META-INF/jboss-app.xml
trunk/jbossws-tests/src/resources/jaxws/jbws1581/WEB-INF/jboss-web.xml
Modified:
trunk/jbossws-tests/ant-import/build-jars-jaxws.xml
trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581TestCase.java
Log:
Add loader reppository configs
Modified: trunk/jbossws-tests/ant-import/build-jars-jaxws.xml
===================================================================
--- trunk/jbossws-tests/ant-import/build-jars-jaxws.xml 2007-03-19 12:28:32 UTC (rev 2639)
+++ trunk/jbossws-tests/ant-import/build-jars-jaxws.xml 2007-03-19 15:04:57 UTC (rev 2640)
@@ -246,6 +246,14 @@
<include name="jboss-web.xml"/>
</webinf>
</war>
+ <jar jarfile="${tests.output.dir}/libs/jaxws-jbws1581.ear">
+ <fileset dir="${tests.output.dir}/libs">
+ <include name="jaxws-jbws1581.war"/>
+ </fileset>
+ <metainf dir="${tests.output.dir}/resources/jaxws/jbws1581/META-INF">
+ <include name="jboss-app.xml"/>
+ </metainf>
+ </jar>
<jar jarfile="${tests.output.dir}/libs/jaxws-jbws1581.jar">
<fileset dir="${tests.output.dir}/classes">
<include name="org/jboss/test/ws/jaxws/jbws1581/EJB3Bean.class"/>
Modified: trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581TestCase.java
===================================================================
--- trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581TestCase.java 2007-03-19 12:28:32 UTC (rev 2639)
+++ trunk/jbossws-tests/src/java/org/jboss/test/ws/jaxws/jbws1581/JBWS1581TestCase.java 2007-03-19 15:04:57 UTC (rev 2640)
@@ -38,7 +38,7 @@
{
public static Test suite()
{
- return JBossWSTestSetup.newTestSetup(JBWS1581TestCase.class, "jaxws-jbws1581.war, jaxws-jbws1581.jar");
+ return JBossWSTestSetup.newTestSetup(JBWS1581TestCase.class, "jaxws-jbws1581.ear, jaxws-jbws1581.jar");
}
public void testCall() throws Exception
Added: trunk/jbossws-tests/src/resources/jaxws/jbws1581/META-INF/jboss-app.xml
===================================================================
--- trunk/jbossws-tests/src/resources/jaxws/jbws1581/META-INF/jboss-app.xml (rev 0)
+++ trunk/jbossws-tests/src/resources/jaxws/jbws1581/META-INF/jboss-app.xml 2007-03-19 15:04:57 UTC (rev 2640)
@@ -0,0 +1,9 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+
+<!DOCTYPE jboss-app
+ PUBLIC "-//JBoss//DTD J2EE Application 1.4//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss-app_4_0.dtd">
+
+<jboss-app>
+ <loader-repository>jboss.ws.test:loader=JBWS1581</loader-repository>
+</jboss-app>
\ No newline at end of file
Property changes on: trunk/jbossws-tests/src/resources/jaxws/jbws1581/META-INF/jboss-app.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: trunk/jbossws-tests/src/resources/jaxws/jbws1581/WEB-INF/jboss-web.xml
===================================================================
--- trunk/jbossws-tests/src/resources/jaxws/jbws1581/WEB-INF/jboss-web.xml (rev 0)
+++ trunk/jbossws-tests/src/resources/jaxws/jbws1581/WEB-INF/jboss-web.xml 2007-03-19 15:04:57 UTC (rev 2640)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd">
+
+<jboss-web>
+
+ <class-loading>
+ <loader-repository>jbossws.jbws1581:domain=endpoint</loader-repository>
+ </class-loading>
+
+</jboss-web>
+
Property changes on: trunk/jbossws-tests/src/resources/jaxws/jbws1581/WEB-INF/jboss-web.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
17 years, 2 months