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 [1/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...

Author: lresende
Date: Fri Nov 11 00:53:16 2011
New Revision: 1200669

URL: http://svn.apache.org/viewvc?rev=1200669&view=rev
Log:
Refactoring binding http model to bring back support for servlet based resources, and making rpc style it's own operationSelector

Added:
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPDefaultOperationSelectorProviderFactory.java
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultOperationSelectorProviderFactory.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPDefaultServiceOperationSelectorInterceptor.java
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultServiceOperationSelectorInterceptor.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPRPCOperationSelectorProviderFactory.java   (contents, props changed)
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultOperationSelectorProviderFactory.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPRPCServiceOperationSelectorInterceptor.java   (contents, props changed)
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultServiceOperationSelectorInterceptor.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPDefaultWireFormatProviderFactory.java
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultWireFormatProviderFactory.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPDefaultWireFormatServiceInterceptor.java   (with props)
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPJSONWireFormatProviderFactory.java   (contents, props changed)
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultWireFormatProviderFactory.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPJSONWireFormatServiceInterceptor.java   (contents, props changed)
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultWireFormatServiceInterceptor.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPXMLWireFormatProviderFactory.java   (contents, props changed)
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPXMLWireFormatProviderFactory.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPXMLWireFormatServiceInterceptor.java   (contents, props changed)
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPXMLWireFormatServiceInterceptor.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/ResourceServiceTestCase.java   (with props)
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/BeanA.java   (contents, props changed)
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/BeanA.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ComplexStuff.java   (contents, props changed)
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/ComplexStuff.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ComplexStuffImpl.java   (contents, props changed)
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/ComplexStuffImpl.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/Helloworld.java   (contents, props changed)
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/Helloworld.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/HelloworldImpl.java   (contents, props changed)
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/HelloworldImpl.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ResourceService.java   (with props)
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/SomeException.java   (contents, props changed)
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/SomeException.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/resource.composite
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/helloworld.composite
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPDefaultOperationSelector.java
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultOperationSelector.java
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/HTTPRPCOperationSelector.java   (contents, props changed)
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultOperationSelector.java
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPDefaultWireFormat.java   (contents, props changed)
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultWireFormat.java
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPJSONWireFormat.java
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPXMLWireFormat.java
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/HTTPXMLWireFormat.java   (contents, props changed)
      - copied, changed from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPXMLWireFormat.java
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/sca/
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/sca/binding/
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/sca/binding/http/
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/sca/binding/http/xml/
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/test/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessorTestCase.java   (with props)
Removed:
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultOperationSelectorProviderFactory.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultServiceOperationSelectorInterceptor.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultWireFormatProviderFactory.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultWireFormatServiceInterceptor.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPXMLWireFormatProviderFactory.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPXMLWireFormatServiceInterceptor.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/BeanA.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/ComplexStuff.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/ComplexStuffImpl.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/Helloworld.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/HelloworldImpl.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/SomeException.java
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultOperationSelector.java
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPDefaultWireFormat.java
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/HTTPXMLWireFormat.java
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPDefaultOperationSelectorProcessor.java
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPDefaultWireFormatProcessor.java
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPXMLWireFormatProcessor.java
Modified:
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/META-INF/MANIFEST.MF
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingListenerServlet.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingServiceServlet.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPServiceBindingProvider.java
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.OperationSelectorProviderFactory
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.WireFormatProviderFactory
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/complex.composite
    tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/resources/helloworld.composite
    tuscany/sca-java-2.x/trunk/modules/binding-http/META-INF/MANIFEST.MF
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/xml/HTTPBindingProcessor.java
    tuscany/sca-java-2.x/trunk/modules/binding-http/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
    tuscany/sca-java-2.x/trunk/modules/binding-jsonp/META-INF/MANIFEST.MF
    tuscany/sca-java-2.x/trunk/modules/binding-jsonp/src/main/java/org/apache/tuscany/sca/binding/jsonp/JSONPBinding.java

Modified: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/META-INF/MANIFEST.MF?rev=1200669&r1=1200668&r2=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/META-INF/MANIFEST.MF (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/META-INF/MANIFEST.MF Fri Nov 11 00:53:16 2011
@@ -12,6 +12,8 @@ Import-Package: javax.servlet,
  javax.servlet.http,
  org.apache.tuscany.sca.assembly;version="2.0.0",
  org.apache.tuscany.sca.binding.http;version="2.0.0",
+ org.apache.tuscany.sca.binding.http.operationselector,
+ org.apache.tuscany.sca.binding.http.wireformat,
  org.apache.tuscany.sca.common.http;version="2.0.0",
  org.apache.tuscany.sca.core;version="2.0.0",
  org.apache.tuscany.sca.host.http;version="2.0.0",

Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPDefaultOperationSelectorProviderFactory.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultOperationSelectorProviderFactory.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPDefaultOperationSelectorProviderFactory.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPDefaultOperationSelectorProviderFactory.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultOperationSelectorProviderFactory.java&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultOperationSelectorProviderFactory.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPDefaultOperationSelectorProviderFactory.java Fri Nov 11 00:53:16 2011
@@ -17,9 +17,9 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.binding.http.format;
+package org.apache.tuscany.sca.binding.http.operationselector.provider;
 
-import org.apache.tuscany.sca.binding.http.HTTPDefaultOperationSelector;
+import org.apache.tuscany.sca.binding.http.operationselector.HTTPDefaultOperationSelector;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.invocation.Interceptor;
 import org.apache.tuscany.sca.invocation.Phase;
@@ -35,7 +35,7 @@ public class HTTPDefaultOperationSelecto
     
     @Override
     public Class<HTTPDefaultOperationSelector> getModelType() {
-        return null;
+        return HTTPDefaultOperationSelector.class;
     }
 
     @Override

Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPDefaultServiceOperationSelectorInterceptor.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultServiceOperationSelectorInterceptor.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPDefaultServiceOperationSelectorInterceptor.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPDefaultServiceOperationSelectorInterceptor.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultServiceOperationSelectorInterceptor.java&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultServiceOperationSelectorInterceptor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPDefaultServiceOperationSelectorInterceptor.java Fri Nov 11 00:53:16 2011
@@ -17,7 +17,7 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.binding.http.format;
+package org.apache.tuscany.sca.binding.http.operationselector.provider;
 
 import java.util.List;
 
@@ -57,19 +57,17 @@ public class HTTPDefaultServiceOperation
     public Message invoke(Message msg) {
         HTTPContext context = msg.getBindingContext();
         HttpServletRequest request = context.getHttpRequest();
-        String path = request.getPathInfo();
-        if (path.startsWith("/")) {
-            path = path.substring(1);
-        }
-
-        for (Operation op : operations) {
-            if (op.getName().equals(path)) {
-                msg.setOperation(op);
-                return next.invoke(msg);
-            }
+        
+        Operation operation = findOperation(request.getMethod());
+        if(operation == null) {
+            operation = findOperation("service");
         }
         
-        throw new ServiceRuntimeException("No matching operation: " + path);
+        if(operation == null) {
+            throw new ServiceRuntimeException("No matching operation for " + request.getMethod());
+        }
+        msg.setOperation(operation);
+        return next.invoke(msg);        
     }
 
     @Override
@@ -82,4 +80,29 @@ public class HTTPDefaultServiceOperation
         return next;
     }
 
+    
+
+    /**
+     * Find the operation from the component service contract
+     * @param componentService
+     * @param method
+     * @return
+     */
+    private Operation findOperation(String method) {
+        if (method.contains(".")) {
+            method = method.substring(method.lastIndexOf(".") + 1);
+        }
+
+        Operation result = null;
+        for (Operation o : operations) {
+            if (o.isDynamic())
+                return o;
+            if (o.getName().equalsIgnoreCase(method)) {
+                result = o;
+                break;
+            }
+        }
+
+        return result;
+    }
 }

Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPRPCOperationSelectorProviderFactory.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultOperationSelectorProviderFactory.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPRPCOperationSelectorProviderFactory.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPRPCOperationSelectorProviderFactory.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultOperationSelectorProviderFactory.java&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultOperationSelectorProviderFactory.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPRPCOperationSelectorProviderFactory.java Fri Nov 11 00:53:16 2011
@@ -17,9 +17,9 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.binding.http.format;
+package org.apache.tuscany.sca.binding.http.operationselector.provider;
 
-import org.apache.tuscany.sca.binding.http.HTTPDefaultOperationSelector;
+import org.apache.tuscany.sca.binding.http.operationselector.HTTPDefaultOperationSelector;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.invocation.Interceptor;
 import org.apache.tuscany.sca.invocation.Phase;
@@ -28,14 +28,14 @@ import org.apache.tuscany.sca.provider.O
 import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
 import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
 
-public class HTTPDefaultOperationSelectorProviderFactory implements OperationSelectorProviderFactory<HTTPDefaultOperationSelector>{
+public class HTTPRPCOperationSelectorProviderFactory implements OperationSelectorProviderFactory<HTTPDefaultOperationSelector>{
 
-    public HTTPDefaultOperationSelectorProviderFactory(ExtensionPointRegistry extensionPoints) {
+    public HTTPRPCOperationSelectorProviderFactory(ExtensionPointRegistry extensionPoints) {
     }
     
     @Override
     public Class<HTTPDefaultOperationSelector> getModelType() {
-        return null;
+        return HTTPDefaultOperationSelector.class;
     }
 
     @Override

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPRPCOperationSelectorProviderFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPRPCOperationSelectorProviderFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPRPCServiceOperationSelectorInterceptor.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultServiceOperationSelectorInterceptor.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPRPCServiceOperationSelectorInterceptor.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPRPCServiceOperationSelectorInterceptor.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultServiceOperationSelectorInterceptor.java&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultServiceOperationSelectorInterceptor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPRPCServiceOperationSelectorInterceptor.java Fri Nov 11 00:53:16 2011
@@ -17,7 +17,7 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.binding.http.format;
+package org.apache.tuscany.sca.binding.http.operationselector.provider;
 
 import java.util.List;
 
@@ -43,12 +43,12 @@ import org.oasisopen.sca.ServiceRuntimeE
  *       a single "onMessage" method to get all requests, so perhaps this could
  *       also support impls with method: service(HttpServletRequest, HttpServletResponse)
  */
-public class HTTPDefaultServiceOperationSelectorInterceptor implements Interceptor {
+public class HTTPRPCServiceOperationSelectorInterceptor implements Interceptor {
 
     private Invoker next;
     private List<Operation> operations;
     
-    public HTTPDefaultServiceOperationSelectorInterceptor(RuntimeEndpoint endpoint) {
+    public HTTPRPCServiceOperationSelectorInterceptor(RuntimeEndpoint endpoint) {
         Interface serviceInterface = endpoint.getService().getInterfaceContract().getInterface();
         this.operations = serviceInterface.getOperations();
     }

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPRPCServiceOperationSelectorInterceptor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/operationselector/provider/HTTPRPCServiceOperationSelectorInterceptor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingListenerServlet.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingListenerServlet.java?rev=1200669&r1=1200668&r2=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingListenerServlet.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingListenerServlet.java Fri Nov 11 00:53:16 2011
@@ -45,7 +45,7 @@ import org.apache.tuscany.sca.invocation
  */
 public class HTTPBindingListenerServlet extends HttpServlet {
     private static final long serialVersionUID = 2865466417329430610L;
-    
+
     transient private Binding binding;
 
     private MessageFactory messageFactory;
@@ -57,7 +57,7 @@ public class HTTPBindingListenerServlet 
     private Invoker conditionalPostInvoker;
     private Invoker deleteInvoker;
     private Invoker conditionalDeleteInvoker;
-    
+
     /**
      * Constructs a new HTTPServiceListenerServlet.
      */
@@ -66,12 +66,12 @@ public class HTTPBindingListenerServlet 
         this.messageFactory = messageFactory;
     }
 
-    
+
     @Override
     protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         super.service(request, response);
     }    
-    
+
     @Override
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         // Get the request path
@@ -88,43 +88,43 @@ public class HTTPBindingListenerServlet 
         Message requestMessage = messageFactory.createMessage();
 
         String id = path.substring(1);
-        
+
         Message responseMessage = null;
         HTTPCacheContext cacheContext = null;
         try { 
-           cacheContext = HTTPCacheContext.createCacheContextFromRequest(request);
+            cacheContext = HTTPCacheContext.createCacheContextFromRequest(request);
         } catch (ParseException e) {        	
         }
 
         // Route message based on availability of cache info and cache methods
         if (( cacheContext != null ) && (cacheContext.isEnabled()) && (conditionalGetInvoker != null )) {        
-        	requestMessage.setBody(new Object[] {id, cacheContext});
-        	responseMessage = conditionalGetInvoker.invoke(requestMessage);
+            requestMessage.setBody(new Object[] {id, cacheContext});
+            responseMessage = conditionalGetInvoker.invoke(requestMessage);
         } else {
-        	requestMessage.setBody(new Object[] {id});
-        	responseMessage = getInvoker.invoke(requestMessage);
+            requestMessage.setBody(new Object[] {id});
+            responseMessage = getInvoker.invoke(requestMessage);
         }
         if (responseMessage.isFault()) {
-        	Object body = responseMessage.getBody();
-        	
-        	int index = -1;
-        	if ( -1 < (index = body.getClass().getName().indexOf( "NotModifiedException")) ) {
-        		if ( index > -1 ) 
-            		response.sendError( HttpServletResponse.SC_NOT_MODIFIED, body.toString().substring( index ));
-        		else
-            		response.sendError( HttpServletResponse.SC_NOT_MODIFIED );
-        		return;
-        	} else if ( -1 < (index = body.getClass().getName().indexOf( "PreconditionFailedException")) ) {
-        		if ( index > -1 ) 
-            		response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED, body.toString().substring( index ));
-        		else
-            		response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED );
-        		return;            		
+            Object body = responseMessage.getBody();
+
+            int index = -1;
+            if ( -1 < (index = body.getClass().getName().indexOf( "NotModifiedException")) ) {
+                if ( index > -1 ) 
+                    response.sendError( HttpServletResponse.SC_NOT_MODIFIED, body.toString().substring( index ));
+                else
+                    response.sendError( HttpServletResponse.SC_NOT_MODIFIED );
+                return;
+            } else if ( -1 < (index = body.getClass().getName().indexOf( "PreconditionFailedException")) ) {
+                if ( index > -1 ) 
+                    response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED, body.toString().substring( index ));
+                else
+                    response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED );
+                return;            		
             }
-        		        	
+
             throw new ServletException((Throwable)responseMessage.getBody());
         }
-        
+
         if(response.getContentType() == null || response.getContentType().length() == 0){
             // Calculate content-type based on extension
             String contentType = HTTPContentTypeMapper.getContentType(id);
@@ -132,7 +132,7 @@ public class HTTPBindingListenerServlet 
                 response.setContentType(contentType);
             }
         }
-        
+
         // Write the response from the service implementation to the response
         // output stream
         InputStream is = (InputStream)responseMessage.getBody();
@@ -162,43 +162,43 @@ public class HTTPBindingListenerServlet 
         // Invoke the get operation on the service implementation
         Message requestMessage = messageFactory.createMessage();
         String id = path.substring(1);
-        
+
         Message responseMessage = null;
         HTTPCacheContext cacheContext = null;
         try { 
-           cacheContext = HTTPCacheContext.createCacheContextFromRequest(request);
+            cacheContext = HTTPCacheContext.createCacheContextFromRequest(request);
         } catch (ParseException e) {        	
         }
-        
+
         // Route message based on availability of cache info and cache methods
         if (( cacheContext != null ) && (cacheContext.isEnabled()) && (conditionalDeleteInvoker != null )) {        
-        	requestMessage.setBody(new Object[] {id, cacheContext});
-        	responseMessage = conditionalDeleteInvoker.invoke(requestMessage);
+            requestMessage.setBody(new Object[] {id, cacheContext});
+            responseMessage = conditionalDeleteInvoker.invoke(requestMessage);
         } else {
-        	requestMessage.setBody(new Object[] {id});
-        	responseMessage = deleteInvoker.invoke(requestMessage);
+            requestMessage.setBody(new Object[] {id});
+            responseMessage = deleteInvoker.invoke(requestMessage);
         }
         if (responseMessage.isFault()) {
-        	Object body = responseMessage.getBody();
-        	
-        	int index = -1;
-        	if ( -1 < (index = body.getClass().getName().indexOf( "NotModifiedException")) ) {
-        		if ( index > -1 ) 
-            		response.sendError( HttpServletResponse.SC_NOT_MODIFIED, body.toString().substring( index ));
-        		else
-            		response.sendError( HttpServletResponse.SC_NOT_MODIFIED );
-        		return;
-        	} else if ( -1 < (index = body.getClass().getName().indexOf( "PreconditionFailedException")) ) {
-        		if ( index > -1 ) 
-            		response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED, body.toString().substring( index ));
-        		else
-            		response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED );
-        		return;            		
+            Object body = responseMessage.getBody();
+
+            int index = -1;
+            if ( -1 < (index = body.getClass().getName().indexOf( "NotModifiedException")) ) {
+                if ( index > -1 ) 
+                    response.sendError( HttpServletResponse.SC_NOT_MODIFIED, body.toString().substring( index ));
+                else
+                    response.sendError( HttpServletResponse.SC_NOT_MODIFIED );
+                return;
+            } else if ( -1 < (index = body.getClass().getName().indexOf( "PreconditionFailedException")) ) {
+                if ( index > -1 ) 
+                    response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED, body.toString().substring( index ));
+                else
+                    response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED );
+                return;            		
             }        		
