Author: jmarino
Date: Tue Apr 25 12:29:52 2006
New Revision: 396960
URL: http://svn.apache.org/viewcvs?rev=396960&view=rev
Log:
forgot to check these in as part of the refactors due to jet lag
Modified:
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/builder/ExternalWebServiceBuilder.java
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/builder/ExternalWebServiceWireBuilder.java
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/builder/WebServiceEntryPointBuilder.java
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/config/ExternalWebServiceContextFactory.java
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/config/WebServiceEntryPointContextFactory.java
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/handler/ExternalWebServiceClient.java
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/handler/ExternalWebServiceTargetInvoker.java
Modified:
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/builder/ExternalWebServiceBuilder.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/builder/ExternalWebServiceBuilder.java?rev=396960&r1=396959&r2=396960&view=diff
==============================================================================
---
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/builder/ExternalWebServiceBuilder.java
(original)
+++
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/builder/ExternalWebServiceBuilder.java
Tue Apr 25 12:29:52 2006
@@ -14,159 +14,44 @@
*/
package org.apache.tuscany.binding.celtix.builder;
-import java.lang.reflect.Method;
-import java.util.Map;
-import java.util.Set;
-
-
import org.apache.tuscany.binding.celtix.assembly.WebServiceBinding;
import
org.apache.tuscany.binding.celtix.config.ExternalWebServiceContextFactory;
import org.apache.tuscany.binding.celtix.handler.ExternalWebServiceClient;
-import org.apache.tuscany.core.builder.BuilderException;
-import org.apache.tuscany.core.builder.ContextFactoryBuilder;
-import org.apache.tuscany.core.builder.ContextFactoryBuilderRegistry;
-import org.apache.tuscany.core.config.JavaIntrospectionHelper;
-import org.apache.tuscany.core.context.QualifiedName;
+import org.apache.tuscany.core.builder.impl.ExternalServiceContextFactory;
+import org.apache.tuscany.core.extension.ExternalServiceBuilderSupport;
import org.apache.tuscany.core.injection.SingletonObjectFactory;
-import org.apache.tuscany.core.message.MessageFactory;
-import org.apache.tuscany.core.system.annotation.Autowire;
-import org.apache.tuscany.core.wire.MethodHashMap;
-import org.apache.tuscany.core.wire.ProxyFactoryFactory;
-import org.apache.tuscany.core.wire.TargetInvocationConfiguration;
-import org.apache.tuscany.core.wire.TargetWireFactory;
-import org.apache.tuscany.core.wire.WireTargetConfiguration;
-import org.apache.tuscany.core.wire.impl.InvokerInterceptor;
-import org.apache.tuscany.model.assembly.AssemblyObject;
-import org.apache.tuscany.model.assembly.ConfiguredService;
import org.apache.tuscany.model.assembly.ExternalService;
-import org.apache.tuscany.model.assembly.Service;
-import org.apache.tuscany.model.assembly.ServiceContract;
+import org.apache.tuscany.model.assembly.Binding;
import org.objectweb.celtix.Bus;
-import org.objectweb.celtix.BusException;
import org.osoa.sca.annotations.Init;
import org.osoa.sca.annotations.Scope;
/**
- * Creates a <code>ContextFactoryBuilder</code> for an external service
configured
- * with the [EMAIL PROTECTED] WebServiceBinding}
- *
+ * Creates a <code>ContextFactoryBuilder</code> for an external service
configured with the [EMAIL PROTECTED] WebServiceBinding}
+ *
* @version $Rev$ $Date$
*/
@Scope("MODULE")
-public class ExternalWebServiceBuilder implements ContextFactoryBuilder {
+public class ExternalWebServiceBuilder extends ExternalServiceBuilderSupport {
- Bus bus;
-
- private ContextFactoryBuilderRegistry builderRegistry;
- private ProxyFactoryFactory proxyFactoryFactory;
- private MessageFactory messageFactory;
- private ContextFactoryBuilder policyBuilder;
-
- public ExternalWebServiceBuilder() {
- try {
- bus = Bus.init();
- } catch (BusException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
+ private Bus bus;
+ @Override
@Init(eager = true)
- public void init() {
- builderRegistry.register(this);
+ public void init() throws Exception {
+ super.init();
+ bus = Bus.init();
}
- @Autowire
- public void setBuilderRegistry(ContextFactoryBuilderRegistry registry) {
- builderRegistry = registry;
+ protected boolean handlesBindingType(Binding binding) {
+ return binding instanceof WebServiceBinding;
}
-
- /**
- * Sets the factory used to construct proxies implmementing the business
interface required by a reference
- */
- @Autowire
- public void setProxyFactoryFactory(ProxyFactoryFactory factory) {
- proxyFactoryFactory = factory;
- }
-
- /**
- * Sets the factory used to construct invocation messages
- *
- * @param msgFactory
- */
- @Autowire
- public void setMessageFactory(MessageFactory msgFactory) {
- this.messageFactory = msgFactory;
- }
-
- /**
- * Sets a builder responsible for creating source-side and target-side
invocation
- * chains for a reference. The reference builder may be hierarchical,
containing
- * other child reference builders that operate on specific
- * metadata used to construct and invocation chain.
- *
- * @see org.apache.tuscany.core.builder.impl.HierarchicalBuilder
- */
- public void setPolicyBuilder(ContextFactoryBuilder builder) {
- policyBuilder = builder;
- }
-
- public void build(AssemblyObject object) throws BuilderException {
- if (!(object instanceof ExternalService)) {
- return;
- }
- ExternalService externalService = (ExternalService) object;
- if (externalService.getBindings().size() < 1
- || !(externalService.getBindings().get(0) instanceof
WebServiceBinding)) {
- return;
- }
-
+ protected ExternalServiceContextFactory
createExternalServiceContextFactory(ExternalService externalService) {
ExternalWebServiceClient externalWebServiceClient = new
ExternalWebServiceClient(bus,
-
externalService);
-
- ExternalWebServiceContextFactory config
- = new ExternalWebServiceContextFactory(externalService.getName(),
- new
SingletonObjectFactory<ExternalWebServiceClient>(externalWebServiceClient));
-
- ConfiguredService configuredService =
externalService.getConfiguredService();
- Service service = configuredService.getPort();
- ServiceContract serviceContract = service.getServiceContract();
-
-
- Map<Method, TargetInvocationConfiguration> iConfigMap
- = new MethodHashMap<TargetInvocationConfiguration>();
- TargetWireFactory proxyFactory =
proxyFactoryFactory.createTargetWireFactory();
- Set<Method> javaMethods = JavaIntrospectionHelper
- .getAllUniqueMethods(serviceContract.getInterface());
- for (Method method : javaMethods) {
- TargetInvocationConfiguration iConfig = new
TargetInvocationConfiguration(method);
- iConfigMap.put(method, iConfig);
- }
- QualifiedName qName = new QualifiedName(externalService.getName()
- + QualifiedName.NAME_SEPARATOR
- + service.getName());
- WireTargetConfiguration wireConfiguration = new
WireTargetConfiguration(qName,
-
iConfigMap,
-
serviceContract
-
.getInterface()
-
.getClassLoader(),
-
messageFactory);
- proxyFactory.setBusinessInterface(serviceContract.getInterface());
- proxyFactory.setConfiguration(wireConfiguration);
- config.addTargetProxyFactory(service.getName(), proxyFactory);
- configuredService.setProxyFactory(proxyFactory);
- if (policyBuilder != null) {
- // invoke the reference builder to handle additional policy
metadata
- policyBuilder.build(configuredService);
- }
- // add tail interceptor
- for (TargetInvocationConfiguration iConfig : iConfigMap.values()) {
- iConfig.addInterceptor(new InvokerInterceptor());
- }
-
- externalService.setContextFactory(config);
+ externalService);
+ return new ExternalWebServiceContextFactory(externalService.getName(),
+ new
SingletonObjectFactory<ExternalWebServiceClient>(externalWebServiceClient));
}
-
}
Modified:
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/builder/ExternalWebServiceWireBuilder.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/builder/ExternalWebServiceWireBuilder.java?rev=396960&r1=396959&r2=396960&view=diff
==============================================================================
---
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/builder/ExternalWebServiceWireBuilder.java
(original)
+++
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/builder/ExternalWebServiceWireBuilder.java
Tue Apr 25 12:29:52 2006
@@ -16,71 +16,23 @@
import
org.apache.tuscany.binding.celtix.config.ExternalWebServiceContextFactory;
import
org.apache.tuscany.binding.celtix.handler.ExternalWebServiceTargetInvoker;
-import org.apache.tuscany.core.builder.BuilderConfigException;
-import org.apache.tuscany.core.builder.WireBuilder;
+import org.apache.tuscany.core.context.QualifiedName;
import org.apache.tuscany.core.context.ScopeContext;
-import org.apache.tuscany.core.runtime.RuntimeContext;
-import org.apache.tuscany.core.system.annotation.Autowire;
-import org.apache.tuscany.core.wire.InvocationConfiguration;
-import org.apache.tuscany.core.wire.SourceWireFactory;
-import org.apache.tuscany.core.wire.TargetWireFactory;
-import org.osoa.sca.annotations.Init;
+import org.apache.tuscany.core.extension.WireBuilderSupport;
+import org.apache.tuscany.core.wire.TargetInvoker;
import org.osoa.sca.annotations.Scope;
+import java.lang.reflect.Method;
[EMAIL PROTECTED]("MODULE")
-public class ExternalWebServiceWireBuilder implements WireBuilder {
-
- private RuntimeContext runtimeContext;
-
- /**
- * Constructs a new ExternalWebServiceWireBuilder.
- */
- public ExternalWebServiceWireBuilder() {
- super();
- }
-
- @Autowire
- public void setRuntimeContext(RuntimeContext context) {
- runtimeContext = context;
- }
-
- @SuppressWarnings("deprecation")
- @Init(eager = true)
- public void init() {
- runtimeContext.addBuilder(this);
- }
- public void connect(SourceWireFactory<?> sourceFactory,
TargetWireFactory<?> targetFactory,
- Class targetType, boolean downScope,
- ScopeContext targetScopeContext) throws
BuilderConfigException {
- if
(!(ExternalWebServiceContextFactory.class.isAssignableFrom(targetType))) {
- return;
- }
- for (InvocationConfiguration sourceInvocationConfig
- :
sourceFactory.getConfiguration().getInvocationConfigurations().values()) {
-
- ExternalWebServiceTargetInvoker invoker
- = new
ExternalWebServiceTargetInvoker(sourceFactory.getConfiguration().getTargetName(),
-
sourceInvocationConfig.getMethod(),
- targetScopeContext);
-
- // if (downScope) {
- // // the source scope is shorter than the target, so the invoker
can cache the target instance
- // invoker.setCacheable(true);
- // } else {
- // invoker.setCacheable(false);
- // }
- sourceInvocationConfig.setTargetInvoker(invoker);
- }
[EMAIL PROTECTED]("MODULE")
+public class ExternalWebServiceWireBuilder extends WireBuilderSupport {
+ protected boolean handlesTargetType(Class targetType) {
+ return
ExternalWebServiceContextFactory.class.isAssignableFrom(targetType);
}
- public void completeTargetChain(TargetWireFactory<?> targetFactory,
- Class targetType,
- ScopeContext targetScopeContext)
- throws BuilderConfigException {
- //TODO implement
+ protected TargetInvoker createInvoker(QualifiedName targetName, Method
operation, ScopeContext context, boolean downScope) {
+ return new ExternalWebServiceTargetInvoker(targetName, operation,
context);
}
-
}
Modified:
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/builder/WebServiceEntryPointBuilder.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/builder/WebServiceEntryPointBuilder.java?rev=396960&r1=396959&r2=396960&view=diff
==============================================================================
---
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/builder/WebServiceEntryPointBuilder.java
(original)
+++
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/builder/WebServiceEntryPointBuilder.java
Tue Apr 25 12:29:52 2006
@@ -14,166 +14,28 @@
*/
package org.apache.tuscany.binding.celtix.builder;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
import org.apache.tuscany.binding.celtix.assembly.WebServiceBinding;
import
org.apache.tuscany.binding.celtix.config.WebServiceEntryPointContextFactory;
-import org.apache.tuscany.core.builder.BuilderException;
-import org.apache.tuscany.core.builder.ContextFactoryBuilder;
-import org.apache.tuscany.core.builder.ContextFactoryBuilderRegistry;
import org.apache.tuscany.core.builder.impl.EntryPointContextFactory;
-import org.apache.tuscany.core.config.JavaIntrospectionHelper;
-import org.apache.tuscany.core.context.QualifiedName;
-import org.apache.tuscany.core.message.Message;
+import org.apache.tuscany.core.extension.EntryPointBuilderSupport;
import org.apache.tuscany.core.message.MessageFactory;
-import org.apache.tuscany.core.system.annotation.Autowire;
-import org.apache.tuscany.core.wire.Interceptor;
-import org.apache.tuscany.core.wire.InvocationRuntimeException;
-import org.apache.tuscany.core.wire.ProxyFactoryFactory;
-import org.apache.tuscany.core.wire.SourceInvocationConfiguration;
-import org.apache.tuscany.core.wire.SourceWireFactory;
-import org.apache.tuscany.core.wire.TargetInvoker;
-import org.apache.tuscany.core.wire.WireSourceConfiguration;
-import org.apache.tuscany.model.assembly.AssemblyObject;
-import org.apache.tuscany.model.assembly.ConfiguredService;
import org.apache.tuscany.model.assembly.EntryPoint;
-import org.apache.tuscany.model.assembly.Service;
-import org.apache.tuscany.model.assembly.ServiceContract;
-import org.osoa.sca.annotations.Init;
+import org.apache.tuscany.model.assembly.Binding;
import org.osoa.sca.annotations.Scope;
/**
- * Creates a <code>ContextFactoryBuilder</code> for an entry point configured
- * with the [EMAIL PROTECTED] WebServiceBinding}
- *
+ * Creates a <code>ContextFactory</code> for an entry point configured with
the [EMAIL PROTECTED] WebServiceBinding}
+ *
* @version $Rev$ $Date$
*/
@Scope("MODULE")
-public class WebServiceEntryPointBuilder implements ContextFactoryBuilder {
-
- private ContextFactoryBuilderRegistry builderRegistry;
- private ProxyFactoryFactory proxyFactoryFactory;
- private MessageFactory messageFactory;
- private ContextFactoryBuilder policyBuilder;
-
-
- public WebServiceEntryPointBuilder() {
- }
-
- @Init(eager = true)
- public void init() {
- builderRegistry.register(this);
- }
-
- @Autowire
- public void setBuilderRegistry(ContextFactoryBuilderRegistry registry) {
- builderRegistry = registry;
- }
-
- /**
- * Sets the factory used to construct proxies implmementing the business
interface
- * required by a reference
- */
- @Autowire
- public void setProxyFactoryFactory(ProxyFactoryFactory factory) {
- proxyFactoryFactory = factory;
- }
+public class WebServiceEntryPointBuilder extends EntryPointBuilderSupport {
- /**
- * Sets the factory used to construct invocation messages
- *
- * @param msgFactory
- */
- @Autowire
- public void setMessageFactory(MessageFactory msgFactory) {
- messageFactory = msgFactory;
+ protected boolean handlesBindingType(Binding binding) {
+ return binding instanceof WebServiceBinding;
}
- /**
- * Sets a builder responsible for creating source-side and target-side
invocation chains
- * for a reference. The reference builder may be hierarchical, containing
other child
- * reference builders that operate on specific metadata used to construct
and invocation chain.
- *
- * @see org.apache.tuscany.core.builder.impl.HierarchicalBuilder
- */
- public void setPolicyBuilder(ContextFactoryBuilder builder) {
- policyBuilder = builder;
+ protected EntryPointContextFactory
createEntryPointContextFactory(EntryPoint entryPoint, MessageFactory
msgFactory) {
+ return new WebServiceEntryPointContextFactory(entryPoint.getName(),
msgFactory);
}
-
- public void build(AssemblyObject object) throws BuilderException {
- if (!(object instanceof EntryPoint)) {
- return;
- }
- EntryPoint entryPoint = (EntryPoint) object;
- if (entryPoint.getBindings().size() < 1
- || !(entryPoint.getBindings().get(0) instanceof
WebServiceBinding)) {
- return;
- }
-
- EntryPointContextFactory config = new
WebServiceEntryPointContextFactory(entryPoint.getName(),
-
entryPoint.getConfiguredService().getPort().getName(),
- messageFactory);
-
- ConfiguredService configuredService =
entryPoint.getConfiguredService();
- Service service = configuredService.getPort();
- ServiceContract serviceContract = service.getServiceContract();
- Map<Method, SourceInvocationConfiguration> iConfigMap
- = new HashMap<Method, SourceInvocationConfiguration>();
- SourceWireFactory proxyFactory =
proxyFactoryFactory.createSourceWireFactory();
- Set<Method> javaMethods =
JavaIntrospectionHelper.getAllUniqueMethods(serviceContract.getInterface());
- for (Method method : javaMethods) {
- SourceInvocationConfiguration iConfig = new
SourceInvocationConfiguration(method);
- iConfigMap.put(method, iConfig);
- }
- QualifiedName qName = new
QualifiedName(entryPoint.getConfiguredReference()
-
.getTargetConfiguredServices().get(0)
- .getPart().getName()
- + '/' + service.getName());
- WireSourceConfiguration wireConfiguration = new
WireSourceConfiguration(qName,
-
iConfigMap,
-
serviceContract
-
.getInterface()
-
.getClassLoader(),
-
messageFactory);
- proxyFactory.setBusinessInterface(serviceContract.getInterface());
- proxyFactory.setConfiguration(wireConfiguration);
- config.addSourceProxyFactory(service.getName(), proxyFactory);
- configuredService.setProxyFactory(proxyFactory);
- if (policyBuilder != null) {
- // invoke the reference builder to handle additional policy
metadata
- policyBuilder.build(configuredService);
- }
-
- // add tail interceptor
- //for (TargetInvocationConfiguration iConfig : iConfigMap.values()) {
- // iConfig.addInterceptor(new EntryPointInvokerInterceptor());
- //}
- entryPoint.setContextFactory(config);
- }
-
- //FIXME same as the InvokerInterceptor except that it doesn't throw an
exception in setNext
- // For some reason another InvokerInterceptor is added after this one,
need Jim to look into it
- // and figure out why.
- public class EntryPointInvokerInterceptor implements Interceptor {
-
- public EntryPointInvokerInterceptor() {
- }
-
- public Message invoke(Message msg) throws InvocationRuntimeException {
- TargetInvoker invoker = msg.getTargetInvoker();
- if (invoker == null) {
- throw new InvocationRuntimeException("No target invoker
specified on message");
- }
- return invoker.invoke(msg);
- }
-
- public void setNext(Interceptor next) {
- }
-
- }
-
-
}
Modified:
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/config/ExternalWebServiceContextFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/config/ExternalWebServiceContextFactory.java?rev=396960&r1=396959&r2=396960&view=diff
==============================================================================
---
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/config/ExternalWebServiceContextFactory.java
(original)
+++
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/config/ExternalWebServiceContextFactory.java
Tue Apr 25 12:29:52 2006
@@ -17,7 +17,7 @@
package org.apache.tuscany.binding.celtix.config;
import org.apache.tuscany.core.builder.ObjectFactory;
-import org.apache.tuscany.core.builder.impl.BaseExternalServiceContextFactory;
+import org.apache.tuscany.core.builder.impl.ExternalServiceContextFactory;
/**
* Creates instances of [EMAIL PROTECTED]
org.apache.tuscany.core.context.ExternalServiceContext}
@@ -27,7 +27,7 @@
*
* @version $Rev$ $Date$
*/
-public class ExternalWebServiceContextFactory extends
BaseExternalServiceContextFactory {
+public class ExternalWebServiceContextFactory extends
ExternalServiceContextFactory {
public ExternalWebServiceContextFactory(String name, ObjectFactory
objectFactory) {
super(name, objectFactory);
Modified:
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/config/WebServiceEntryPointContextFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/config/WebServiceEntryPointContextFactory.java?rev=396960&r1=396959&r2=396960&view=diff
==============================================================================
---
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/config/WebServiceEntryPointContextFactory.java
(original)
+++
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/config/WebServiceEntryPointContextFactory.java
Tue Apr 25 12:29:52 2006
@@ -20,17 +20,14 @@
import org.apache.tuscany.core.message.MessageFactory;
/**
- * Creates instances of [EMAIL PROTECTED]
org.apache.tuscany.core.context.EntryPointContext}
- * configured with the appropriate invocation chains and bindings. This
- * implementation serves as a marker for
- * [EMAIL PROTECTED]
org.apache.tuscany.binding.celtix.builder.WebServiceEntryPointWireBuilder}
- *
+ * Creates instances of [EMAIL PROTECTED]
org.apache.tuscany.core.context.EntryPointContext} configured with the
appropriate invocation
+ * chains and bindings. This implementation serves as a marker for
+ *
* @version $Rev$ $Date$
*/
public class WebServiceEntryPointContextFactory extends
EntryPointContextFactory {
- public WebServiceEntryPointContextFactory(String name, String serviceName,
- MessageFactory messageFactory) {
+ public WebServiceEntryPointContextFactory(String name, MessageFactory
messageFactory) {
super(name, messageFactory);
}
Modified:
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/handler/ExternalWebServiceClient.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/handler/ExternalWebServiceClient.java?rev=396960&r1=396959&r2=396960&view=diff
==============================================================================
---
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/handler/ExternalWebServiceClient.java
(original)
+++
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/handler/ExternalWebServiceClient.java
Tue Apr 25 12:29:52 2006
@@ -17,23 +17,7 @@
package org.apache.tuscany.binding.celtix.handler;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.List;
-
-import javax.jws.WebParam.Mode;
-import javax.wsdl.Binding;
-import javax.wsdl.Definition;
-import javax.wsdl.WSDLException;
-import javax.wsdl.extensions.ExtensibilityElement;
-import javax.wsdl.extensions.soap.SOAPAddress;
-import javax.xml.ws.Holder;
-import javax.xml.ws.ProtocolException;
-
import commonj.sdo.helper.TypeHelper;
-
import org.apache.tuscany.binding.celtix.assembly.WebServiceBinding;
import org.apache.tuscany.binding.celtix.handler.io.SCADataBindingCallback;
import org.apache.tuscany.core.builder.BuilderException;
@@ -50,6 +34,19 @@
import org.objectweb.celtix.wsdl.EndpointReferenceUtils;
import org.xmlsoap.schemas.wsdl.http.AddressType;
+import javax.jws.WebParam.Mode;
+import javax.wsdl.Binding;
+import javax.wsdl.Definition;
+import javax.wsdl.WSDLException;
+import javax.wsdl.extensions.ExtensibilityElement;
+import javax.wsdl.extensions.soap.SOAPAddress;
+import javax.xml.ws.Holder;
+import javax.xml.ws.ProtocolException;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.List;
+
/**
* An ExternalWebServiceClient using Celtix
@@ -60,54 +57,46 @@
private TypeHelper typeHelper;
private WSDLMetaDataCache wsdlCache;
private ClientBinding clientBinding;
-
- public ExternalWebServiceClient(Bus b, ExternalService externalService)
- throws BuilderException {
-
+
+ public ExternalWebServiceClient(Bus b, ExternalService externalService)
throws BuilderException {
bus = b;
-
- WebServiceBinding wsBinding =
(WebServiceBinding)externalService.getBindings().get(0);
+ WebServiceBinding wsBinding = (WebServiceBinding)
externalService.getBindings().get(0);
typeHelper =
externalService.getComposite().getAssemblyContext().getTypeHelper();
Definition wsdlDef = wsBinding.getWSDLDefinition();
wsdlCache = new WSDLMetaDataCache(wsdlDef, wsBinding.getWSDLPort());
-
-
+
try {
String key = wsdlDef.getDocumentBaseURI();
URL url = new URL(key);
bus.getWSDLManager().addDefinition(key, wsdlDef);
bus.getWSDLManager().addDefinition(url, wsdlDef);
- EndpointReferenceType reference = EndpointReferenceUtils
- .getEndpointReference(url,
- wsBinding.getWSDLService().getQName(),
- wsBinding.getWSDLPort().getName());
-
+ EndpointReferenceType reference =
EndpointReferenceUtils.getEndpointReference(url,
+ wsBinding.getWSDLService().getQName(),
+ wsBinding.getWSDLPort().getName());
+
String bindingId = null;
Binding binding = wsBinding.getWSDLPort().getBinding();
if (null != binding) {
- List list = binding.getExtensibilityElements();
+ List list = binding.getExtensibilityElements();
if (!list.isEmpty()) {
- bindingId =
((ExtensibilityElement)list.get(0)).getElementType().getNamespaceURI();
+ bindingId = ((ExtensibilityElement)
list.get(0)).getElementType().getNamespaceURI();
}
}
if (bindingId == null) {
List<?> list =
wsBinding.getWSDLPort().getExtensibilityElements();
for (Object ep : list) {
- ExtensibilityElement ext = (ExtensibilityElement)ep;
+ ExtensibilityElement ext = (ExtensibilityElement) ep;
if (ext instanceof SOAPAddress) {
- bindingId = ((SOAPAddress)ext).getLocationURI();
+ bindingId = ((SOAPAddress) ext).getLocationURI();
}
if (ext instanceof AddressType) {
- bindingId = ((AddressType)ext).getLocation();
+ bindingId = ((AddressType) ext).getLocation();
}
}
-
+
}
-
- clientBinding = bus.getBindingManager()
- .getBindingFactory(bindingId)
- .createClientBinding(reference);
+ clientBinding =
bus.getBindingManager().getBindingFactory(bindingId).createClientBinding(reference);
} catch (MalformedURLException e) {
throw new BuilderInitException(e);
} catch (BusException e) {
@@ -121,21 +110,15 @@
/**
* Invoke an operation on the external Web service.
- *
- * @param operationName
- * the name of the WS operation to invoke
- * @param args
- * the Java object arguments to the WS operation
+ *
+ * @param operationName the name of the WS operation to invoke
+ * @param args the Java object arguments to the WS operation
* @return the response from the WS as a Java object
*/
public Object invoke(String operationName, Object[] args) {
- System.out.println(operationName + ": " + Arrays.asList(args));
-
WSDLOperationInfo opInfo = wsdlCache.getOperationInfo(operationName);
-
-
ObjectMessageContext objMsgContext =
clientBinding.createObjectContext();
-
+
boolean hasInOut = false;
int inOutCount = 0;
Object realArgs[] = new Object[args.length];
@@ -154,19 +137,19 @@
}
}
}
-
+
objMsgContext.setMessageObjects(realArgs);
-
+
boolean isOneway = opInfo.isOneWay();
DataBindingCallback callback = new SCADataBindingCallback(opInfo,
typeHelper, hasInOut);
-
+
try {
if (isOneway) {
clientBinding.invokeOneWay(objMsgContext,
- callback);
+ callback);
} else {
objMsgContext = clientBinding.invoke(objMsgContext,
- callback);
+ callback);
}
} catch (IOException e) {
// TODO Auto-generated catch block
@@ -184,14 +167,14 @@
*/
throw new ProtocolException(objMsgContext.getException());
}
-
+
if (hasInOut) {
Object ret[] = new Object[inOutCount + 1];
ret[0] = objMsgContext.getReturn();
inOutCount = 1;
for (int x = 0; x < args.length; x++) {
if (opInfo.getWebParam(x).mode() != Mode.IN) {
- Holder<?> holder = (Holder<?>)realArgs[x];
+ Holder<?> holder = (Holder<?>) realArgs[x];
ret[inOutCount] = holder.value;
inOutCount++;
}
Modified:
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/handler/ExternalWebServiceTargetInvoker.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/handler/ExternalWebServiceTargetInvoker.java?rev=396960&r1=396959&r2=396960&view=diff
==============================================================================
---
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/handler/ExternalWebServiceTargetInvoker.java
(original)
+++
incubator/tuscany/sandbox/celtix/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/handler/ExternalWebServiceTargetInvoker.java
Tue Apr 25 12:29:52 2006
@@ -45,8 +45,6 @@
/**
* Constructs a new ExternalWebServiceTargetInvoker.
- *
- * @param container
*/
public ExternalWebServiceTargetInvoker(QualifiedName servicename,
Method meth,