You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2010/09/10 03:12:22 UTC
svn commit: r995627 - in /tuscany/sca-java-2.x/trunk/modules:
binding-jsonp-runtime/src/test/java/test/
binding-jsonp-runtime/src/test/resources/
binding-jsonp-runtime/src/test/resources/jsonp/
binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/s...
Author: rfeng
Date: Fri Sep 10 01:12:21 2010
New Revision: 995627
URL: http://svn.apache.org/viewvc?rev=995627&view=rev
Log:
Fix the self reference with explicit bindings
Added:
tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/resources/jsonp/
tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/resources/jsonp/helloworld.composite (contents, props changed)
- copied, changed from r995479, tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/resources/helloworld.composite
Removed:
tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/resources/helloworld.composite
Modified:
tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/java/test/BindingTestCase.java
tuscany/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java
tuscany/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java
Modified: tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/java/test/BindingTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/java/test/BindingTestCase.java?rev=995627&r1=995626&r2=995627&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/java/test/BindingTestCase.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/java/test/BindingTestCase.java Fri Sep 10 01:12:21 2010
@@ -62,7 +62,7 @@ public class BindingTestCase {
@Test
public void testReference() throws MalformedURLException, IOException {
- HelloWorldService client = node.getService(HelloWorldService.class, "HelloWorldClient");
+ HelloWorldService client = node.getService(HelloWorldService.class, "HelloWorldClient/HelloWorldService/sca");
Assert.assertEquals("Hello beate", client.sayHello("beate"));
Assert.assertEquals("Hello beate arnold", client.sayHello2("beate", "arnold"));
@@ -73,7 +73,7 @@ public class BindingTestCase {
//@Ignore("TUSCANY-3635")
public void testComplexParams() throws MalformedURLException, IOException {
- HelloWorldService client = node.getService(HelloWorldService.class, "HelloWorldClient");
+ HelloWorldService client = node.getService(HelloWorldService.class, "HelloWorldClient/HelloWorldService/sca");
BeanA bean = new BeanA();
bean.setB(true);
@@ -103,7 +103,7 @@ public class BindingTestCase {
@BeforeClass
public static void init() throws Exception {
JettyServer.portDefault = 8085;
- node = NodeFactory.newInstance().createNode("helloworld.composite").start();
+ node = NodeFactory.newInstance().createNode("jsonp/helloworld.composite").start();
}
@AfterClass
Copied: tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/resources/jsonp/helloworld.composite (from r995479, tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/resources/helloworld.composite)
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/resources/jsonp/helloworld.composite?p2=tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/resources/jsonp/helloworld.composite&p1=tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/resources/helloworld.composite&r1=995479&r2=995627&rev=995627&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/resources/helloworld.composite (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/resources/jsonp/helloworld.composite Fri Sep 10 01:12:21 2010
@@ -25,14 +25,16 @@
<component name="HelloWorldComponent">
<implementation.java class="helloworld.HelloWorldImpl"/>
<service name="HelloWorldService" >
- <tuscany:binding.jsonp />
+ <binding.sca name="sca"/>
+ <tuscany:binding.jsonp name="HelloWorldService"/>
</service>
</component>
<component name="HelloWorldClient">
<implementation.java class="helloworld.HelloWorldClient"/>
<reference name="ref" >
- <tuscany:binding.jsonp uri="http://localhost:8085/HelloWorldComponent/HelloWorldService"/>
+ <binding.sca name="sca"/>
+ <tuscany:binding.jsonp name="HelloWorldService" uri="http://localhost:8085/HelloWorldComponent/HelloWorldService"/>
</reference>
</component>
Propchange: tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/resources/jsonp/helloworld.composite
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tuscany/sca-java-2.x/trunk/modules/binding-jsonp-runtime/src/test/resources/jsonp/helloworld.composite
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: tuscany/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java?rev=995627&r1=995626&r2=995627&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java Fri Sep 10 01:12:21 2010
@@ -22,8 +22,9 @@ package org.apache.tuscany.sca.binding.j
import java.util.ArrayList;
import java.util.List;
+import javax.servlet.Servlet;
+
import org.apache.tuscany.sca.binding.jsonrpc.JSONRPCBinding;
-import org.apache.tuscany.sca.databinding.json.JSONDataBinding;
import org.apache.tuscany.sca.host.http.ServletHost;
import org.apache.tuscany.sca.interfacedef.Interface;
import org.apache.tuscany.sca.interfacedef.InterfaceContract;
@@ -93,18 +94,28 @@ public class JSONRPCServiceBindingProvid
// Create and register a Servlet for this service
JSONRPCServiceServlet serviceServlet =
new JSONRPCServiceServlet(messageFactory, endpoint, serviceInterface, proxy);
- String mapping = binding.getURI();
- if (!mapping.endsWith("/")) {
- mapping += "/";
+ String mapping = registerServlet(serviceServlet);
+ servletMappings.add(mapping);
+ }
+
+ public String registerServlet(Servlet servlet) {
+ // Create our HTTP service listener Servlet and register it with the
+ // Servlet host
+ String servletMapping = binding.getURI();
+ if (!servletMapping.endsWith("/")) {
+ servletMapping += "/";
}
- if (!mapping.endsWith("*")) {
- mapping += "*";
+ if (!servletMapping.endsWith("*")) {
+ servletMapping += "*";
}
- servletHost.addServletMapping(mapping, serviceServlet);
- servletMappings.add(mapping);
- servletHost.addServletMapping(binding.getURI(), serviceServlet);
- servletMappings.add(binding.getURI());
+ String mappedURI = servletHost.addServletMapping(servletMapping, servlet);
+ String deployedURI = mappedURI;
+ if (deployedURI.endsWith("*")) {
+ deployedURI = deployedURI.substring(0, deployedURI.length() - 1);
+ }
+ binding.setURI(deployedURI);
+ return mappedURI;
}
public void stop() {
Modified: tuscany/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java?rev=995627&r1=995626&r2=995627&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java Fri Sep 10 01:12:21 2010
@@ -211,9 +211,13 @@ public class RESTServiceBindingProvider
throw new IllegalStateException("No get or service method found on the service");
}
+ servletMapping = registerServlet(servlet);
+ }
+
+ public String registerServlet(Servlet servlet) {
// Create our HTTP service listener Servlet and register it with the
// Servlet host
- servletMapping = binding.getURI();
+ String servletMapping = binding.getURI();
if (!servletMapping.endsWith("/")) {
servletMapping += "/";
}
@@ -221,7 +225,13 @@ public class RESTServiceBindingProvider
servletMapping += "*";
}
- servletHost.addServletMapping(servletMapping, servlet);
+ String mappedURI = servletHost.addServletMapping(servletMapping, servlet);
+ String deployedURI = mappedURI;
+ if (deployedURI.endsWith("*")) {
+ deployedURI = deployedURI.substring(0, deployedURI.length() - 1);
+ }
+ binding.setURI(deployedURI);
+ return mappedURI;
}
public void stop() {
@@ -258,17 +268,8 @@ public class RESTServiceBindingProvider
TuscanyRESTServlet restServlet = new TuscanyRESTServlet(extensionPoints, application.resourceClass);
- // Create our HTTP service listener Servlet and register it with the
- // Servlet host
- servletMapping = binding.getURI();
- if (!servletMapping.endsWith("/")) {
- servletMapping += "/";
- }
- if (!servletMapping.endsWith("*")) {
- servletMapping += "*";
- }
-
- servletHost.addServletMapping(servletMapping, restServlet);
+ servletMapping = registerServlet(restServlet);
+
RegistrationUtils.registerApplication(application, restServlet.getServletContext());
return application;
} else {
Modified: tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java?rev=995627&r1=995626&r2=995627&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java Fri Sep 10 01:12:21 2010
@@ -46,8 +46,6 @@ import org.apache.tuscany.sca.core.assem
import org.apache.tuscany.sca.definitions.Definitions;
import org.apache.tuscany.sca.interfacedef.InterfaceContract;
import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
import org.apache.tuscany.sca.interfacedef.util.Audit;
import org.apache.tuscany.sca.monitor.Monitor;
import org.apache.tuscany.sca.monitor.MonitorFactory;
@@ -331,7 +329,11 @@ public class EndpointReferenceBinderImpl
if (endpointReference.getReference().getName().startsWith("$self$.")){
// just select the first one and don't do any policy matching
- matchedEndpoint = endpoints.get(0);
+ if (endpointReference.getTargetEndpoint() != null && !endpointReference.getTargetEndpoint().isUnresolved()) {
+ matchedEndpoint = endpointReference.getTargetEndpoint();
+ } else {
+ matchedEndpoint = endpoints.get(0);
+ }
} else {
// find the first endpoint that matches this endpoint reference
for (Endpoint endpoint : endpoints){