-        	
+
             throw new ServletException((Throwable)responseMessage.getBody());
         }
-        
+
         // Write the response from the service implementation to the response
         // output stream
         InputStream is = (InputStream)responseMessage.getBody();
@@ -228,43 +228,43 @@ public class HTTPBindingListenerServlet 
         // Invoke the get operation on the service implementation
         Message requestMessage = messageFactory.createMessage();
         String id = path.substring(1);
-        
+
         Message responseMessage = null;
         HTTPCacheContext cacheContext = null;
         try { 
-           cacheContext = HTTPCacheContext.createCacheContextFromRequest(request);
+            cacheContext = HTTPCacheContext.createCacheContextFromRequest(request);
         } catch (ParseException e) {        	
         }
-        
+
         // Route message based on availability of cache info and cache methods
         if (( cacheContext != null ) && (cacheContext.isEnabled()) && (conditionalPutInvoker != null )) {        
-        	requestMessage.setBody(new Object[] {id, cacheContext});
-        	responseMessage = conditionalPutInvoker.invoke(requestMessage);
+            requestMessage.setBody(new Object[] {id, cacheContext});
+            responseMessage = conditionalPutInvoker.invoke(requestMessage);
         } else {
-        	requestMessage.setBody(new Object[] {id});
-        	responseMessage = putInvoker.invoke(requestMessage);
+            requestMessage.setBody(new Object[] {id});
+            responseMessage = putInvoker.invoke(requestMessage);
         }
         if (responseMessage.isFault()) {
-        	Object body = responseMessage.getBody();
-        	
-        	int index = -1;
-        	if ( -1 < (index = body.getClass().getName().indexOf( "NotModifiedException")) ) {
-        		if ( index > -1 ) 
-            		response.sendError( HttpServletResponse.SC_NOT_MODIFIED, body.toString().substring( index ));
-        		else
-            		response.sendError( HttpServletResponse.SC_NOT_MODIFIED );
-        		return;
-        	} else if ( -1 < (index = body.getClass().getName().indexOf( "PreconditionFailedException")) ) {
-        		if ( index > -1 ) 
-            		response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED, body.toString().substring( index ));
-        		else
-            		response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED );
-        		return;            		
+            Object body = responseMessage.getBody();
+
+            int index = -1;
+            if ( -1 < (index = body.getClass().getName().indexOf( "NotModifiedException")) ) {
+                if ( index > -1 ) 
+                    response.sendError( HttpServletResponse.SC_NOT_MODIFIED, body.toString().substring( index ));
+                else
+                    response.sendError( HttpServletResponse.SC_NOT_MODIFIED );
+                return;
+            } else if ( -1 < (index = body.getClass().getName().indexOf( "PreconditionFailedException")) ) {
+                if ( index > -1 ) 
+                    response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED, body.toString().substring( index ));
+                else
+                    response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED );
+                return;            		
             }        		
