You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2011/11/11 01:53:18 UTC
svn commit: r1200669 [2/2] - in /tuscany/sca-java-2.x/trunk/modules:
binding-http-runtime/META-INF/
binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/
binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/op...
Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/SomeException.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/SomeException.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/SomeException.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/SomeException.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/SomeException.java&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/SomeException.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/SomeException.java Fri Nov 11 00:53:16 2011
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.tuscany.sca.binding.http;
+package services;
public class SomeException extends Exception {
private static final long serialVersionUID = 1L;
Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/SomeException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/SomeException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/complex.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/complex.composite?rev=1200669&r1=1200668&r2=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/complex.composite (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/complex.composite Fri Nov 11 00:53:16 2011
@@ -23,17 +23,21 @@
name="ComplexStuff">
<component name="ComplexComponent">
- <implementation.java class="org.apache.tuscany.sca.binding.http.ComplexStuffImpl"/>
+ <implementation.java class="services.ComplexStuffImpl"/>
<service name="ComplexStuff">
- <tuscany:binding.http />
+ <tuscany:binding.http>
+ <tuscany:wireFormat.json />
+ <tuscany:operationSelector.rpc />
+ </tuscany:binding.http>
</service>
</component>
<component name="ComplexXmlComponent">
- <implementation.java class="org.apache.tuscany.sca.binding.http.ComplexStuffImpl"/>
+ <implementation.java class="services.ComplexStuffImpl"/>
<service name="ComplexStuff">
<tuscany:binding.http>
- <tuscany:wireFormat.httpXml />
+ <tuscany:wireFormat.xml />
+ <tuscany:operationSelector.rpc />
</tuscany:binding.http>
</service>
</component>
Modified: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/helloworld.composite
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/helloworld.composite?rev=1200669&r1=1200668&r2=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/helloworld.composite (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/helloworld.composite Fri Nov 11 00:53:16 2011
@@ -23,17 +23,21 @@
name="helloworld">
<component name="HelloworldComponent">
- <implementation.java class="org.apache.tuscany.sca.binding.http.HelloworldImpl"/>
+ <implementation.java class="services.HelloworldImpl"/>
<service name="Helloworld">
- <tuscany:binding.http />
+ <tuscany:binding.http>
+ <tuscany:wireFormat.json />
+ <tuscany:operationSelector.rpc />
+ </tuscany:binding.http>
</service>
</component>
<component name="HelloworldXmlComponent">
- <implementation.java class="org.apache.tuscany.sca.binding.http.HelloworldImpl"/>
+ <implementation.java class="services.HelloworldImpl"/>
<service name="Helloworld">
<tuscany:binding.http>
- <tuscany:wireFormat.httpXml />
+ <tuscany:wireFormat.xml />
+ <tuscany:operationSelector.rpc />
</tuscany:binding.http>
</service>
</component>
Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/resource.composite (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/helloworld.composite)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/resource.composite?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/resource.composite&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/helloworld.composite&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/helloworld.composite (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/resource.composite Fri Nov 11 00:53:16 2011
@@ -1,41 +1,33 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
-<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
- targetNamespace="http://sample/test"
- xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
- name="helloworld">
-
- <component name="HelloworldComponent">
- <implementation.java class="org.apache.tuscany.sca.binding.http.HelloworldImpl"/>
- <service name="Helloworld">
- <tuscany:binding.http />
- </service>
- </component>
-
- <component name="HelloworldXmlComponent">
- <implementation.java class="org.apache.tuscany.sca.binding.http.HelloworldImpl"/>
- <service name="Helloworld">
- <tuscany:binding.http>
- <tuscany:wireFormat.httpXml />
- </tuscany:binding.http>
- </service>
- </component>
-
-</composite>
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://sample/test"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
+ name="ResourceService">
+
+
+ <component name="ResourceComponent">
+ <implementation.java class="services.ResourceService" />
+ <service name="Servlet">
+ <tuscany:binding.http uri="/resource" />
+ </service>
+ </component>
+
+</composite>
\ No newline at end of file
Modified: tuscany/sca-java-2.x/trunk/modules/binding-http/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http/META-INF/MANIFEST.MF?rev=1200669&r1=1200668&r2=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http/META-INF/MANIFEST.MF (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http/META-INF/MANIFEST.MF Fri Nov 11 00:53:16 2011
@@ -1,6 +1,7 @@
Manifest-Version: 1.0
Export-Package: org.apache.tuscany.sca.binding.http;version="2.0.0";uses:="org.apache.tuscany.sca.assembly,javax.xml.namespace,javax.servlet.http",
- org.apache.tuscany.sca.binding.http.impl;version="2.0.0"
+ org.apache.tuscany.sca.binding.http.operationselector,
+ org.apache.tuscany.sca.binding.http.wireformat
Bundle-Name: Apache Tuscany SCA HTTP Binding Model
Bundle-Vendor: The Apache Software Foundation
Bundle-Version: 2.0.0
Copied: tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPDefaultOperationSelector.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultOperationSelector.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPDefaultOperationSelector.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPDefaultOperationSelector.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultOperationSelector.java&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultOperationSelector.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPDefaultOperationSelector.java Fri Nov 11 00:53:16 2011
@@ -16,18 +16,24 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.sca.binding.http;
+package org.apache.tuscany.sca.binding.http.operationselector;
import javax.xml.namespace.QName;
import org.apache.tuscany.sca.assembly.OperationSelector;
import org.apache.tuscany.sca.assembly.xml.Constants;
+
+/**
+ * HTTP binding default operation selector.
+ *
+ * @version $Rev$ $Date$
+*/
public class HTTPDefaultOperationSelector implements OperationSelector {
- public static final QName OPERATION_SELECTOR_HTTP_DEFAULT_QNAME = new QName(Constants.SCA11_NS, "operationSelector.httpDefault");
+ public static final QName HTTP_OPERATION_SELECTOR_DEFAULT_QNAME = new QName(Constants.SCA11_NS, "operationSelector.default");
public QName getSchemaName() {
- return OPERATION_SELECTOR_HTTP_DEFAULT_QNAME;
+ return HTTP_OPERATION_SELECTOR_DEFAULT_QNAME;
}
public boolean isUnresolved() {
Copied: tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPRPCOperationSelector.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultOperationSelector.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPRPCOperationSelector.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPRPCOperationSelector.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultOperationSelector.java&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultOperationSelector.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPRPCOperationSelector.java Fri Nov 11 00:53:16 2011
@@ -16,18 +16,23 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.sca.binding.http;
+package org.apache.tuscany.sca.binding.http.operationselector;
import javax.xml.namespace.QName;
import org.apache.tuscany.sca.assembly.OperationSelector;
import org.apache.tuscany.sca.assembly.xml.Constants;
-public class HTTPDefaultOperationSelector implements OperationSelector {
- public static final QName OPERATION_SELECTOR_HTTP_DEFAULT_QNAME = new QName(Constants.SCA11_NS, "operationSelector.httpDefault");
+/**
+ * HTTP binding RPC style operation selector.
+ *
+ * @version $Rev$ $Date$
+*/
+public class HTTPRPCOperationSelector implements OperationSelector {
+ public static final QName HTTP_OPERATION_SELECTOR_RPC_QNAME = new QName(Constants.SCA11_NS, "operationSelector.rpc");
public QName getSchemaName() {
- return OPERATION_SELECTOR_HTTP_DEFAULT_QNAME;
+ return HTTP_OPERATION_SELECTOR_RPC_QNAME;
}
public boolean isUnresolved() {
Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPRPCOperationSelector.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPRPCOperationSelector.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Copied: tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPDefaultWireFormat.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultWireFormat.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPDefaultWireFormat.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPDefaultWireFormat.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultWireFormat.java&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultWireFormat.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPDefaultWireFormat.java Fri Nov 11 00:53:16 2011
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.sca.binding.http;
+package org.apache.tuscany.sca.binding.http.wireformat;
import javax.xml.namespace.QName;
@@ -24,16 +24,15 @@ import org.apache.tuscany.sca.assembly.W
import org.apache.tuscany.sca.assembly.xml.Constants;
/**
- * Implementation for policies that could be injected as parameter
- * into the axis2config.
+ * Default wire format for http binding
*
- * @version $Rev: 813442 $ $Date: 2009-09-10 14:56:17 +0100 (Thu, 10 Sep 2009) $
+ * @version $Rev$ $Date$
*/
public class HTTPDefaultWireFormat implements WireFormat {
- public static final QName WIRE_FORMAT_HTTP_DEFAULT_QNAME = new QName(Constants.SCA11_TUSCANY_NS, "wireFormat.httpDefault");
+ public static final QName HTTP_WIRE_FORMAT_DEFAULT_QNAME = new QName(Constants.SCA11_TUSCANY_NS, "wireFormat.default");
public QName getSchemaName() {
- return WIRE_FORMAT_HTTP_DEFAULT_QNAME;
+ return HTTP_WIRE_FORMAT_DEFAULT_QNAME;
}
public boolean isUnresolved() {
Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPDefaultWireFormat.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPDefaultWireFormat.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Copied: tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPJSONWireFormat.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPXMLWireFormat.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPJSONWireFormat.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPJSONWireFormat.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPXMLWireFormat.java&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPXMLWireFormat.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPJSONWireFormat.java Fri Nov 11 00:53:16 2011
@@ -16,18 +16,23 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.sca.binding.http;
+package org.apache.tuscany.sca.binding.http.wireformat;
import javax.xml.namespace.QName;
import org.apache.tuscany.sca.assembly.WireFormat;
import org.apache.tuscany.sca.assembly.xml.Constants;
-public class HTTPXMLWireFormat implements WireFormat {
- public static final QName WIRE_FORMAT_HTTP_XML_QNAME = new QName(Constants.SCA11_TUSCANY_NS, "wireFormat.httpXml");
+/**
+ * JSON wire format for http binding
+ *
+ * @version $Rev$ $Date$
+ */
+public class HTTPJSONWireFormat implements WireFormat {
+ public static final QName HTTP_WIRE_FORMAT_JSON_QNAME = new QName(Constants.SCA11_TUSCANY_NS, "wireFormat.json");
public QName getSchemaName() {
- return WIRE_FORMAT_HTTP_XML_QNAME;
+ return HTTP_WIRE_FORMAT_JSON_QNAME;
}
public boolean isUnresolved() {
Copied: tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPXMLWireFormat.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPXMLWireFormat.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPXMLWireFormat.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPXMLWireFormat.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPXMLWireFormat.java&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPXMLWireFormat.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPXMLWireFormat.java Fri Nov 11 00:53:16 2011
@@ -16,13 +16,19 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.sca.binding.http;
+package org.apache.tuscany.sca.binding.http.wireformat;
import javax.xml.namespace.QName;
import org.apache.tuscany.sca.assembly.WireFormat;
import org.apache.tuscany.sca.assembly.xml.Constants;
+
+/**
+ * XML Wire format for HTTP binding
+ *
+ * @version $Rev$ $Date$
+*/
public class HTTPXMLWireFormat implements WireFormat {
public static final QName WIRE_FORMAT_HTTP_XML_QNAME = new QName(Constants.SCA11_TUSCANY_NS, "wireFormat.httpXml");
Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPXMLWireFormat.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPXMLWireFormat.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java?rev=1200669&r1=1200668&r2=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java Fri Nov 11 00:53:16 2011
@@ -27,6 +27,7 @@ import javax.xml.stream.XMLStreamExcepti
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
+import org.apache.tuscany.sca.assembly.Base;
import org.apache.tuscany.sca.assembly.OperationSelector;
import org.apache.tuscany.sca.assembly.WireFormat;
import org.apache.tuscany.sca.binding.http.HTTPBinding;
@@ -42,22 +43,27 @@ import org.apache.tuscany.sca.contributi
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.FactoryExtensionPoint;
+
+/**
+ * HTTP binding artifact processor that handles the read/write of HTTP specific XML elements.
+ *
+ * @version $Rev$ $Date$
+*/
public class HTTPBindingProcessor extends BaseStAXArtifactProcessor implements StAXArtifactProcessor<HTTPBinding> {
+ private static final QName RESPONSE_QNAME = new QName(Base.SCA11_TUSCANY_NS, "response");
+
private static final String NAME = "name";
private static final String URI = "uri";
private HTTPBindingFactory httpBindingFactory;
private StAXArtifactProcessor<Object> extensionProcessor;
- private StAXAttributeProcessor<Object> extensionAttributeProcessor;
-
- public HTTPBindingProcessor(ExtensionPointRegistry extensionPoints,
- StAXArtifactProcessor extensionProcessor,
- StAXAttributeProcessor extensionAttributeProcessor) {
+ public HTTPBindingProcessor(ExtensionPointRegistry extensionPoints,
+ StAXArtifactProcessor<Object> extensionProcessor,
+ StAXAttributeProcessor<Object> extensionAttributeProcessor) {
FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
this.httpBindingFactory = modelFactories.getFactory(HTTPBindingFactory.class);
this.extensionProcessor = (StAXArtifactProcessor<Object>)extensionProcessor;
- this.extensionAttributeProcessor = extensionAttributeProcessor;
}
public QName getArtifactType() {
@@ -68,10 +74,21 @@ public class HTTPBindingProcessor extend
return HTTPBinding.class;
}
- public HTTPBinding read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException {
+ public HTTPBinding read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException,XMLStreamException {
HTTPBinding httpBinding = httpBindingFactory.createHTTPBinding();
- while(reader.hasNext()) {
+ /**
+ * <tuscany:binding.http uri="http://localhost:8085/Customer">
+ * <tuscany:wireFormat.json />
+ * <tuscany:operationSelector.default />
+ * <tuscany:response>
+ * <tuscany:wireFormat.xml />
+ * </tuscany:response>
+ * </tuscany:binding.http>
+ *
+ */
+
+ while (reader.hasNext()) {
QName elementName = null;
int event = reader.getEventType();
switch (event) {
@@ -80,7 +97,7 @@ public class HTTPBindingProcessor extend
if (HTTPBinding.TYPE.equals(elementName)) {
String name = getString(reader, NAME);
- if(name != null) {
+ if (name != null) {
httpBinding.setName(name);
}
@@ -88,13 +105,38 @@ public class HTTPBindingProcessor extend
if (uri != null) {
httpBinding.setURI(uri);
}
+ } else if (RESPONSE_QNAME.equals(elementName)) {
+
+ // skip response
+ reader.next();
+ // and position to the next start_element event
+ while (reader.hasNext()) {
+ int sub_event = reader.getEventType();
+ switch (sub_event) {
+ case START_ELEMENT:
+ elementName = reader.getName();
+ break;
+ default:
+ reader.next();
+ }
+ break;
+ }
+
+ // dispatch to read wire format for the response
+ Object extension = extensionProcessor.read(reader, context);
+ if (extension != null) {
+ if (extension instanceof WireFormat) {
+ httpBinding.setResponseWireFormat((WireFormat)extension);
+ }
+ }
+ break;
} else {
// Read an extension element
Object extension = extensionProcessor.read(reader, context);
if (extension != null) {
if (extension instanceof WireFormat) {
httpBinding.setRequestWireFormat((WireFormat)extension);
- } else if(extension instanceof OperationSelector) {
+ } else if (extension instanceof OperationSelector) {
httpBinding.setOperationSelector((OperationSelector)extension);
}
}
@@ -114,8 +156,9 @@ public class HTTPBindingProcessor extend
return httpBinding;
}
- public void write(HTTPBinding httpBinding, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, XMLStreamException {
- //writer.writeStartElement(Constants.SCA10_NS, BINDING_HTTP);
+ public void write(HTTPBinding httpBinding, XMLStreamWriter writer, ProcessorContext context)
+ throws ContributionWriteException, XMLStreamException {
+ // writer.writeStartElement(Constants.SCA10_NS, BINDING_HTTP);
writeStart(writer, HTTPBinding.TYPE.getNamespaceURI(), HTTPBinding.TYPE.getLocalPart());
@@ -129,13 +172,29 @@ public class HTTPBindingProcessor extend
writer.writeAttribute(URI, httpBinding.getURI());
}
+ // Write operation selectors
+ if (httpBinding.getOperationSelector() != null) {
+ extensionProcessor.write(httpBinding.getOperationSelector(), writer, context);
+ }
+
+ // Write wire formats
+ if (httpBinding.getRequestWireFormat() != null) {
+ extensionProcessor.write(httpBinding.getRequestWireFormat(), writer, context);
+ }
+
+ if (httpBinding.getResponseWireFormat() != null && httpBinding.getRequestWireFormat() != httpBinding
+ .getResponseWireFormat()) {
+ writeStart(writer, RESPONSE_QNAME.getNamespaceURI(), RESPONSE_QNAME.getLocalPart());
+ extensionProcessor.write(httpBinding.getResponseWireFormat(), writer, context);
+ writeEnd(writer);
+ }
+
writeEnd(writer);
- //writer.writeEndElement();
+ // writer.writeEndElement();
}
-
public void resolve(HTTPBinding model, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException {
- // Should not need to do anything here for now...
+ // Should not need to do anything here for now...
}
Modified: tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor?rev=1200669&r1=1200668&r2=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor Fri Nov 11 00:53:16 2011
@@ -17,6 +17,10 @@
# Implementation class for the artifact processor extension
org.apache.tuscany.sca.binding.http.xml.HTTPBindingProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#binding.http,model=org.apache.tuscany.sca.binding.http.HTTPBinding,factory=org.apache.tuscany.sca.binding.http.HTTPBindingFactory
-org.apache.tuscany.sca.binding.http.xml.HTTPDefaultWireFormatProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#wireFormat.httpDefault,model=org.apache.tuscany.sca.binding.http.HTTPDefaultWireFormat
-org.apache.tuscany.sca.binding.http.xml.HTTPXMLWireFormatProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#wireFormat.httpXml,model=org.apache.tuscany.sca.binding.http.HTTPXMLWireFormat
-org.apache.tuscany.sca.binding.http.xml.HTTPDefaultOperationSelectorProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#operationSelector.httpDefault,model=org.apache.tuscany.sca.binding.http.HTTPDefaultOperationSelector
+
+org.apache.tuscany.sca.assembly.xml.DefaultBeanModelProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#wireFormat.default,model=org.apache.tuscany.sca.binding.http.wireformat.HTTPDefaultWireFormat
+org.apache.tuscany.sca.assembly.xml.DefaultBeanModelProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#wireFormat.json,model=org.apache.tuscany.sca.binding.http.wireformat.HTTPJSONWireFormat
+org.apache.tuscany.sca.assembly.xml.DefaultBeanModelProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#wireFormat.xml,model=org.apache.tuscany.sca.binding.http.wireformat.HTTPXMLWireFormat
+
+org.apache.tuscany.sca.assembly.xml.DefaultBeanModelProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#operationSelector.default,model=org.apache.tuscany.sca.binding.http.operationselector.HTTPDefaultOperationSelector
+org.apache.tuscany.sca.assembly.xml.DefaultBeanModelProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#operationSelector.rpc,model=org.apache.tuscany.sca.binding.http.operationselector.HTTPRPCOperationSelector
Added: tuscany/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java?rev=1200669&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java (added)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java Fri Nov 11 00:53:16 2011
@@ -0,0 +1,93 @@
+/*
+ * 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.tuscany.sca.binding.http.xml;
+
+import java.io.StringReader;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.binding.http.HTTPBinding;
+import org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class HTTPBindingProcessorTestCase {
+
+ private static final String COMPOSITE =
+ "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
+ + "<composite xmlns=\"http://docs.oasis-open.org/ns/opencsa/sca/200912\" xmlns:tuscany=\"http://tuscany.apache.org/xmlns/sca/1.1\" targetNamespace=\"http://binding-http\" name=\"binding-http\">"
+ + " <component name=\"CustomerService\">"
+ + " <implementation.java class=\"services.customer.CustomerServiceImpl\"/>"
+ + " <service name=\"CustomerService\">"
+ + " <tuscany:binding.http uri=\"http://localhost:8085/Customer\">"
+ + " <tuscany:wireFormat.json />"
+ + " <tuscany:operationSelector.default />"
+ + " <tuscany:response>"
+ + " <tuscany:wireFormat.xml />"
+ + " </tuscany:response>"
+ + " </tuscany:binding.http>"
+ + " </service>"
+ + " </component>"
+ + "</composite>";
+
+ private static XMLInputFactory inputFactory;
+ private static StAXArtifactProcessor<Object> staxProcessor;
+ private static ProcessorContext context;
+
+ @BeforeClass
+ public static void setUp() throws Exception {
+ DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
+ context = new ProcessorContext(extensionPoints);
+ inputFactory = XMLInputFactory.newInstance();
+
+ StAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(extensionPoints);
+ staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null);
+ }
+
+ /**
+ * Test parsing valid composite definition. Valid composite populated with correct values expected.
+ * @throws Exception
+ */
+ @Test
+ public void testLoadValidComposite() throws Exception {
+ XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(COMPOSITE));
+
+ Composite composite = (Composite)staxProcessor.read(reader, context);
+ HTTPBinding binding = (HTTPBinding) composite.getComponents().get(0).getServices().get(0).getBindings().get(0);
+
+ Assert.assertNotNull(binding);
+ Assert.assertNotNull(binding.getOperationSelector());
+ Assert.assertNotNull(binding.getRequestWireFormat());
+ Assert.assertNotNull(binding.getResponseWireFormat());
+
+ }
+}
Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: tuscany/sca-java-2.x/trunk/modules/binding-jsonp/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jsonp/META-INF/MANIFEST.MF?rev=1200669&r1=1200668&r2=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jsonp/META-INF/MANIFEST.MF (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jsonp/META-INF/MANIFEST.MF Fri Nov 11 00:53:16 2011
@@ -13,6 +13,8 @@ Import-Package: javax.xml.namespace,
org.apache.tuscany.sca.assembly.xml;version="2.0.0",
org.apache.tuscany.sca.binding.http;version="2.0.0",
org.apache.tuscany.sca.binding.http.impl;version="2.0.0",
+ org.apache.tuscany.sca.binding.http.operationselector,
+ org.apache.tuscany.sca.binding.http.wireformat,
org.apache.tuscany.sca.binding.jsonp;version="2.0.0"
Bundle-SymbolicName: org.apache.tuscany.sca.binding.jsonp
Bundle-DocURL: http://www.apache.org/
Modified: tuscany/sca-java-2.x/trunk/modules/binding-jsonp/src/main/java/org/apache/tuscany/sca/binding/jsonp/JSONPBinding.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jsonp/src/main/java/org/apache/tuscany/sca/binding/jsonp/JSONPBinding.java?rev=1200669&r1=1200668&r2=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jsonp/src/main/java/org/apache/tuscany/sca/binding/jsonp/JSONPBinding.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jsonp/src/main/java/org/apache/tuscany/sca/binding/jsonp/JSONPBinding.java Fri Nov 11 00:53:16 2011
@@ -21,9 +21,9 @@ package org.apache.tuscany.sca.binding.j
import javax.xml.namespace.QName;
-import org.apache.tuscany.sca.binding.http.HTTPDefaultOperationSelector;
-import org.apache.tuscany.sca.binding.http.HTTPDefaultWireFormat;
import org.apache.tuscany.sca.binding.http.impl.HTTPBindingImpl;
+import org.apache.tuscany.sca.binding.http.operationselector.HTTPRPCOperationSelector;
+import org.apache.tuscany.sca.binding.http.wireformat.HTTPJSONWireFormat;
/**
* JSONP Binding model
@@ -36,9 +36,9 @@ public class JSONPBinding extends HTTPBi
super();
// configure the HTTP binding for JSONP (which for the moment is the default wireFormat)
- setOperationSelector(new HTTPDefaultOperationSelector());
- setRequestWireFormat(new HTTPDefaultWireFormat());
- setResponseWireFormat(new HTTPDefaultWireFormat());
+ setOperationSelector(new HTTPRPCOperationSelector());
+ setRequestWireFormat(new HTTPJSONWireFormat());
+ setResponseWireFormat(new HTTPJSONWireFormat());
}
@Override