You are viewing a plain text version of this content. The canonical link for it is here.
Posted to muse-commits@ws.apache.org by da...@apache.org on 2007/03/24 14:24:36 UTC
svn commit: r522026 [10/10] - in /webservices/muse/trunk/modules:
osgi-bundles/muse-complete/src/org/apache/muse/complete/
osgi-bundles/muse-util-all/src/org/apache/muse/util/osgi/
osgi-bundles/muse-wsa-soap/src/org/apache/muse/ws/addressing/osgi/ osgi...
Modified: webservices/muse/trunk/modules/preview/muse-wsrt-impl/src/org/apache/muse/ws/resource/transfer/remote/WsrtResourceClient.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/preview/muse-wsrt-impl/src/org/apache/muse/ws/resource/transfer/remote/WsrtResourceClient.java?view=diff&rev=522026&r1=522025&r2=522026
==============================================================================
--- webservices/muse/trunk/modules/preview/muse-wsrt-impl/src/org/apache/muse/ws/resource/transfer/remote/WsrtResourceClient.java (original)
+++ webservices/muse/trunk/modules/preview/muse-wsrt-impl/src/org/apache/muse/ws/resource/transfer/remote/WsrtResourceClient.java Sat Mar 24 06:24:32 2007
@@ -1,308 +1,311 @@
-/*=============================================================================*
- * Copyright 2006 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.muse.ws.resource.transfer.remote;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-import org.apache.muse.core.Environment;
-import org.apache.muse.util.xml.XPathUtils;
-import org.apache.muse.util.xml.XmlUtils;
-import org.apache.muse.ws.addressing.EndpointReference;
-import org.apache.muse.ws.addressing.WsaConstants;
-import org.apache.muse.ws.addressing.soap.SoapClient;
-import org.apache.muse.ws.addressing.soap.SoapFault;
-import org.apache.muse.ws.resource.transfer.Expression;
-import org.apache.muse.ws.resource.transfer.ExpressionFactory;
-import org.apache.muse.ws.resource.transfer.Fragment;
-import org.apache.muse.ws.resource.transfer.OperationResult;
-import org.apache.muse.ws.resource.transfer.WsrtConstants;
-import org.apache.muse.ws.resource.transfer.create.Metadata;
-import org.apache.muse.ws.resource.transfer.impl.SimpleExpressionFactory;
-import org.apache.muse.ws.resource.transfer.impl.SimpleOperationResult;
-
-/**
- * This is the WS-RT CLient API provided by Muse for invoking WS-RT operations
- * on a WS-RT Web service. To use this API first create an instance by passing
- * in EPR of resource and then invoke operations as needed. <br>
- *
- * Eg: <br>
- * EndpointReference epr = new EndpointReference(new
- * URI("http://localhost:8080/services/myservice")); <br>
- * QName param = new QName(WsaConstants.MUSE_ADDRESSING_URI,"ResourceId" ,
- * "ns1"); <br>
- * epr.addParameter(param, "MuseResource-1");<br>
- * <br>
- * WsrtResourceClient client = new WsrtResourceClient(epr); <br>
- * Element resp = client.get(); <br>
- *
- * @author Mohammad Fakhar
- *
- */
-
-public class WsrtResourceClient extends AbstractWsrtResourceClient
-{
-
- public WsrtResourceClient(EndpointReference destination)
- {
- super(destination);
- }
-
- public WsrtResourceClient(EndpointReference destination, EndpointReference source)
- {
- super(destination, source);
- }
-
- public WsrtResourceClient(EndpointReference destination, EndpointReference source, Environment environment)
- {
- super(destination, source, environment);
- }
-
- public WsrtResourceClient(EndpointReference destination, EndpointReference source, SoapClient soapClient)
- {
- super(destination, source, soapClient);
- }
-
- /**
- * Sends a WS-Transfer create request to resource with resource property
- * document passed in and returns EPR of newly created resource
- *
- */
- public EndpointReference create(Element resource) throws SoapFault
- {
- URI action = URI.create(WsrtConstants.CREATE_URI);
- Element[] response = invokeWSRTOperation(action, resource, false);
-
- return extractEPR(response);
- }
-
- /**
- * Sends a WS-RT create request to resource with fragments passed in and
- * returns EPR of newly created resource
- *
- */
- public EndpointReference create(String dialect, Fragment[] fragments) throws SoapFault
- {
- return create(dialect, fragments, null);
- }
-
- /**
- * Sends a WS-RT create request to resource with fragments and metadata
- * passed in and returns EPR of newly created resource
- *
- */
- public EndpointReference create(String dialect, Fragment[] fragments, Metadata metadata) throws SoapFault
- {
- Document factory = XmlUtils.EMPTY_DOC;
- Element request = XmlUtils.createElement(factory, WsrtConstants.CREATE_QNAME);
- request.setAttribute(WsrtConstants.DIALECT_ATTR_NAME, dialect);
-
- URI action = URI.create(WsrtConstants.CREATE_URI);
-
- if (metadata != null)
- {
- request.appendChild(metadata.toXML(factory));
- }
-
- for (int i = 0; i < fragments.length; i++)
- {
- Element fragXML = fragments[i].toXML(factory);
- request.appendChild(fragXML);
- }
-
- Element[] response = invokeWSRTOperation(action, request, true);
-
- return extractEPR(response);
- }
-
- /**
- * Sends a WS-Transfer Get request to resource and returns the resource
- * representation
- *
- */
- public Element get() throws SoapFault
- {
-
- URI action = URI.create(WsrtConstants.GET_URI);
- Element[] response = invokeWSRTOperation(action, null, false);
- return response.length == 0 ? null : response[0];
- }
-
- /**
- * Sends a WS-RT Get request to resource with WS-RT Expressions and returns
- * the expression values
- *
- */
- public OperationResult[] get(String dialect, Expression[] expressions) throws SoapFault
- {
- Document doc = XmlUtils.EMPTY_DOC;
- Element request = XmlUtils.createElement(doc, WsrtConstants.GET_QNAME);
- request.setAttribute(WsrtConstants.DIALECT_ATTR_NAME, dialect);
-
- URI action = URI.create(WsrtConstants.GET_URI);
-
- for (int i = 0; i < expressions.length; i++)
- {
- Element exprXML = expressions[i].toXML(doc);
- request.appendChild(exprXML);
- }
-
- Element[] response = invokeWSRTOperation(action, request, true);
-
- return extractResults(response);
- }
-
- /**
- * Sends a WS-RT Get request to resource with WS-RT XPath dialect
- * Expressions and returns the expression values
- *
- */
- public OperationResult[] getWithXPaths(String[] xpaths) throws SoapFault
- {
- ExpressionFactory factory = new SimpleExpressionFactory();
- Expression[] expressions = new Expression[xpaths.length];
-
- for (int i = 0; i < xpaths.length; i++)
- expressions[i] = factory.createXPathExpression(xpaths[i]);
-
- return get(XPathUtils.NAMESPACE_URI, expressions);
- }
-
- /**
- * Sends a WS-RT Get request to resource with WS-RT QName dialect
- * Expressions and returns the expression values
- *
- */
- public OperationResult[] getWithProps(QName[] props) throws SoapFault
- {
- ExpressionFactory factory = new SimpleExpressionFactory();
- Expression[] expressions = new Expression[props.length];
-
- for (int i = 0; i < props.length; i++)
- expressions[i] = factory.createQNameExpression(props[i]);
-
- return get(WsrtConstants.QNAME_DIALECT, expressions);
- }
-
- /**
- * Sends a WS-Transfer request to resource with resource property document
- * and if the document is not accepted verbatim by engine, the final
- * representation is returned.
- *
- */
- public Element[] put(Element resource) throws SoapFault
- {
- URI action = URI.create(WsrtConstants.PUT_URI);
- Element[] response = invokeWSRTOperation(action, resource, false);
-
- return response;
- }
-
- /**
- * Sends a WS-RT request to resource with WS-RT Fragments
- *
- */
- public void put(String dialect, Fragment[] fragments) throws SoapFault
- {
- Element request = XmlUtils.createElement(WsrtConstants.PUT_QNAME);
- request.setAttribute(WsrtConstants.DIALECT_ATTR_NAME, dialect);
-
- URI action = URI.create(WsrtConstants.PUT_URI);
-
- for (int i = 0; i < fragments.length; i++)
- {
- Element fragXML = fragments[i].toXML(request.getOwnerDocument());
- request.appendChild(fragXML);
- }
-
- invokeWSRTOperation(action, request, true);
- }
-
- /**
- * Sends a WS-Transfer delete request to resource
- *
- */
-
- public void delete() throws SoapFault
- {
- URI action = URI.create(WsrtConstants.DELETE_URI);
-
- invokeWSRTOperation(action, null, false);
- }
-
- protected EndpointReference extractEPR(Element[] createResponse) throws SoapFault
- {
- for (int i = 0; i < createResponse.length; i++)
- {
- Element element = createResponse[i];
- QName name = new QName(element.getNamespaceURI(), element.getLocalName());
-
- if (name.equals(WsrtConstants.RESOURCE_CREATED_QNAME))
- {
- Document doc = XmlUtils.EMPTY_DOC;
-
- Element[] eprChildren = XmlUtils.getAllElements(element);
- Element eprXML = XmlUtils.createElement(doc, WsaConstants.EPR_QNAME);
-
- for (int j = 0; j < eprChildren.length; j++)
- {
- eprXML.appendChild(doc.importNode(eprChildren[j], true));
- }
-
- return new EndpointReference(eprXML);
- }
- }
-
- return null;
-
- }
-
- protected OperationResult[] extractResults(Element[] getResponse)
- {
- if (getResponse == null || getResponse.length == 0)
- return null;
- List results = new ArrayList();
- Element getResultXML = getResponse[0];
- QName qname = new QName(getResultXML.getNamespaceURI(), getResultXML.getLocalName(),
- getResultXML.getPrefix());
-
- if (!qname.equals(WsrtConstants.GET_RESPONSE_QNAME))
- throw new RuntimeException("Unrecognized element " + qname + " in WSRT get response");
-
- Element[] resultsXML = XmlUtils.getElements(getResultXML, WsrtConstants.RESULT_QNAME);
-
- for (int i = 0; i < resultsXML.length; i++)
- {
- OperationResult result = new SimpleOperationResult(resultsXML[i]);
- results.add(result);
- }
-
- OperationResult[] resultsArr = new OperationResult[results.size()];
- for (int i = 0; i < results.size(); i++)
- resultsArr[i] = (OperationResult)results.get(i);
-
- return resultsArr;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.muse.ws.resource.transfer.remote;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import org.apache.muse.core.Environment;
+import org.apache.muse.util.xml.XPathUtils;
+import org.apache.muse.util.xml.XmlUtils;
+import org.apache.muse.ws.addressing.EndpointReference;
+import org.apache.muse.ws.addressing.WsaConstants;
+import org.apache.muse.ws.addressing.soap.SoapClient;
+import org.apache.muse.ws.addressing.soap.SoapFault;
+import org.apache.muse.ws.resource.transfer.Expression;
+import org.apache.muse.ws.resource.transfer.ExpressionFactory;
+import org.apache.muse.ws.resource.transfer.Fragment;
+import org.apache.muse.ws.resource.transfer.OperationResult;
+import org.apache.muse.ws.resource.transfer.WsrtConstants;
+import org.apache.muse.ws.resource.transfer.create.Metadata;
+import org.apache.muse.ws.resource.transfer.impl.SimpleExpressionFactory;
+import org.apache.muse.ws.resource.transfer.impl.SimpleOperationResult;
+
+/**
+ * This is the WS-RT CLient API provided by Muse for invoking WS-RT operations
+ * on a WS-RT Web service. To use this API first create an instance by passing
+ * in EPR of resource and then invoke operations as needed. <br>
+ *
+ * Eg: <br>
+ * EndpointReference epr = new EndpointReference(new
+ * URI("http://localhost:8080/services/myservice")); <br>
+ * QName param = new QName(WsaConstants.MUSE_ADDRESSING_URI,"ResourceId" ,
+ * "ns1"); <br>
+ * epr.addParameter(param, "MuseResource-1");<br>
+ * <br>
+ * WsrtResourceClient client = new WsrtResourceClient(epr); <br>
+ * Element resp = client.get(); <br>
+ *
+ * @author Mohammad Fakhar
+ *
+ */
+
+public class WsrtResourceClient extends AbstractWsrtResourceClient
+{
+
+ public WsrtResourceClient(EndpointReference destination)
+ {
+ super(destination);
+ }
+
+ public WsrtResourceClient(EndpointReference destination, EndpointReference source)
+ {
+ super(destination, source);
+ }
+
+ public WsrtResourceClient(EndpointReference destination, EndpointReference source, Environment environment)
+ {
+ super(destination, source, environment);
+ }
+
+ public WsrtResourceClient(EndpointReference destination, EndpointReference source, SoapClient soapClient)
+ {
+ super(destination, source, soapClient);
+ }
+
+ /**
+ * Sends a WS-Transfer create request to resource with resource property
+ * document passed in and returns EPR of newly created resource
+ *
+ */
+ public EndpointReference create(Element resource) throws SoapFault
+ {
+ URI action = URI.create(WsrtConstants.CREATE_URI);
+ Element[] response = invokeWSRTOperation(action, resource, false);
+
+ return extractEPR(response);
+ }
+
+ /**
+ * Sends a WS-RT create request to resource with fragments passed in and
+ * returns EPR of newly created resource
+ *
+ */
+ public EndpointReference create(String dialect, Fragment[] fragments) throws SoapFault
+ {
+ return create(dialect, fragments, null);
+ }
+
+ /**
+ * Sends a WS-RT create request to resource with fragments and metadata
+ * passed in and returns EPR of newly created resource
+ *
+ */
+ public EndpointReference create(String dialect, Fragment[] fragments, Metadata metadata) throws SoapFault
+ {
+ Document factory = XmlUtils.EMPTY_DOC;
+ Element request = XmlUtils.createElement(factory, WsrtConstants.CREATE_QNAME);
+ request.setAttribute(WsrtConstants.DIALECT_ATTR_NAME, dialect);
+
+ URI action = URI.create(WsrtConstants.CREATE_URI);
+
+ if (metadata != null)
+ {
+ request.appendChild(metadata.toXML(factory));
+ }
+
+ for (int i = 0; i < fragments.length; i++)
+ {
+ Element fragXML = fragments[i].toXML(factory);
+ request.appendChild(fragXML);
+ }
+
+ Element[] response = invokeWSRTOperation(action, request, true);
+
+ return extractEPR(response);
+ }
+
+ /**
+ * Sends a WS-Transfer Get request to resource and returns the resource
+ * representation
+ *
+ */
+ public Element get() throws SoapFault
+ {
+
+ URI action = URI.create(WsrtConstants.GET_URI);
+ Element[] response = invokeWSRTOperation(action, null, false);
+ return response.length == 0 ? null : response[0];
+ }
+
+ /**
+ * Sends a WS-RT Get request to resource with WS-RT Expressions and returns
+ * the expression values
+ *
+ */
+ public OperationResult[] get(String dialect, Expression[] expressions) throws SoapFault
+ {
+ Document doc = XmlUtils.EMPTY_DOC;
+ Element request = XmlUtils.createElement(doc, WsrtConstants.GET_QNAME);
+ request.setAttribute(WsrtConstants.DIALECT_ATTR_NAME, dialect);
+
+ URI action = URI.create(WsrtConstants.GET_URI);
+
+ for (int i = 0; i < expressions.length; i++)
+ {
+ Element exprXML = expressions[i].toXML(doc);
+ request.appendChild(exprXML);
+ }
+
+ Element[] response = invokeWSRTOperation(action, request, true);
+
+ return extractResults(response);
+ }
+
+ /**
+ * Sends a WS-RT Get request to resource with WS-RT XPath dialect
+ * Expressions and returns the expression values
+ *
+ */
+ public OperationResult[] getWithXPaths(String[] xpaths) throws SoapFault
+ {
+ ExpressionFactory factory = new SimpleExpressionFactory();
+ Expression[] expressions = new Expression[xpaths.length];
+
+ for (int i = 0; i < xpaths.length; i++)
+ expressions[i] = factory.createXPathExpression(xpaths[i]);
+
+ return get(XPathUtils.NAMESPACE_URI, expressions);
+ }
+
+ /**
+ * Sends a WS-RT Get request to resource with WS-RT QName dialect
+ * Expressions and returns the expression values
+ *
+ */
+ public OperationResult[] getWithProps(QName[] props) throws SoapFault
+ {
+ ExpressionFactory factory = new SimpleExpressionFactory();
+ Expression[] expressions = new Expression[props.length];
+
+ for (int i = 0; i < props.length; i++)
+ expressions[i] = factory.createQNameExpression(props[i]);
+
+ return get(WsrtConstants.QNAME_DIALECT, expressions);
+ }
+
+ /**
+ * Sends a WS-Transfer request to resource with resource property document
+ * and if the document is not accepted verbatim by engine, the final
+ * representation is returned.
+ *
+ */
+ public Element[] put(Element resource) throws SoapFault
+ {
+ URI action = URI.create(WsrtConstants.PUT_URI);
+ Element[] response = invokeWSRTOperation(action, resource, false);
+
+ return response;
+ }
+
+ /**
+ * Sends a WS-RT request to resource with WS-RT Fragments
+ *
+ */
+ public void put(String dialect, Fragment[] fragments) throws SoapFault
+ {
+ Element request = XmlUtils.createElement(WsrtConstants.PUT_QNAME);
+ request.setAttribute(WsrtConstants.DIALECT_ATTR_NAME, dialect);
+
+ URI action = URI.create(WsrtConstants.PUT_URI);
+
+ for (int i = 0; i < fragments.length; i++)
+ {
+ Element fragXML = fragments[i].toXML(request.getOwnerDocument());
+ request.appendChild(fragXML);
+ }
+
+ invokeWSRTOperation(action, request, true);
+ }
+
+ /**
+ * Sends a WS-Transfer delete request to resource
+ *
+ */
+
+ public void delete() throws SoapFault
+ {
+ URI action = URI.create(WsrtConstants.DELETE_URI);
+
+ invokeWSRTOperation(action, null, false);
+ }
+
+ protected EndpointReference extractEPR(Element[] createResponse) throws SoapFault
+ {
+ for (int i = 0; i < createResponse.length; i++)
+ {
+ Element element = createResponse[i];
+ QName name = new QName(element.getNamespaceURI(), element.getLocalName());
+
+ if (name.equals(WsrtConstants.RESOURCE_CREATED_QNAME))
+ {
+ Document doc = XmlUtils.EMPTY_DOC;
+
+ Element[] eprChildren = XmlUtils.getAllElements(element);
+ Element eprXML = XmlUtils.createElement(doc, WsaConstants.EPR_QNAME);
+
+ for (int j = 0; j < eprChildren.length; j++)
+ {
+ eprXML.appendChild(doc.importNode(eprChildren[j], true));
+ }
+
+ return new EndpointReference(eprXML);
+ }
+ }
+
+ return null;
+
+ }
+
+ protected OperationResult[] extractResults(Element[] getResponse)
+ {
+ if (getResponse == null || getResponse.length == 0)
+ return null;
+ List results = new ArrayList();
+ Element getResultXML = getResponse[0];
+ QName qname = new QName(getResultXML.getNamespaceURI(), getResultXML.getLocalName(),
+ getResultXML.getPrefix());
+
+ if (!qname.equals(WsrtConstants.GET_RESPONSE_QNAME))
+ throw new RuntimeException("Unrecognized element " + qname + " in WSRT get response");
+
+ Element[] resultsXML = XmlUtils.getElements(getResultXML, WsrtConstants.RESULT_QNAME);
+
+ for (int i = 0; i < resultsXML.length; i++)
+ {
+ OperationResult result = new SimpleOperationResult(resultsXML[i]);
+ results.add(result);
+ }
+
+ OperationResult[] resultsArr = new OperationResult[results.size()];
+ for (int i = 0; i < results.size(); i++)
+ resultsArr[i] = (OperationResult)results.get(i);
+
+ return resultsArr;
+ }
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: muse-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: muse-commits-help@ws.apache.org