You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sa...@apache.org on 2007/02/16 12:24:56 UTC
svn commit: r508370 [2/3] - in /webservices/axis2/trunk/java: etc/
modules/addressing/ modules/kernel/src/org/apache/axis2/dataRetrieval/
modules/kernel/src/org/apache/axis2/dataRetrieval/client/
modules/kernel/src/org/apache/axis2/deployment/ modules/...
Added: webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MetadataExchangeModule.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MetadataExchangeModule.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MetadataExchangeModule.java (added)
+++ webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MetadataExchangeModule.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,60 @@
+/*
+* Copyright 2007 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.axis2.mex;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.description.AxisDescription;
+import org.apache.axis2.description.AxisModule;
+import org.apache.axis2.modules.Module;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.Policy;
+
+/**
+ * Metadata Exchange Module to support WS-MEX specification
+ *
+ */
+public class MetadataExchangeModule implements Module {
+
+ private static final Log log = LogFactory.getLog(MetadataExchangeModule.class);
+
+ public void engageNotify(AxisDescription axisDescription) throws AxisFault {
+ log.info("metadataExchange module has been engaged to Service." );
+ }
+
+ public void init(ConfigurationContext configContext, AxisModule module)
+ throws AxisFault {
+
+ }
+
+ public void shutdown(ConfigurationContext configurationContext)
+ throws AxisFault {
+
+
+ }
+
+ public void applyPolicy(Policy policy, AxisDescription axisDescription) throws AxisFault {
+
+ }
+
+ public boolean canSupportAssertion(Assertion assertion) {
+ return false;
+ }
+
+}
Added: webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MexConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MexConstants.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MexConstants.java (added)
+++ webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MexConstants.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,66 @@
+/*
+* Copyright 2007 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.axis2.mex;
+
+/**
+ * Contains all the MetadataExchange constants for WS-Mex.
+ *
+ */
+
+public interface MexConstants {
+ public interface SPEC_VERSIONS {
+ String v1_0 = "Spec_2004_09";
+ }
+ public interface Spec_2004_09 {
+
+ String NS_URI = "http://schemas.xmlsoap.org/ws/2004/09/mex";
+
+ public interface Actions {
+ String GET_METADATA_REQUEST = "http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata/Request";
+ String GET_METADATA_RESPONSE = "http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata/Response";
+
+ }
+ }
+
+
+ public interface SOAPVersion {
+ int v1_1 = 1;
+
+ int v1_2 = 2;
+
+ }
+
+
+ public interface SPEC {
+ String NS_PREFIX = "mex";
+ String GET_METADATA = "GetMetadata";
+ String DIALECT = "Dialect";
+ String IDENTIFIER = "Identifier";
+ String METADATA = "Metadata";
+ String METADATA_SECTION = "MetadataSection";
+ String METADATA_REFERENCE = "MetadataReference";
+ String LOCATION = "Location";
+ String TYPE = "type";
+
+ String DIALECT_TYPE_WSDL = "http://schemas.xmlsoap.org/wsdl/";
+ String DIALECT_TYPE_POLICY = "http://schemas.xmlsoap.org/ws/2004/09/policy";
+ String DIALECT_TYPE_SCHEMA = "http://www.w3.org/2001/XMLSchema";
+ String DIALECT_TYPE_MEX = "http://schemas.xmlsoap.org/ws/2004/09/mex";
+
+ }
+
+}
Added: webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MexException.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MexException.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MexException.java (added)
+++ webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MexException.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,44 @@
+/*
+* Copyright 2007 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.axis2.mex;
+
+import org.apache.axis2.AxisFault;
+
+/**
+ * Base Exception to report problem from implementation classes of
+ * WS-MetadataExchange.
+ *
+ */
+public class MexException extends AxisFault {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public MexException(String message) {
+ super(message);
+ }
+
+ public MexException(Throwable e) {
+ super(e);
+ }
+
+ public MexException(String message, Throwable e) {
+ super(message, e);
+ }
+
+}
Added: webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MexMessageReceiver.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MexMessageReceiver.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MexMessageReceiver.java (added)
+++ webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/MexMessageReceiver.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,287 @@
+/*
+* Copyright 2007 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.axis2.mex;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.soap.SOAPBody;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.dataRetrieval.Data;
+import org.apache.axis2.dataRetrieval.DataRetrievalException;
+import org.apache.axis2.dataRetrieval.DataRetrievalRequest;
+import org.apache.axis2.dataRetrieval.OutputForm;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver;
+import org.apache.axis2.mex.OM.Location;
+import org.apache.axis2.mex.OM.Metadata;
+import org.apache.axis2.mex.OM.MetadataReference;
+import org.apache.axis2.mex.OM.MetadataSection;
+import org.apache.axis2.mex.OM.MexOMException;
+import org.apache.axis2.mex.util.MexUtil;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Message Receiver for processing WS-MEX GetMetadata request.
+ *
+ */
+public class MexMessageReceiver extends AbstractInOutSyncMessageReceiver {
+ private static final Log log = LogFactory.getLog(MexMessageReceiver.class);
+
+ String mexNamespaceValue = null;
+
+ /**
+ *
+ */
+ public void invokeBusinessLogic(MessageContext msgContext,
+ MessageContext newmsgContext) throws AxisFault {
+
+ try {
+ Metadata metadata = handleRequest(msgContext);
+ AxisService theService = msgContext.getAxisService();
+
+ theService.setEndpointURL(msgContext.getTo().getAddress());
+
+ if (metadata != null) {
+ SOAPEnvelope envelope = newmsgContext.getEnvelope();
+ if (envelope == null) {
+ SOAPFactory fac = getSOAPFactory(msgContext);
+ envelope = fac.getDefaultEnvelope();
+ }
+
+ OMElement result = metadata.toOM();
+ if (result != null) {
+ AxisService service = msgContext.getAxisService();
+ result.declareNamespace(service.getTargetNamespace(),
+ service.getTargetNamespacePrefix());
+ envelope.getBody().addChild(result);
+ }
+
+ newmsgContext.setEnvelope(envelope);
+ }
+ // AxisService service = msgContext.getAxisService();
+
+ } catch (Exception e) {
+ log.info(e);
+ if (e instanceof MexException) {
+ throw (MexException) e;
+ }
+ throw new MexException(e);
+ }
+
+ }
+
+
+ /*
+ * Handle GetMetadata Request
+ * Interprete GetMetadata request and process request.
+ * @returns Metadata object
+ */
+ private Metadata handleRequest(MessageContext msgContext) throws AxisFault {
+ Metadata metadata = null;
+ SOAPEnvelope envelope = msgContext.getEnvelope();
+
+ SOAPBody body = envelope.getBody();
+ OMElement aReq = body.getFirstChildWithName(new QName(
+ MexConstants.SPEC.GET_METADATA));
+ List metadata_request_list;
+ if (aReq != null) {
+ metadata_request_list = determineMetadataTypes(aReq);
+
+ } else {
+ throw new MexException("Invalid Metadata request");
+ }
+
+ metadata = processRequest(metadata_request_list, msgContext, aReq);
+
+ return metadata;
+ }
+
+ /*
+ * Process the requests
+ *
+ * @param metadata_request_list list of mex Dialect for requesting data
+ * @msgContext MessageContext
+ * @aReq GetMetadata request
+ */
+
+ public Metadata processRequest(List metadata_request_list,
+ MessageContext msgContext, OMElement aReq) throws MexException {
+
+ String identifier_value = null;
+
+ DataRetrievalRequest requestOptions = new DataRetrievalRequest();
+ // Check if Identifier element included in request
+ OMElement identifier = aReq.getFirstChildWithName(new QName(
+ MexConstants.SPEC.IDENTIFIER));
+ if (identifier != null) {
+ identifier_value = identifier.getText();
+ if (identifier_value != null && identifier_value.length() > 0) {
+ requestOptions.putIdentifier(identifier_value);
+ }
+ }
+
+ // Instantiate Metadata instance to build the WS-Mex Metadata element
+ SOAPEnvelope envelope = msgContext.getEnvelope();
+ String soapNamespaceURI = envelope.getNamespace().getNamespaceURI();
+ SOAPFactory factory = MexUtil.getSOAPFactory(soapNamespaceURI);
+ mexNamespaceValue = MexConstants.Spec_2004_09.NS_URI;
+ Metadata metadata = new Metadata(factory, mexNamespaceValue);
+
+ // Process the request and append MetadataSection to Metadata
+ // Loop through the metadata_request_list for Dialect(s)), and setup requestOptions.
+ // Basically, one requestOptions is setup for each supported outputForm for the Dialect
+ // and Identifier specified in the GetMetadata request.
+ int len = metadata_request_list.size();
+ OutputForm[] outputforms;
+
+ for (int i = 0; i < len; i++) { // metadata request
+ String dialect = "";
+ try {
+ dialect = (String) metadata_request_list.get(i);
+
+ requestOptions.putDialect(dialect);
+
+ outputforms = MexUtil.allSupportedOutputForms();
+ // Loop to call AxisService::getData API to retrieve data
+ // for the Dialect and Identifier(if specified) in the request
+ // for each
+ // supported output form.
+
+ for (int j = 0; j < outputforms.length; j++) { // output form
+ requestOptions.putOutputForm(outputforms[j]);
+
+ Data[] result = msgContext.getAxisService().getData(requestOptions,
+ msgContext);
+
+ ArrayList sections = processData(result, outputforms[j], dialect,
+ identifier_value, factory);
+ metadata.addMetadatSections(sections);
+ }
+
+ } catch (DataRetrievalException e) {
+ log.error("Data Retrieval exception detected for dialect, " + dialect, e);
+
+ throw new MexException(e);
+ } catch (Throwable e) {
+
+ log.error("Throwable detected for dialect, " + dialect , e);
+
+ throw new MexException(e);
+ }
+
+ }
+ return metadata;
+ }
+
+ /*
+ * Create MetadataSection for each Data element, and add the
+ * MetadataSections to Metadata.
+ */
+ private ArrayList processData(Data[] data, OutputForm outputForm,
+ String dialect, String identifier_value, SOAPFactory factory) throws MexException {
+ MetadataSection section=null;
+ ArrayList sections = new ArrayList();
+ if (data == null || data.length == 0) {
+ if (log.isDebugEnabled())
+ log
+ .debug("No result was returned from getData request for dialect,"
+ + dialect
+ + " Form: "
+ + outputForm.getType()
+ + ". No MetadataSection will be added!");
+
+ } else {
+ for (int k = 0; k < data.length; k++) {
+
+ section = createMetadataSection(outputForm, data[k].getData(),
+ factory, mexNamespaceValue);
+
+ section.setDialet(dialect);
+ identifier_value = data[k].getIdentifier();
+
+ if (identifier_value != null) {
+ section.setIdentifier(identifier_value);
+ }
+ sections.add(section);
+
+ }
+ }
+ return sections;
+ }
+
+ private MetadataSection createMetadataSection(OutputForm outputForm,
+ Object result, SOAPFactory factory, String mexNamespaceValue)
+ throws MexOMException {
+ MetadataSection section = new MetadataSection(factory,
+ mexNamespaceValue);
+
+ if (outputForm == OutputForm.INLINE_FORM)
+ section.setinlineData(result);
+ else if (outputForm == OutputForm.LOCATION_FORM)
+ section.setLocation(new Location(factory, mexNamespaceValue,
+ (String) result));
+ else if (outputForm == OutputForm.REFERENCE_FORM) {
+ MetadataReference ref = new MetadataReference(factory,
+ mexNamespaceValue);
+ ref.setEPRElement((OMElement) result);
+ section.setMetadataReference(ref);
+ } else {
+
+ section.setinlineData((OMElement) result);
+ }
+
+ return section;
+ }
+
+ /*
+ * Traverse and interprete the GetMetadata OMElement for Dialect element
+ * that specified in the request. @returns a List with Dialect(s) of
+ * metadata requested.
+ *
+ */
+ private List determineMetadataTypes(OMElement aReq) {
+ List metadata_request_list = new ArrayList();
+
+ boolean allTypes = false;
+
+ OMElement dialect = aReq.getFirstChildWithName(new QName(
+ MexConstants.SPEC.DIALECT));
+ if (dialect != null) {
+ String dialectText = dialect.getText();
+ if (dialectText != null && dialectText.length() > 0) {
+ metadata_request_list.add(dialectText.trim());
+ } else
+ allTypes = true;
+ } else
+ allTypes = true;
+
+ if (allTypes) { // retrieve all metadata
+ metadata_request_list.add(MexConstants.SPEC.DIALECT_TYPE_POLICY);
+ metadata_request_list.add(MexConstants.SPEC.DIALECT_TYPE_SCHEMA);
+ metadata_request_list.add(MexConstants.SPEC.DIALECT_TYPE_WSDL);
+ }
+ return metadata_request_list;
+ }
+
+}
\ No newline at end of file
Added: webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/AnyURIType.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/AnyURIType.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/AnyURIType.java (added)
+++ webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/AnyURIType.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,67 @@
+/*
+* Copyright 2007 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.axis2.mex.OM;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axis2.mex.MexConstants;
+
+/**
+ * Base Class implemented for element(s) that of type='xs:anyURI' defined in
+ * the WS-MEX spec.
+ *
+ */
+
+public abstract class AnyURIType extends MexOM implements IMexOM {
+ private String uri = null;
+ private OMFactory defaultFactory;
+
+ private String namespaceValue = null;
+
+ public AnyURIType(OMFactory defaultFactory, String namespaceValue, String uri) throws MexOMException {
+ if (!isNamespaceSupported(namespaceValue))
+ throw new MexOMException ("Unsupported namespace");
+
+ this.defaultFactory = defaultFactory;
+ this.namespaceValue = namespaceValue;
+ this.uri = uri;
+ }
+
+
+ /**
+ * Convert object content to the OMElement representation.
+ * @return OMElement representation of sub-class of AnyURIType.
+ * @throws MexOMException
+ */
+
+ public OMElement toOM() throws MexOMException {
+ if (uri == null || uri == "") {
+ throw new MexOMException("Expected URI type is not set .. ");
+ }
+
+ OMNamespace mexNamespace = defaultFactory.createOMNamespace(namespaceValue,MexConstants.SPEC.NS_PREFIX);
+ OMElement element = defaultFactory.createOMElement(getElementName(), mexNamespace);
+ element.setText(uri);
+ return element;
+ }
+
+ /*
+ * Child class must implement to answer the element name.
+ */
+ protected abstract String getElementName();
+}
Added: webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Dialet.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Dialet.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Dialet.java (added)
+++ webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Dialet.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,59 @@
+/*
+* Copyright 2007 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.axis2.mex.OM;
+
+import org.apache.axiom.om.OMFactory;
+import org.apache.axis2.mex.MexConstants;
+
+/**
+ * Class implemented for Dialect element defined in
+ * the WS-MEX spec.
+ *
+ */
+
+public class Dialet extends AnyURIType {
+
+ /**
+ * Constructor
+ * @param defaultFactory
+ * @param namespaceValue namespace info
+ * @param dialect Dialect in URI representation
+ * @throws MexOMException
+ */
+ public Dialet(OMFactory defaultFactory, String namespaceValue, String dialect) throws MexOMException {
+ super(defaultFactory, namespaceValue, dialect);
+ }
+
+ /**
+ * Constructor with default namespace
+ * @param defaultFactory
+ * @param dialect Dialect in URI representation
+ * @throws MexOMException
+ */
+ public Dialet(OMFactory defaultFactory, String dialect) throws MexOMException {
+ super(defaultFactory, MexConstants.Spec_2004_09.NS_URI, dialect );
+ }
+
+ /*
+ * Return name of this element
+ * (non-Javadoc)
+ * @see org.apache.axis2.Mex.OM.AnyURIType#getElementName()
+ */
+ protected String getElementName(){
+ return MexConstants.SPEC.DIALECT;
+ }
+}
Added: webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/IMexOM.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/IMexOM.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/IMexOM.java (added)
+++ webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/IMexOM.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,32 @@
+/*
+* Copyright 2007 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.axis2.mex.OM;
+
+import org.apache.axiom.om.OMElement;
+
+/**
+ * Base interface for objects implemented for elements defined in
+ * the WS-MEX spec.
+ */
+public interface IMexOM {
+ public OMElement toOM() throws MexOMException;
+
+ public String getNamespaceValue();
+
+ public boolean isNamespaceSupported (String namespaceName);
+}
+
Added: webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Identifier.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Identifier.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Identifier.java (added)
+++ webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Identifier.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,45 @@
+/*
+* Copyright 2007 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.axis2.mex.OM;
+
+import org.apache.axiom.om.OMFactory;
+import org.apache.axis2.mex.MexConstants;
+
+/**
+ * Class implemented for Identifier element defined in
+ * the WS-MEX spec.
+ *
+ */
+
+public class Identifier extends AnyURIType {
+
+ public Identifier(OMFactory defaultFactory, String namespaceValue, String uri) throws MexOMException {
+ super(defaultFactory, namespaceValue, uri);
+ }
+ public Identifier(OMFactory defaultFactory, String uri) throws MexOMException {
+ super(defaultFactory, MexConstants.Spec_2004_09.NS_URI, uri );
+ }
+
+ /*
+ * Return name of this element
+ * (non-Javadoc)
+ * @see org.apache.axis2.Mex.OM.AnyURIType#getElementName()
+ */
+ protected String getElementName(){
+ return MexConstants.SPEC.IDENTIFIER;
+ }
+}
Added: webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Location.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Location.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Location.java (added)
+++ webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Location.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,45 @@
+/*
+* Copyright 2007 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.axis2.mex.OM;
+
+import org.apache.axiom.om.OMFactory;
+import org.apache.axis2.mex.MexConstants;
+
+/**
+ * Class implemented for Location element defined in
+ * the WS-MEX spec.
+ *
+ */
+
+public class Location extends AnyURIType {
+
+ public Location(OMFactory defaultFactory, String namespaceValue, String uri) throws MexOMException {
+ super(defaultFactory, namespaceValue, uri);
+ }
+ public Location(OMFactory defaultFactory, String uri) throws MexOMException {
+ super(defaultFactory, MexConstants.Spec_2004_09.NS_URI, uri );
+ }
+
+ /*
+ * Return name of this element
+ * (non-Javadoc)
+ * @see org.apache.axis2.Mex.OM.AnyURIType#getElementName()
+ */
+ protected String getElementName(){
+ return MexConstants.SPEC.LOCATION;
+ }
+}
Added: webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Metadata.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Metadata.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Metadata.java (added)
+++ webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/Metadata.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,93 @@
+/*
+* Copyright 2007 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.axis2.mex.OM;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.axiom.om.OMAttribute;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axis2.mex.MexConstants;
+
+/**
+ *
+ * Class implementing mex:Metadata element
+ *
+ */
+
+public class Metadata extends MexOM implements IMexOM {
+ private String namespaceValue = null;
+ private OMFactory factory;
+ private List metadataSections = new ArrayList();
+ private OMAttribute attribute = null;
+
+ /**
+ *
+ * @param defaultFactory
+ * @param namespaceValue
+ * @throws MexOMException
+ */
+
+ public Metadata(OMFactory defaultFactory, String namespaceValue) throws MexOMException {
+ this.factory = defaultFactory;
+ this.namespaceValue = namespaceValue;
+ }
+
+
+ public OMElement toOM() throws MexOMException
+ {
+ OMNamespace mexNamespace = factory.createOMNamespace(namespaceValue,MexConstants.SPEC.NS_PREFIX);
+ OMElement metadata = factory.createOMElement(MexConstants.SPEC.METADATA, mexNamespace);
+
+ Iterator sections = metadataSections.iterator();
+ while (sections.hasNext()) {
+ MetadataSection aSection = (MetadataSection) sections.next();
+ metadata.addChild(aSection.toOM());
+ }
+ if (attribute != null){
+ metadata.addAttribute(attribute); //???
+ }
+ return metadata;
+ }
+
+ public void setMetadatSections(List in_metadataSections) {
+ metadataSections = in_metadataSections;
+ }
+
+ public void addMetadatSections(List in_metadataSections) {
+ Iterator sections = in_metadataSections.iterator();
+ while (sections.hasNext()) {
+ addMetadatSection((MetadataSection) sections.next());
+ }
+ }
+
+ public void addMetadatSection(MetadataSection section) {
+ metadataSections.add(section);
+ }
+
+ public MetadataSection[] getMetadatSections() {
+ return (MetadataSection[])metadataSections.toArray(new MetadataSection[0]);
+ }
+
+ public void setAttribute(OMAttribute in_attribute) {
+ attribute = in_attribute;
+ }
+
+}
Added: webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MetadataReference.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MetadataReference.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MetadataReference.java (added)
+++ webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MetadataReference.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,95 @@
+/*
+* Copyright 2007 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.axis2.mex.OM;
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axis2.AxisFault;
+//import org.apache.axis2.addressing.EndpointReference;
+//import org.apache.axis2.addressing.EndpointReferenceHelper;
+import org.apache.axis2.mex.MexConstants;
+
+/**
+ * Class implemented for MetadataReference element defined in
+ * the WS-MetadataExchange spec.
+ *
+ */
+
+public class MetadataReference extends MexOM implements IMexOM {
+
+ private OMFactory factory;
+ private OMElement eprElement = null;
+
+ private String namespaceValue = null;
+
+ /**
+ * Constructor
+ * @param defaultFactory
+ * @param namespaceValue
+ * @throws MexOMException
+ */
+
+ public MetadataReference(OMFactory defaultFactory, String namespaceValue)
+ throws MexOMException {
+ if (!isNamespaceSupported(namespaceValue))
+ throw new MexOMException("Unsupported namespace");
+
+ this.factory = defaultFactory;
+ this.namespaceValue = namespaceValue;
+ }
+
+ /**
+ * Convert MetadatReference object content to the OMElement representation.
+ * @return OMElement representation of MetadatReference.
+ * @throws MexOMException
+ */
+ public OMElement toOM() throws MexOMException {
+ if (eprElement == null) {
+ throw new MexOMException(
+ "Must have EndpointReference element in MetadataReference");
+ }
+
+ OMElement metadataRef = null;
+ /*if (eprElement.getLocalName() == "EndpointReference") {
+ EndpointReference epr;
+ try {
+ epr = EndpointReferenceHelper.fromOM(eprElement);
+ metadataRef = EndpointReferenceHelper.toOM(factory, epr,
+ new QName(namespaceValue,
+ MexConstants.SPEC.METADATA_REFERENCE,
+ MexConstants.SPEC.NS_PREFIX), eprElement
+ .getNamespace().getNamespaceURI());
+
+ } catch (AxisFault e) {
+ throw new MexOMException(e);
+ }
+ } */
+
+ return metadataRef;
+ }
+
+ /**
+ * Set EPR element
+ *
+ * @param element
+ */
+ public void setEPRElement(OMElement element) {
+ eprElement = element;
+ }
+
+}
Added: webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MetadataSection.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MetadataSection.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MetadataSection.java (added)
+++ webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MetadataSection.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,151 @@
+/*
+* Copyright 2007 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.axis2.mex.OM;
+
+
+import org.apache.axiom.om.OMAttribute;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.om.OMNode;
+import org.apache.axis2.mex.MexConstants;
+
+
+/**
+ * Class implemented for MetadataSection element defined in
+ * the WS-MEX spec.
+ *
+ */
+public class MetadataSection extends MexOM implements IMexOM {
+ private String namespaceValue = null;
+ private OMFactory factory;
+ // Choices of content: inline metadata, MetadataReference, Location
+ private String anyAttribute = null;
+ private OMNode inlineData = null;
+ //private String inlineData = null;
+ private Location location = null;
+ private MetadataReference ref = null;
+
+ // Attributes
+ private String dialet;
+ private String identifier;
+
+ /**
+ * Constructor
+ * @param defaultFactory
+ * @param namespaceValue
+ * @throws MexOMException
+ */
+ public MetadataSection(OMFactory defaultFactory, String namespaceValue) throws MexOMException {
+ this.factory = defaultFactory;
+ this.namespaceValue = namespaceValue;
+ }
+
+
+ /**
+ * Convert MetadatSection content to the OMElement representation.
+ * @return OMElement representation of MetadataSection.
+ * @throws MexOMException
+ */
+ public OMElement toOM() throws MexOMException {
+ OMNamespace mexNamespace = factory.createOMNamespace(namespaceValue,
+ MexConstants.SPEC.NS_PREFIX);
+ OMElement metadataSection = factory.createOMElement(
+ MexConstants.SPEC.METADATA_SECTION, mexNamespace);
+
+ // dialet is required
+ if (dialet == null) {
+ throw new MexOMException("Dialet was not set. Dialet must be set.");
+ }
+ OMAttribute dialetAttrib = factory.createOMAttribute(
+ MexConstants.SPEC.DIALECT, null, dialet);
+
+ metadataSection.addAttribute(dialetAttrib);
+
+ if (identifier != null && identifier.trim().length() > 0) {
+ OMAttribute identifierAttrib = factory.createOMAttribute(
+ MexConstants.SPEC.IDENTIFIER, null, identifier);
+
+ metadataSection.addAttribute(identifierAttrib);
+ }
+ if (anyAttribute != null) {
+ OMAttribute anyAttrib = factory.createOMAttribute("AnyAttribute",
+ null, anyAttribute);
+
+ metadataSection.addAttribute(anyAttrib);
+ }
+
+ if (inlineData != null) {
+ metadataSection.addChild(inlineData);
+
+ }
+
+ if (location != null) {
+ metadataSection.addChild(location.toOM());
+ }
+
+ if (ref != null) {
+ metadataSection.addChild(ref.toOM());
+ }
+ return metadataSection;
+
+ }
+
+ public String getDialet() {
+ return dialet;
+ }
+
+ public String getIdentifier() {
+ return identifier;
+ }
+
+ public String getanyAttribute() {
+ return anyAttribute;
+ }
+ public Location getLocation() {
+ return location;
+ }
+
+ public OMNode getInlineData() {
+ return inlineData;
+ }
+
+ public MetadataReference getMetadataReference() {
+ return ref;
+ }
+
+ public void setIdentifier(String in_identifier) {
+ identifier =in_identifier;
+ }
+
+ public void setDialet(String in_dialet) {
+ dialet = in_dialet;
+ }
+
+
+ public void setLocation(Location in_location) {
+ location = in_location;
+ }
+
+ public void setinlineData(Object in_inlineData) {
+ inlineData = (OMNode)in_inlineData;
+ }
+
+ public void setMetadataReference(MetadataReference in_ref) {
+ ref = in_ref;
+ }
+}
Added: webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MexOM.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MexOM.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MexOM.java (added)
+++ webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MexOM.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,43 @@
+/*
+* Copyright 2007 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.axis2.mex.OM;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axis2.mex.MexConstants;
+
+/**
+ * Base class for objects implemented for elements defined in
+ * the WS-MEX spec.
+ */
+
+public abstract class MexOM implements IMexOM {
+
+
+ public OMElement toOM() throws MexOMException {
+ return null;
+ }
+
+ public String getNamespaceValue(){
+ return MexConstants.Spec_2004_09.NS_URI;
+ }
+
+ public boolean isNamespaceSupported (String namespaceName) {
+ boolean supported = false;
+ supported = MexConstants.Spec_2004_09.NS_URI.equals(namespaceName);
+ return supported;
+ }
+}
Added: webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MexOMException.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MexOMException.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MexOMException.java (added)
+++ webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/OM/MexOMException.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,42 @@
+/*
+* Copyright 2007 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.axis2.mex.OM;
+
+import org.apache.axis2.mex.MexException;
+
+/**
+ * An Exception to report problem from implementation classes for the
+ * WS-MetadataExchange data elements.
+ *
+ */
+public class MexOMException extends MexException {
+
+ private static final long serialVersionUID = 1L;
+
+ protected MexOMException(String message) {
+ super(message);
+ }
+
+ protected MexOMException(Exception e) {
+ super(e);
+ }
+
+ protected MexOMException(String message, Exception e) {
+ super(message, e);
+ }
+
+}
\ No newline at end of file
Added: webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/util/MexUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/util/MexUtil.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/util/MexUtil.java (added)
+++ webservices/axis2/trunk/java/modules/mex/src/org/apache/axis2/mex/util/MexUtil.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,111 @@
+/*
+* Copyright 2007 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.axis2.mex.util;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.impl.OMNamespaceImpl;
+import org.apache.axiom.soap.SOAP11Constants;
+import org.apache.axiom.soap.SOAP12Constants;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPFactory;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.mex.MexException;
+import org.apache.axis2.mex.MexConstants;
+import org.apache.axis2.dataRetrieval.OutputForm;
+
+public class MexUtil {
+
+ /**
+ * Answer SOAPVersion for specified envelope
+ * @param envelope SOAP Envelope
+ * @return version of SOAP
+ * @throws MexException
+ */
+ public static int getSOAPVersion(SOAPEnvelope envelope) throws MexException {
+ String namespaceName = envelope.getNamespace().getNamespaceURI();
+ if (namespaceName.equals(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI))
+ return MexConstants.SOAPVersion.v1_1;
+ else if (namespaceName.equals(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI))
+ return MexConstants.SOAPVersion.v1_2;
+ else
+ throw new MexException("Unknown SOAP version");
+ }
+
+ /**
+ * Answer SOAPFactory corresponding to specified SOAP namespace URI
+ * @param soapNameSpaceURI soap namespace uri
+ * @return
+ * @throws MexException
+ */
+ public static SOAPFactory getSOAPFactory(String soapNameSpaceURI) throws MexException {
+ if (soapNameSpaceURI.equals(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI))
+ return OMAbstractFactory.getSOAP11Factory();
+ else if (soapNameSpaceURI.equals(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI))
+ return OMAbstractFactory.getSOAP12Factory();
+ else
+ throw new MexException("Unknown SOAP soapNameSpaceURI");
+ }
+
+ /**
+ * Answers SOAPFactory corresponding to specified SOAP Version
+ * @param SOAPVersion SOAP version
+ * @return SOAPFactory
+ */
+ public static SOAPFactory getSOAPFactory(int SOAPVersion) {
+
+ if (SOAPVersion == MexConstants.SOAPVersion.v1_1)
+ return OMAbstractFactory.getSOAP11Factory();
+ else
+ return OMAbstractFactory.getSOAP12Factory();
+
+ }
+
+
+ // Return all supported output forms
+ public static OutputForm[] allSupportedOutputForms(){
+ OutputForm[]outputforms = new OutputForm[] {
+ OutputForm.INLINE_FORM,
+ OutputForm.LOCATION_FORM,
+ OutputForm.REFERENCE_FORM};
+ return outputforms;
+ }
+
+ /**
+ * Answers WS-Addressing namespace
+ * @param toAddress To Address element
+ * @return OMNamespaceImpl WS-Addressing namespace
+ * @throws AxisFault
+ */
+
+ public static OMNamespaceImpl getAddressingNameSpace(OMElement toAddress)
+ throws MexException {
+ OMFactory factory = OMAbstractFactory.getOMFactory();
+ OMNamespaceImpl wsa = null;
+ try {
+ String prefix = toAddress.getNamespace().getPrefix();
+ String nsURI = toAddress.getNamespace().getNamespaceURI();
+ wsa = (OMNamespaceImpl) factory.createOMNamespace(nsURI, prefix);
+ } catch (Exception e) {
+ throw new MexException(e);
+ }
+ return wsa;
+
+ }
+
+}
Added: webservices/axis2/trunk/java/modules/samples/mex/README.txt
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/mex/README.txt?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/mex/README.txt (added)
+++ webservices/axis2/trunk/java/modules/samples/mex/README.txt Fri Feb 16 03:24:46 2007
@@ -0,0 +1,70 @@
+Sample: mex (Metadata Exchange)
+====================================
+
+Introduction
+============
+
+The examples provided demostrates data retrieval for WS-MetadataExchange GetMetadata request
+handled by different level of data locators below:
+ 1. Default Axis2 data locator
+ 2. Plug-in service level data locator
+ 3. Plug-in service sevel WSDL-specific data locator
+
+Note: Example 2 and 3 are only for the sole purpose of demostrating plug-in data locator support. The
+ data retrieval logic for the plug-in data locators are not implemented.
+
+Details for the examples are documented in the Apache Metadata Exchange User's Guide.
+
+Prerequisites
+=============
+
+To build the sample service you must have ant-1.6.x installed in your system.
+
+To set AXIS2_HOME in Unix/Linux type:
+$export AXIS2_HOME=<path to axis2 distribution>
+
+metadataExchange module must be deployed and engaged.
+Please refer to Apache Metadata Exchange User's Guide for how to deploy and engage
+the metadataExchange module.
+
+
+Building the Service
+====================
+
+To build the sample service, type: $ant generate.service or just ant
+
+This will build the DefaultAxis2DataLocatorDemoService.aar, ServiceLevelDataLocatorDemoService.aar,
+and WSDLDataLocatorDemoService.aar service archive files in the build directory and copy them to the
+<AXIS2_HOME>/repository/services directory.
+
+You can start the Axis2 server by running either axis2server.bat (on Windows) or axis2server.sh
+(on Linux)that are located in <AXIS2_HOME>/bin directory.
+
+The WSDL for this service should be viewable at:
+
+http://<yourhost>:<yourport>/axis2/services/DefaultAxis2DataLocatorDemoService?wsdl
+(e.g. http://localhost:8080/axis2/services/DefaultAxis2DataLocatorDemoService?wsdl)
+
+The clients to send GetMetadata requests are available in samples/mex/src/userguide/mex/clients directory.
+
+
+Running the Client
+==================
+
+To compile and run Default Axis2 data locator scenario, type
+$ant run.client.default
+
+To compile and run Plug-in service level Axis2 data locator scenario, type
+$ant run.client.service
+
+To compile and run PLug-in WSDL-specific level Axis2 data locator scenario, type
+$ant run.client.wsdl
+
+
+Help
+====
+Please contact axis-user list (axis-user@ws.apache.org) if you have any trouble running the sample.
+
+
+
+
Added: webservices/axis2/trunk/java/modules/samples/mex/build.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/mex/build.xml?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/mex/build.xml (added)
+++ webservices/axis2/trunk/java/modules/samples/mex/build.xml Fri Feb 16 03:24:46 2007
@@ -0,0 +1,119 @@
+<!--
+/*
+ * Copyright 2001-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.
+ */
+ -->
+<project name="samples" default="generate.service">
+ <property name="mainDir" value="../.."/>
+ <property name="classes.dir" value="build/classes"/>
+ <path id="axis.classpath">
+ <fileset dir="../../lib">
+ <include name="*.jar"/>
+ </fileset>
+ <pathelement location="build/userguideMex.jar"/>
+ </path>
+
+ <target name="run.client.all"
+ depends="run.client.default,run.client.service,run.client.wsdl">
+ </target>
+
+ <target name="compile">
+ <mkdir dir="${classes.dir}" />
+ <javac srcdir="src" destdir="${classes.dir}">
+ <classpath refid="axis.classpath" />
+ </javac>
+ <jar destfile="build/userguideMex.jar">
+ <fileset dir="${classes.dir}">
+ <include name="userguide/**"/>
+ </fileset>
+ </jar>
+ </target>
+
+ <target name="generate.service" depends="compile">
+ <jar destfile="build/DefaultAxis2DataLocatorDemoService.aar">
+ <fileset dir="src/userguide/mex/services/example1/">
+ <include name="META-INF/**"/>
+ </fileset>
+ <fileset dir="${classes.dir}">
+ <include name="userguide/mex/services/example1/**/*.class"/>
+ </fileset>
+ </jar>
+ <copy file="build/DefaultAxis2DataLocatorDemoService.aar" tofile="../../repository/services/DefaultAxis2DataLocatorDemoService.aar" overwrite="true"/>
+ <jar destfile="build/ServiceLevelDataLocatorDemoService.aar" >
+ <fileset dir="src/userguide/mex/services/example2/">
+ <include name="META-INF/**"/>
+ </fileset>
+ <fileset dir="${classes.dir}">
+ <include name="userguide/mex/services/example2/**/*.class"/>
+ </fileset>
+ </jar>
+ <copy file="build/ServiceLevelDataLocatorDemoService.aar" tofile="../../repository/services/ServiceLevelDataLocatorDemoService.aar" overwrite="true"/>
+ <jar destfile="build/WSDLDataLocatorDemoService.aar">
+ <fileset dir="src/userguide/mex/services/example3/">
+ <include name="META-INF/**"/>
+ </fileset>
+ <fileset dir="${classes.dir}">
+ <include name="userguide/mex/services/example3/**/*.class"/>
+ </fileset>
+ </jar>
+ <copy file="build/WSDLDataLocatorDemoService.aar" tofile="../../repository/services/WSDLDataLocatorDemoService.aar" overwrite="true"/>
+ </target>
+
+ <target name="run.client.default" depends="compile">
+ <java classname="userguide.mex.clients.DemoDefaultDataLocator"
+ classpathref="axis.classpath" fork="true">
+ <jvmarg value="-Daxis2.repo=${mainDir}/repository"/>
+ </java>
+ </target>
+ <target name="run.client.service" depends="compile">
+ <java classname="userguide.mex.clients.DemoServiceLevelDataLocator"
+ classpathref="axis.classpath" fork="true">
+ <jvmarg value="-Daxis2.repo=${mainDir}/repository"/>
+ </java>
+ </target>
+
+ <target name="run.client.wsdl" depends="compile">
+ <java classname="userguide.mex.clients.DemoWSDLServiceDataLocator"
+ classpathref="axis.classpath" fork="true">
+ <jvmarg value="-Daxis2.repo=${mainDir}/repository"/>
+ </java>
+ </target>
+
+
+ <target name="run.datalocators.service" depends="compile">
+ <java classname="userguide.mex.datalocators.ServiceLevelDataLocator"
+ classpathref="axis.classpath" fork="true">
+ <jvmarg value="-Daxis2.repo=${mainDir}/repository"/>
+ </java>
+ </target>
+
+ <target name="run.datalocators.wsdl" depends="compile">
+ <java classname="userguide.mex.datalocators.WSDLDataLocator"
+ classpathref="axis.classpath" fork="true">
+ <jvmarg value="-Daxis2.repo=${mainDir}/repository"/>
+ </java>
+ </target>
+
+ <target name="run.client">
+ <echo message="Please use the following ant targets to run the clients" />
+ <echo message="run.client.default" />
+ <echo message="run.client.service" />
+ <echo message="run.client.wsdl" />
+ <echo message="run.client.all - run all clients" />
+ </target>
+ <target name="clean">
+ <delete dir="build" />
+ </target>
+</project>
Added: webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/clients/DemoDefaultDataLocator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/clients/DemoDefaultDataLocator.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/clients/DemoDefaultDataLocator.java (added)
+++ webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/clients/DemoDefaultDataLocator.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,85 @@
+/*
+* Copyright 2007 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 userguide.mex.clients;
+
+import java.io.StringWriter;
+import javax.xml.stream.FactoryConfigurationError;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.axiom.om.OMElement;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.client.Options;
+import org.apache.axis2.dataRetrieval.DRConstants;
+import org.apache.axis2.dataRetrieval.client.MexClient;
+
+/**
+ * Sample to demostrate using Defautl Axis 2 Data Locator to perform data retrieval
+ * for the WS-MEX GetMetadata request.
+ *
+ * In the example, no Data Locator is configured in the Axis2.xml nor the services.xml.
+ *
+ * Before running the sample, you must first deploy the Axis 2 sample DefaultAxisDataLocatorDemoService service i.e.
+ * DefaultAxisDataLocatorDemoService.aar file.
+ *
+ */
+
+public class DemoDefaultDataLocator {
+
+ private static EndpointReference targetEPR = new EndpointReference("http://127.0.0.1:8080/axis2/services/DefaultAxisDataLocatorDemoService");
+
+ public static void main(String[] args) {
+ try {
+ System.out.println("Test getMetadata for " + targetEPR.getAddress());
+
+ MexClient serviceClient = new MexClient();
+ Options options = new Options();
+ serviceClient.setOptions(options);
+
+ options.setTo(targetEPR);
+ options.setAction(DRConstants.SPEC.Actions.GET_METADATA_REQUEST);
+
+ System.out.println ("No DataLocator configured! Used AxisDataLocator");
+
+ OMElement method = serviceClient.setupGetMetadataRequest(null, null);
+
+ OMElement result = serviceClient.sendReceive(method);
+ System.out.println(result);
+ StringWriter writer = new StringWriter();
+ try {
+ result.serialize(XMLOutputFactory.newInstance()
+ .createXMLStreamWriter(writer));
+ } catch (XMLStreamException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (FactoryConfigurationError e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ writer.flush();
+ System.out.println(writer.toString());
+
+
+
+ } catch (AxisFault axisFault) {
+ axisFault.printStackTrace();
+ }
+ }
+
+}
Added: webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/clients/DemoServiceLevelDataLocator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/clients/DemoServiceLevelDataLocator.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/clients/DemoServiceLevelDataLocator.java (added)
+++ webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/clients/DemoServiceLevelDataLocator.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,64 @@
+/*
+* Copyright 2007 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 userguide.mex.clients;
+
+import java.util.Calendar;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.client.Options;
+import org.apache.axis2.dataRetrieval.DRConstants;
+import org.apache.axis2.dataRetrieval.client.MexClient;
+
+/**
+ * Sample to demostrate using User-defined Service level Data Locator to perform data retrieval
+ * for the WS-MEX GetMetadata request.
+ *
+ * In the example, dataLocator element was added in the services.xml of the target Service.
+ *
+ * Before running the sample, you must first deploy the Axis 2 sample ServiceLevelDataLocatorDemoService service i.e.
+ * ServiceLevelDataLocatorDemoService.aar file.
+ *
+ */
+
+public class DemoServiceLevelDataLocator {
+ private static EndpointReference targetEPR = new EndpointReference(
+ "http://127.0.0.1:8080/axis2/services/ServiceLevelDataLocatorDemoService");
+
+ public static void main(String[] args) {
+ try {
+ System.out
+ .println(Calendar.getInstance().getTime() + " Test getMetadata for " + targetEPR.getAddress());
+ MexClient serviceClient = new MexClient();
+ Options options = new Options();
+ serviceClient.setOptions(options);
+ options.setTo(targetEPR);
+ options.setAction(DRConstants.SPEC.Actions.GET_METADATA_REQUEST);
+
+ String identifier = null;
+ OMElement method = serviceClient.setupGetMetadataRequest(DRConstants.SPEC.DIALECT_TYPE_WSDL, identifier);
+
+ OMElement result = serviceClient.sendReceive(method);
+
+ System.out.println(result);
+
+ } catch (AxisFault axisFault) {
+ axisFault.printStackTrace();
+ }
+ }
+}
Added: webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/clients/DemoWSDLServiceDataLocator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/clients/DemoWSDLServiceDataLocator.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/clients/DemoWSDLServiceDataLocator.java (added)
+++ webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/clients/DemoWSDLServiceDataLocator.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,64 @@
+/*
+* Copyright 2007 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 userguide.mex.clients;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.client.Options;
+import org.apache.axis2.dataRetrieval.DRConstants;
+import org.apache.axis2.dataRetrieval.client.MexClient;
+
+/**
+ * Sample to demostrate using User-defined Service level WSDL dialect specific
+ * Data Locator to perform data retrievalfor the WS-MEX GetMetadata request.
+ *
+ * In the example, dialectLocator for dialect="http://schemas.xmlsoap.org/wsdl/"
+ * element was added in the services.xml of the target Service.
+ *
+ * Before running the sample, you must first deploy the Axis 2 sample "WSDLDataLocatorDemoService" service i.e.
+ * WSDLDataLocatorDemoService.aar file.
+ *
+ */
+public class DemoWSDLServiceDataLocator {
+ private static EndpointReference targetEPR = new EndpointReference(
+ "http://127.0.0.1:8080/axis2/services/WSDLDataLocatorDemoService");
+public static void main(String[] args) {
+try {
+ System.out
+ .println("Test getMetadata for " + targetEPR.getAddress());
+ System.out
+ .println("Service WSDL specific DataLocator was configured");
+
+ MexClient serviceClient = new MexClient();
+ Options options = new Options();
+ options.setAction(DRConstants.SPEC.Actions.GET_METADATA_REQUEST);
+ options.setTo(targetEPR);
+
+ serviceClient.setOptions(options);
+ String identifier = null;
+ OMElement method = serviceClient.setupGetMetadataRequest(DRConstants.SPEC.DIALECT_TYPE_WSDL, identifier);
+
+ OMElement result = serviceClient.sendReceive(method);
+
+ System.out.println(result);
+
+} catch (AxisFault axisFault) {
+ axisFault.printStackTrace();
+}
+}
+}
Added: webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/datalocators/GlobalDataLocator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/datalocators/GlobalDataLocator.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/datalocators/GlobalDataLocator.java (added)
+++ webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/datalocators/GlobalDataLocator.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,53 @@
+package userguide.mex.datalocators;
+
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.dataRetrieval.AxisDataLocator;
+import org.apache.axis2.dataRetrieval.DRConstants;
+import org.apache.axis2.dataRetrieval.Data;
+import org.apache.axis2.dataRetrieval.DataRetrievalException;
+import org.apache.axis2.dataRetrieval.DataRetrievalRequest;
+import org.apache.axis2.dataRetrieval.OutputForm;
+
+/*
+ * Sample user-defined Global Level Locator, GlobalDataLocator
+ *
+ * The sample Data Locator implemented supports data retrieval for the Policy and Schema
+ * dialects. For dialects that it does not understand, it delegates the request
+ * to the available Data Locators in the hierachy by returning Result with
+ * useDataLocatorHierachy indicator set.
+ *
+ * See {@link DemoServiceLevelDataLocator} for steps to invoke getData API
+ * of this Data Locator.
+ *
+ */
+public class GlobalDataLocator implements AxisDataLocator {
+
+ public Data[] getData(DataRetrievalRequest request,
+ MessageContext msgContext) throws DataRetrievalException {
+ Data[] output = null;
+ String dialect = request.getDialect();
+ OutputForm form = request.getOutputForm();
+ if (form == OutputForm.REFERENCE_FORM){
+
+ }
+ if (dialect.equals(DRConstants.SPEC.DIALECT_TYPE_POLICY) || dialect.equals(DRConstants.SPEC.DIALECT_TYPE_SCHEMA)){
+ System.out.print("ServiceLevelDataLocator has not implemented data retrieval for dialect " + dialect);
+ System.out.println("");
+ System.out.println("!!!! get Axis2 default Data Locator to retrieve data for " + dialect);
+
+ // result = new Result();
+ // result.setUseDataLocatorHierachy(true);
+
+ }
+ else {
+ System.out.println("!!!! ServiceLevelDataLocator does not support dialect " + dialect);
+ System.out.println("");
+ System.out.println("!!!! get Axis2 default Data Locator to retrieve data for " + dialect);
+ // result = new Result();
+ // result.setUseDataLocatorHierachy(true);
+ }
+ return output;
+
+ }
+
+}
Added: webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/datalocators/ServiceLevelDataLocator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/datalocators/ServiceLevelDataLocator.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/datalocators/ServiceLevelDataLocator.java (added)
+++ webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/datalocators/ServiceLevelDataLocator.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,81 @@
+/*
+* Copyright 2007 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 userguide.mex.datalocators;
+
+import java.util.Calendar;
+
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.dataRetrieval.*;
+
+/*
+ * Sample Service Level Locator
+ * ServiceLevelDataLocator is configured as a Service level Data Locator
+ * for the Sample ServiceLevelDataLocatorDemoService service.
+ *
+ * The sample Data Locator is only for the purpose of demostrating an implementation of
+ * user-defined Service Level Data Locator, the actual data retrieval code is not implemented.
+ * In the example, a empty Data array is returned for Policy and Schema data retrieval
+ * request, and a null Data array is returned for WSDL data retrieval.
+ *
+ * Note: Empty Data array means Data Locator understood the request, however data
+ * is not available for the Dialect; a null data array means Data Locator does not understand
+ * the request.
+ *
+ * Run {@link DemoServiceLevelDataLocator} client code to invoke this sample data locator.
+ *
+ */
+
+public class ServiceLevelDataLocator implements AxisDataLocator {
+
+ public Data[] getData(DataRetrievalRequest request,
+ MessageContext msgContext) throws DataRetrievalException {
+ System.out
+ .println(Calendar.getInstance().getTime()
+ + " !!!! userguide.mex.datalocators.ServiceLevelDataLocator performing getData !!!!");
+
+ System.out
+ .print(" !!! SERVICE LEVEL Data Locator supports Policy and Schema dialects only !!!");
+ Data[] result = null;
+
+ String dialect = request.getDialect();
+ if (dialect.equals(DRConstants.SPEC.DIALECT_TYPE_POLICY)
+ || dialect.equals(DRConstants.SPEC.DIALECT_TYPE_SCHEMA)) {
+ // You may implement logic to retrieve Policy and Schema metadata here!!
+ //
+ System.out
+ .print("ServiceLevelDataLocator has not implemented data retrieval for dialect "
+ + dialect);
+ System.out.println("");
+ System.out
+ .println("!!!! Return empty Data means the Data Locator understood the request for Dialect, but no data is available for the dialect");
+ result = new Data[0];
+
+ } else {
+ System.out
+ .println("!!!! ServiceLevelDataLocator does not support dialect "
+ + dialect);
+ System.out.println("");
+ System.out
+ .println("!!!! Return Null Data means escalate to the Axis2 default Data Locator to retrieve data for "
+ + dialect);
+ }
+ return result;
+ }
+
+
+
+}
Added: webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/datalocators/WSDLDataLocator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/datalocators/WSDLDataLocator.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/datalocators/WSDLDataLocator.java (added)
+++ webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/datalocators/WSDLDataLocator.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,55 @@
+/*
+* Copyright 2007 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 userguide.mex.datalocators;
+
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.dataRetrieval.*;
+import org.apache.axis2.description.AxisService;
+
+/*
+ * Sample user-defined WSDL Data Locator, WSDLDataLocator is configured as a Service level
+ * WSDL specific Data Locator for the Sample WSDLDataServiceMyService service.
+ *
+ * The sample Data Locator is only for the purpose of demostrating an implementation of
+ * user-defined Service Level Dialect Data Locator, the actual data retrieval code is not implemented.
+ * In the example, a empty Data array is returned for WSDL data retrieval
+ * request.
+ *
+ * Note: Empty Data array means Data Locator understood the request.
+ *
+ * Run {@link DemoServiceWSDLServiceLocator} client code to invoke this sample data locator.
+ *
+ */
+public class WSDLDataLocator implements AxisDataLocator {
+ AxisService theService = null;
+
+ String serviceName = "WSDLDataLocatorDemoService";
+
+ public Data[] getData(DataRetrievalRequest request,
+ MessageContext msgContext) throws DataRetrievalException {
+ Data[] result = new Data[0];
+ System.out.print(serviceName
+ + " User-defined WSDL Data Locator has been invoked!!!");
+ // You may implement logic to retrieve WSDL metadata here!!
+
+ System.out.print("WSDLDataLocator has not implemented data retrieval.");
+
+ return result;
+ }
+
+}
+
Added: webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/DefaultAxis2DataLocatorDemoService.wsdl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/DefaultAxis2DataLocatorDemoService.wsdl?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/DefaultAxis2DataLocatorDemoService.wsdl (added)
+++ webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/DefaultAxis2DataLocatorDemoService.wsdl Fri Feb 16 03:24:46 2007
@@ -0,0 +1,35 @@
+<!--
+/*
+ * Copyright 2007 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.
+ */
+ -->
+<wsdl:definitions xmlns:ns1="http://org.apache.axis2/xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:ns0="http://example1.services.mex.userguide/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:axis2="http://example1.services.mex.userguide" targetNamespace="http://example1.services.mex.userguide"><wsdl:documentation>
+ Sample web service to demostrate use of Default Axis2 Data Locator to handle ws-mex GetMetadata request.
+ </wsdl:documentation><wsdl:types><xs:schema xmlns:ns="http://example1.services.mex.userguide/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://example1.services.mex.userguide/xsd">
+<xs:element name="getVersionFault">
+<xs:complexType>
+<xs:sequence>
+<xs:element name="getVersionFault" type="xs:anyType" />
+</xs:sequence>
+</xs:complexType>
+</xs:element>
+<xs:element name="getVersionResponse">
+<xs:complexType>
+<xs:sequence>
+<xs:element name="return" nillable="true" type="xs:string" />
+</xs:sequence>
+</xs:complexType>
+</xs:element>
+</xs:schema></wsdl:types><wsdl:message name="getVersionMessage" /><wsdl:message name="getVersionResponse"><wsdl:part name="part1" element="ns0:getVersionResponse" /></wsdl:message><wsdl:message name="getVersionFault"><wsdl:part name="part1" element="ns0:getVersionFault" /></wsdl:message><wsdl:portType name="DefaultAxisDataLocatorDemoServicePortType"><wsdl:operation name="getVersion"><wsdl:input xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" message="axis2:getVersionMessage" wsaw:Action="urn:getVersion" /><wsdl:output message="axis2:getVersionResponse" /><wsdl:fault message="axis2:getVersionFault" name="getVersionFault" /></wsdl:operation></wsdl:portType><wsdl:binding name="DefaultAxisDataLocatorDemoServiceSOAP11Binding" type="axis2:DefaultAxisDataLocatorDemoServicePortType"><soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /><wsdl:operation name="getVersion"><soap:operation soapAction="urn:getVersion" style="document" /><wsdl:input><soap
:body use="literal" /></wsdl:input><wsdl:output><soap:body use="literal" /></wsdl:output><wsdl:fault name="getVersionFault"><soap:body use="literal" /></wsdl:fault></wsdl:operation></wsdl:binding><wsdl:binding name="DefaultAxisDataLocatorDemoServiceSOAP12Binding" type="axis2:DefaultAxisDataLocatorDemoServicePortType"><soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /><wsdl:operation name="getVersion"><soap12:operation soapAction="urn:getVersion" style="document" /><wsdl:input><soap12:body use="literal" /></wsdl:input><wsdl:output><soap12:body use="literal" /></wsdl:output><wsdl:fault name="getVersionFault"><soap12:fault use="literal" name="getVersionFault" /></wsdl:fault></wsdl:operation></wsdl:binding><wsdl:binding name="DefaultAxisDataLocatorDemoServiceHttpBinding" type="axis2:DefaultAxisDataLocatorDemoServicePortType"><http:binding verb="POST" /><wsdl:operation name="getVersion"><http:operation location="getVersion" /><wsdl:input><mime:con
tent type="text/xml" /></wsdl:input><wsdl:output><mime:content type="text/xml" /></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="DefaultAxisDataLocatorDemoService"><wsdl:port name="DefaultAxisDataLocatorDemoServiceSOAP11port_http" binding="axis2:DefaultAxisDataLocatorDemoServiceSOAP11Binding"><soap:address location="http://192.168.0.107:8080/axis2/services/DefaultAxisDataLocatorDemoService" /></wsdl:port><wsdl:port name="DefaultAxisDataLocatorDemoServiceSOAP12port_http" binding="axis2:DefaultAxisDataLocatorDemoServiceSOAP12Binding"><soap12:address location="http://192.168.0.107:8080/axis2/services/DefaultAxisDataLocatorDemoService" /></wsdl:port><wsdl:port name="DefaultAxisDataLocatorDemoServiceHttpport1" binding="axis2:DefaultAxisDataLocatorDemoServiceHttpBinding"><http:address location="http://192.168.0.107:8080/axis2/rest/DefaultAxisDataLocatorDemoService" /></wsdl:port></wsdl:service></wsdl:definitions>
\ No newline at end of file
Added: webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/DefaultAxis2DataLocatorDemoService.xsd
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/DefaultAxis2DataLocatorDemoService.xsd?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/DefaultAxis2DataLocatorDemoService.xsd (added)
+++ webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/DefaultAxis2DataLocatorDemoService.xsd Fri Feb 16 03:24:46 2007
@@ -0,0 +1,38 @@
+<!--
+/*
+ * Copyright 2007 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.
+ */
+ -->
+
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+xmlns:ns0="http://services.example.org/mex/interop/ServiceA/"
+xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.example.org/ServiceA/"
+xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" attributeFormDefault="qualified"
+elementFormDefault="qualified"
+targetNamespace="http://example1.services.mex.userguide/xsd">
+ <xsd:element name="getVersionFault"> <xsd:complexType>
+ <xsd:sequence>
+<xsd:element name="getVersionFault" type="xsd:anyType"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+<xsd:element name="getVersionResponse">
+ <xsd:complexType><xsd:sequence>
+<xsd:element name="return" nillable="true" type="xsd:string"/>
+</xsd:sequence>
+</xsd:complexType>
+</xsd:element>
+</xsd:schema>
\ No newline at end of file
Added: webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/ServiceData.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/ServiceData.xml?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/ServiceData.xml (added)
+++ webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/ServiceData.xml Fri Feb 16 03:24:46 2007
@@ -0,0 +1,27 @@
+<!--
+/*
+ * Copyright 2007 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.
+ */
+ -->
+<?xml version="1.0" encoding="UTF-8"?>
+<ServiceData>
+<Data dialect="http://schemas.xmlsoap.org/wsdl" file="META-INF/DefaultAxis2DataLocatorDemoService.wsdl">
+ <URL>http://127/0/0/1:8080/axis2/services/DefaultAxis2DataLocatorDemoService?wsdl </URL>
+</Data>
+<Data dialect="http://www.w3.org/2001/XMLSchema" file="META-INF/DefaultAxis2DataLocatorDemoService.xsd">
+ <URL>http://localhost:8080/axis2/services/DefaultAxis2DataLocatorDemoService?xsd </URL>
+ </Data>
+</ServiceData>
+
Added: webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/services.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/services.xml?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/services.xml (added)
+++ webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/META-INF/services.xml Fri Feb 16 03:24:46 2007
@@ -0,0 +1,26 @@
+<!--
+/*
+ * Copyright 2007 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.
+ */
+ -->
+<service name="DefaultAxisDataLocatorDemoService">
+ <description>
+ Sample web service to demostrate use of Default Axis2 Data Locator to handle ws-mex GetMetadata request.
+ </description>
+ <parameter name="ServiceClass" locked="false">userguide.mex.services.example1.Version</parameter>
+ <operation name="getVersion">
+ <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
+ </operation>
+</service>
\ No newline at end of file
Added: webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/Version.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/Version.java?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/Version.java (added)
+++ webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example1/Version.java Fri Feb 16 03:24:46 2007
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2004,2005 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 userguide.mex.services.example1;
+
+public class Version {
+ public String getVersion() throws Exception {
+ return "Hello I am Axis2 version service ," +
+ " My version is " + org.apache.axis2.Version.getVersionText();
+ }
+}
Added: webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example2/META-INF/services.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example2/META-INF/services.xml?view=auto&rev=508370
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example2/META-INF/services.xml (added)
+++ webservices/axis2/trunk/java/modules/samples/mex/src/userguide/mex/services/example2/META-INF/services.xml Fri Feb 16 03:24:46 2007
@@ -0,0 +1,29 @@
+<!--
+/*
+ * Copyright 2007 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.
+ */
+ -->
+ <service name="ServiceLevelDataLocatorDemoService">
+ <description>
+ Sample web service to demostrate use of defined Service Level Data Locator to handle ws-mex GetMetadata request.
+ </description>
+ <parameter name="ServiceClass" locked="false">userguide.mex.services.example2.Version</parameter>
+ <operation name="getVersion">
+ <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
+ </operation>
+ <dataLocator class="userguide.mex.datalocators.ServiceLevelDataLocator">
+ </dataLocator>
+
+</service>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org