Author: scamp
Date: Mon Apr 25 07:05:18 2005
New Revision: 164577
URL: http://svn.apache.org/viewcvs?rev=164577&view=rev
Log:
Jira Apollo-30
Added support for WS-MetadataExchange specification.
Added:
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/MetadataExchangeConstants.java
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/GetPortType.java
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/MetadataExchangePortType.java
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/impl/MetadataExchangePortTypeImpl.java
incubator/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/FileSystem.wsdl
incubator/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/MetadataExchangePortTypeTest.java
incubator/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/jndi-config.xml
Added:
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/MetadataExchangeConstants.java
URL:
http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/MetadataExchangeConstants.java?rev=164577&view=auto
==============================================================================
---
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/MetadataExchangeConstants.java
(added)
+++
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/MetadataExchangeConstants.java
Mon Apr 25 07:05:18 2005
@@ -0,0 +1,29 @@
+package org.apache.ws.resource.metadataexchange.v2004_09;
+
+
+/**
+ * @author Sal Campana
+ */
+public class MetadataExchangeConstants
+{
+ /**
+ * The namespace uri
+ */
+ public static final String NSURI =
"http://schemas.xmlsoap.org/ws/2004/09/mex";
+
+ /**
+ * The prefix to be used
+ */
+ public static final String NSPREFIX = "wsx";
+
+ /**
+ * WS-Addressing Action URI for Get request
+ */
+ public static final String ACTION_GET = NSURI + "/Get/Request";
+
+ /**
+ * WS-Addressing Action URI for GetMetadata request
+ */
+ public static final String ACTION_GETMETADATA = NSURI +
"/GetMetadata/Request";
+
+}
Added:
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/GetPortType.java
URL:
http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/GetPortType.java?rev=164577&view=auto
==============================================================================
---
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/GetPortType.java
(added)
+++
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/GetPortType.java
Mon Apr 25 07:05:18 2005
@@ -0,0 +1,16 @@
+package org.apache.ws.resource.metadataexchange.v2004_09.porttype;
+
+import
org.apache.ws.resource.metadataexchange.v2004_09.MetadataExchangeConstants;
+import org.xmlsoap.schemas.ws.x2004.x09.mex.AnyXmlType;
+
+import javax.xml.namespace.QName;
+
+/**
+ * @author Sal Campana
+ */
+public interface GetPortType
+{
+ QName NAME = new QName( MetadataExchangeConstants.NSURI, "Get",
MetadataExchangeConstants.NSPREFIX );
+
+ AnyXmlType get();
+}
Added:
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/MetadataExchangePortType.java
URL:
http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/MetadataExchangePortType.java?rev=164577&view=auto
==============================================================================
---
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/MetadataExchangePortType.java
(added)
+++
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/MetadataExchangePortType.java
Mon Apr 25 07:05:18 2005
@@ -0,0 +1,20 @@
+package org.apache.ws.resource.metadataexchange.v2004_09.porttype;
+
+import
org.apache.ws.resource.metadataexchange.v2004_09.MetadataExchangeConstants;
+import org.xmlsoap.schemas.ws.x2004.x09.mex.GetMetadataDocument;
+import org.xmlsoap.schemas.ws.x2004.x09.mex.MetadataDocument;
+import org.xmlsoap.schemas.ws.x2004.x09.mex.AnyXmlType;
+
+import javax.xml.namespace.QName;
+
+/**
+ * @author Sal Campana
+ */
+public interface MetadataExchangePortType
+{
+ QName NAME = new QName( MetadataExchangeConstants.NSURI,
"MetadataExchange", MetadataExchangeConstants.NSPREFIX );
+
+ MetadataDocument getMetadata( GetMetadataDocument request);
+
+ AnyXmlType get();
+}
Added:
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/impl/MetadataExchangePortTypeImpl.java
URL:
http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/impl/MetadataExchangePortTypeImpl.java?rev=164577&view=auto
==============================================================================
---
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/impl/MetadataExchangePortTypeImpl.java
(added)
+++
incubator/apollo/trunk/src/java/org/apache/ws/resource/metadataexchange/v2004_09/porttype/impl/MetadataExchangePortTypeImpl.java
Mon Apr 25 07:05:18 2005
@@ -0,0 +1,296 @@
+package org.apache.ws.resource.metadataexchange.v2004_09.porttype.impl;
+
+import org.apache.ws.resource.AbstractPortType;
+import org.apache.ws.resource.ResourceContext;
+import
org.apache.ws.resource.metadataexchange.v2004_09.MetadataExchangeConstants;
+import
org.apache.ws.resource.metadataexchange.v2004_09.porttype.MetadataExchangePortType;
+import org.apache.ws.resource.properties.NamespaceVersionHolder;
+import
org.apache.ws.resource.properties.v2004_11.impl.NamespaceVersionHolderImpl;
+import org.apache.ws.util.XmlBeanUtils;
+import org.apache.ws.util.jndi.tools.MetadataConfig;
+import org.apache.ws.util.soap.SoapClient;
+import org.apache.xmlbeans.XmlException;
+import org.apache.xmlbeans.XmlObject;
+import org.xmlsoap.schemas.soap.envelope.Envelope;
+import org.xmlsoap.schemas.soap.envelope.Header;
+import org.xmlsoap.schemas.soap.envelope.EnvelopeDocument;
+import org.xmlsoap.schemas.ws.x2004.x08.addressing.AttributedURI;
+import org.xmlsoap.schemas.ws.x2004.x08.addressing.EndpointReferenceType;
+import org.xmlsoap.schemas.ws.x2004.x09.mex.AnyXmlType;
+import org.xmlsoap.schemas.ws.x2004.x09.mex.GetMetadataDocument;
+import org.xmlsoap.schemas.ws.x2004.x09.mex.LocationDocument;
+import org.xmlsoap.schemas.ws.x2004.x09.mex.MetadataDocument;
+import org.xmlsoap.schemas.ws.x2004.x09.mex.MetadataReferenceDocument;
+import org.xmlsoap.schemas.ws.x2004.x09.mex.MetadataSectionDocument;
+
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.xml.rpc.JAXRPCException;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * @author Sal Campana
+ */
+public class MetadataExchangePortTypeImpl extends AbstractPortType implements
MetadataExchangePortType
+{
+ private static final NamespaceVersionHolder NAMESPACE_SET = new
NamespaceVersionHolderImpl();
+
+ /**
+ * Creates a new [EMAIL PROTECTED] AbstractPortType} object.
+ *
+ * @param resourceContext
+ */
+ public MetadataExchangePortTypeImpl(ResourceContext resourceContext)
+ {
+ super(resourceContext);
+ }
+
+ /**
+ * WS-MetadataExchange GetMetadata operation.
+ *
+ * @param request
+ * @return MetadataDocument response document
+ */
+ public MetadataDocument getMetadata(GetMetadataDocument request)
+ { //todo deal with
setting Action for responses...
+ MetadataConfig metadataConfig = null;
+ try
+ {
+ metadataConfig = getMetadataConfig();
+ }
+ catch (NamingException e)
+ {
+ throw new JAXRPCException( "Unable to retrieve Metadata
Config.",e);
+ }
+
+ //prep the response
+ MetadataDocument responseDoc = createMetadataResponseDoc();
+ MetadataDocument.Metadata responseMetadata =
responseDoc.addNewMetadata();
+
+ //get the values from the request
+ GetMetadataDocument.GetMetadata requestMetadata =
request.getGetMetadata();
+ String dialect = requestMetadata.getDialect();
+ String identifier = requestMetadata.getIdentifier();
+
+ //get the metatdata from the config
+ // the map is keyed on dialect and keyed to a List of metadata
+ // this allows you to build a metadata section per dialect
+ Map metadataMap = metadataConfig.getMetadata(dialect, identifier);
+ //iterate the returned set and add metadata sections
+ Iterator iterator = metadataMap.keySet().iterator();
+ while (iterator.hasNext())
+ {
+ String dialectKey = (String) iterator.next();
+ //get the list of metatadata for this dialect
+ List metadataList = (List) metadataMap.get(dialectKey);
+
+ for (int i = 0; i < metadataList.size(); i++)
+ {
+ //create a new metadata section
+ MetadataSectionDocument.MetadataSection metadataSection =
responseMetadata.addNewMetadataSection();
+ Object data = metadataList.get(i);
+ metadataSection.setDialect(dialectKey);
+ if(identifier != null && !"".equals(identifier))
+ {
+ metadataSection.setIdentifier(identifier);
+ }
+
+ /** Determine type of metadata to add **/
+ if(data instanceof MetadataReferenceDocument)
+ {
+ //adds a MetadataReference for locating the metadata
+
metadataSection.setMetadataReference((EndpointReferenceType) data);
+ }
+ else if (data instanceof LocationDocument)
+ {
+ //adds a Location for locating the metadata
+ metadataSection.setLocation(((LocationDocument)
data).getLocation());
+ }
+ else
+ {
+ //else its the metadata document and must be added as a
child for the "any"
+ XmlBeanUtils.addChildElement(metadataSection, (XmlObject)
data);
+ }
+ }
+ }
+ return responseDoc;
+ }
+
+ /**
+ * Attempts to lookup the MetadataConfig from JNDI
+ *
+ * @return MetadataConfig
+ * @throws NamingException
+ */
+ private MetadataConfig getMetadataConfig()
+ throws NamingException
+ {
+ String metadataJndiContextName = getMetadataJndiContextName();
+ InitialContext ctx = new InitialContext();
+ return (MetadataConfig) ctx.lookup(metadataJndiContextName);
+ }
+
+ /**
+ * Returns the JNDI Contrext name for looking up the metadata
+ *
+ * @return
+ */
+ private String getMetadataJndiContextName()
+ {
+ return org.apache.ws.resource.JndiConstants.CONTEXT_NAME_SERVICES +
"/" + getResourceContext().getServiceName() + "/" +
org.apache.ws.resource.JndiConstants.ATOMIC_METADATA_HOME;
+ }
+
+ /**
+ * Creates the response object for a GetMetadata request
+ *
+ * @return empty MetadataDocument
+ */
+ private MetadataDocument createMetadataResponseDoc()
+ {
+ MetadataDocument metadataDocument =
MetadataDocument.Factory.newInstance();
+ return metadataDocument;
+ }
+
+ /**
+ * WS-MetadataExchange Get operation.
+ *
+ * @return AnyXmlType response document.
+ */
+ public AnyXmlType get()
+ {
+ MetadataConfig metadataConfig = null;
+ AnyXmlType anyXmlType = AnyXmlType.Factory.newInstance();
+ try
+ {
+ metadataConfig = getMetadataConfig();
+ }
+ catch (NamingException e)
+ {
+ throw new JAXRPCException( "Unable to retrieve Metadata
Config.",e);
+ }
+
+
+ //get all the registered metadata
+ Map allMetadata = metadataConfig.getAllMetadata();
+ Iterator iterator = allMetadata.values().iterator();
+ while (iterator.hasNext())
+ {
+ List metadataList = (List) iterator.next();
+ for (int i = 0; i < metadataList.size(); i++)
+ {
+ Object data = metadataList.get(i);
+
+ /** Determine type of metadata to add **/
+ if(data instanceof MetadataReferenceDocument)
+ {
+ //must load actual metadata using MetadataReference
+ try
+ {
+ data =
loadFromMetadataReference((MetadataReferenceDocument) data);
+ }
+ catch (Exception e)
+ {
+ throw new JAXRPCException( "Unable to retrieve
metadata from the EndpointReference: " + data + ".",e);
+ }
+ }
+ else if (data instanceof LocationDocument)
+ {
+ //must load actual metadata using URL
+ try
+ {
+ data = loadFromURL(((LocationDocument)
data).getLocation());
+ }
+ catch (Exception e)
+ {
+ //not sure if we should ignore a problem and send the
rest...
+ throw new JAXRPCException( "Unable to retrieve
metadata from the URL: " + ((LocationDocument) data).getLocation() + ".",e);
+ }
+ }
+ XmlBeanUtils.addChildElement(anyXmlType, (XmlObject) data);
+ }
+
+ }
+ return anyXmlType;
+ }
+
+ /**
+ * Loads metadata off of a URL.
+ *
+ * @param s
+ * @return
+ * @throws IOException
+ * @throws XmlException
+ */
+ private Object loadFromURL(String s) throws IOException, XmlException
+ {
+ return XmlObject.Factory.parse(new URL(s));
+ }
+
+ /**
+ * Loads metadata off of an EPR.
+ *
+ * @param endpointReferenceType
+ * @return
+ * @throws IOException
+ * @throws URISyntaxException
+ * @throws XmlException
+ */
+ private Object loadFromMetadataReference(MetadataReferenceDocument
endpointReferenceType) throws IOException, URISyntaxException, XmlException
+ {
+ EndpointReferenceType metadataReference =
endpointReferenceType.getMetadataReference();
+ String address = metadataReference.getAddress().getStringValue();
+ //perform get request
+ EnvelopeDocument envelope = buildSoapEnvelopeForGet(address,
metadataReference);
+ String response = SoapClient.sendRequest(new
URL(address),envelope.newInputStream(),new
URI(MetadataExchangeConstants.ACTION_GET));
+ return XmlObject.Factory.parse(response);
+ }
+
+ /**
+ * Builds a SOAP Envelope based on the EPR and makes a request to retrieve
the metadata.
+ *
+ * @param address
+ * @param endpointReferenceType
+ * @return The SOAP Envelope for making a request.
+ */
+ private EnvelopeDocument buildSoapEnvelopeForGet(String address,
EndpointReferenceType endpointReferenceType)
+ {
+ EnvelopeDocument envelopeDocument =
EnvelopeDocument.Factory.newInstance();
+ Envelope envelope = envelopeDocument.addNewEnvelope();
+ envelope.addNewBody();
+ Header header = envelope.addNewHeader();
+ XmlObject toElem;
+ XmlObject actionElem;
+ org.xmlsoap.schemas.ws.x2004.x08.addressing.ToDocument toDoc =
org.xmlsoap.schemas.ws.x2004.x08.addressing.ToDocument.Factory.newInstance();
+ AttributedURI attributedURI = toDoc.addNewTo();
+ attributedURI.setStringValue(address);
+ toElem = toDoc;
+ org.xmlsoap.schemas.ws.x2004.x08.addressing.ActionDocument actionDoc =
org.xmlsoap.schemas.ws.x2004.x08.addressing.ActionDocument.Factory.newInstance();
+ AttributedURI actionType = actionDoc.addNewAction();
+ actionType.setStringValue( MetadataExchangeConstants.ACTION_GET );
+ actionElem = actionDoc;
+
+ XmlBeanUtils.addChildElement( header, toElem );
+ XmlBeanUtils.addChildElement( header, actionElem );
+ if (endpointReferenceType.getReferenceProperties() != null)
+ {
+ XmlObject[] refPropElems =
XmlBeanUtils.getChildElements(endpointReferenceType.getReferenceProperties());
+ for (int i = 0; i < refPropElems.length; i++)
+ {
+ XmlBeanUtils.addChildElement(header, refPropElems[i]);
+ }
+ }
+ return envelopeDocument;
+ }
+
+ protected NamespaceVersionHolder getNamespaceSet()
+ {
+ return NAMESPACE_SET;
+ }
+}
Added:
incubator/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/FileSystem.wsdl
URL:
http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/FileSystem.wsdl?rev=164577&view=auto
==============================================================================
---
incubator/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/FileSystem.wsdl
(added)
+++
incubator/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/FileSystem.wsdl
Mon Apr 25 07:05:18 2005
@@ -0,0 +1,382 @@
+<?xml version="1.0"?>
+
+<definitions name="FileSystemResourceDefinition"
+ targetNamespace="http://ws.apache.org/resource/example/filesystem"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://ws.apache.org/resource/example/filesystem"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+
xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd"
+
xmlns:wsrpw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl"
+
xmlns:wsrlw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl"
+ xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex">
+
+ <import
namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl"
+ location="../spec/wsrf/WS-ResourceProperties-1_2-Draft_01.wsdl"/>
+
+ <import
namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl"
+ location="../spec/wsrf/WS-ResourceLifetime-1_2-Draft_01.wsdl"/>
+
+ <import namespace="http://schemas.xmlsoap.org/ws/2004/09/mex"
+ location="../spec/wsx/Metadataexchange-2004_09.wsdl"/>
+
+ <types>
+ <schema elementFormDefault="qualified"
+ targetNamespace="http://ws.apache.org/resource/example/filesystem"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+
xmlns:wsrl="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd"
+
xmlns:wsbf="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd">
+
+ <xsd:import
namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-BaseFaults-1.2-draft-01.xsd"
+
schemaLocation="../spec/wsrf/WS-BaseFaults-1_2-Draft_01.xsd"/>
+
+ <xsd:import
namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd"
+
schemaLocation="../spec/wsrf/WS-ResourceLifetime-1_2-Draft_01.xsd"/>
+
+ <element name="DeviceSpecialFile" type="xsd:string"/>
+ <element name="MountPointDirectory" type="xsd:string"/>
+ <element name="Type" type="xsd:string"/>
+ <element name="Options">
+ <complexType>
+ <sequence>
+ <element name="Option" type="xsd:string" minOccurs="0"
maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="BackupFrequency" type="xsd:int"/>
+ <element name="FsckPassNumber" type="xsd:int"/>
+ <element name="Comment" type="xsd:string"/>
+
+ <!-- Resource Properties Document Schema -->
+ <element name="FileSystemProperties">
+ <complexType>
+ <sequence>
+ <!-- props for wsrl:ScheduledResourceTermination portType -->
+ <element ref="wsrl:CurrentTime"/>
+ <element ref="wsrl:TerminationTime"/>
+
+ <!-- props for tns:FileSystemPortType portType -->
+ <element ref="tns:DeviceSpecialFile"/>
+ <element ref="tns:MountPointDirectory"/>
+ <element ref="tns:Type"/>
+ <element ref="tns:Options"/>
+ <element ref="tns:BackupFrequency"/>
+ <element ref="tns:FsckPassNumber"/>
+ <element ref="tns:Comment" minOccurs="0"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <!-- ====== Message Types for Custom Operations ======= -->
+
+ <element name="Mount">
+ <complexType />
+ </element>
+
+ <element name="MountResponse">
+ <complexType />
+ </element>
+
+ <element name="Unmount">
+ <complexType />
+ </element>
+
+ <element name="UnmountResponse">
+ <complexType />
+ </element>
+
+ <element name="MountDeviceBusyFault">
+ <complexType>
+ <complexContent>
+ <extension base="wsbf:BaseFaultType" />
+ </complexContent>
+ </complexType>
+ </element>
+
+ </schema>
+ </types>
+
+ <!-- ============= Message Definitions for Custom Operations =============
-->
+ <message name="MountRequest">
+ <part name="MountRequest" element="tns:Mount"/>
+ </message>
+
+ <message name="MountResponse">
+ <part name="MountResponse" element="tns:MountResponse"/>
+ </message>
+
+ <message name="UnmountRequest">
+ <part name="UnmountRequest" element="tns:Unmount"/>
+ </message>
+
+ <message name="UnmountResponse">
+ <part name="UnmountResponse" element="tns:UnmountResponse"/>
+ </message>
+
+ <message name="MountDeviceBusyFault">
+ <part name="MountDeviceBusyFault" element="tns:MountDeviceBusyFault"/>
+ </message>
+
+ <portType name="FileSystemPortType"
wsrp:ResourceProperties="tns:FileSystemProperties">
+
+ <!-- wsrp:* operations -->
+ <operation name="GetResourceProperty">
+ <input name="GetResourcePropertyRequest"
message="wsrpw:GetResourcePropertyRequest"/>
+ <output name="GetResourcePropertyResponse"
message="wsrpw:GetResourcePropertyResponse"/>
+ <fault name="ResourceUnknownFault"
message="wsrpw:ResourceUnknownFault"/>
+ <fault name="InvalidResourcePropertyQNameFault"
message="wsrpw:InvalidResourcePropertyQNameFault"/>
+ </operation>
+
+ <operation name="GetMultipleResourceProperties">
+ <input name="GetMultipleResourcePropertiesRequest"
message="wsrpw:GetMultipleResourcePropertiesRequest"/>
+ <output name="GetMultipleResourcePropertiesResponse"
message="wsrpw:GetMultipleResourcePropertiesResponse"/>
+ <fault name="ResourceUnknownFault"
message="wsrpw:ResourceUnknownFault"/>
+ <fault name="InvalidResourcePropertyQNameFault"
message="wsrpw:InvalidResourcePropertyQNameFault"/>
+ </operation>
+
+ <operation name="SetResourceProperties">
+ <input name="SetResourcePropertiesRequest"
message="wsrpw:SetResourcePropertiesRequest"/>
+ <output name="SetResourcePropertiesResponse"
message="wsrpw:SetResourcePropertiesResponse"/>
+ <fault name="ResourceUnknownFault"
message="wsrpw:ResourceUnknownFault"/>
+ <fault name="InvalidResourcePropertyQNameFault"
message="wsrpw:InvalidResourcePropertyQNameFault"/>
+ <fault name="InvalidSetResourcePropertiesRequestContentFault"
message="wsrpw:InvalidSetResourcePropertiesRequestContentFault"/>
+ <fault name="UnableToModifyResourcePropertyFault"
message="wsrpw:UnableToModifyResourcePropertyFault"/>
+ <fault name="SetResourcePropertyRequestFailedFault"
message="wsrpw:SetResourcePropertyRequestFailedFault"/>
+ </operation>
+
+ <operation name="QueryResourceProperties">
+ <input name="QueryResourcePropertiesRequest"
message="wsrpw:QueryResourcePropertiesRequest"/>
+ <output name="QueryResourcePropertiesResponse"
message="wsrpw:QueryResourcePropertiesResponse"/>
+ <fault name="ResourceUnknownFault"
message="wsrpw:ResourceUnknownFault"/>
+ <fault name="InvalidResourcePropertyQNameFault"
message="wsrpw:InvalidResourcePropertyQNameFault"/>
+ <fault name="UnknownQueryExpressionDialectFault"
message="wsrpw:UnknownQueryExpressionDialectFault"/>
+ <fault name="InvalidQueryExpressionFault"
message="wsrpw:InvalidQueryExpressionFault"/>
+ <fault name="QueryEvaluationErrorFault"
message="wsrpw:QueryEvaluationErrorFault"/>
+ </operation>
+
+ <!-- wsrl:ImmediateResourceTermination operation -->
+ <operation name="Destroy">
+ <input message="wsrlw:DestroyRequest"/>
+ <output message="wsrlw:DestroyResponse"/>
+ <fault name="ResourceUnknownFault"
message="wsrlw:ResourceUnknownFault"/>
+ <fault name="ResourceNotDestroyedFault"
message="wsrlw:ResourceNotDestroyedFault"/>
+ </operation>
+
+ <!-- wsrl:ScheduledResourceTermination operation -->
+ <operation name="SetTerminationTime">
+ <input message="wsrlw:SetTerminationTimeRequest"/>
+ <output message="wsrlw:SetTerminationTimeResponse"/>
+ <fault name="ResourceUnknownFault"
message="wsrlw:ResourceUnknownFault"/>
+ <fault name="UnableToSetTerminationTimeFault"
message="wsrlw:UnableToSetTerminationTimeFault"/>
+ <fault name="TerminationTimeChangeRejectedFault"
message="wsrlw:TerminationTimeChangeRejectedFault"/>
+ </operation>
+
+ <!-- custom operations -->
+ <operation name="Mount">
+ <input name="MountRequest" message="tns:MountRequest" />
+ <output name="MountResponse" message="tns:MountResponse" />
+ <fault name="MountDeviceBusyFault"
message="tns:MountDeviceBusyFault" />
+ </operation>
+
+ <operation name="Unmount">
+ <input name="UnmountRequest" message="tns:UnmountRequest" />
+ <output name="UnmountResponse" message="tns:UnmountResponse" />
+ <fault name="MountDeviceBusyFault"
message="tns:MountDeviceBusyFault" />
+ </operation>
+
+ <operation name='GetMetadata' >
+ <input name="GetMetadataMsg" message='wsx:GetMetadataMsg' />
+ <output name="GetMetadataResponseMsg"
message='wsx:GetMetadataResponseMsg' />
+ </operation>
+
+ <operation name='Get' >
+ <input name="GetMsg" message='wsx:GetMsg' />
+ <output name="GetResponseMsg" message='wsx:GetResponseMsg' />
+ </operation>
+
+ </portType>
+
+ <binding name="FileSystemSoapHttpBinding" type="tns:FileSystemPortType">
+
+ <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <!-- wsrp:* operations -->
+ <operation name="GetResourceProperty">
+ <soap:operation style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="ResourceUnknownFault">
+ <soap:fault name="ResourceUnknownFault" use="literal"/>
+ </fault>
+ <fault name="InvalidResourcePropertyQNameFault">
+ <soap:fault name="InvalidResourcePropertyQNameFault"
use="literal"/>
+ </fault>
+ </operation>
+
+ <operation name="GetMultipleResourceProperties">
+ <soap:operation style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="ResourceUnknownFault">
+ <soap:fault name="ResourceUnknownFault" use="literal"/>
+ </fault>
+ <fault name="InvalidResourcePropertyQNameFault">
+ <soap:fault name="InvalidResourcePropertyQNameFault"
use="literal"/>
+ </fault>
+ </operation>
+
+ <operation name="SetResourceProperties">
+ <soap:operation style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="ResourceUnknownFault">
+ <soap:fault name="ResourceUnknownFault" use="literal"/>
+ </fault>
+ <fault name="InvalidResourcePropertyQNameFault">
+ <soap:fault name="InvalidResourcePropertyQNameFault"
use="literal"/>
+ </fault>
+ <fault name="UnableToModifyResourcePropertyFault">
+ <soap:fault name="UnableToModifyResourcePropertyFault"
use="literal"/>
+ </fault>
+ <fault name="InvalidSetResourcePropertiesRequestContentFault">
+ <soap:fault name="InvalidSetResourcePropertiesRequestContentFault"
use="literal"/>
+ </fault>
+ <fault name="SetResourcePropertyRequestFailedFault">
+ <soap:fault name="SetResourcePropertyRequestFailedFault"
use="literal"/>
+ </fault>
+ </operation>
+
+ <operation name="QueryResourceProperties">
+ <soap:operation style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="ResourceUnknownFault">
+ <soap:fault name="ResourceUnknownFault" use="literal"/>
+ </fault>
+ <fault name="InvalidResourcePropertyQNameFault">
+ <soap:fault name="InvalidResourcePropertyQNameFault"
use="literal"/>
+ </fault>
+ <fault name="UnknownQueryExpressionDialectFault">
+ <soap:fault name="UnknownQueryExpressionDialectFault"
use="literal"/>
+ </fault>
+ <fault name="InvalidQueryExpressionFault">
+ <soap:fault name="InvalidQueryExpressionFault" use="literal"/>
+ </fault>
+ <fault name="QueryEvaluationErrorFault">
+ <soap:fault name="QueryEvaluationErrorFault" use="literal"/>
+ </fault>
+ </operation>
+
+ <!-- wsrl:ImmediateResourceTermination operation -->
+ <operation name="Destroy">
+ <soap:operation style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="ResourceUnknownFault">
+ <soap:fault name="ResourceUnknownFault" use="literal"/>
+ </fault>
+ <fault name="ResourceNotDestroyedFault">
+ <soap:fault name="ResourceNotDestroyedFault" use="literal"/>
+ </fault>
+ </operation>
+
+ <!-- wsrl:ScheduledResourceTermination operation -->
+ <operation name="SetTerminationTime">
+ <soap:operation style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="ResourceUnknownFault">
+ <soap:fault name="ResourceUnknownFault" use="literal"/>
+ </fault>
+ <fault name="UnableToSetTerminationTimeFault">
+ <soap:fault name="UnableToSetTerminationTimeFault" use="literal"/>
+ </fault>
+ <fault name="TerminationTimeChangeRejectedFault">
+ <soap:fault name="TerminationTimeChangeRejectedFault"
use="literal"/>
+ </fault>
+ </operation>
+
+ <!-- wsx:GetMetadata operation -->
+ <operation name='GetMetadata' >
+ <soap:operation style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+
+ <!-- wsx:Get operation -->
+ <operation name='Get' >
+ <soap:operation style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+
+ <!-- custom operations -->
+ <operation name="Mount">
+ <soap:operation style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="MountDeviceBusyFault">
+ <soap:fault name="MountDeviceBusyFault" use="literal"/>
+ </fault>
+ </operation>
+
+ <operation name="Unmount">
+ <soap:operation style="document"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="MountDeviceBusyFault">
+ <soap:fault name="MountDeviceBusyFault" use="literal"/>
+ </fault>
+ </operation>
+
+ </binding>
+
+ <service name="FileSystemService">
+ <!-- Note: the port name becomes the service name in the wsdd generated
by Axis Wsdl2Java -->
+ <port name="filesystem" binding="tns:FileSystemSoapHttpBinding">
+ <soap:address
location="http://localhost:8080/wsrf/services/filesystem"/>
+ </port>
+ </service>
+
+</definitions>
Added:
incubator/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/MetadataExchangePortTypeTest.java
URL:
http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/MetadataExchangePortTypeTest.java?rev=164577&view=auto
==============================================================================
---
incubator/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/MetadataExchangePortTypeTest.java
(added)
+++
incubator/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/MetadataExchangePortTypeTest.java
Mon Apr 25 07:05:18 2005
@@ -0,0 +1,59 @@
+package org.apache.ws.resource.metadataexchange.v2004_09;
+
+import
org.apache.ws.resource.properties.v2004_06.porttype.impl.AbstractWsrpPortTypeImplTestCase;
+import org.apache.ws.resource.properties.SushiResourceContext;
+import
org.apache.ws.resource.metadataexchange.v2004_09.porttype.impl.MetadataExchangePortTypeImpl;
+import org.apache.ws.util.jndi.XmlBeanJndiUtils;
+import org.apache.xmlbeans.XmlObject;
+import org.apache.wsfx.wsrf.jndi.config.MetadataConfigDocument;
+import org.apache.commons.io.CopyUtils;
+import org.xmlsoap.schemas.ws.x2004.x09.mex.AnyXmlType;
+import org.xmlsoap.schemas.ws.x2004.x09.mex.GetMetadataDocument;
+import org.xmlsoap.schemas.ws.x2004.x09.mex.MetadataDocument;
+
+import javax.naming.InitialContext;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+
+
+/**
+ * @author Sal Campana
+ */
+public class MetadataExchangePortTypeTest extends
AbstractWsrpPortTypeImplTestCase
+{
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
XmlBeanJndiUtils.initializeFromInputStream(this.getClass().getClassLoader().getResourceAsStream("org/apache/ws/resource/metadataexchange/v2004_09/jndi-config.xml"));
+ }
+ //todo figure out how to do this test with url, epr and filesystem in
junit
+ public void testGetMetadata()
+ {
+ /*SushiResourceContext context = new SushiResourceContext();
+ MetadataExchangePortTypeImpl portTypeImpl = new
MetadataExchangePortTypeImpl(context);
+ GetMetadataDocument getMetadataDocument =
GetMetadataDocument.Factory.newInstance();
+ GetMetadataDocument.GetMetadata request =
getMetadataDocument.addNewGetMetadata();
+ request.setDialect("http://schemas.xmlsoap.org/wsdl");
+
+ MetadataDocument metadata =
portTypeImpl.getMetadata(getMetadataDocument);
+
+ assertNotNull(metadata);*/
+
+ assertTrue(true);
+ }
+
+ public void testGet()
+ {/*
+ SushiResourceContext context = new SushiResourceContext();
+ MetadataExchangePortTypeImpl portTypeImpl = new
MetadataExchangePortTypeImpl(context);
+
+ AnyXmlType anyXmlType = portTypeImpl.get();
+ assertNotNull(anyXmlType);
+ */
+ assertTrue(true);
+ }
+
+
+}
Added:
incubator/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/jndi-config.xml
URL:
http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/jndi-config.xml?rev=164577&view=auto
==============================================================================
---
incubator/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/jndi-config.xml
(added)
+++
incubator/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/jndi-config.xml
Mon Apr 25 07:05:18 2005
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jndiConfig xmlns="http://www.apache.org/wsfx/wsrf/jndi/config">
+
+ <global>
+
+ <resource name="DefaultParameters"
type="org.apache.ws.util.jndi.DefaultParameters">
+ <resourceParams>
+ <parameter>
+ <name>factory</name>
+ <value>org.apache.ws.util.jndi.BeanFactory</value>
+ </parameter>
+ <parameter>
+ <name>resourceKeyClassName</name>
+ <value>org.apache.ws.resource.impl.SimpleTypeResourceKey</value>
+ </parameter>
+ </resourceParams>
+ </resource>
+
+ <resource name="timer/ContainerTimer"
type="org.apache.ws.util.timer.TimerManagerImpl">
+ <resourceParams>
+ <parameter>
+ <name>factory</name>
+ <value>org.apache.ws.util.jndi.BeanFactory</value>
+ </parameter>
+ </resourceParams>
+ </resource>
+
+ </global>
+
+<service name="sushi">
+ <resource name="home" type="org.apache.ws.resource.properties.SushiHome">
+ <resourceParams>
+ <parameter>
+ <name>serviceClassName</name>
+ <value>org.apache.ws.resource.properties.SushiService</value>
+ </parameter>
+ <parameter>
+ <name>resourceClassName</name>
+ <value>org.apache.ws.resource.properties.SushiResource</value>
+ </parameter>
+ <parameter>
+ <name>wsdlTargetNamespace</name>
+
<value>http://ws.apache.org/resource/properties/test/sushi</value>
+ </parameter>
+ <parameter>
+ <name>resourceKeyName</name>
+
<value>{http://ws.apache.org/resource/properties/test/sushi}ResourceID</value>
+ </parameter>
+ </resourceParams>
+ </resource>
+ <resource name="metadata"
type="org.apache.ws.util.jndi.tools.MetadataConfig">
+
+ <metadata-config>
+
+ <!-- classpath -->
+ <metadata Dialect="http://www.w3.org/2001/XMLSchema"
Identifier="http://ws.apache.org/resource/properties/test/sushi_classpath">
+
<Location>org/apache/ws/resource/properties/SushiProperties.xsd</Location>
+ </metadata>
+ <metadata Dialect="http://schemas.xmlsoap.org/wsdl"
Identifier="http://ws.apache.org/resource/example/filesystem_classpath">
+
<Location>org/apache/ws/resource/metadataexchange/v2004_09/FileSystem.wsdl</Location>
+ </metadata>
+
+ <!-- file -->
+ <metadata Dialect="http://www.w3.org/2001/XMLSchema"
Identifier="http://ws.apache.org/resource/properties/test/sushi_file">
+
<Location>C:/Projects/apache/apollo/trunk/src/test/org/apache/ws/resource/properties/SushiProperties.xsd</Location>
+ </metadata>
+ <metadata Dialect="http://schemas.xmlsoap.org/wsdl"
Identifier="http://ws.apache.org/resource/example/filesystem_file">
+
<Location>C:/Projects/apache/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/FileSystem.wsdl</Location>
+ </metadata>
+
+ <!-- http url -->
+ <metadata Dialect="http://www.w3.org/2001/XMLSchema"
Identifier="http://ws.apache.org/resource/properties/test/sushi_url">
+ <Location>http://localhost:8080/wsrf/SushiProperties.xsd</Location>
+ </metadata>
+ <metadata Dialect="http://schemas.xmlsoap.org/wsdl"
Identifier="http://ws.apache.org/resource/example/filesystem_url">
+ <Location>http://localhost:8080/wsrf/FileSystem.wsdl</Location>
+ </metadata>
+
+ <!-- file url -->
+ <metadata Dialect="http://www.w3.org/2001/XMLSchema"
Identifier="http://ws.apache.org/resource/properties/test/sushi_fileurl">
+
<Location>file://C:/Projects/apache/apollo/trunk/src/test/org/apache/ws/resource/properties/SushiProperties.xsd</Location>
+ </metadata>
+ <metadata Dialect="http://schemas.xmlsoap.org/wsdl"
Identifier="http://ws.apache.org/resource/example/filesystem_fileurl">
+
<Location>file://C:/Projects/apache/apollo/trunk/src/test/org/apache/ws/resource/metadataexchange/v2004_09/FileSystem.wsdl</Location>
+ </metadata>
+
+ <!-- EndpointReference -->
+ <metadata Dialect="http://www.w3.org/2001/XMLSchema"
Identifier="http://ws.apache.org/resource/properties/test/sushi_epr">
+
+ <MetadataReferece>
+ <wsa:Address
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
>http://localhost:8080/wsrf/services/sushi</wsa:Address>
+ <wsa:ReferenceProperties
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
+ <s:ResourceID
xmlns:s="http://ws.apache.org/resource/properties/test/sushi">1</s:ResourceID>
+ </wsa:ReferenceProperties>
+ </MetadataReferece>
+
+
+ </metadata>
+
+ <metadata Dialect="http://schemas.xmlsoap.org/wsdl"
Identifier="http://ws.apache.org/resource/example/filesystem_epr">
+
+ <MetadataReferece>
+ <wsa:Address
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
>http://localhost:8080/wsrf/services/filesystem</wsa:Address>
+ <wsa:ReferenceProperties
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
+ <s:ResourceID
xmlns:s="http://ws.apache.org/resource/example/filesystem">1</s:ResourceID>
+ </wsa:ReferenceProperties>
+ </MetadataReferece>
+
+ </metadata>
+
+
+ </metadata-config>
+
+ </resource>
+ </service></jndiConfig>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]