You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by dk...@apache.org on 2006/08/07 18:45:17 UTC
svn commit: r429385 - in
/incubator/tuscany/java/sca/bindings/binding.celtix/src:
main/java/org/apache/tuscany/binding/celtix/
test/java/org/apache/tuscany/binding/celtix/
Author: dkulp
Date: Mon Aug 7 09:45:16 2006
New Revision: 429385
URL: http://svn.apache.org/viewvc?rev=429385&view=rev
Log:
Apply patch for TUSCANY-600.
Thanks Jervis!
Added:
incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/GreeterImpl.java (with props)
Modified:
incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixBindingBuilder.java
incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixInvoker.java
incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java
incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java
incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/CeltixServiceTestCase.java
Modified: incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixBindingBuilder.java?rev=429385&r1=429384&r2=429385&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixBindingBuilder.java Mon Aug 7 09:45:16 2006
@@ -42,39 +42,33 @@
public SCAObject build(CompositeComponent parent,
BoundServiceDefinition<WebServiceBinding> boundServiceDefinition,
DeploymentContext deploymentContext) {
- WebServiceBinding binding = boundServiceDefinition.getBinding();
- Definition definition = binding.getWSDLDefinition();
- Port port = binding.getWSDLPort();
- Service service = binding.getWSDLService();
+ //FIXME: CeltixService needs an instance of BusService. How to get BusService wired in and where BusService is created?
+ WebServiceBinding wsBinding = boundServiceDefinition.getBinding();
//FIXME get interface
Class<?> interfaze = null;
return new CeltixService(
boundServiceDefinition.getName(),
interfaze,
- definition,
- port,
- service,
parent,
- busService.getBus(),
- wireService);
+ wireService,
+ wsBinding,
+ busService.getBus());
}
public SCAObject build(CompositeComponent parent,
BoundReferenceDefinition<WebServiceBinding> boundReferenceDefinition,
DeploymentContext deploymentContext) {
- WebServiceBinding binding = boundReferenceDefinition.getBinding();
- Definition definition = binding.getWSDLDefinition();
- Port port = binding.getWSDLPort();
- Service service = binding.getWSDLService();
+ WebServiceBinding wsBinding = boundReferenceDefinition.getBinding();
+ Definition definition = wsBinding.getWSDLDefinition();
+ Port port = wsBinding.getWSDLPort();
+ Service service = wsBinding.getWSDLService();
return new CeltixReference(
boundReferenceDefinition.getName(),
- definition,
- port,
- service,
- busService.getBus(),
parent,
- wireService);
- }
+ wireService,
+ wsBinding,
+ busService.getBus());
+ }
protected Class<WebServiceBinding> getBindingType() {
return WebServiceBinding.class;
Modified: incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixInvoker.java?rev=429385&r1=429384&r2=429385&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixInvoker.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixInvoker.java Mon Aug 7 09:45:16 2006
@@ -64,7 +64,7 @@
Port port,
Service wsdlService,
Definition wsdlDef) throws BuilderException {
- wsdlCache = new WSDLMetaDataCache(wsdlDef, port);
+ this.wsdlCache = new WSDLMetaDataCache(wsdlDef, port);
this.operationName = operationName;
// Definition wsdlDef = wsBinding.getWSDLDefinition();
// wsdlCache = new WSDLMetaDataCache(wsdlDef, wsBinding.getWSDLPort());
Modified: incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java?rev=429385&r1=429384&r2=429385&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java Mon Aug 7 09:45:16 2006
@@ -22,11 +22,11 @@
import org.apache.tuscany.spi.extension.ReferenceExtension;
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.spi.wire.WireService;
-
import org.objectweb.celtix.Bus;
/**
- * The implementation of a {@link org.apache.tuscany.spi.component.Reference} configured with the Celtix binding
+ * The implementation of a {@link org.apache.tuscany.spi.component.Reference} configured with the Celtix
+ * binding
*
* @version $Rev$ $Date$
*/
@@ -38,16 +38,14 @@
private Service wsdlService;
public CeltixReference(String name,
- Definition wsdlDef,
- Port port,
- Service wsdlService,
- Bus bus,
CompositeComponent<?> parent,
- WireService wireService) {
+ WireService wireService,
+ WebServiceBinding binding,
+ Bus bus) {
super(name, parent, wireService);
- this.port = port;
- this.wsdlDef = wsdlDef;
- this.wsdlService = wsdlService;
+ this.wsdlDef = binding.getWSDLDefinition();
+ this.port = binding.getWSDLPort();
+ this.wsdlService = binding.getWSDLService();
this.bus = bus;
}
Modified: incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java?rev=429385&r1=429384&r2=429385&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java Mon Aug 7 09:45:16 2006
@@ -33,15 +33,12 @@
import javax.xml.namespace.QName;
import javax.xml.ws.WebServiceProvider;
-import org.osoa.sca.annotations.Destroy;
-
+import org.apache.tuscany.binding.celtix.io.SCAServerDataBindingCallback;
import org.apache.tuscany.spi.CoreRuntimeException;
import org.apache.tuscany.spi.builder.BuilderConfigException;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.extension.ServiceExtension;
import org.apache.tuscany.spi.wire.WireService;
-
-import org.apache.tuscany.binding.celtix.io.SCAServerDataBindingCallback;
import org.objectweb.celtix.Bus;
import org.objectweb.celtix.bindings.DataBindingCallback;
import org.objectweb.celtix.bindings.ServerBinding;
@@ -53,6 +50,7 @@
import org.objectweb.celtix.ws.addressing.AttributedURIType;
import org.objectweb.celtix.ws.addressing.EndpointReferenceType;
import org.objectweb.celtix.wsdl.EndpointReferenceUtils;
+import org.osoa.sca.annotations.Destroy;
import org.xmlsoap.schemas.wsdl.http.AddressType;
/**
@@ -67,32 +65,32 @@
private Definition wsdlDef;
private Service wsdlService;
private WSDLMetaDataCache wsdlCache;
- private Object proxy;
private Map<QName, ServerDataBindingCallback> opMap =
new ConcurrentHashMap<QName, ServerDataBindingCallback>();
- public CeltixService(String name,
+ public CeltixService(String theName,
Class<T> interfaze,
- Definition wsdlDef,
- Port port,
- Service wsdlService,
- CompositeComponent<?> parent,
- Bus bus,
- WireService wireService) {
- super(name, interfaze, parent, wireService);
- this.port = port;
- this.wsdlDef = wsdlDef;
- this.wsdlService = wsdlService;
+ CompositeComponent parent,
+ WireService wireService,
+ WebServiceBinding binding,
+ Bus bus) {
+ super(theName, interfaze, parent, wireService);
+ this.wsdlDef = binding.getWSDLDefinition();
+ this.port = binding.getWSDLPort();
+ this.wsdlService = binding.getWSDLService();
this.bus = bus;
- wsdlCache = new WSDLMetaDataCache(wsdlDef, port);
+ this.wsdlCache = new WSDLMetaDataCache(wsdlDef, port);
}
public void start() {
super.start();
- proxy = wireService.createProxy(inboundWire);
- initOperationMap(wsdlDef);
+ initOperationMap();
+ startServerBinding();
+ }
+
+ private void startServerBinding() {
String key = wsdlDef.getDocumentBaseURI();
URL url;
try {
@@ -102,8 +100,8 @@
}
EndpointReferenceType reference = EndpointReferenceUtils.getEndpointReference(url,
- wsdlService.getQName(),
- port.getName());
+ wsdlService.getQName(),
+ port.getName());
AttributedURIType address = new AttributedURIType();
@@ -138,25 +136,22 @@
try {
ServerBinding serverBinding = bus.getBindingManager().getBindingFactory(bindingId).createServerBinding(
- reference, this);
+ reference, this);
serverBinding.activate();
} catch (Exception e) {
throw new CeltixServiceInitException(e);
}
}
- @Destroy
- public void stop() throws CoreRuntimeException {
- super.stop();
- }
-
- private void initOperationMap(Definition def) {
+ private void initOperationMap() {
List ops = port.getBinding().getBindingOperations();
for (Object op1 : ops) {
BindingOperation op = (BindingOperation) op1;
BindingInput bindingInput = op.getBindingInput();
List elements = bindingInput.getExtensibilityElements();
- QName qn = new QName(def.getTargetNamespace(), op.getName());
+ QName qn = new QName(wsdlDef.getTargetNamespace(), op.getName());
+
+ //In case soap:body namespace is different from targetNamespace
for (Object element : elements) {
if (SOAPBody.class.isInstance(element)) {
SOAPBody body = (SOAPBody) element;
@@ -167,7 +162,7 @@
}
ServerDataBindingCallback cb = getDataBindingCallback(qn, null,
- DataBindingCallback.Mode.PARTS);
+ DataBindingCallback.Mode.PARTS);
opMap.put(qn, cb);
if (!"".equals(cb.getRequestWrapperQName().getLocalPart())) {
opMap.put(cb.getRequestWrapperQName(), cb);
@@ -175,6 +170,11 @@
}
}
+ @Destroy
+ public void stop() throws CoreRuntimeException {
+ super.stop();
+ }
+
public ServerDataBindingCallback getDataBindingCallback(QName operationName,
ObjectMessageContext objContext,
DataBindingCallback.Mode mode) {
@@ -193,10 +193,11 @@
}
boolean inout = false;
-
Class<?> serviceInterface = this.getInterface();
Method meth = getMethod(serviceInterface, operationName.getLocalPart());
+ Object proxy = this.getServiceInstance();
+
return new SCAServerDataBindingCallback(opInfo, inout, meth, proxy);
}
@@ -215,9 +216,8 @@
}
}
throw new BuilderConfigException("no operation named " + operationName
- + " found on service interface: " + serviceInterface.getName());
+ + " found on service interface: " + serviceInterface.getName());
}
-
public DataBindingCallback getFaultDataBindingCallback(ObjectMessageContext objContext) {
// REVISIT - what to do about faults
Modified: incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/CeltixServiceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/CeltixServiceTestCase.java?rev=429385&r1=429384&r2=429385&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/CeltixServiceTestCase.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/CeltixServiceTestCase.java Mon Aug 7 09:45:16 2006
@@ -30,7 +30,22 @@
*/
public class CeltixServiceTestCase extends TestCase {
- public void testGetDataBindingCallback() throws Exception {
+ public void testGetDataBindingCallback() throws Exception {
+ CeltixService celtixService = createCeltixService();
+
+ QName operationName = new QName("greetMe");
+ ObjectMessageContextImpl ctx = new ObjectMessageContextImpl();
+ ctx.setMessageObjects(new String[]{"Celtix"});
+ ServerDataBindingCallback callback1 = celtixService.getDataBindingCallback(operationName, ctx, DataBindingCallback.Mode.PARTS);
+ assertNotNull(callback1);
+
+ callback1.invoke(ctx);
+ Object rtn = (String)ctx.getReturn();
+ assertEquals("Hello Celtix", rtn);
+
+ }
+
+ private CeltixService createCeltixService() throws Exception {
//Make following call to return a mocked SOAPClientBinding:
//bus.getBindingManager().getBindingFactory(bindingId).createClientBinding(reference)
SOAPServerBinding serverBinding = EasyMock.createMock(SOAPServerBinding.class);
@@ -41,7 +56,7 @@
SOAPBindingFactory bindingFactory = EasyMock.createNiceMock(SOAPBindingFactory.class);
bindingFactory.createServerBinding(EasyMock.isA(EndpointReferenceType.class),
- EasyMock.isA(ServerBindingEndpointCallback.class));
+ EasyMock.isA(ServerBindingEndpointCallback.class));
EasyMock.expectLastCall().andReturn(serverBinding);
EasyMock.replay(bindingFactory);
@@ -56,11 +71,6 @@
EasyMock.replay(bindingManager);
EasyMock.replay(bus);
- WireService wireService = EasyMock.createNiceMock(WireService.class);
- wireService.createProxy(EasyMock.isA(InboundWire.class));
- EasyMock.expectLastCall().andReturn(null);
- EasyMock.replay(wireService);
-
//Create WSDL Definition
String wsdlLocation = "/wsdl/hello_world_doc_lit.wsdl";
URL url = getClass().getResource(wsdlLocation);
@@ -72,24 +82,29 @@
InputSource input = new InputSource(url.openStream());
Definition wsdlDef = reader.readWSDL(url.toString(), input);
Service wsdlService = wsdlDef.getService(new QName("http://objectweb.org/hello_world_soap_http",
- "SOAPService"));
+ "SOAPService"));
Port port = wsdlService.getPort("SoapPort");
+ WebServiceBinding wsBinding = new WebServiceBinding(wsdlDef, port, "uri", "portURI", wsdlService);
+
+ //Create mocked InboundWire, for ServiceExtension.getInterface()
InboundWire<Greeter> inboundWire = EasyMock.createNiceMock(InboundWire.class);
inboundWire.getBusinessInterface();
EasyMock.expectLastCall().andReturn(Greeter.class).anyTimes();
-
EasyMock.replay(inboundWire);
- CeltixService<Greeter> celtixService =
- new CeltixService<Greeter>("name", Greeter.class, wsdlDef, port, wsdlService, null, bus, wireService);
+ //Create mocked WireService, for ServiceExtension.getServiceInstance()
+ WireService wireService = EasyMock.createNiceMock(WireService.class);
+ wireService.createProxy(EasyMock.isA(InboundWire.class));
+ EasyMock.expectLastCall().andReturn(new GreeterImpl()).anyTimes();
+ EasyMock.replay(wireService);
+
+ CeltixService celtixService = new CeltixService("name", Greeter.class, null, wireService, wsBinding, bus);
+ //Not sure how InboundWire is set to CeltixService, is the following way correct?
celtixService.setInboundWire(inboundWire);
celtixService.start();
- QName operationName = new QName("greetMe");
- ServerDataBindingCallback callback1 = celtixService
- .getDataBindingCallback(operationName, new ObjectMessageContextImpl(), DataBindingCallback.Mode.PARTS);
- assertNotNull(callback1);
+ return celtixService;
}
}
Added: incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/GreeterImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/GreeterImpl.java?rev=429385&view=auto
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/GreeterImpl.java (added)
+++ incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/GreeterImpl.java Mon Aug 7 09:45:16 2006
@@ -0,0 +1,15 @@
+package org.apache.tuscany.binding.celtix;
+
+public class GreeterImpl implements Greeter {
+ public java.lang.String sayHi() {
+ return "sayHi";
+ }
+
+ public java.lang.String greetMe(String requestType) {
+ return "Hello " + requestType;
+ }
+
+ public void greetMeOneWay(String requestType) {
+ }
+
+}
Propchange: incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/GreeterImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/GreeterImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org