-        	
+
             throw new ServletException((Throwable)responseMessage.getBody());
         }
-        
+
         // Write the response from the service implementation to the response
         // output stream
         InputStream is = (InputStream)responseMessage.getBody();
@@ -294,58 +294,58 @@ public class HTTPBindingListenerServlet 
         // Invoke the get operation on the service implementation
         Message requestMessage = messageFactory.createMessage();
         // String id = path.substring(1);
-        
+
         Message responseMessage = null;
         HTTPCacheContext cacheContext = null;
         try { 
-           cacheContext = HTTPCacheContext.createCacheContextFromRequest(request);
+            cacheContext = HTTPCacheContext.createCacheContextFromRequest(request);
         } catch (ParseException e) {        	
         }
-        
+
         // Route message based on availability of cache info and cache methods
         if (( cacheContext != null ) && (cacheContext.isEnabled()) && (conditionalPostInvoker != null )) {        
-        	requestMessage.setBody(new Object[] {cacheContext});
-        	responseMessage = conditionalPostInvoker.invoke(requestMessage);
+            requestMessage.setBody(new Object[] {cacheContext});
+            responseMessage = conditionalPostInvoker.invoke(requestMessage);
         } else {
-        	requestMessage.setBody(new Object[] {});
-        	responseMessage = postInvoker.invoke(requestMessage);
+            requestMessage.setBody(new Object[] {});
+            responseMessage = postInvoker.invoke(requestMessage);
         }
         if (responseMessage.isFault()) {
-        	Object body = responseMessage.getBody();
-        	
-        	int index = -1;
-        	if ( -1 < (index = body.getClass().getName().indexOf( "NotModifiedException")) ) {
-        		if ( index > -1 ) 
-            		response.sendError( HttpServletResponse.SC_NOT_MODIFIED, body.toString().substring( index ));
-        		else
-            		response.sendError( HttpServletResponse.SC_NOT_MODIFIED );
-        		return;
-        	} else if ( -1 < (index = body.getClass().getName().indexOf( "PreconditionFailedException")) ) {
-        		if ( index > -1 ) 
-            		response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED, body.toString().substring( index ));
-        		else
-            		response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED );
-        		return;            		
+            Object body = responseMessage.getBody();
+
+            int index = -1;
+            if ( -1 < (index = body.getClass().getName().indexOf( "NotModifiedException")) ) {
+                if ( index > -1 ) 
+                    response.sendError( HttpServletResponse.SC_NOT_MODIFIED, body.toString().substring( index ));
+                else
+                    response.sendError( HttpServletResponse.SC_NOT_MODIFIED );
+                return;
+            } else if ( -1 < (index = body.getClass().getName().indexOf( "PreconditionFailedException")) ) {
+                if ( index > -1 ) 
+                    response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED, body.toString().substring( index ));
+                else
+                    response.sendError( HttpServletResponse.SC_PRECONDITION_FAILED );
+                return;            		
             }        		
