summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/contrib/modules
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2010-09-07 12:04:50 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2010-09-07 12:04:50 +0000
commit2e21b2bda5e30460cf232da817952c9d69d819f9 (patch)
treeafd9bfd3796e932823bc42fcbdb96e3d2c098fe7 /sca-java-2.x/contrib/modules
parent9f671c86682d5289ec912e297d084b5f8bb655f4 (diff)
Update with an example of how to have a foo reference delegate the invocation to ths WS binding
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@993324 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/contrib/modules')
-rw-r--r--sca-java-2.x/contrib/modules/binding-foo-runtime/pom.xml7
-rw-r--r--sca-java-2.x/contrib/modules/binding-foo-runtime/src/main/java/org/apache/tuscany/sca/binding/foo/runtime/FooBindingProviderFactory.java5
-rw-r--r--sca-java-2.x/contrib/modules/binding-foo-runtime/src/main/java/org/apache/tuscany/sca/binding/foo/runtime/FooReferenceBindingProvider.java43
-rw-r--r--sca-java-2.x/contrib/modules/binding-foo-runtime/src/test/resources/helloworld.composite4
4 files changed, 49 insertions, 10 deletions
diff --git a/sca-java-2.x/contrib/modules/binding-foo-runtime/pom.xml b/sca-java-2.x/contrib/modules/binding-foo-runtime/pom.xml
index 588b485694..8b264d480a 100644
--- a/sca-java-2.x/contrib/modules/binding-foo-runtime/pom.xml
+++ b/sca-java-2.x/contrib/modules/binding-foo-runtime/pom.xml
@@ -72,6 +72,13 @@
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-sca-api</artifactId>
<version>2.0-SNAPSHOT</version>
<scope>test</scope>
diff --git a/sca-java-2.x/contrib/modules/binding-foo-runtime/src/main/java/org/apache/tuscany/sca/binding/foo/runtime/FooBindingProviderFactory.java b/sca-java-2.x/contrib/modules/binding-foo-runtime/src/main/java/org/apache/tuscany/sca/binding/foo/runtime/FooBindingProviderFactory.java
index e57b2437af..b59cd50684 100644
--- a/sca-java-2.x/contrib/modules/binding-foo-runtime/src/main/java/org/apache/tuscany/sca/binding/foo/runtime/FooBindingProviderFactory.java
+++ b/sca-java-2.x/contrib/modules/binding-foo-runtime/src/main/java/org/apache/tuscany/sca/binding/foo/runtime/FooBindingProviderFactory.java
@@ -29,7 +29,10 @@ import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
public class FooBindingProviderFactory implements BindingProviderFactory<FooBinding> {
+ private ExtensionPointRegistry extensionPoints;
+
public FooBindingProviderFactory(ExtensionPointRegistry extensionPoints) {
+ this.extensionPoints = extensionPoints;
}
public Class<FooBinding> getModelType() {
@@ -37,7 +40,7 @@ public class FooBindingProviderFactory implements BindingProviderFactory<FooBind
}
public ReferenceBindingProvider createReferenceBindingProvider(RuntimeEndpointReference endpoint) {
- return new FooReferenceBindingProvider(endpoint);
+ return new FooReferenceBindingProvider(extensionPoints, endpoint);
}
public ServiceBindingProvider createServiceBindingProvider(RuntimeEndpoint endpoint) {
diff --git a/sca-java-2.x/contrib/modules/binding-foo-runtime/src/main/java/org/apache/tuscany/sca/binding/foo/runtime/FooReferenceBindingProvider.java b/sca-java-2.x/contrib/modules/binding-foo-runtime/src/main/java/org/apache/tuscany/sca/binding/foo/runtime/FooReferenceBindingProvider.java
index a9f49eace5..128ee24aed 100644
--- a/sca-java-2.x/contrib/modules/binding-foo-runtime/src/main/java/org/apache/tuscany/sca/binding/foo/runtime/FooReferenceBindingProvider.java
+++ b/sca-java-2.x/contrib/modules/binding-foo-runtime/src/main/java/org/apache/tuscany/sca/binding/foo/runtime/FooReferenceBindingProvider.java
@@ -20,36 +20,65 @@
package org.apache.tuscany.sca.binding.foo.runtime;
import org.apache.tuscany.sca.assembly.EndpointReference;
+import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
+import org.apache.tuscany.sca.binding.ws.WebServiceBindingFactory;
+import org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
import org.apache.tuscany.sca.interfacedef.InterfaceContract;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.invocation.Invoker;
import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
+import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
public class FooReferenceBindingProvider implements ReferenceBindingProvider {
- private EndpointReference endpoint;
- private InterfaceContract contract;
+ private ReferenceBindingProvider delegate;
- public FooReferenceBindingProvider(EndpointReference endpoint) {
- this.endpoint = endpoint;
+ public FooReferenceBindingProvider(ExtensionPointRegistry extensionPoints, EndpointReference endpointReference) {
+
+ initWSBindingDelegate(endpointReference, extensionPoints);
}
public Invoker createInvoker(Operation operation) {
- return new FooReferenceInvoker(operation, endpoint);
+ return delegate.createInvoker(operation);
+ }
+
+ private void initWSBindingDelegate(EndpointReference endpointReference, ExtensionPointRegistry extensionPoints) {
+ FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
+ WebServiceBindingFactory wsBindingFactory = modelFactories.getFactory(WebServiceBindingFactory.class);
+ WebServiceBinding wsBinding = wsBindingFactory.createWebServiceBinding();
+
+ // FIXME: this url needs to be set from some programatic lookup
+ wsBinding.setURI("http://localhost:8085/HelloWorldComponent/HelloWorldService");
+
+ BindingWSDLGenerator.generateWSDL(endpointReference.getComponent(), endpointReference.getReference(), wsBinding, extensionPoints, null);
+
+ RuntimeEndpointReference clonedEPR;
+ try {
+ clonedEPR = (RuntimeEndpointReference)endpointReference.clone();
+ } catch (CloneNotSupportedException e) {
+ throw new RuntimeException(e);
+ }
+ clonedEPR.setBinding(wsBinding);
+ clonedEPR.setBindingProvider(null);
+ delegate = clonedEPR.getBindingProvider();
}
public void start() {
+ delegate.start();
}
public void stop() {
+ delegate.stop();
}
public InterfaceContract getBindingInterfaceContract() {
- return contract;
+ return delegate.getBindingInterfaceContract();
}
public boolean supportsOneWayInvocation() {
- return false;
+ return delegate.supportsOneWayInvocation();
}
}
diff --git a/sca-java-2.x/contrib/modules/binding-foo-runtime/src/test/resources/helloworld.composite b/sca-java-2.x/contrib/modules/binding-foo-runtime/src/test/resources/helloworld.composite
index e2de4e9528..10c96b39cd 100644
--- a/sca-java-2.x/contrib/modules/binding-foo-runtime/src/test/resources/helloworld.composite
+++ b/sca-java-2.x/contrib/modules/binding-foo-runtime/src/test/resources/helloworld.composite
@@ -25,14 +25,14 @@
<component name="HelloWorldComponent">
<implementation.java class="helloworld.HelloWorldImpl"/>
<service name="HelloWorldService" >
- <tuscany:binding.foo bindingType="ws" />
+ <binding.ws />
</service>
</component>
<component name="HelloWorldClient">
<implementation.java class="helloworld.HelloWorldClient"/>
<reference name="ref" >
- <tuscany:binding.foo uri="HelloWorldComponent/HelloWorldService"/>
+ <tuscany:binding.foo />
</reference>
</component>