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