-        	
+
             throw new ServletException((Throwable)responseMessage.getBody());
         }
 
 
         // Test if the ETag and LastModified are returned as a cache context.
-    	Object body = responseMessage.getBody();
-    	if ( body.getClass() == HTTPCacheContext.class ) {
-    		// Transfer to header if so.
-    		HTTPCacheContext cc = (HTTPCacheContext)responseMessage.getBody();
-    		if (( cc != null ) && ( cc.isEnabled() )) {
-    			String eTag = cc.getETag();
-            	if ( eTag != null )
-            		response.setHeader( "ETag", cc.getETag() );
-            	String lastModified = cc.getLastModified();
-            	if ( lastModified != null)
-            		response.setHeader( "LastModified", cc.getLastModified() );
-    		}
-    	}
+        Object body = responseMessage.getBody();
+        if ( body.getClass() == HTTPCacheContext.class ) {
+            // Transfer to header if so.
+            HTTPCacheContext cc = (HTTPCacheContext)responseMessage.getBody();
+            if (( cc != null ) && ( cc.isEnabled() )) {
+                String eTag = cc.getETag();
+                if ( eTag != null )
+                    response.setHeader( "ETag", cc.getETag() );
+                String lastModified = cc.getLastModified();
+                if ( lastModified != null)
+                    response.setHeader( "LastModified", cc.getLastModified() );
+            }
+        }
     }
 
     /**

Modified: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingServiceServlet.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingServiceServlet.java?rev=1200669&r1=1200668&r2=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingServiceServlet.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPBindingServiceServlet.java Fri Nov 11 00:53:16 2011
@@ -32,8 +32,8 @@ import org.apache.tuscany.sca.invocation
 import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
 
 public class HTTPBindingServiceServlet extends HttpServlet {
-    private static final long serialVersionUID = 1L;
-
+    private static final long serialVersionUID = 6496710199406616194L;
+    
     protected transient MessageFactory messageFactory;
     protected transient RuntimeEndpoint wire;
     
@@ -49,6 +49,12 @@ public class HTTPBindingServiceServlet e
         bindingContext.setHttpResponse(response);
         Message msg = messageFactory.createMessage();
         msg.setBindingContext(bindingContext);
-        wire.invoke(msg);
+        Message responseMessage = wire.invoke(msg);
+        // return response to client
+        if (responseMessage.isFault()) {
+            // Turn a fault into an exception
+            Throwable e = (Throwable)responseMessage.getBody();
+            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString());
+        } 
     }    
 }

Modified: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPServiceBindingProvider.java?rev=1200669&r1=1200668&r2=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPServiceBindingProvider.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPServiceBindingProvider.java Fri Nov 11 00:53:16 2011
@@ -22,8 +22,9 @@ package org.apache.tuscany.sca.binding.h
 import javax.servlet.Servlet;
 
 import org.apache.tuscany.sca.binding.http.HTTPBinding;
-import org.apache.tuscany.sca.binding.http.HTTPDefaultOperationSelector;
-import org.apache.tuscany.sca.binding.http.HTTPDefaultWireFormat;
+import org.apache.tuscany.sca.binding.http.operationselector.HTTPDefaultOperationSelector;
+import org.apache.tuscany.sca.binding.http.operationselector.HTTPRPCOperationSelector;
+import org.apache.tuscany.sca.binding.http.wireformat.HTTPDefaultWireFormat;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.host.http.ServletHost;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
@@ -56,7 +57,6 @@ public class HTTPServiceBindingProvider 
     private ServletHost servletHost;
     private String servletMapping;
     private InterfaceContract interfaceContract;
-    private boolean widget;
 
     private HTTPBindingListenerServlet bindingListenerServlet;
    
@@ -67,19 +67,18 @@ public class HTTPServiceBindingProvider 
     	
     	this.endpoint = endpoint;
         this.binding = (HTTPBinding)endpoint.getBinding();
-        this.widget = "Widget".equals(binding.getName());
         
         this.extensionPoints = extensionPoints;
         this.messageFactory = messageFactory;
         this.servletHost = servletHost;
         
-        if (binding.getOperationSelector() == null && !widget) {
+        if (binding.getOperationSelector() == null) {
             binding.setOperationSelector(new HTTPDefaultOperationSelector());
         }
-        if (binding.getRequestWireFormat() == null && !widget) {
+        if (binding.getRequestWireFormat() == null) {
             binding.setRequestWireFormat(new HTTPDefaultWireFormat());
         }
-        if (binding.getResponseWireFormat() == null && !widget) {
+        if (binding.getResponseWireFormat() == null) {
             binding.setResponseWireFormat(new HTTPDefaultWireFormat());
         }
         
@@ -123,63 +122,40 @@ public class HTTPServiceBindingProvider 
     }
 
     public void start() {
-        if (widget) {
-            start1x();
-        } else {
-            String deployedURI = servletHost.addServletMapping(servletMapping, new HTTPBindingServiceServlet(endpoint, messageFactory));
-            endpoint.setDeployedURI(deployedURI);
+
+        /**
+         * Consider three scenarios here :
+         *  - Default servlet using service level operation
+         *  - Default servlet using GET, PUT, POST, DELETE operations mapped to interface names with same name
+         *  - RPC over HTTP like : http://localhost:8080/HelloworldComponent/Helloworld/sayHello?name=Petra
+         */
+        if (binding.getOperationSelector() == null || binding.getRequestWireFormat() == null || binding.getResponseWireFormat() == null) {
+            throw new IllegalStateException("Binding operation selector and/or wire formats not properly setup.");
         }
