You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsrf-commits@ws.apache.org by sc...@apache.org on 2005/08/29 18:55:25 UTC
svn commit: r264165 - in /webservices/wsrf/trunk/src/java/org/apache/ws:
resource/ resource/handler/ resource/handler/axis/ resource/impl/
resource/tool/ resource/tool/velocity/ util/ util/jndi/ util/jndi/tools/
util/platform/ util/platform/axis/ util/...
Author: scamp
Date: Mon Aug 29 09:55:16 2005
New Revision: 264165
URL: http://svn.apache.org/viewcvs?rev=264165&view=rev
Log:
Updates for JSR109 implementation
Added:
webservices/wsrf/trunk/src/java/org/apache/ws/resource/impl/ResourceContextImpl.java
Modified:
webservices/wsrf/trunk/src/java/org/apache/ws/resource/ResourceCapability.java
webservices/wsrf/trunk/src/java/org/apache/ws/resource/ResourceDefinition.java
webservices/wsrf/trunk/src/java/org/apache/ws/resource/handler/ResourceHandler.java
webservices/wsrf/trunk/src/java/org/apache/ws/resource/handler/axis/AxisResourceContext.java
webservices/wsrf/trunk/src/java/org/apache/ws/resource/handler/axis/ResourceProvider.java
webservices/wsrf/trunk/src/java/org/apache/ws/resource/impl/ResourceCapabilityImpl.java
webservices/wsrf/trunk/src/java/org/apache/ws/resource/impl/ResourceDefinitionImpl.java
webservices/wsrf/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java
webservices/wsrf/trunk/src/java/org/apache/ws/resource/tool/velocity/ServiceProperties.java
webservices/wsrf/trunk/src/java/org/apache/ws/util/OperationInfo.java
webservices/wsrf/trunk/src/java/org/apache/ws/util/jndi/XmlBeanJndiUtils.java
webservices/wsrf/trunk/src/java/org/apache/ws/util/jndi/tools/JndiConfigUpdater.java
webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/JaxRpcPlatform.java
webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/axis/AxisJaxRpcPlatform.java
webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/jboss/JBossJaxRpcPlatform.java
webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/weblogic/WeblogicJaxRpcPlatform.java
webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/websphere/WebsphereJaxRpcPlatform.java
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/resource/ResourceCapability.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/resource/ResourceCapability.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/resource/ResourceCapability.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/resource/ResourceCapability.java Mon Aug 29 09:55:16 2005
@@ -107,4 +107,17 @@
* @return
*/
boolean implementsResourceCapability( QName capabilityName );
+
+ /**
+ * Returns a Map containing the OperationInfos for all operations exposed in the wsdl.
+ * @return A Map of all operations as OperationInfos
+ */
+ Map getAllOperations();
+
+ /**
+ * Returns the Binding QName associated with the current porttype
+ *
+ * @return Binding QName
+ */
+ QName getBindingName();
}
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/resource/ResourceDefinition.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/resource/ResourceDefinition.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/resource/ResourceDefinition.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/resource/ResourceDefinition.java Mon Aug 29 09:55:16 2005
@@ -16,6 +16,7 @@
package org.apache.ws.resource;
import javax.wsdl.Port;
+import javax.xml.namespace.QName;
/**
* A WSRF resource definition.
@@ -45,4 +46,11 @@
* @return the JWSDL Service for this resource definition
*/
Port getPort( );
+
+ /**
+ * The wsdl sevice name from the wsdl file. This is used for JSR109 configurations, but is not used as endpoint.
+ *
+ * @return QName of the wsdl service name.
+ */
+ QName getWsdlServiceName();
}
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/resource/handler/ResourceHandler.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/resource/handler/ResourceHandler.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/resource/handler/ResourceHandler.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/resource/handler/ResourceHandler.java Mon Aug 29 09:55:16 2005
@@ -26,11 +26,17 @@
import org.apache.ws.resource.i18n.MessagesImpl;
import org.apache.ws.util.XmlBeanUtils;
import org.apache.ws.util.NameUtils;
+import org.apache.ws.util.helper.Dom2SaajConverter;
+import org.apache.ws.util.platform.JaxRpcPlatform;
import org.apache.ws.util.i18n.Messages;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
import org.apache.xmlbeans.XmlOptions;
import org.apache.xmlbeans.impl.values.XmlAnyTypeImpl;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Element;
+
import javax.xml.namespace.QName;
import javax.xml.rpc.JAXRPCException;
import javax.xml.rpc.handler.GenericHandler;
@@ -46,6 +52,7 @@
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPHeaderElement;
+import javax.xml.soap.SOAPElement;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@@ -61,7 +68,7 @@
* @author Ian Springer
* @author Sal Campana
*/
-public abstract class ResourceHandler
+public class ResourceHandler
extends GenericHandler
{
private static final Log LOG = LogFactory.getLog( ResourceHandler.class );
@@ -130,7 +137,7 @@
org.apache.ws.util.soap.Body body = getSoapBody( envelope );
- ResourceContext resourceContext = createResourceContext( soapMsgContext );
+ ResourceContext resourceContext = JaxRpcPlatform.getJaxRpcPlatform().createResourceContext( soapMsgContext );
String addressingAction = resourceContext.getRequestAction( );
SoapMethodNameMap methodnameMap = new ServiceSoapMethodNameMap( resourceContext );
String methodNameFromAction =
@@ -220,7 +227,7 @@
for ( int i = 0; i < responseBodyElems.size( ); i++ )
{
XmlObject responseBodyElem = (XmlObject) responseBodyElems.get( i );
- SOAPBodyElement[] soapBodyElements = createSOAPBodyElements( responseBodyElem );
+ SOAPBodyElement[] soapBodyElements = createSOAPBodyElements( responseBodyElem, responseBody);
for ( int j = 0; j < soapBodyElements.length; j++ )
{
SOAPBodyElement soapBodyElement = soapBodyElements[j];
@@ -276,25 +283,43 @@
m_handlerOptions = ( handlerConfig != null ) ? handlerConfig : new HashMap( );
}
- /**
- * Creates a {@link ResourceContext} for this request.
- *
- * @param soapMsgContext the JAX-RPC SOAP message context for this request
- *
- * @return a ResourceContext for this request
- */
- protected abstract ResourceContext createResourceContext( SOAPMessageContext soapMsgContext )
- throws Exception;
+ protected SOAPBodyElement[] createSOAPBodyElements(XmlObject responseBodyElem, SOAPBody soapBody)
+ {
+ List bodyElems = new ArrayList();
+ Node node = responseBodyElem.newDomNode();
- /**
- * DOCUMENT_ME
- *
- * @param responseBodyElem DOCUMENT_ME
- *
- * @return DOCUMENT_ME
- */
- protected abstract SOAPBodyElement[] createSOAPBodyElements( XmlObject responseBodyElem );
+ NodeList childNodes = node.getChildNodes();
+ for (int i = 0; i < childNodes.getLength(); i++)
+ {
+ Node child = childNodes.item(i);
+ //add all child elements
+ if (child.getNodeType() == Node.ELEMENT_NODE)
+ {
+ try
+ {
+ SOAPBodyElement soapBodyElement = soapBody.addBodyElement(NameUtils.createName(child.getLocalName(), child.getPrefix(), child.getNamespaceURI()));
+ Dom2SaajConverter dom2Saaj = new Dom2SaajConverter();
+ SOAPElement childSoapElement = dom2Saaj.toSOAPElement((Element) child);
+
+ NodeList children = childSoapElement.getChildNodes();
+
+ for (int j = 0; j < children.getLength(); j++)
+ {
+ soapBodyElement.appendChild(children.item(j));
+ }
+
+ bodyElems.add(soapBodyElement);
+ }
+ catch (SOAPException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ return (SOAPBodyElement[]) bodyElems.toArray(new SOAPBodyElement[0]);
+ }
/**
* DOCUMENT_ME
*
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/resource/handler/axis/AxisResourceContext.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/resource/handler/axis/AxisResourceContext.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/resource/handler/axis/AxisResourceContext.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/resource/handler/axis/AxisResourceContext.java Mon Aug 29 09:55:16 2005
@@ -18,7 +18,7 @@
import org.apache.axis.handlers.soap.SOAPService;
import org.apache.ws.resource.i18n.Keys;
import org.apache.ws.resource.i18n.MessagesImpl;
-import org.apache.ws.resource.impl.AbstractResourceContext;
+import org.apache.ws.resource.impl.ResourceContextImpl;
import org.apache.ws.util.i18n.Messages;
import javax.xml.rpc.handler.MessageContext;
import javax.xml.rpc.handler.soap.SOAPMessageContext;
@@ -34,7 +34,7 @@
* @author Ian Springer
*/
public class AxisResourceContext
- extends AbstractResourceContext
+ extends ResourceContextImpl
{
//private static final Log LOG = LogFactory.getLog( AxisResourceContext.class.getName( ) );
private static final Messages MSG = MessagesImpl.getInstance( );
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/resource/handler/axis/ResourceProvider.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/resource/handler/axis/ResourceProvider.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/resource/handler/axis/ResourceProvider.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/resource/handler/axis/ResourceProvider.java Mon Aug 29 09:55:16 2005
@@ -39,6 +39,7 @@
import javax.xml.rpc.handler.soap.SOAPMessageContext;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPMessage;
+import javax.xml.soap.SOAPBody;
import java.io.StringWriter;
import java.io.Writer;
import java.util.ArrayList;
@@ -292,9 +293,11 @@
*
* @param responseBodyElem DOCUMENT_ME
*
+ * @param soapBody
* @return DOCUMENT_ME
*/
- protected SOAPBodyElement[] createSOAPBodyElements( XmlObject responseBodyElem )
+/*
+ protected SOAPBodyElement[] createSOAPBodyElements(XmlObject responseBodyElem, SOAPBody soapBody)
{
List bodyElems = new ArrayList( );
Node node = responseBodyElem.newDomNode( );
@@ -312,6 +315,7 @@
return (SOAPBodyElement[]) bodyElems.toArray( new SOAPBodyElement[0] );
}
+*/
private Message createMessage( MessageContext axisMsgContext )
{
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/resource/impl/ResourceCapabilityImpl.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/resource/impl/ResourceCapabilityImpl.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/resource/impl/ResourceCapabilityImpl.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/resource/impl/ResourceCapabilityImpl.java Mon Aug 29 09:55:16 2005
@@ -19,10 +19,17 @@
import org.apache.ws.resource.ResourceCapability;
import org.apache.ws.util.WsdlUtils;
import org.apache.ws.util.WsrfWsdlUtils;
+import org.apache.ws.util.OperationInfo;
+
import javax.wsdl.Definition;
import javax.wsdl.Import;
import javax.wsdl.Operation;
import javax.wsdl.PortType;
+import javax.wsdl.Binding;
+import javax.wsdl.Input;
+import javax.wsdl.Message;
+import javax.wsdl.Output;
+import javax.wsdl.Part;
import javax.wsdl.factory.WSDLFactory;
import javax.wsdl.xml.WSDLReader;
import javax.xml.namespace.QName;
@@ -55,42 +62,64 @@
private String m_metadataDescLocation;
private QName m_metadataDescName;
private URL m_baseUrl;
+ private QName m_bindingName;
- /**
- * Creates a new {@link ResourceCapabilityImpl} based on the specified JWSDL definition and portType.
- *
- * @param def a JWSDL definition
- * @param baseURL
- */
- public ResourceCapabilityImpl( Definition def,
- PortType portType,
- URL baseURL )
- throws InvalidWsrfWsdlException
- {
- m_def = def;
- m_portType = portType;
- m_baseUrl = baseURL;
- initImplementedPortTypes( );
- initCustomOperations( );
- initPropertyNames( );
- m_metadataDescName = WsrfWsdlUtils.getMetadataDescriptorName( m_portType );
- m_metadataDescLocation = WsrfWsdlUtils.getMetadataDescriptorLocation( m_portType );
- if ( !m_def.getTargetNamespace( ).startsWith( "http://docs.oasis-open.org/" ) )
- {
- validateOperations( );
- validateProperties( );
- }
- }
-
- /**
- * DOCUMENT_ME
- *
- * @return DOCUMENT_ME
- */
- public String[] getCustomOperationNames( )
- {
- return m_customOpNames;
- }
+ /**
+ * Creates a new {@link ResourceCapabilityImpl} based on the specified JWSDL definition and portType.
+ *
+ * @param def a JWSDL definition
+ * @param baseURL
+ */
+ public ResourceCapabilityImpl( Definition def,
+ PortType portType,
+ URL baseURL )
+ throws InvalidWsrfWsdlException
+ {
+ m_def = def;
+ m_portType = portType;
+ m_baseUrl = baseURL;
+ m_bindingName = getBindingName(def, m_portType.getQName());
+ initImplementedPortTypes( );
+ initCustomOperations( );
+ initPropertyNames( );
+ m_metadataDescName = WsrfWsdlUtils.getMetadataDescriptorName( m_portType );
+ m_metadataDescLocation = WsrfWsdlUtils.getMetadataDescriptorLocation( m_portType );
+ if ( !m_def.getTargetNamespace( ).startsWith( "http://docs.oasis-open.org/" ) )
+ {
+ validateOperations( );
+ validateProperties( );
+ }
+ }
+
+ private QName getBindingName(Definition def, QName portTypeQName)
+ {
+ Map bindings = def.getBindings();
+ Iterator iterator = bindings.values().iterator();
+ while (iterator.hasNext())
+ {
+ Binding binding = (Binding) iterator.next();
+ if(binding.getPortType().getQName().equals(portTypeQName))
+ {
+ return binding.getQName();
+ }
+ }
+ return null;
+ }
+
+ public QName getBindingName()
+ {
+ return m_bindingName;
+ }
+
+ /**
+ * DOCUMENT_ME
+ *
+ * @return DOCUMENT_ME
+ */
+ public String[] getCustomOperationNames( )
+ {
+ return m_customOpNames;
+ }
/**
* @return
@@ -519,6 +548,21 @@
}
return importIsRedundant;
+ }
+
+ public Map getAllOperations()
+ {
+ Map opMap = new HashMap();
+ List operations = m_portType.getOperations();
+
+ for (int i = 0; i < operations.size(); i++)
+ {
+ Operation o = (Operation)operations.get(i);
+ //does this work??
+ OperationInfo opInfo = new OperationInfo(o, m_portType.getQName().getNamespaceURI());
+ opMap.put(o.getName(), opInfo);
+ }
+ return opMap;
}
private void initCustomOperations( )
Added: webservices/wsrf/trunk/src/java/org/apache/ws/resource/impl/ResourceContextImpl.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/resource/impl/ResourceContextImpl.java?rev=264165&view=auto
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/resource/impl/ResourceContextImpl.java (added)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/resource/impl/ResourceContextImpl.java Mon Aug 29 09:55:16 2005
@@ -0,0 +1,403 @@
+/*=============================================================================*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *=============================================================================*/
+package org.apache.ws.resource.impl;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.ws.Soap1_1Constants;
+import org.apache.ws.addressing.AddressingUtils;
+import org.apache.ws.resource.JndiConstants;
+import org.apache.ws.resource.Resource;
+import org.apache.ws.resource.ResourceContext;
+import org.apache.ws.resource.ResourceContextException;
+import org.apache.ws.resource.ResourceException;
+import org.apache.ws.resource.ResourceHome;
+import org.apache.ws.resource.handler.ResourceHandler;
+import org.apache.ws.resource.faults.FaultException;
+import org.apache.ws.resource.i18n.Keys;
+import org.apache.ws.resource.i18n.MessagesImpl;
+import org.apache.ws.util.i18n.Messages;
+
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.xml.rpc.handler.MessageContext;
+import javax.xml.rpc.handler.soap.SOAPMessageContext;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPHeaderElement;
+import javax.xml.soap.SOAPMessage;
+import javax.xml.soap.SOAPHeader;
+import javax.xml.namespace.QName;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * An implementation of a resource context.
+ */
+public class ResourceContextImpl
+ implements ResourceContext
+{
+ private static final Log LOG = LogFactory.getLog( ResourceContextImpl.class.getName( ) );
+ private static final Messages MSG = MessagesImpl.getInstance( );
+ private SOAPMessage m_msg;
+ private ResourceHome m_home;
+ private String m_serviceName;
+ private URL m_serviceURL;
+ private Map m_propsMap = Collections.synchronizedMap( new HashMap( ) );
+ private String m_baseURL;
+ private String m_action;
+ private SOAPMessageContext m_msgContext;
+
+ /**
+ * Creates a new {@link ResourceContextImpl} object.
+ *
+ * @param soapMsgContext SOAP message context corresponding to a particular request
+ */
+ public ResourceContextImpl( SOAPMessageContext soapMsgContext )
+ throws Exception
+ {
+ if ( soapMsgContext == null )
+ {
+ throw new IllegalArgumentException( MSG.getMessage( Keys.NULL_SOAPMSGCTX ) );
+ }
+
+ m_msgContext = soapMsgContext;
+ m_msg = soapMsgContext.getMessage( );
+ extractFields( soapMsgContext );
+ try
+ {
+ m_home = (ResourceHome) new InitialContext( ).lookup( getResourceHomeLocation( ) );
+ }
+ catch ( NamingException ne )
+ {
+ ne.printStackTrace( );
+ throw new ResourceContextException( ne );
+ }
+
+ if ( m_home instanceof AbstractResourceHome )
+ {
+ AbstractResourceHome abstractResourceHome = ( (AbstractResourceHome) m_home );
+
+ //check if home has been initialized
+ synchronized ( abstractResourceHome )
+ {
+ if ( !abstractResourceHome.isInitialized( ) )
+ {
+ abstractResourceHome.init( );
+ }
+ }
+ }
+ }
+
+ /**
+ * DOCUMENT_ME
+ *
+ * @return DOCUMENT_ME
+ */
+ public String getBaseURL( )
+ {
+ return m_baseURL;
+ }
+
+ /**
+ * DOCUMENT_ME
+ *
+ * @param name DOCUMENT_ME
+ * @param value DOCUMENT_ME
+ */
+ public void setProperty( String name,
+ Object value )
+ {
+ m_propsMap.put( name, value );
+ }
+
+ /**
+ * DOCUMENT_ME
+ *
+ * @param name DOCUMENT_ME
+ *
+ * @return DOCUMENT_ME
+ */
+ public Object getProperty( String name )
+ {
+ return this.m_propsMap.get( name );
+ }
+
+ /**
+ * DOCUMENT_ME
+ *
+ * @return DOCUMENT_ME
+ */
+ public Iterator getPropertyNames( )
+ {
+ return this.m_propsMap.keySet( ).iterator( );
+ }
+
+ /**
+ * DOCUMENT_ME
+ *
+ * @return DOCUMENT_ME
+ */
+ public String getRequestAction( )
+ {
+ return m_action;
+ }
+
+ /**
+ * @see org.apache.ws.resource.ResourceContext#getResource()
+ */
+ public Resource getResource( )
+ throws ResourceException
+ {
+ ResourceHome home = getResourceHome( );
+ Object id = home.extractResourceIdentifier( this );
+ return home.find( id );
+ }
+
+ /**
+ * DOCUMENT_ME
+ *
+ * @return DOCUMENT_ME
+ */
+ public ResourceHome getResourceHome( )
+ {
+ return m_home;
+ }
+
+ /**
+ * DOCUMENT_ME
+ *
+ * @return DOCUMENT_ME
+ */
+ public synchronized String getResourceHomeLocation( )
+ {
+ String homeLocation =
+ JndiConstants.CONTEXT_NAME_SERVICES + "/" + getServiceName( ) + "/" + JndiConstants.ATOMIC_NAME_HOME;
+ LOG.debug( MSG.getMessage( Keys.JNDI_HOME_LOCATION, homeLocation ) );
+ return homeLocation;
+ }
+
+ /**
+ * @see ResourceContext#setResponseAction(java.net.URI)
+ */
+ public void setResponseAction( URI action )
+ {
+ if ( action != null )
+ {
+ m_msgContext.setProperty( ResourceHandler.CONTEXT_PROP_WSA_RESPONSE_ACTION, action.toString() );
+ }
+ }
+
+ /**
+ * DOCUMENT_ME
+ *
+ * @return DOCUMENT_ME
+ */
+ public SOAPMessage getSOAPMessage( )
+ {
+ return m_msg;
+ }
+
+ /**
+ * Returns target service name associated with this context.
+ *
+ * @return the target m_serviceName that was set with {@link #setServiceName(String) setService()}. If set to
+ * <code>null</code> or not set at all, by default it returns the target service name associated with the
+ * underlying SOAP message context.
+ */
+ public String getServiceName( )
+ {
+ return m_serviceName;
+ }
+
+ /**
+ * DOCUMENT_ME
+ *
+ * @return DOCUMENT_ME
+ */
+ public URL getServiceURL( )
+ {
+ return m_serviceURL;
+ }
+
+ /**
+ * DOCUMENT_ME
+ *
+ * @param name DOCUMENT_ME
+ *
+ * @return DOCUMENT_ME
+ */
+ public boolean containsProperty( String name )
+ {
+ return this.m_propsMap.containsKey( name );
+ }
+
+ /**
+ * DOCUMENT_ME
+ *
+ * @param name DOCUMENT_ME
+ */
+ public void removeProperty( String name )
+ {
+ this.m_propsMap.remove( name );
+ }
+
+ /**
+ * Returns the value of the WS-Addressing Action header element.
+ *
+ * @param msgContext the context for the current SOAP request; must not be null
+ *
+ * @return
+ */
+ protected String getAddressingAction( SOAPMessageContext msgContext )
+ {
+ SOAPHeaderElement actionHeaderElem = AddressingUtils.getHeaderElement( getSOAPHeader( msgContext ), new QName( getAddressingNamespaceURI( msgContext ), "Action" ) );
+ if ( actionHeaderElem == null )
+ {
+ LOG.debug( MSG.getMessage( Keys.NO_WSA_ACTION ) );
+ throw new FaultException( Soap1_1Constants.FAULT_CLIENT,
+ "A WS-Addressing Action SOAP header element is required by this endpoint." );
+ }
+ String action = actionHeaderElem.getValue();
+ try
+ {
+ new URI( action );
+ }
+ catch ( URISyntaxException urise )
+ {
+ LOG.debug( MSG.getMessage( Keys.INVALID_WSA_ACTION, action ) );
+ throw new FaultException( Soap1_1Constants.FAULT_CLIENT,
+ "The WS-Addressing Action specified in the SOAP header is not a valid URI." );
+ }
+ LOG.debug( MSG.getMessage( Keys.FOUND_WSA_ACTION, action ) );
+ return action;
+ }
+
+ /**
+ * Sets the target m_serviceName of this context.
+ *
+ * @param serviceName m_serviceName name.
+ */
+ protected void setServiceName( String serviceName )
+ {
+ m_serviceName = serviceName;
+ }
+
+ /**
+ * DOCUMENT_ME
+ *
+ * @param msgContext DOCUMENT_ME
+ *
+ * @return DOCUMENT_ME
+ */
+ protected String getServiceName( MessageContext msgContext )
+ {
+ URL serviceURL = ( m_serviceURL != null ) ? m_serviceURL : getServiceURL( );
+ //extract just the service name from the url
+ String serviceName = serviceURL.toString();
+ serviceName = serviceName.substring(serviceName.lastIndexOf("/")+1);
+ return serviceName;
+ }
+
+ /**
+ * DOCUMENT_ME
+ *
+ * @param msgContext the context for the current SOAP request; must not be null
+ *
+ * @return DOCUMENT_ME
+ */
+ protected URL getServiceURL( SOAPMessageContext msgContext )
+ {
+ SOAPHeaderElement toHeaderElem = AddressingUtils.getHeaderElement( getSOAPHeader( msgContext ), new QName( getAddressingNamespaceURI( msgContext ), "To" ) );
+ String serviceURL;
+ if ( toHeaderElem != null )
+ {
+ serviceURL = toHeaderElem.getValue();
+ }
+ else
+ {
+ serviceURL = getAddressingNamespaceURI( msgContext ) + "/anonymous";
+ }
+ try
+ {
+ LOG.debug( MSG.getMessage( Keys.GET_SERVICE_URL_FROM_ADDR_HDR, serviceURL ) );
+ return new URL( serviceURL );
+ }
+ catch ( MalformedURLException murle )
+ {
+ LOG.debug( MSG.getMessage( Keys.INVALID_WSA_TO, serviceURL ) );
+ throw new FaultException( Soap1_1Constants.FAULT_CLIENT,
+ "The WS-Addressing destination specified in the SOAP header (i.e. wsa:To header element) is not a valid URI." );
+ }
+ }
+
+ private String getBaseURL( URL serviceURL )
+ {
+ String s = serviceURL.toString( );
+ s = s.substring( 0,
+ s.lastIndexOf( "/" ) );
+ return s;
+ }
+
+ private void extractFields( SOAPMessageContext msgContext )
+ {
+ m_action = getAddressingAction( msgContext );
+ m_serviceURL = getServiceURL( msgContext );
+ m_serviceName = getServiceName( msgContext );
+ m_baseURL = getBaseURL( m_serviceURL );
+ extractProperties( msgContext );
+ }
+
+ private String getAddressingNamespaceURI( SOAPMessageContext msgContext )
+ {
+
+ String wsaNsURI = (String) msgContext.getProperty( ResourceHandler.CONTEXT_PROP_WSA_NAMESPACE_URI );
+ if ( wsaNsURI == null )
+ {
+ wsaNsURI = AddressingUtils.getAddressingNamespaceURI( getSOAPHeader( msgContext ) );
+ msgContext.setProperty( ResourceHandler.CONTEXT_PROP_WSA_NAMESPACE_URI, wsaNsURI );
+ }
+ return wsaNsURI;
+ }
+
+ private SOAPHeader getSOAPHeader( SOAPMessageContext msgContext )
+ {
+ try
+ {
+ return msgContext.getMessage().getSOAPHeader();
+ }
+ catch ( SOAPException soape )
+ {
+ throw new RuntimeException( "Failed to extract header from SOAP message.", soape );
+ }
+ }
+
+ private void extractProperties( MessageContext msgContext )
+ {
+ Iterator propertyNames = msgContext.getPropertyNames( );
+ while ( propertyNames.hasNext( ) )
+ {
+ String keyName = (String) propertyNames.next( );
+ m_propsMap.put( keyName,
+ msgContext.getProperty( keyName ) );
+ }
+ }
+}
\ No newline at end of file
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/resource/impl/ResourceDefinitionImpl.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/resource/impl/ResourceDefinitionImpl.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/resource/impl/ResourceDefinitionImpl.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/resource/impl/ResourceDefinitionImpl.java Mon Aug 29 09:55:16 2005
@@ -23,6 +23,7 @@
import javax.wsdl.PortType;
import javax.wsdl.extensions.ExtensibilityElement;
import javax.wsdl.extensions.soap.SOAPAddress;
+import javax.xml.namespace.QName;
import java.net.URL;
import java.util.List;
@@ -38,27 +39,30 @@
private Port m_port;
private String m_name;
private String m_endpointURL;
+ private QName m_wsdlServiceName;
- /**
- * Creates a new {@link ResourceDefinitionImpl} object.
- *
- * @param def DOCUMENT_ME
- * @param port DOCUMENT_ME
- * @param baseUrl DOCUMENT_ME
- *
- * @throws InvalidWsrfWsdlException DOCUMENT_ME
- */
- public ResourceDefinitionImpl( Definition def,
- javax.wsdl.Port port,
- URL baseUrl )
- throws InvalidWsrfWsdlException
- {
- super( def,
- getResourcePortType( port ), baseUrl );
- m_port = port;
- m_name = port.getName( );
- m_endpointURL = extractEndpointURL( m_port );
- }
+ /**
+ * Creates a new {@link ResourceDefinitionImpl} object.
+ *
+ * @param def DOCUMENT_ME
+ * @param qName
+ * @param port DOCUMENT_ME
+ * @param baseUrl DOCUMENT_ME
+ *
+ * @throws InvalidWsrfWsdlException DOCUMENT_ME
+ */
+ public ResourceDefinitionImpl(Definition def,
+ QName wsdlServiceName, javax.wsdl.Port port,
+ URL baseUrl)
+ throws InvalidWsrfWsdlException
+ {
+ super( def,
+ getResourcePortType( port ), baseUrl );
+ m_port = port;
+ m_wsdlServiceName = wsdlServiceName;
+ m_name = port.getName( );
+ m_endpointURL = extractEndpointURL( m_port );
+ }
/**
* DOCUMENT_ME
@@ -135,4 +139,9 @@
return endpointURL;
}
+
+ public QName getWsdlServiceName()
+ {
+ return m_wsdlServiceName;
+ }
}
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java Mon Aug 29 09:55:16 2005
@@ -25,6 +25,7 @@
import org.apache.velocity.app.Velocity;
import org.apache.velocity.runtime.RuntimeConstants;
import org.apache.ws.resource.ResourceDefinition;
+import org.apache.ws.resource.handler.ResourceHandler;
import org.apache.ws.resource.i18n.Keys;
import org.apache.ws.resource.i18n.MessagesImpl;
import org.apache.ws.resource.impl.ResourceDefinitionImpl;
@@ -33,6 +34,8 @@
import org.apache.ws.util.OperationInfo;
import org.apache.ws.util.WsrfWsdlUtils;
import org.apache.ws.util.XmlBeanNameUtils;
+import org.apache.ws.util.jsr109.DummyEndpointImpl;
+import org.apache.ws.util.jsr109.DummyEndpoint;
import org.apache.ws.util.i18n.Messages;
import org.apache.ws.util.velocity.CommonsLogLogSystem;
import org.apache.xmlbeans.XmlObject;
@@ -387,6 +390,10 @@
props.setPortTypeQName( portTypeQName );
QName serviceQname = new QName( targetNamespace, serviceName );
props.setServiceQName( serviceQname );
+
+ props.setWsdlServiceName( resourceDef.getWsdlServiceName());
+
+ props.setServiceMethodMap(resourceDef.getAllOperations());
return props;
}
@@ -399,6 +406,13 @@
protected VelocityContext updateVelocityContext( VelocityContext context,
ResourceDefinition resourceDef )
{
+ //dummy endpoint vars for jsr109...
+ context.put("jsr109EndpointClassName", DummyEndpointImpl.class.getName());
+ context.put("jsr109EndpointInterfaceName", DummyEndpoint.class.getName());
+ context.put("jsr109EndpointDummyJavaOperation", DummyEndpoint.class.getMethods()[0].getName());
+
+ //handler var for jsr109
+ context.put("resourceHandlerClassName", ResourceHandler.class.getName());
return context;
}
@@ -876,6 +890,14 @@
{
processTemplate( context, "templates/build.properties.vm", outputFile );
}
+
+ //jsr109 artifacts
+ outputFile = new File( packageDir, "web.xml" );
+ processTemplate( context, "templates/jsr109/web.vm", outputFile );
+ outputFile = new File( packageDir, "webservices.xml" );
+ processTemplate( context, "templates/jsr109/webservices.vm", outputFile );
+ outputFile = new File( packageDir, capitalizedServiceName + "_jaxrpc-mapping.xml" );
+ processTemplate( context, "templates/jsr109/jaxrpc-mapping.vm", outputFile );
}
catch ( Exception e )
{
@@ -902,6 +924,7 @@
{
Port port = (Port) iterator.next( );
ResourceDefinition resourceDef = new ResourceDefinitionImpl( def,
+ service.getQName(),
port,
wsdlFile.toURL( ) );
File serviceDir = new File( m_outputDir,
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/resource/tool/velocity/ServiceProperties.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/resource/tool/velocity/ServiceProperties.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/resource/tool/velocity/ServiceProperties.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/resource/tool/velocity/ServiceProperties.java Mon Aug 29 09:55:16 2005
@@ -93,16 +93,20 @@
private String m_webbAppName;
private String m_namespaceVersionHolderClassName;
private String m_port;
-
- /**
- * Creates a new {@link ServiceProperties} object.
- *
- * @param resourceDef DOCUMENT_ME
- */
- public ServiceProperties( ResourceDefinition resourceDef )
- {
- m_resourceDef = resourceDef;
- }
+ private Map m_serviceMethodMap;
+ private QName m_bindingName;
+ private QName m_wsdlServiceName;
+
+ /**
+ * Creates a new {@link ServiceProperties} object.
+ *
+ * @param resourceDef DOCUMENT_ME
+ */
+ public ServiceProperties( ResourceDefinition resourceDef )
+ {
+ m_resourceDef = resourceDef;
+ m_bindingName = resourceDef.getBindingName();
+ }
/**
* DOCUMENT_ME
@@ -768,4 +772,28 @@
{
return m_resourceDef.implementsResourceCapability( capability );
}
+
+ public void setServiceMethodMap(Map allOperations)
+ {
+ m_serviceMethodMap = allOperations;
+ }
+ public Map getServiceMethodMap()
+ {
+ return m_serviceMethodMap;
+ }
+
+ public QName getBindingName()
+ {
+ return m_bindingName;
+ }
+
+ public void setWsdlServiceName(QName wsdlServiceName)
+ {
+ m_wsdlServiceName = wsdlServiceName;
+ }
+
+ public QName getWsdlServiceName()
+ {
+ return m_wsdlServiceName;
+ }
}
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/util/OperationInfo.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/util/OperationInfo.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/util/OperationInfo.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/util/OperationInfo.java Mon Aug 29 09:55:16 2005
@@ -40,102 +40,153 @@
private String m_fullyQualifiedResponseClassName;
private String m_fullyQualifiedRequestClassName;
- /**
- * Creates a new {@link OperationInfo} object.
- *
- * @param op DOCUMENT_ME
- * @param targetNamespace DOCUMENT_ME
- */
- public OperationInfo( Operation op,
- String targetNamespace )
- {
- m_methodName = StringUtils.uncapitalize( op.getName( ) );
- Input input = op.getInput( );
- if ( input != null )
- {
- Map inputParts = input.getMessage( ).getParts( );
- if ( inputParts.size( ) > 1 )
- {
- throw new RuntimeException( "WSDL input message named " + input.getMessage( ).getQName( )
- + " has more than one part - input messages must have at most one part." );
- }
-
- if ( inputParts.size( ) == 1 )
- {
- Part inputPart = (Part) inputParts.values( ).iterator( ).next( );
- m_requestElemName = inputPart.getElementName( );
- m_fullyQualifiedRequestClassName =
- XmlBeanNameUtils.getDocumentElementXmlBeanClassName( m_requestElemName );
- }
- else // no input parts
- {
- m_fullyQualifiedRequestClassName = "";
- }
- }
- else
- {
- m_fullyQualifiedRequestClassName = "";
- }
-
- Output output = op.getOutput( );
- if ( output != null )
- {
- Map outputParts = output.getMessage( ).getParts( );
- if ( outputParts.size( ) > 1 )
- {
- throw new RuntimeException( "WSDL output message named " + input.getMessage( ).getQName( )
- + " has more than one part - output messages must have at most one part." );
- }
-
- if ( outputParts.size( ) == 1 )
- {
- Part outputPart = (Part) outputParts.values( ).iterator( ).next( );
- m_fullyQualifiedResponseClassName =
- XmlBeanNameUtils.getDocumentElementXmlBeanClassName( outputPart.getElementName( ) );
- }
- else // no output parts
- {
- m_fullyQualifiedResponseClassName = "void";
- }
- }
- else // no output
- {
- m_fullyQualifiedResponseClassName = "void";
- }
-
- m_methodSig =
- m_fullyQualifiedResponseClassName + " " + m_methodName + "( " + m_fullyQualifiedRequestClassName
- + " requestDoc )";
-
- //add faults to signature....
- m_faults = op.getFaults( );
- if ( !m_faults.isEmpty( ) )
- {
- m_methodSig += " throws ";
- Iterator iterator = m_faults.keySet( ).iterator( );
- while ( iterator.hasNext( ) )
- {
- String faultName = (String) iterator.next( );
- Fault fault = (Fault) m_faults.get( faultName );
- Part part = (Part) fault.getMessage( ).getParts( ).values( ).iterator( ).next( );
- String javaPackageName = GenerationUtils.getJavaPackageName( targetNamespace );
- if ( part.getElementName( ) == null )
- {
- //its a type..get the name of the type
- faultName = part.getTypeName( ).getLocalPart( );
- }
-
- faultName = javaPackageName + "." + faultName + "Exception";
- m_methodSig += faultName;
- if ( iterator.hasNext( ) )
- {
- m_methodSig += ", ";
- }
- }
- }
- }
+ private String m_wsdlOperationName;
+ private String m_paramPosition;
+ private String m_parameterMode;
+ private QName m_requestMsgQName; //if request
+ private String m_requestPartName;
+ private QName m_responseMsgQName; //if response
+ private String m_responsePartName;
+
+ /**
+ * Creates a new {@link OperationInfo} object.
+ *
+ * @param op DOCUMENT_ME
+ * @param targetNamespace DOCUMENT_ME
+ */
+ public OperationInfo( Operation op,
+ String targetNamespace )
+ {
+ m_methodName = StringUtils.uncapitalize( op.getName( ) );
+ m_wsdlOperationName = op.getName();
+ m_paramPosition = "0";
+ m_parameterMode = "IN";
+ Input input = op.getInput( );
+
+ if ( input != null )
+ {
+ m_requestMsgQName = input.getMessage().getQName();
+ Map inputParts = input.getMessage( ).getParts( );
+ if ( inputParts.size( ) > 1 )
+ {
+ throw new RuntimeException( "WSDL input message named " + input.getMessage( ).getQName( )
+ + " has more than one part - input messages must have at most one part." );
+ }
+
+ if ( inputParts.size( ) == 1 )
+ {
+ Part inputPart = (Part) inputParts.values( ).iterator( ).next( );
+ m_requestPartName = inputPart.getName();
+ m_requestElemName = inputPart.getElementName( );
+ m_fullyQualifiedRequestClassName =
+ XmlBeanNameUtils.getDocumentElementXmlBeanClassName( m_requestElemName );
+ }
+ else // no input parts
+ {
+ m_fullyQualifiedRequestClassName = "";
+ }
+ }
+ else
+ {
+ m_fullyQualifiedRequestClassName = "";
+ }
+
+ Output output = op.getOutput( );
+ if ( output != null )
+ {
+ m_responseMsgQName = output.getMessage().getQName();
+ Map outputParts = output.getMessage( ).getParts( );
+ if ( outputParts.size( ) > 1 )
+ {
+ throw new RuntimeException( "WSDL output message named " + input.getMessage( ).getQName( )
+ + " has more than one part - output messages must have at most one part." );
+ }
+
+ if ( outputParts.size( ) == 1 )
+ {
+ Part outputPart = (Part) outputParts.values( ).iterator( ).next( );
+ m_responsePartName = outputPart.getName();
+ m_fullyQualifiedResponseClassName =
+ XmlBeanNameUtils.getDocumentElementXmlBeanClassName( outputPart.getElementName( ) );
+ }
+ else // no output parts
+ {
+ m_fullyQualifiedResponseClassName = "void";
+ }
+ }
+ else // no output
+ {
+ m_fullyQualifiedResponseClassName = "void";
+ }
+
+ m_methodSig =
+ m_fullyQualifiedResponseClassName + " " + m_methodName + "( " + m_fullyQualifiedRequestClassName
+ + " requestDoc )";
+
+ //add faults to signature....
+ m_faults = op.getFaults( );
+ if ( !m_faults.isEmpty( ) )
+ {
+ m_methodSig += " throws ";
+ Iterator iterator = m_faults.keySet( ).iterator( );
+ while ( iterator.hasNext( ) )
+ {
+ String faultName = (String) iterator.next( );
+ Fault fault = (Fault) m_faults.get( faultName );
+ Part part = (Part) fault.getMessage( ).getParts( ).values( ).iterator( ).next( );
+ String javaPackageName = GenerationUtils.getJavaPackageName( targetNamespace );
+ if ( part.getElementName( ) == null )
+ {
+ //its a type..get the name of the type
+ faultName = part.getTypeName( ).getLocalPart( );
+ }
+
+ faultName = javaPackageName + "." + faultName + "Exception";
+ m_methodSig += faultName;
+ if ( iterator.hasNext( ) )
+ {
+ m_methodSig += ", ";
+ }
+ }
+ }
+ }
+
+ public String getWsdlOperationName()
+ {
+ return m_wsdlOperationName;
+ }
+
+ public String getParamPosition()
+ {
+ return m_paramPosition;
+ }
+
+ public String getParameterMode()
+ {
+ return m_parameterMode;
+ }
+
+ public QName getRequestMsgQName()
+ {
+ return m_requestMsgQName;
+ }
+
+ public String getRequestPartName()
+ {
+ return m_requestPartName;
+ }
+
+ public QName getResponseMsgQName()
+ {
+ return m_responseMsgQName;
+ }
+
+ public String getResponsePartName()
+ {
+ return m_responsePartName;
+ }
- /**
+ /**
* DOCUMENT_ME
*
* @return DOCUMENT_ME
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/util/jndi/XmlBeanJndiUtils.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/util/jndi/XmlBeanJndiUtils.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/util/jndi/XmlBeanJndiUtils.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/util/jndi/XmlBeanJndiUtils.java Mon Aug 29 09:55:16 2005
@@ -228,7 +228,9 @@
XmlBeanNamingContext namingContext = new XmlBeanNamingContext(envContext);
//load the config file
- JndiConfigDocument jndiConfigDoc = (JndiConfigDocument) XmlObject.Factory.parse(configStream);
+ XmlOptions options = new XmlOptions();
+ options.setLoadStripWhitespace();
+ JndiConfigDocument jndiConfigDoc = (JndiConfigDocument) XmlObject.Factory.parse(configStream, options);
validateJndiConfig(jndiConfigDoc);
JndiConfigDocument.JndiConfig jndiConfig = jndiConfigDoc.getJndiConfig();
GlobalDocument.Global global = jndiConfig.getGlobal();
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/util/jndi/tools/JndiConfigUpdater.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/util/jndi/tools/JndiConfigUpdater.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/util/jndi/tools/JndiConfigUpdater.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/util/jndi/tools/JndiConfigUpdater.java Mon Aug 29 09:55:16 2005
@@ -21,6 +21,8 @@
import org.apache.tools.ant.types.FileSet;
import org.apache.wsfx.wsrf.jndi.config.JndiConfigDocument;
import org.apache.wsfx.wsrf.jndi.config.ServiceDocument;
+import org.apache.xmlbeans.XmlOptions;
+
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
@@ -183,7 +185,9 @@
{
log( "Deploying Jndi-Config " + deployJndiConfig + " to configuration Jndi-Config " + m_jndiConfig + "..." );
File jndiConfigFile = new File( m_jndiConfig );
- JndiConfigDocument sourceConfig = JndiConfigDocument.Factory.parse( new File( m_jndiConfig ) );
+ XmlOptions options = new XmlOptions();
+ options.setLoadStripWhitespace();
+ JndiConfigDocument sourceConfig = JndiConfigDocument.Factory.parse( new File( m_jndiConfig ), options );
JndiConfigDocument.JndiConfig jndiConfig = sourceConfig.getJndiConfig( );
Map services = new HashMap( );
ServiceDocument.Service[] serviceArray = jndiConfig.getServiceArray( );
@@ -197,7 +201,8 @@
for ( int i = 0; i < m_jndiConfigFiles.size( ); i++ )
{
File config = (File) m_jndiConfigFiles.get( i );
- JndiConfigDocument newConfig = JndiConfigDocument.Factory.parse( config );
+
+ JndiConfigDocument newConfig = JndiConfigDocument.Factory.parse( config, options );
ServiceDocument.Service[] newServices = newConfig.getJndiConfig( ).getServiceArray( );
for ( int j = 0; j < newServices.length; j++ )
{
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/JaxRpcPlatform.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/JaxRpcPlatform.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/JaxRpcPlatform.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/JaxRpcPlatform.java Mon Aug 29 09:55:16 2005
@@ -20,9 +20,11 @@
import org.apache.ws.util.platform.websphere.WebsphereJaxRpcPlatform;
import org.apache.ws.util.platform.jboss.JBossJaxRpcPlatform;
import org.apache.ws.resource.handler.axis.AxisConstants;
+import org.apache.ws.resource.ResourceContext;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPFactory;
+import javax.xml.rpc.handler.soap.SOAPMessageContext;
/**
* An Enumeration of JAX-RPC platform types supported by Apache WSRF.
@@ -97,6 +99,16 @@
public abstract String toString( );
/**
+ * Creates a {@link ResourceContext} for this request.
+ *
+ * @param soapMsgContext the JAX-RPC SOAP message context for this request
+ *
+ * @return a ResourceContext for this request
+ */
+ public abstract ResourceContext createResourceContext( SOAPMessageContext soapMsgContext )
+ throws Exception;
+
+ /**
* Returns the JaxRpcPlatform for this environment. This method is meant to be called from within the classloader
* hosting the JAX-RPC engine.
*
@@ -135,7 +147,7 @@
{
s_platformType = JBOSS;
}
-
+
if ( s_platformType == null )
{
throw new RuntimeException( "Unsupported JAX-RPC platform." );
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/axis/AxisJaxRpcPlatform.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/axis/AxisJaxRpcPlatform.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/axis/AxisJaxRpcPlatform.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/axis/AxisJaxRpcPlatform.java Mon Aug 29 09:55:16 2005
@@ -16,6 +16,10 @@
package org.apache.ws.util.platform.axis;
import org.apache.ws.util.platform.JaxRpcPlatform;
+import org.apache.ws.resource.ResourceContext;
+import org.apache.ws.resource.handler.axis.AxisResourceContext;
+
+import javax.xml.rpc.handler.soap.SOAPMessageContext;
/**
* @author Sal Campana
@@ -86,4 +90,15 @@
{
return AXIS_DESC;
}
+
+ /**
+ * Creates a {@link ResourceContext} for this request.
+ *
+ * @param soapMsgContext the JAX-RPC SOAP message context for this request
+ * @return a ResourceContext for this request
+ */
+ public ResourceContext createResourceContext(SOAPMessageContext soapMsgContext) throws Exception
+ {
+ return new AxisResourceContext(soapMsgContext);
+ }
}
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/jboss/JBossJaxRpcPlatform.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/jboss/JBossJaxRpcPlatform.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/jboss/JBossJaxRpcPlatform.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/jboss/JBossJaxRpcPlatform.java Mon Aug 29 09:55:16 2005
@@ -1,6 +1,10 @@
package org.apache.ws.util.platform.jboss;
import org.apache.ws.util.platform.JaxRpcPlatform;
+import org.apache.ws.resource.ResourceContext;
+import org.apache.ws.resource.impl.ResourceContextImpl;
+
+import javax.xml.rpc.handler.soap.SOAPMessageContext;
/**
@@ -65,5 +69,16 @@
public String toString()
{
return JBOSS_DESC;
+ }
+
+ /**
+ * Creates a {@link ResourceContext} for this request.
+ *
+ * @param soapMsgContext the JAX-RPC SOAP message context for this request
+ * @return a ResourceContext for this request
+ */
+ public ResourceContext createResourceContext(SOAPMessageContext soapMsgContext) throws Exception
+ {
+ return new ResourceContextImpl(soapMsgContext);
}
}
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/weblogic/WeblogicJaxRpcPlatform.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/weblogic/WeblogicJaxRpcPlatform.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/weblogic/WeblogicJaxRpcPlatform.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/weblogic/WeblogicJaxRpcPlatform.java Mon Aug 29 09:55:16 2005
@@ -16,6 +16,10 @@
package org.apache.ws.util.platform.weblogic;
import org.apache.ws.util.platform.JaxRpcPlatform;
+import org.apache.ws.resource.ResourceContext;
+import org.apache.ws.resource.impl.ResourceContextImpl;
+
+import javax.xml.rpc.handler.soap.SOAPMessageContext;
/**
* @author Sal Campana
@@ -81,4 +85,15 @@
{
return WEBLOGIC_DESC;
}
+
+ /**
+ * Creates a {@link ResourceContext} for this request.
+ *
+ * @param soapMsgContext the JAX-RPC SOAP message context for this request
+ * @return a ResourceContext for this request
+ */
+ public ResourceContext createResourceContext(SOAPMessageContext soapMsgContext) throws Exception
+ {
+ return new ResourceContextImpl(soapMsgContext);
+ }
}
Modified: webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/websphere/WebsphereJaxRpcPlatform.java
URL: http://svn.apache.org/viewcvs/webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/websphere/WebsphereJaxRpcPlatform.java?rev=264165&r1=264164&r2=264165&view=diff
==============================================================================
--- webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/websphere/WebsphereJaxRpcPlatform.java (original)
+++ webservices/wsrf/trunk/src/java/org/apache/ws/util/platform/websphere/WebsphereJaxRpcPlatform.java Mon Aug 29 09:55:16 2005
@@ -1,6 +1,10 @@
package org.apache.ws.util.platform.websphere;
import org.apache.ws.util.platform.JaxRpcPlatform;
+import org.apache.ws.resource.ResourceContext;
+import org.apache.ws.resource.impl.ResourceContextImpl;
+
+import javax.xml.rpc.handler.soap.SOAPMessageContext;
/**
@@ -65,5 +69,16 @@
public String toString()
{
return WEBSPHERE_DESC;
+ }
+
+ /**
+ * Creates a {@link ResourceContext} for this request.
+ *
+ * @param soapMsgContext the JAX-RPC SOAP message context for this request
+ * @return a ResourceContext for this request
+ */
+ public ResourceContext createResourceContext(SOAPMessageContext soapMsgContext) throws Exception
+ {
+ return new ResourceContextImpl(soapMsgContext);
}
}