-    }
-    
-    public void start1x() {
-        // Get the invokers for the supported operations
+        
+        InvocationChain bindingChain = endpoint.getBindingInvocationChain();
+        
         Servlet servlet = null;
-        bindingListenerServlet = new HTTPBindingListenerServlet(binding, messageFactory );
+        Invoker bindingInvoker = bindingChain.getHeadInvoker();
+        bindingListenerServlet = new HTTPBindingListenerServlet(binding, messageFactory);
         for (InvocationChain invocationChain : endpoint.getInvocationChains()) {
+            
             Operation operation = invocationChain.getTargetOperation();
+            Invoker serviceInvoker = invocationChain.getHeadInvoker();
             String operationName = operation.getName();
-            if (operationName.equals("get")) { 
-                Invoker getInvoker = invocationChain.getHeadInvoker();
-                bindingListenerServlet.setGetInvoker(getInvoker);
-                servlet = bindingListenerServlet;
-            } else if (operationName.equals("conditionalGet")) {
-                Invoker conditionalGetInvoker = invocationChain.getHeadInvoker();
-                bindingListenerServlet.setConditionalGetInvoker(conditionalGetInvoker);
-                servlet = bindingListenerServlet;
-            } else if (operationName.equals("delete")) {
-                Invoker deleteInvoker = invocationChain.getHeadInvoker();
-                bindingListenerServlet.setDeleteInvoker(deleteInvoker);
-                servlet = bindingListenerServlet;
-            } else if (operationName.equals("conditionalDelete")) {
-                Invoker conditionalDeleteInvoker = invocationChain.getHeadInvoker();
-                bindingListenerServlet.setConditionalDeleteInvoker(conditionalDeleteInvoker);
-                servlet = bindingListenerServlet;
-            } else if (operationName.equals("put")) {
-                Invoker putInvoker = invocationChain.getHeadInvoker();
-                bindingListenerServlet.setPutInvoker(putInvoker);
-                servlet = bindingListenerServlet;
-            } else if (operationName.equals("conditionalPut")) {
-                Invoker conditionalPutInvoker = invocationChain.getHeadInvoker();
-                bindingListenerServlet.setConditionalPutInvoker(conditionalPutInvoker);
-                servlet = bindingListenerServlet;
-            } else if (operationName.equals("post")) {
-                Invoker postInvoker = invocationChain.getHeadInvoker();
-                bindingListenerServlet.setPostInvoker(postInvoker);
-                servlet = bindingListenerServlet;
-            } else if (operationName.equals("conditionalPost")) {
-                Invoker conditionalPostInvoker = invocationChain.getHeadInvoker();
-                bindingListenerServlet.setConditionalPostInvoker(conditionalPostInvoker);
-                servlet = bindingListenerServlet;
-            } else if (operationName.equals("service")) {
-                Invoker serviceInvoker = invocationChain.getHeadInvoker();
-//                servlet = new HTTPServiceListenerServlet(binding, serviceInvoker, messageFactory);
+
+            /*
+            if (operationName.equals("service")) {
+                servlet = new HTTPBindingListenerServlet(binding, messageFactory);
                 break;
-            } 
-        }
-        if (servlet == null) {
-            throw new IllegalStateException("No get or service method found on the service");
+            } else {
+            */
+                servlet = new HTTPBindingServiceServlet(endpoint, messageFactory);
+            /*
+            }
+            */
         }
-                
+        
         // Create our HTTP service listener Servlet and register it with the
         // Servlet host
         servletMapping = binding.getURI();
@@ -210,9 +186,6 @@ public class HTTPServiceBindingProvider 
      * Add specific http interceptor to invocation chain
      */
     public void configure() {
-        
-        if (widget) return;
-
         InvocationChain bindingChain = endpoint.getBindingInvocationChain();
 
         if(osProvider != null) {

Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPDefaultWireFormatProviderFactory.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultWireFormatProviderFactory.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPDefaultWireFormatProviderFactory.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPDefaultWireFormatProviderFactory.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultWireFormatProviderFactory.java&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultWireFormatProviderFactory.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPDefaultWireFormatProviderFactory.java Fri Nov 11 00:53:16 2011
@@ -17,9 +17,9 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.binding.http.format;
+package org.apache.tuscany.sca.binding.http.wireformat.provider;
 
-import org.apache.tuscany.sca.binding.http.HTTPDefaultWireFormat;
+import org.apache.tuscany.sca.binding.http.wireformat.HTTPDefaultWireFormat;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
 import org.apache.tuscany.sca.invocation.Interceptor;
@@ -36,7 +36,7 @@ public class HTTPDefaultWireFormatProvid
 
     @Override
     public Class<HTTPDefaultWireFormat> getModelType() {
-        return null;
+        return HTTPDefaultWireFormat.class;
     }
 
     @Override
@@ -49,10 +49,6 @@ public class HTTPDefaultWireFormatProvid
         return new WireFormatProvider() {
             @Override
             public InterfaceContract configureWireFormatInterfaceContract(InterfaceContract interfaceContract) {
-                // TODO: Ideally this wants to set the databinding on a per request basis from the 
-                // http content type and accept headers and so support things like json or xml etc,
-                // for now to get started just use json 
-                interfaceContract.getInterface().resetDataBinding("JSON");
                 return interfaceContract;
             }
             @Override

Added: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPDefaultWireFormatServiceInterceptor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPDefaultWireFormatServiceInterceptor.java?rev=1200669&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPDefaultWireFormatServiceInterceptor.java (added)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPDefaultWireFormatServiceInterceptor.java Fri Nov 11 00:53:16 2011
@@ -0,0 +1,71 @@
+/*
+ * 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.wireformat.provider;
+
+import org.apache.tuscany.sca.binding.http.HTTPBinding;
+import org.apache.tuscany.sca.common.http.HTTPContext;
+import org.apache.tuscany.sca.invocation.Interceptor;
+import org.apache.tuscany.sca.invocation.Invoker;
+import org.apache.tuscany.sca.invocation.Message;
+import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
+
+/**
+ * Handles the default wire format for the http binding
+ * 
+ * 1- determine the request and response format (xml, json, etc) from the 
+ *    binding config or content type header and accept headers
+ *    - TODO: need a way to configure the databinding framework based on that format
+ * 2- get the request contents from the HttpServletRequest
+ *    - for a post its just the request body
+ *    - for a get need to convert the query string into a body based on the format (xml, json, etc)
+ * 3- send the request on down the wire
+ * 4- set the response contents in the HttpServletResponse 
+ *    (the databinding should already have put it in the correct format)
+ * 
+ */
+public class HTTPDefaultWireFormatServiceInterceptor implements Interceptor {
+    
+    private RuntimeEndpoint endpoint;
+    private HTTPBinding binding;
+    private Invoker next;
+    
+    public HTTPDefaultWireFormatServiceInterceptor(RuntimeEndpoint endpoint) {
+        this.endpoint = endpoint;
+        this.binding = (HTTPBinding) endpoint.getBinding();
+    }
+
+    @Override
+    public void setNext(Invoker next) {
+        this.next = next;
+    }
+
+    @Override
+    public Invoker getNext() {
+        return next;
+    }
+
+    @Override
+    public Message invoke(Message msg) {
+        HTTPContext context = msg.getBindingContext();
+
+        msg.setBody(new Object[] {context.getHttpRequest(), context.getHttpResponse()});
+        return getNext().invoke(msg);
+    }
+}

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPDefaultWireFormatServiceInterceptor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPDefaultWireFormatServiceInterceptor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPJSONWireFormatProviderFactory.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultWireFormatProviderFactory.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPJSONWireFormatProviderFactory.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPJSONWireFormatProviderFactory.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultWireFormatProviderFactory.java&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultWireFormatProviderFactory.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPJSONWireFormatProviderFactory.java Fri Nov 11 00:53:16 2011
@@ -17,9 +17,9 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.binding.http.format;
+package org.apache.tuscany.sca.binding.http.wireformat.provider;
 
-import org.apache.tuscany.sca.binding.http.HTTPDefaultWireFormat;
+import org.apache.tuscany.sca.binding.http.wireformat.HTTPJSONWireFormat;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
 import org.apache.tuscany.sca.invocation.Interceptor;
@@ -29,14 +29,14 @@ import org.apache.tuscany.sca.provider.W
 import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
 import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
 
-public class HTTPDefaultWireFormatProviderFactory implements WireFormatProviderFactory<HTTPDefaultWireFormat> {
+public class HTTPJSONWireFormatProviderFactory implements WireFormatProviderFactory<HTTPJSONWireFormat> {
 
-    public HTTPDefaultWireFormatProviderFactory(ExtensionPointRegistry extensionPoints) {
+    public HTTPJSONWireFormatProviderFactory(ExtensionPointRegistry extensionPoints) {
     }
 
     @Override
-    public Class<HTTPDefaultWireFormat> getModelType() {
-        return null;
+    public Class<HTTPJSONWireFormat> getModelType() {
+        return HTTPJSONWireFormat.class;
     }
 
     @Override
@@ -57,7 +57,7 @@ public class HTTPDefaultWireFormatProvid
             }
             @Override
             public Interceptor createInterceptor() {
-                return new HTTPDefaultWireFormatServiceInterceptor(endpoint);
+                return new HTTPJSONWireFormatServiceInterceptor(endpoint);
             }
             @Override
             public String getPhase() {

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPJSONWireFormatProviderFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPJSONWireFormatProviderFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPJSONWireFormatServiceInterceptor.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultWireFormatServiceInterceptor.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPJSONWireFormatServiceInterceptor.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPJSONWireFormatServiceInterceptor.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultWireFormatServiceInterceptor.java&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPDefaultWireFormatServiceInterceptor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPJSONWireFormatServiceInterceptor.java Fri Nov 11 00:53:16 2011
@@ -17,7 +17,7 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.binding.http.format;
+package org.apache.tuscany.sca.binding.http.wireformat.provider;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -58,12 +58,12 @@ import org.oasisopen.sca.ServiceRuntimeE
  *    (the databinding should already have put it in the correct format)
  * 
  */
-public class HTTPDefaultWireFormatServiceInterceptor implements Interceptor {
+public class HTTPJSONWireFormatServiceInterceptor implements Interceptor {
 
     private Invoker next;
     private String jsonpCallbackName = "callback";
     
-    public HTTPDefaultWireFormatServiceInterceptor(RuntimeEndpoint endpoint) {
+    public HTTPJSONWireFormatServiceInterceptor(RuntimeEndpoint endpoint) {
     }
 
     @Override

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPJSONWireFormatServiceInterceptor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPJSONWireFormatServiceInterceptor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPXMLWireFormatProviderFactory.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPXMLWireFormatProviderFactory.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPXMLWireFormatProviderFactory.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPXMLWireFormatProviderFactory.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPXMLWireFormatProviderFactory.java&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPXMLWireFormatProviderFactory.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPXMLWireFormatProviderFactory.java Fri Nov 11 00:53:16 2011
@@ -17,9 +17,9 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.binding.http.format;
+package org.apache.tuscany.sca.binding.http.wireformat.provider;
 
-import org.apache.tuscany.sca.binding.http.HTTPXMLWireFormat;
+import org.apache.tuscany.sca.binding.http.wireformat.HTTPXMLWireFormat;
 import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.databinding.xml.DOMDataBinding;
@@ -41,7 +41,7 @@ public class HTTPXMLWireFormatProviderFa
 
     @Override
     public Class<HTTPXMLWireFormat> getModelType() {
-        return null;
+        return HTTPXMLWireFormat.class;
     }
 
     @Override

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPXMLWireFormatProviderFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPXMLWireFormatProviderFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPXMLWireFormatServiceInterceptor.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPXMLWireFormatServiceInterceptor.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPXMLWireFormatServiceInterceptor.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPXMLWireFormatServiceInterceptor.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPXMLWireFormatServiceInterceptor.java&r1=1200668&r2=1200669&rev=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/format/HTTPXMLWireFormatServiceInterceptor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPXMLWireFormatServiceInterceptor.java Fri Nov 11 00:53:16 2011
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.tuscany.sca.binding.http.format;
+package org.apache.tuscany.sca.binding.http.wireformat.provider;
 
 import java.io.BufferedReader;
 import java.io.IOException;

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPXMLWireFormatServiceInterceptor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/wireformat/provider/HTTPXMLWireFormatServiceInterceptor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.OperationSelectorProviderFactory
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.OperationSelectorProviderFactory?rev=1200669&r1=1200668&r2=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.OperationSelectorProviderFactory (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.OperationSelectorProviderFactory Fri Nov 11 00:53:16 2011
@@ -15,4 +15,5 @@
 # specific language governing permissions and limitations
 # under the License. 
 
-org.apache.tuscany.sca.binding.http.format.HTTPDefaultOperationSelectorProviderFactory;model=org.apache.tuscany.sca.binding.http.HTTPDefaultOperationSelector
+org.apache.tuscany.sca.binding.http.operationselector.provider.HTTPDefaultOperationSelectorProviderFactory;model=org.apache.tuscany.sca.binding.http.operationselector.HTTPDefaultOperationSelector
+org.apache.tuscany.sca.binding.http.operationselector.provider.HTTPRPCOperationSelectorProviderFactory;model=org.apache.tuscany.sca.binding.http.operationselector.HTTPRPCOperationSelector

Modified: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.WireFormatProviderFactory
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.WireFormatProviderFactory?rev=1200669&r1=1200668&r2=1200669&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.WireFormatProviderFactory (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.WireFormatProviderFactory Fri Nov 11 00:53:16 2011
@@ -15,5 +15,6 @@
 # specific language governing permissions and limitations
 # under the License. 
 
-org.apache.tuscany.sca.binding.http.format.HTTPDefaultWireFormatProviderFactory;model=org.apache.tuscany.sca.binding.http.HTTPDefaultWireFormat
-org.apache.tuscany.sca.binding.http.format.HTTPXMLWireFormatProviderFactory;model=org.apache.tuscany.sca.binding.http.HTTPXMLWireFormat
+org.apache.tuscany.sca.binding.http.wireformat.provider.HTTPDefaultWireFormatProviderFactory;model=org.apache.tuscany.sca.binding.http.wireformat.HTTPDefaultWireFormat
+org.apache.tuscany.sca.binding.http.wireformat.provider.HTTPJSONWireFormatProviderFactory;model=org.apache.tuscany.sca.binding.http.wireformat.HTTPJSONWireFormat
+org.apache.tuscany.sca.binding.http.wireformat.provider.HTTPXMLWireFormatProviderFactory;model=org.apache.tuscany.sca.binding.http.wireformat.HTTPXMLWireFormat

Added: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/ResourceServiceTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/ResourceServiceTestCase.java?rev=1200669&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/ResourceServiceTestCase.java (added)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/ResourceServiceTestCase.java Fri Nov 11 00:53:16 2011
@@ -0,0 +1,79 @@
+/*
+ * 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;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * HTTP binding unit tests for Helloworld service.
+ */
+public class ResourceServiceTestCase {
+
+    private static Node node;
+    
+    @BeforeClass
+    public static void setUp() throws Exception {
+        node = NodeFactory.newInstance().createNode("resource.composite", new String[] {"target/test-classes"});
+        node.start();
+    }
+
+    @AfterClass
+    public static void tearDown() throws Exception {
+        if (node != null) {
+            node.stop();
+        }
+    }
+
+    @Test
+    public void testGet() throws Exception {
+        URL url = new URL("http://localhost:8080/resource");
+        InputStream is = url.openStream();
+        Assert.assertTrue(read(is).startsWith("Resource"));
+    }
+
+    private static String read(InputStream is) throws IOException {
+        BufferedReader reader = null;
+        try {
+            reader = new BufferedReader(new InputStreamReader(is));
+            StringBuffer sb = new StringBuffer();
+            String str;
+            while ((str = reader.readLine()) != null) {
+                sb.append(str);
+            }
+            return sb.toString();
+        } finally {
+            if (reader != null) {
+                reader.close();
+            }
+        }
+    }
+
+}

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/ResourceServiceTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/ResourceServiceTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/BeanA.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/BeanA.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/BeanA.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/BeanA.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/BeanA.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/BeanA.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/BeanA.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 BeanA {
 

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/BeanA.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/BeanA.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ComplexStuff.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/ComplexStuff.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ComplexStuff.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ComplexStuff.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/ComplexStuff.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/ComplexStuff.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ComplexStuff.java Fri Nov 11 00:53:16 2011
@@ -17,7 +17,7 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.binding.http;
+package services;
 
 import org.oasisopen.sca.annotation.Remotable;
 

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ComplexStuff.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ComplexStuff.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ComplexStuffImpl.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/ComplexStuffImpl.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ComplexStuffImpl.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ComplexStuffImpl.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/ComplexStuffImpl.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/ComplexStuffImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ComplexStuffImpl.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 ComplexStuffImpl implements ComplexStuff {
 

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ComplexStuffImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ComplexStuffImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/Helloworld.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/Helloworld.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/Helloworld.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/Helloworld.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/Helloworld.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/Helloworld.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/Helloworld.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 services;
 
 import org.oasisopen.sca.annotation.Remotable;
 

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/Helloworld.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/Helloworld.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/HelloworldImpl.java (from r1200668, tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/HelloworldImpl.java)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/HelloworldImpl.java?p2=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/HelloworldImpl.java&p1=tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/org/apache/tuscany/sca/binding/http/HelloworldImpl.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/HelloworldImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/HelloworldImpl.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 services;
 
 public class HelloworldImpl implements Helloworld {
 

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/HelloworldImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/HelloworldImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ResourceService.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ResourceService.java?rev=1200669&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ResourceService.java (added)
+++ tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ResourceService.java Fri Nov 11 00:53:16 2011
@@ -0,0 +1,55 @@
+/*
+ * 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 services;
+
+import java.io.IOException;
+
+import javax.servlet.Servlet;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.oasisopen.sca.annotation.Service;
+
+@Service(Servlet.class)
+public class ResourceService extends HttpServlet implements Servlet {
+    private static final long serialVersionUID = 8240260033930060726L;
+
+    public void init(ServletConfig config) throws ServletException {
+    }
+
+    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        response.addHeader("Content-Type","text/plain");
+        response.getOutputStream().print("Resource request sucessfuly handled : " + request.getRequestURI() +'\n');
+    }
+
+    public void destroy() {
+    }
+
+    public ServletConfig getServletConfig() {
+        return null;
+    }
+
+    public String getServletInfo() {
+        return null;
+    }
+}

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ResourceService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/test/java/services/ResourceService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date