summaryrefslogtreecommitdiffstats
path: root/tags/java-stable-20060304/sca/binding.axis/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'tags/java-stable-20060304/sca/binding.axis/src/main/java')
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceAssemblyFactory.java31
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceBinding.java51
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceAssemblyFactoryImpl.java42
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceBindingImpl.java116
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceConfigurationBuilder.java150
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceWireBuilder.java61
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/WebServiceEntryPointConfigurationBuilder.java170
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/ExternalWebServiceRuntimeConfiguration.java32
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/WebServiceEntryPointRuntimeConfiguration.java32
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/engine/config/AxisEngineConfigurationFactory.java265
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceClient.java119
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceTargetInvoker.java109
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceEntryPointServlet.java82
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceOperationMetaData.java484
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServicePortMetaData.java362
-rw-r--r--tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/loader/WebServiceSCDLModelLoader.java74
16 files changed, 0 insertions, 2180 deletions
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceAssemblyFactory.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceAssemblyFactory.java
deleted file mode 100644
index 5d8f286944..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceAssemblyFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.binding.axis.assembly;
-
-import org.apache.tuscany.model.assembly.AssemblyFactory;
-
-/**
- * The <b>Factory</b> for the model.
- */
-public interface WebServiceAssemblyFactory extends AssemblyFactory {
-
- /**
- * Returns a new WebServiceBinding.
- */
- WebServiceBinding createWebServiceBinding();
-
-}
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceBinding.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceBinding.java
deleted file mode 100644
index 3c223ffa8e..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/WebServiceBinding.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.binding.axis.assembly;
-
-import javax.wsdl.Definition;
-import javax.wsdl.Port;
-
-import org.apache.tuscany.model.assembly.Binding;
-
-/**
- * Represents a Web service binding.
- */
-public interface WebServiceBinding extends Binding {
-
- /**
- * Returns the WSDL port defining this binding.
- */
- Port getWSDLPort();
-
- /**
- * Returns the WSDL definition containing the WSDL port.
- * @return
- */
- Definition getWSDLDefinition();
-
- /**
- * Sets the WSDL port defining this binding.
- */
- void setWSDLPort(Port value);
-
- /**
- * Sets the WSDL definition containing the WSDL port.
- * @param definition
- */
- void setWSDLDefinition(Definition definition);
-
-}
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceAssemblyFactoryImpl.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceAssemblyFactoryImpl.java
deleted file mode 100644
index 4a3154f2c1..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceAssemblyFactoryImpl.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.binding.axis.assembly.impl;
-
-import org.apache.tuscany.binding.axis.assembly.WebServiceAssemblyFactory;
-import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
-import org.apache.tuscany.model.assembly.impl.AssemblyFactoryImpl;
-
-/**
- * An implementation of the model <b>Factory</b>.
- */
-public class WebServiceAssemblyFactoryImpl extends AssemblyFactoryImpl implements WebServiceAssemblyFactory {
-
- /**
- * Creates an instance of the factory.
- */
- public WebServiceAssemblyFactoryImpl() {
- super();
- }
-
- /**
- * @see org.apache.tuscany.binding.axis.assembly.WebServiceAssemblyFactory#createWebServiceBinding()
- */
- public WebServiceBinding createWebServiceBinding() {
- return new WebServiceBindingImpl();
- }
-
-}
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceBindingImpl.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceBindingImpl.java
deleted file mode 100644
index 37ed0191e6..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/assembly/impl/WebServiceBindingImpl.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.binding.axis.assembly.impl;
-
-import java.util.Collection;
-import java.util.List;
-
-import javax.wsdl.Definition;
-import javax.wsdl.Port;
-import javax.wsdl.Service;
-
-import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.impl.BindingImpl;
-
-/**
- * An implementation of WebServiceBinding.
- */
-public class WebServiceBindingImpl extends BindingImpl implements WebServiceBinding {
-
- private Definition definition;
- private Port port;
- private String portURI;
-
- /**
- * Constructor
- */
- protected WebServiceBindingImpl() {
- }
-
- /**
- * @see org.apache.tuscany.binding.axis.assembly.WebServiceBinding#getWSDLPort()
- */
- public Port getWSDLPort() {
- return port;
- }
-
- /**
- * @see org.apache.tuscany.binding.axis.assembly.WebServiceBinding#setWSDLPort(javax.wsdl.Port)
- */
- public void setWSDLPort(Port value) {
- checkNotFrozen();
- this.port=value;
- }
-
- /**
- * @see org.apache.tuscany.binding.axis.assembly.WebServiceBinding#getWSDLDefinition()
- */
- public Definition getWSDLDefinition() {
- return definition;
- }
-
- /**
- * @see org.apache.tuscany.binding.axis.assembly.WebServiceBinding#setWSDLDefinition(javax.wsdl.Definition)
- */
- public void setWSDLDefinition(Definition definition) {
- checkNotFrozen();
- this.definition=definition;
- }
-
- /**
- * @param portURI The portURI to set.
- */
- public void setPortURI(String portURI) {
- this.portURI = portURI;
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.impl.BindingImpl#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
- */
- public void initialize(AssemblyModelContext modelContext) {
- if (isInitialized())
- return;
- super.initialize(modelContext);
-
- // Get the WSDL port namespace and name
- if (port==null && portURI!=null) {
- int h=portURI.indexOf('#');
- String portNamespace=portURI.substring(0,h);
- String portName=portURI.substring(h+1);
-
- // Load the WSDL definitions for the given namespace
- List<Definition> definitions=modelContext.getAssemblyLoader().loadDefinitions(portNamespace);
- if (definitions==null)
- throw new IllegalArgumentException("Cannot find WSDL definition for "+portNamespace);
- for (Definition definition: definitions) {
-
- // Find the port with the given name
- for (Service service : (Collection<Service>)definition.getServices().values()) {
- Port port=service.getPort(portName);
- if (port!=null) {
- this.definition=definition;
- this.port=port;
- return;
- }
- }
- }
- throw new IllegalArgumentException("Cannot find WSDL port "+portURI);
- }
- }
-
-}
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceConfigurationBuilder.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceConfigurationBuilder.java
deleted file mode 100644
index c9c87e1e11..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceConfigurationBuilder.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.binding.axis.builder;
-
-import java.lang.reflect.Method;
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
-import org.apache.tuscany.binding.axis.config.ExternalWebServiceRuntimeConfiguration;
-import org.apache.tuscany.binding.axis.handler.ExternalWebServiceClient;
-import org.apache.tuscany.core.builder.BuilderException;
-import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
-import org.apache.tuscany.core.config.JavaIntrospectionHelper;
-import org.apache.tuscany.core.context.Context;
-import org.apache.tuscany.core.context.QualifiedName;
-import org.apache.tuscany.core.injection.SingletonObjectFactory;
-import org.apache.tuscany.core.invocation.InvocationConfiguration;
-import org.apache.tuscany.core.invocation.MethodHashMap;
-import org.apache.tuscany.core.invocation.ProxyConfiguration;
-import org.apache.tuscany.core.invocation.impl.InvokerInterceptor;
-import org.apache.tuscany.core.invocation.spi.ProxyFactory;
-import org.apache.tuscany.core.invocation.spi.ProxyFactoryFactory;
-import org.apache.tuscany.core.message.MessageFactory;
-import org.apache.tuscany.core.runtime.RuntimeContext;
-import org.apache.tuscany.core.system.annotation.Autowire;
-import org.apache.tuscany.model.assembly.AssemblyModelObject;
-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.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Scope;
-
-/**
- * Creates a <code>RuntimeConfigurationBuilder</code> for an external service configured with the {@link WebServiceBinding}
- *
- * @version $Rev$ $Date$
- */
-@Scope("MODULE")
-public class ExternalWebServiceConfigurationBuilder implements RuntimeConfigurationBuilder {
-
- private RuntimeContext runtimeContext;
-
- private ProxyFactoryFactory proxyFactoryFactory;
-
- private MessageFactory messageFactory;
-
- private RuntimeConfigurationBuilder policyBuilder;
-
- public ExternalWebServiceConfigurationBuilder() {
- }
-
- @Init(eager = true)
- public void init() {
- runtimeContext.addBuilder(this);
- }
-
- /**
- * @param runtimeContext The runtimeContext to set.
- */
- @Autowire
- public void setRuntimeContext(RuntimeContext runtimeContext) {
- this.runtimeContext = runtimeContext;
- }
-
- /**
- * Sets the factory used to construct proxies implmementing the business interface required by a reference
- */
- @Autowire
- public void setProxyFactoryFactory(ProxyFactoryFactory factory) {
- this.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(RuntimeConfigurationBuilder builder) {
- policyBuilder = builder;
- }
-
- public void build(AssemblyModelObject object, Context context) throws BuilderException {
- if (!(object instanceof ExternalService)) {
- return;
- }
- ExternalService externalService = (ExternalService) object;
- if (externalService.getBindings().size() < 1 || !(externalService.getBindings().get(0) instanceof WebServiceBinding)) {
- return;
- }
-
- WebServiceBinding wsBinding=(WebServiceBinding)externalService.getBindings().get(0);
-
- ExternalWebServiceClient externalWebServiceClient=new ExternalWebServiceClient(externalService, wsBinding);
- ExternalWebServiceRuntimeConfiguration config = new ExternalWebServiceRuntimeConfiguration(externalService.getName(), new SingletonObjectFactory<ExternalWebServiceClient>(externalWebServiceClient));
-
- ConfiguredService configuredService = externalService.getConfiguredService();
- Service service = configuredService.getService();
- ServiceContract serviceContract = service.getServiceContract();
- Map<Method, InvocationConfiguration> iConfigMap = new MethodHashMap();
- ProxyFactory proxyFactory = proxyFactoryFactory.createProxyFactory();
- Set<Method> javaMethods = JavaIntrospectionHelper.getAllUniqueMethods(serviceContract.getInterface());
- for (Method method : javaMethods) {
- InvocationConfiguration iConfig = new InvocationConfiguration(method);
- iConfigMap.put(method, iConfig);
- }
- QualifiedName qName = new QualifiedName(externalService.getName() + QualifiedName.NAME_SEPARATOR + service.getName());
- ProxyConfiguration pConfiguration = new ProxyConfiguration(qName, iConfigMap, serviceContract.getInterface().getClassLoader(), messageFactory);
- proxyFactory.setBusinessInterface(serviceContract.getInterface());
- proxyFactory.setProxyConfiguration(pConfiguration);
- config.addTargetProxyFactory(service.getName(), proxyFactory);
- configuredService.setProxyFactory(proxyFactory);
- if (policyBuilder != null) {
- // invoke the reference builder to handle additional policy metadata
- policyBuilder.build(configuredService, context);
- }
- // add tail interceptor
- for (InvocationConfiguration iConfig : (Collection<InvocationConfiguration>) iConfigMap.values()) {
- iConfig.addTargetInterceptor(new InvokerInterceptor());
- }
-
- externalService.getConfiguredService().setRuntimeConfiguration(config);
- }
-
-}
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceWireBuilder.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceWireBuilder.java
deleted file mode 100644
index e006b0e4ff..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/ExternalWebServiceWireBuilder.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.apache.tuscany.binding.axis.builder;
-
-import org.apache.tuscany.binding.axis.config.ExternalWebServiceRuntimeConfiguration;
-import org.apache.tuscany.binding.axis.handler.ExternalWebServiceTargetInvoker;
-import org.apache.tuscany.core.builder.BuilderConfigException;
-import org.apache.tuscany.core.builder.WireBuilder;
-import org.apache.tuscany.core.context.ScopeContext;
-import org.apache.tuscany.core.invocation.InvocationConfiguration;
-import org.apache.tuscany.core.invocation.spi.ProxyFactory;
-import org.apache.tuscany.core.runtime.RuntimeContext;
-import org.apache.tuscany.core.system.annotation.Autowire;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Scope;
-
-@Scope("MODULE")
-public class ExternalWebServiceWireBuilder implements WireBuilder {
-
- private RuntimeContext runtimeContext;
-
- /**
- * Constructs a new ExternalWebServiceWireBuilder.
- */
- public ExternalWebServiceWireBuilder() {
- super();
- }
-
- @Autowire
- public void setRuntimeContext(RuntimeContext context) {
- runtimeContext = context;
- }
-
- @Init(eager=true)
- public void init() {
- runtimeContext.addBuilder(this);
- }
-
- public void connect(ProxyFactory sourceFactory, ProxyFactory targetFactory, Class targetType, boolean downScope, ScopeContext targetScopeContext) throws BuilderConfigException {
- if (!(ExternalWebServiceRuntimeConfiguration.class.isAssignableFrom(targetType))) {
- return;
- }
- for (InvocationConfiguration sourceInvocationConfig : sourceFactory.getProxyConfiguration().getInvocationConfigurations().values()) {
-
- ExternalWebServiceTargetInvoker invoker = new ExternalWebServiceTargetInvoker(sourceFactory.getProxyConfiguration().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);
- }
-
- }
-
- public void completeTargetChain(ProxyFactory targetFactory, Class targetType, ScopeContext targetScopeContext)
- throws BuilderConfigException {
- //TODO implement
- }
-
-}
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/WebServiceEntryPointConfigurationBuilder.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/WebServiceEntryPointConfigurationBuilder.java
deleted file mode 100644
index ac4b8b16eb..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/builder/WebServiceEntryPointConfigurationBuilder.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.binding.axis.builder;
-
-import java.lang.reflect.Method;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
-import org.apache.tuscany.binding.axis.config.WebServiceEntryPointRuntimeConfiguration;
-import org.apache.tuscany.core.builder.BuilderException;
-import org.apache.tuscany.core.builder.RuntimeConfigurationBuilder;
-import org.apache.tuscany.core.builder.impl.EntryPointRuntimeConfiguration;
-import org.apache.tuscany.core.config.JavaIntrospectionHelper;
-import org.apache.tuscany.core.context.AggregateContext;
-import org.apache.tuscany.core.context.QualifiedName;
-import org.apache.tuscany.core.invocation.Interceptor;
-import org.apache.tuscany.core.invocation.InvocationConfiguration;
-import org.apache.tuscany.core.invocation.InvocationRuntimeException;
-import org.apache.tuscany.core.invocation.ProxyConfiguration;
-import org.apache.tuscany.core.invocation.TargetInvoker;
-import org.apache.tuscany.core.invocation.spi.ProxyFactory;
-import org.apache.tuscany.core.invocation.spi.ProxyFactoryFactory;
-import org.apache.tuscany.core.message.Message;
-import org.apache.tuscany.core.message.MessageFactory;
-import org.apache.tuscany.core.runtime.RuntimeContext;
-import org.apache.tuscany.core.system.annotation.Autowire;
-import org.apache.tuscany.model.assembly.AssemblyModelObject;
-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.osoa.sca.annotations.Scope;
-
-/**
- * Creates a <code>RuntimeConfigurationBuilder</code> for an entry point configured with the {@link WebServiceBinding}
- *
- * @version $Rev$ $Date$
- */
-@Scope("MODULE")
-public class WebServiceEntryPointConfigurationBuilder implements RuntimeConfigurationBuilder<AggregateContext> {
-
- private RuntimeContext runtimeContext;
-
- private ProxyFactoryFactory proxyFactoryFactory;
-
- private MessageFactory messageFactory;
-
- private RuntimeConfigurationBuilder policyBuilder;
-
- public WebServiceEntryPointConfigurationBuilder() {
- }
-
- @Init(eager = true)
- public void init() {
- runtimeContext.addBuilder(this);
- }
-
- /**
- * @param runtimeContext The runtimeContext to set.
- */
- @Autowire
- public void setRuntimeContext(RuntimeContext runtimeContext) {
- this.runtimeContext = runtimeContext;
- }
-
- /**
- * Sets the factory used to construct proxies implmementing the business interface required by a reference
- */
- @Autowire
- public void setProxyFactoryFactory(ProxyFactoryFactory factory) {
- this.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(RuntimeConfigurationBuilder builder) {
- policyBuilder = builder;
- }
-
- public void build(AssemblyModelObject object, AggregateContext parentContext) throws BuilderException {
- if (!(object instanceof EntryPoint)) {
- return;
- }
- EntryPoint entryPoint = (EntryPoint) object;
- if (entryPoint.getBindings().size() < 1 || !(entryPoint.getBindings().get(0) instanceof WebServiceBinding)) {
- return;
- }
-
- EntryPointRuntimeConfiguration config = new WebServiceEntryPointRuntimeConfiguration(entryPoint.getName(), entryPoint.getConfiguredService().getService().getName(), messageFactory);
-
- ConfiguredService configuredService = entryPoint.getConfiguredService();
- Service service = configuredService.getService();
- ServiceContract serviceContract = service.getServiceContract();
- Map<Method, InvocationConfiguration> iConfigMap = new HashMap();
- ProxyFactory proxyFactory = proxyFactoryFactory.createProxyFactory();
- Set<Method> javaMethods = JavaIntrospectionHelper.getAllUniqueMethods(serviceContract.getInterface());
- for (Method method : javaMethods) {
- InvocationConfiguration iConfig = new InvocationConfiguration(method);
- iConfigMap.put(method, iConfig);
- }
- QualifiedName qName = new QualifiedName(entryPoint.getConfiguredReference().getTargetConfiguredServices().get(0).getAggregatePart().getName() + QualifiedName.NAME_SEPARATOR + service.getName());
- ProxyConfiguration pConfiguration = new ProxyConfiguration(qName, iConfigMap, serviceContract.getInterface().getClassLoader(), messageFactory);
- proxyFactory.setBusinessInterface(serviceContract.getInterface());
- proxyFactory.setProxyConfiguration(pConfiguration);
- config.addSourceProxyFactory(service.getName(), proxyFactory);
- configuredService.setProxyFactory(proxyFactory);
- if (policyBuilder != null) {
- // invoke the reference builder to handle additional policy metadata
- policyBuilder.build(configuredService, parentContext);
- }
- // add tail interceptor
- for (InvocationConfiguration iConfig : (Collection<InvocationConfiguration>) iConfigMap.values()) {
- iConfig.addTargetInterceptor(new EntryPointInvokerInterceptor());
- }
- entryPoint.getConfiguredReference().setRuntimeConfiguration(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) {
- }
-
- }
-
-
-}
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/ExternalWebServiceRuntimeConfiguration.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/ExternalWebServiceRuntimeConfiguration.java
deleted file mode 100644
index c3145137dd..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/ExternalWebServiceRuntimeConfiguration.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.binding.axis.config;
-
-import org.apache.tuscany.core.builder.ObjectFactory;
-import org.apache.tuscany.core.builder.impl.BaseExternalServiceRuntimeConfiguration;
-
-/**
- * Creates instances of {@link org.apache.tuscany.core.context.ExternalServiceContext} configured with the appropriate
- * invocation chains and bindings. This implementation serves as a marker for
- * {@link org.apache.tuscany.binding.axis.builder.ExternalWebServiceWireBuilder}
- *
- * @version $Rev$ $Date$
- */
-public class ExternalWebServiceRuntimeConfiguration extends BaseExternalServiceRuntimeConfiguration {
-
- public ExternalWebServiceRuntimeConfiguration(String name, ObjectFactory objectFactory) {
- super(name, objectFactory);
- }
-
-}
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/WebServiceEntryPointRuntimeConfiguration.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/WebServiceEntryPointRuntimeConfiguration.java
deleted file mode 100644
index 37fbd325e5..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/config/WebServiceEntryPointRuntimeConfiguration.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.binding.axis.config;
-
-import org.apache.tuscany.core.builder.impl.EntryPointRuntimeConfiguration;
-import org.apache.tuscany.core.message.MessageFactory;
-
-/**
- * Creates instances of {@link org.apache.tuscany.core.context.EntryPointContext} configured with the appropriate
- * invocation chains and bindings. This implementation serves as a marker for
- * {@link org.apache.tuscany.binding.axis.builder.WebServiceEntryPointWireBuilder}
- *
- * @version $Rev$ $Date$
- */
-public class WebServiceEntryPointRuntimeConfiguration extends EntryPointRuntimeConfiguration {
-
- public WebServiceEntryPointRuntimeConfiguration(String name, String serviceName, MessageFactory messageFactory) {
- super(name, serviceName, messageFactory);
- }
-
-}
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/engine/config/AxisEngineConfigurationFactory.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/engine/config/AxisEngineConfigurationFactory.java
deleted file mode 100644
index a14f3de037..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/engine/config/AxisEngineConfigurationFactory.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.binding.axis.engine.config;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.Method;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import javax.servlet.ServletConfig;
-import javax.wsdl.Definition;
-import javax.wsdl.Operation;
-import javax.wsdl.Port;
-import javax.wsdl.PortType;
-import javax.xml.namespace.QName;
-import javax.xml.rpc.Service;
-import javax.xml.rpc.ServiceException;
-import javax.xml.rpc.ServiceFactory;
-
-import org.apache.axis.EngineConfiguration;
-import org.apache.axis.EngineConfigurationFactory;
-import org.apache.axis.MessageContext;
-import org.apache.axis.configuration.FileProvider;
-import org.apache.axis.configuration.SimpleProvider;
-import org.apache.axis.constants.Style;
-import org.apache.axis.constants.Use;
-import org.apache.axis.description.JavaServiceDesc;
-import org.apache.axis.description.OperationDesc;
-import org.apache.axis.description.ParameterDesc;
-import org.apache.axis.handlers.soap.SOAPService;
-import org.apache.axis.providers.java.RPCProvider;
-import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
-import org.apache.tuscany.binding.axis.handler.WebServicePortMetaData;
-import org.apache.tuscany.common.resource.ResourceLoader;
-import org.apache.tuscany.core.config.JavaIntrospectionHelper;
-import org.apache.tuscany.core.context.AggregateContext;
-import org.apache.tuscany.core.context.webapp.TuscanyWebAppRuntime;
-import org.apache.tuscany.core.invocation.spi.ProxyFactory;
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.Binding;
-import org.apache.tuscany.model.assembly.EntryPoint;
-import org.apache.tuscany.model.assembly.Module;
-import org.osoa.sca.ServiceRuntimeException;
-import org.osoa.sca.ServiceUnavailableException;
-
-/**
- */
-public class AxisEngineConfigurationFactory implements EngineConfigurationFactory {
-
- private TuscanyWebAppRuntime tuscanyRuntime;
-
- /**
- * Constructor
- *
- */
- public AxisEngineConfigurationFactory(TuscanyWebAppRuntime tuscanyRuntime) {
- this.tuscanyRuntime = tuscanyRuntime;
- }
-
- /**
- * Creates a new factory.
- *
- * @see org.apache.axis.configuration.EngineConfigurationFactoryFinder
- */
- public static EngineConfigurationFactory newFactory(Object param) {
- if (param instanceof ServletConfig) {
-
- // Only configure Tuscany apps
- // Get the Tuscany runtime out of the servlet context
- TuscanyWebAppRuntime tuscanyRuntime = (TuscanyWebAppRuntime) ((ServletConfig) param).getServletContext().getAttribute(TuscanyWebAppRuntime.class.getName());
- if (tuscanyRuntime == null)
- return null;
-
- return new AxisEngineConfigurationFactory(tuscanyRuntime);
- } else {
- return null;
- }
- }
-
- /**
- * @see org.apache.axis.EngineConfigurationFactory#getClientEngineConfig()
- */
- public EngineConfiguration getClientEngineConfig() {
-
- // Used only on the server side
- return null;
- }
-
- /**
- * @see org.apache.axis.EngineConfigurationFactory#getServerEngineConfig()
- */
- public EngineConfiguration getServerEngineConfig() {
-
- // Get the current SCA module context
- AggregateContext moduleContext = tuscanyRuntime.getModuleComponentContext();
- tuscanyRuntime.start();
- try {
-
- Module module = (Module)moduleContext.getAggregate();
- AssemblyModelContext modelContext = module.getAssemblyModelContext();
-
- // Load the .wsdd configuration
- ResourceLoader bundleContext = modelContext.getApplicationResourceLoader();
- InputStream wsdd;
- try {
- URL url = bundleContext.getResource("org/apache/tuscany/binding/axis/engine/config/server-config.wsdd");
- wsdd = url.openStream();
- } catch (IOException e1) {
- throw new ServiceRuntimeException(e1);
- }
- FileProvider wsddConfigurationProvider = new FileProvider(wsdd);
-
- // Create our dynamic configuration
- SimpleProvider dynamicConfigurationProvider = new SimpleProvider(wsddConfigurationProvider);
-
- // Register all the Web service entry points
- for (Iterator i = module.getEntryPoints().iterator(); i.hasNext();) {
- EntryPoint entryPoint = (EntryPoint) i.next();
- Binding binding = (Binding) entryPoint.getBindings().get(0);
- if (binding instanceof WebServiceBinding) {
- //FIXME This should not use the proxy factory - use EntryPointContext#getInstance()
- // Get the proxy factory associated with the entry point
- final ProxyFactory proxyFactory=(ProxyFactory)entryPoint.getConfiguredService().getProxyFactory();
-
- // Create a new SOAP service
- SOAPService service = new SOAPService(new RPCProvider() {
- protected Object makeNewServiceObject(MessageContext arg0, String arg1) throws Exception {
-
- // The SOAP service will delegate to a dynamic proxy
- return proxyFactory.createProxy();
- }
- });
-
- // Get the WSDL definition and port
- WebServiceBinding wsBinding = (WebServiceBinding) binding;
- Definition definition=wsBinding.getWSDLDefinition();
- Port port=wsBinding.getWSDLPort();
- WebServicePortMetaData wsPortMetaData = new WebServicePortMetaData(definition, port, null, false);
-
- // Configure the SOAP service
- service.setOption(RPCProvider.OPTION_WSDL_TARGETNAMESPACE, wsPortMetaData.getPortName().getNamespaceURI());
- service.setOption(RPCProvider.OPTION_WSDL_SERVICEELEMENT, wsPortMetaData.getServiceName().getLocalPart());
- service.setOption(RPCProvider.OPTION_WSDL_SERVICEPORT, wsPortMetaData.getPortName().getLocalPart());
- service.setOption(RPCProvider.OPTION_WSDL_PORTTYPE, wsPortMetaData.getPortTypeName().getLocalPart());
- //FIXME RPCProvider is not happy if you don't give it a class name...
- service.setOption(RPCProvider.OPTION_CLASSNAME, Object.class.getName());
-
- // Create a service description
- JavaServiceDesc serviceDesc = (JavaServiceDesc) service.getServiceDescription();
- serviceDesc.setName(entryPoint.getName());
- String wsdlFile = definition.getDocumentBaseURI();
- if (wsdlFile.startsWith("file:"))
- wsdlFile = wsdlFile.substring(5);
- serviceDesc.setWSDLFile(wsdlFile);
- serviceDesc.setDefaultNamespace(wsPortMetaData.getPortName().getNamespaceURI());
- serviceDesc.setStyle(Style.DOCUMENT);
- serviceDesc.setUse(Use.LITERAL);
-
- // Get the service interface
- Class serviceInterface=entryPoint.getConfiguredService().getService().getServiceContract().getInterface();
- Set methods=JavaIntrospectionHelper.getAllUniqueMethods(serviceInterface);
- serviceDesc.setAllowedMethods(new ArrayList(methods));
-
- // Create a JAX-RPC service
- QName wsdlServiceName = wsPortMetaData.getService().getQName();
- Service jaxrpcService;
- try {
- URL url=new URL(wsBinding.getWSDLDefinition().getDocumentBaseURI());
- jaxrpcService = ServiceFactory.newInstance().createService(url, wsdlServiceName);
- } catch (ServiceException e) {
- throw new ServiceUnavailableException(e);
- } catch (MalformedURLException e) {
- throw new ServiceUnavailableException(e);
- }
-
- // Create operation descriptions for all the operations
- PortType wsdlPortType = wsPortMetaData.getPortType();
- for (Iterator j = wsdlPortType.getOperations().iterator(); j.hasNext();) {
- Operation wsdlOperation = (Operation) j.next();
- String operationName = wsdlOperation.getName();
-
- // Create a JAX RPC call object
- QName portName = wsPortMetaData.getPortName();
- org.apache.axis.client.Call call;
- try {
- call = (org.apache.axis.client.Call) jaxrpcService.createCall(portName, operationName);
- } catch (ServiceException e) {
- throw new IllegalArgumentException(e);
- }
-
- OperationDesc operationDesc = call.getOperation();
- operationDesc.setName(operationName);
- List<Class> argTypes=new ArrayList<Class>();
- for (ParameterDesc parameterDesc : (List<ParameterDesc>)operationDesc.getAllInParams()) {
- argTypes.add(parameterDesc.getJavaType());
- }
- Method method=JavaIntrospectionHelper.findClosestMatchingMethod(operationName, argTypes.toArray(new Class[argTypes.size()]), methods);
- operationDesc.setMethod(method);
-
-// OperationDesc operationDesc = new OperationDesc();
-// operationDesc.setName(operationName);
-// Method method=JavaIntrospectionHelper.findClosestMatchingMethod(operationName, new Class[]{String.class}, methods);
-// operationDesc.setMethod(method);
-//
-// WebServiceOperationMetaData wsOperationMetaData = wsPortMetaData.getOperationMetaData(operationName);
-// String soapAction = wsOperationMetaData.getSOAPAction();
-// if (soapAction != null && soapAction.length()!=0)
-// operationDesc.setSoapAction(soapAction);
-//
-// operationDesc.setElementQName((QName) wsOperationMetaData.getOperationSignature().get(0));
-//
-// Message inputMessage=wsdlOperation.getInput()!=null? wsdlOperation.getInput().getMessage():null;
-// if (inputMessage!=null & !inputMessage.getParts().isEmpty()) {
-// ParameterDesc parameterDesc = new ParameterDesc();
-// QName anyQName = new QName(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "any");
-// parameterDesc.setTypeQName(anyQName);
-// parameterDesc.setQName(anyQName);
-// parameterDesc.setJavaType(Object.class);
-// operationDesc.addParameter(parameterDesc);
-// }
-//
-// Message outputMessage=wsdlOperation.getOutput()!=null? wsdlOperation.getOutput().getMessage():null;
-// if (outputMessage!=null & !outputMessage.getParts().isEmpty()) {
-// QName anyQName = new QName(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "any");
-// operationDesc.setReturnType(anyQName);
-// operationDesc.setReturnQName(anyQName);
-// operationDesc.setReturnClass(Object.class);
-// }
-
- serviceDesc.addOperationDesc(operationDesc);
- }
-
- // Deploy the service
- dynamicConfigurationProvider.deployService(entryPoint.getName(), service);
-
- }
- }
- return dynamicConfigurationProvider;
-
- } finally {
- tuscanyRuntime.stop();
- }
-
- }
-
-}
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceClient.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceClient.java
deleted file mode 100644
index 9d024bb036..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceClient.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.binding.axis.handler;
-
-import java.lang.reflect.Method;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.rmi.RemoteException;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.namespace.QName;
-import javax.xml.rpc.Call;
-import javax.xml.rpc.Service;
-import javax.xml.rpc.ServiceException;
-import javax.xml.rpc.ServiceFactory;
-
-import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
-import org.apache.tuscany.core.config.JavaIntrospectionHelper;
-import org.apache.tuscany.core.invocation.MethodHashMap;
-import org.apache.tuscany.model.assembly.ExternalService;
-import org.osoa.sca.ServiceRuntimeException;
-import org.osoa.sca.ServiceUnavailableException;
-
-/**
- * A mock client for a transport binding
- *
- * @version $Rev$ $Date$
- */
-public class ExternalWebServiceClient {
-
-
- private WebServicePortMetaData wsPortMetaData;
- private Service jaxrpcService;
- private Map<Method, Call> jaxrpcCalls=new MethodHashMap();
-
- /**
- * Constructs a new ExternalWebServiceClient.
- * @param externalService
- * @param wsBinding
- */
- public ExternalWebServiceClient(ExternalService externalService, WebServiceBinding wsBinding) {
-
- // Create a port metadata info object to hold the port information
- wsPortMetaData = new WebServicePortMetaData(wsBinding.getWSDLDefinition(), wsBinding.getWSDLPort(), wsBinding.getURI(), false);
-
- // Create a JAX-RPC service
- QName wsdlServiceName = wsPortMetaData.getService().getQName();
- try {
- URL url=new URL(wsBinding.getWSDLDefinition().getDocumentBaseURI());
- jaxrpcService = ServiceFactory.newInstance().createService(url, wsdlServiceName);
- } catch (ServiceException e) {
- throw new ServiceUnavailableException(e);
- } catch (MalformedURLException e) {
- throw new ServiceUnavailableException(e);
- }
-
- // Create JAX-RPC calls for all the methods on the service contract
- Set<Method> methods=JavaIntrospectionHelper.getAllUniqueMethods(externalService.getConfiguredService().getService().getServiceContract().getInterface());
- for (Method method : methods) {
- Call call=createCall(method);
- jaxrpcCalls.put(method, call);
- }
-
- }
-
- /**
- * Create a JAX-RPC call for the given method.
- * @param method
- * @return
- */
- private Call createCall(Method method) {
-
- // Create a JAX RPC call object
- QName portName = wsPortMetaData.getPortName();
- Call call;
- try {
- call = (Call) jaxrpcService.createCall(portName, method.getName());
- } catch (ServiceException e) {
- throw new IllegalArgumentException(e);
- }
-
- // Set the target endpoint address
- String endpoint = wsPortMetaData.getEndpoint();
- if (endpoint != null) {
- String originalEndpoint = call.getTargetEndpointAddress();
- if (!endpoint.equals(originalEndpoint))
- call.setTargetEndpointAddress(endpoint);
- }
-
- return call;
- }
-
- /**
- * Invoke an operation on the external Web service.
- * @param method
- * @param args
- * @return
- */
- public Object invoke(Method method, Object[] args) {
- Call call=jaxrpcCalls.get(method);
- try {
- return call.invoke(args);
- } catch (RemoteException e) {
- throw new ServiceRuntimeException(e);
- }
- }
-}
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceTargetInvoker.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceTargetInvoker.java
deleted file mode 100644
index 64f33a1829..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/ExternalWebServiceTargetInvoker.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.binding.axis.handler;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.apache.tuscany.core.context.ExternalServiceContext;
-import org.apache.tuscany.core.context.InstanceContext;
-import org.apache.tuscany.core.context.QualifiedName;
-import org.apache.tuscany.core.context.ScopeContext;
-import org.apache.tuscany.core.context.TargetException;
-import org.apache.tuscany.core.invocation.Interceptor;
-import org.apache.tuscany.core.invocation.TargetInvoker;
-import org.apache.tuscany.core.message.Message;
-
-/**
- * Responsible for invoking an external web service
- *
- * @version $Rev$ $Date$
- */
-public class ExternalWebServiceTargetInvoker implements TargetInvoker {
-
- private QualifiedName serviceName;
- private String esName;
- private Method method;
- private ScopeContext container;
-
- private ExternalServiceContext context;
-
- /**
- * Constructs a new ExternalWebServiceTargetInvoker.
- * @param esName
- * @param container
- */
- public ExternalWebServiceTargetInvoker(QualifiedName serviceName, Method method, ScopeContext container) {
- assert (serviceName != null) : "No service name specified";
- assert (method != null) : "No method specified";
- assert (container != null) : "No scope container specified";
- this.serviceName = serviceName;
- this.esName=serviceName.getPartName();
- this.method = method;
- this.container = container;
- }
-
- public Object invokeTarget(Object payload) throws InvocationTargetException {
- if (context == null) {
- InstanceContext iContext = container.getContext(esName);
- if (!(iContext instanceof ExternalServiceContext)) {
- TargetException te = new TargetException("Unexpected target context type");
- te.setIdentifier(iContext.getClass().getName());
- te.addContextName(iContext.getName());
- throw te;
- }
- context = (ExternalServiceContext) iContext;
- }
- ExternalWebServiceClient client = (ExternalWebServiceClient) context.getImplementationInstance(true);
- if (payload != null) {
- return client.invoke(method, (Object[])payload);
- } else {
- return client.invoke(method, null);
- }
- }
-
- public boolean isCacheable() {
- return false;
- }
-
- public Message invoke(Message msg) {
- try {
- Object resp = invokeTarget(msg.getBody());
- msg.setBody(resp);
- } catch (InvocationTargetException e) {
- msg.setBody(e.getCause());
- } catch (Throwable e) {
- msg.setBody(e);
- }
- return msg;
- }
-
- public void setNext(Interceptor next) {
- throw new UnsupportedOperationException();
- }
-
- public Object clone() {
- try {
- ExternalWebServiceTargetInvoker invoker = (ExternalWebServiceTargetInvoker) super.clone();
- invoker.container = container;
- invoker.context = this.context;
- invoker.esName = this.esName;
- invoker.method = this.method;
- invoker.serviceName = this.serviceName;
- return invoker;
- } catch (CloneNotSupportedException e) {
- return null; // will not happen
- }
- }
-}
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceEntryPointServlet.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceEntryPointServlet.java
deleted file mode 100644
index d3773ca415..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceEntryPointServlet.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.binding.axis.handler;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.axis.AxisEngine;
-import org.apache.axis.AxisFault;
-import org.apache.axis.EngineConfiguration;
-import org.apache.axis.server.AxisServer;
-import org.apache.axis.transport.http.AxisServlet;
-
-import org.apache.tuscany.binding.axis.engine.config.AxisEngineConfigurationFactory;
-import org.apache.tuscany.core.context.webapp.TuscanyWebAppRuntime;
-
-/**
- */
-public class WebServiceEntryPointServlet extends AxisServlet {
-
- /**
- *
- */
- public WebServiceEntryPointServlet() {
- super();
- }
-
- /**
- * @see org.apache.axis.transport.http.AxisServletBase#getEngine()
- */
- public AxisServer getEngine() throws AxisFault {
- AxisServer engine = null;
- ServletContext context = getServletContext();
- synchronized (context) {
- engine = (AxisServer) getServletContext().getAttribute(getServletName() + ".WebServiceEntryPointAxisEngine");
- if (engine == null) {
- Map environment = new HashMap();
- environment.put(AxisEngine.ENV_SERVLET_CONTEXT, context);
- String webInfPath = context.getRealPath("/WEB-INF");
- if (webInfPath != null)
- environment.put(AxisEngine.ENV_SERVLET_REALPATH, webInfPath + File.separator + "attachments");
- TuscanyWebAppRuntime tuscanyRuntime = (TuscanyWebAppRuntime) context.getAttribute(TuscanyWebAppRuntime.class.getName());
- EngineConfiguration config = new AxisEngineConfigurationFactory(tuscanyRuntime).getServerEngineConfig();
- if (config != null) {
- environment.put(EngineConfiguration.PROPERTY_NAME, config);
- }
- engine = AxisServer.getServer(environment);
- engine.setName(getServletName());
- context.setAttribute(getServletName() + ".WebServiceEntryPointAxisEngine", engine);
- }
- }
- return engine;
- }
-
- /**
- * @see org.apache.axis.transport.http.AxisServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
- */
- public void doPost(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
- super.doPost(arg0, arg1);
- }
-
-}
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceOperationMetaData.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceOperationMetaData.java
deleted file mode 100644
index 99aa62f78f..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServiceOperationMetaData.java
+++ /dev/null
@@ -1,484 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.binding.axis.handler;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import javax.wsdl.Binding;
-import javax.wsdl.BindingInput;
-import javax.wsdl.BindingOperation;
-import javax.wsdl.BindingOutput;
-import javax.wsdl.Input;
-import javax.wsdl.Message;
-import javax.wsdl.Operation;
-import javax.wsdl.Output;
-import javax.wsdl.Part;
-import javax.wsdl.extensions.soap.SOAPBinding;
-import javax.wsdl.extensions.soap.SOAPHeader;
-import javax.wsdl.extensions.soap.SOAPOperation;
-import javax.xml.namespace.QName;
-
-/**
- * Metadata for a WSDL operation
- *
- */
-public class WebServiceOperationMetaData {
- // WSDL Binding and BindingOperation
- private Binding binding;
- private BindingOperation bindingOperation;
-
- // Fields to cache derived metadata
- private transient Set inputHeaderParts;
- private transient Set outputHeaderParts;
- private transient String style;
- private transient String use;
- private transient String soapAction;
- private transient List signature;
- private String encoding;
- private transient QName rpcOperationName;
-
- public WebServiceOperationMetaData(Binding binding, BindingOperation bindingOperation) {
- this.binding = binding;
- this.bindingOperation = bindingOperation;
- }
-
- public WebServiceOperationMetaData(Binding binding, BindingOperation bindingOperation, String style, String use, String encoding, String soapAction) {
- this.binding = binding;
- this.bindingOperation = bindingOperation;
- this.style = style;
- this.use = use;
- this.encoding = encoding;
- this.soapAction = soapAction;
- }
-
- public Set getInputHeaderParts() {
- if (inputHeaderParts == null) {
- // Build a set of header parts that we need to exclude
- inputHeaderParts = new HashSet();
- BindingInput bindingInput = bindingOperation.getBindingInput();
-
- if (bindingInput != null) {
- Operation operation = bindingOperation.getOperation();
- javax.wsdl.Message message = operation.getInput().getMessage();
- List elements = bindingInput.getExtensibilityElements();
- for (Iterator i = elements.iterator(); i.hasNext();) {
- Object extensibilityElement = i.next();
- Part part = getPartFromSOAPHeader(message, extensibilityElement);
- if (part != null) {
- inputHeaderParts.add(part);
- }
- }
- }
- }
- return inputHeaderParts;
- }
-
- public Set getOutputHeaderParts() {
- if (outputHeaderParts == null) {
- // Build a set of header parts that we need to exclude
- outputHeaderParts = new HashSet();
- BindingOutput bindingOutput = bindingOperation.getBindingOutput();
-
- if (bindingOutput != null) {
- Operation operation = bindingOperation.getOperation();
- javax.wsdl.Message message = operation.getOutput().getMessage();
- List elements = bindingOutput.getExtensibilityElements();
- for (Iterator i = elements.iterator(); i.hasNext();) {
- Object extensibilityElement = i.next();
- Part part = getPartFromSOAPHeader(message, extensibilityElement);
- if (part != null) {
- outputHeaderParts.add(part);
- }
- }
- }
- }
- return outputHeaderParts;
- }
-
- private Part getPartFromSOAPHeader(Message message, Object extensibilityElement) {
- Part part = null;
- if (extensibilityElement instanceof SOAPHeader) {
- SOAPHeader soapHeader = (SOAPHeader) extensibilityElement;
- QName msgName = soapHeader.getMessage();
- if (message.getQName().equals(msgName)) {
- part = message.getPart(soapHeader.getPart());
- }
- } else if (extensibilityElement instanceof SOAPHeader) {
- SOAPHeader soapHeader = (SOAPHeader) extensibilityElement;
- QName msgName = soapHeader.getMessage();
- if (message.getQName().equals(msgName)) {
- part = message.getPart(soapHeader.getPart());
- }
- }
- return part;
- }
-
- public String getStyle() {
- if (style == null) {
- SOAPOperation soapOperation = (SOAPOperation) WebServicePortMetaData.getExtensibilityElement(bindingOperation.getExtensibilityElements(), SOAPOperation.class);
- if (soapOperation != null)
- style = soapOperation.getStyle();
- if (style == null) {
- SOAPBinding soapBinding = (SOAPBinding) WebServicePortMetaData.getExtensibilityElement(binding.getExtensibilityElements(), SOAPBinding.class);
- if (soapBinding != null)
- style = soapBinding.getStyle();
- }
- if (style == null)
- style = "document";
- }
- return style;
- }
-
- /**
- * Returns the SOAP action for the given operation.
- *
- * @param wsdlBindingOperation
- * @return
- */
- public String getSOAPAction() {
- if (soapAction == null) {
- final List wsdlBindingOperationExtensions = bindingOperation.getExtensibilityElements();
- final SOAPOperation soapOp = (SOAPOperation) WebServicePortMetaData.getExtensibilityElement(wsdlBindingOperationExtensions, SOAPOperation.class);
- if (soapOp != null)
- soapAction = soapOp.getSoapActionURI();
- }
- return soapAction;
- }
-
- public QName getRPCOperationName() {
- if (rpcOperationName == null) {
- javax.wsdl.extensions.soap.SOAPBody soapBody = getSOAPBody(true);
- String ns = (soapBody != null) ? soapBody.getNamespaceURI() : binding.getPortType().getQName().getNamespaceURI();
- String name = bindingOperation.getOperation().getName();
- rpcOperationName = new QName(ns, name);
- }
- return rpcOperationName;
- }
-
- private List getSOAPBodyParts(boolean input) {
- javax.wsdl.extensions.soap.SOAPBody soapBody = getSOAPBody(input);
- if (soapBody != null) {
- List parts = soapBody.getParts();
- if (parts!=null) {
- List names = new ArrayList();
- for (Iterator i = parts.iterator(); i.hasNext();) {
- Object part = i.next();
- if (part instanceof String)
- names.add(part);
- else if (part instanceof Part) {
- names.add(((Part) part).getName());
- }
- }
- return names;
- } else
- return null;
- } else
- return null;
- }
-
- private javax.wsdl.extensions.soap.SOAPBody getSOAPBody(boolean input) {
- List elements = null;
- if (input) {
- BindingInput bindingInput = bindingOperation.getBindingInput();
- if (bindingInput == null)
- return null;
- elements = bindingInput.getExtensibilityElements();
- } else {
- BindingOutput bindingOutput = bindingOperation.getBindingOutput();
- if (bindingOutput == null)
- return null;
- elements = bindingOutput.getExtensibilityElements();
- }
- javax.wsdl.extensions.soap.SOAPBody soapBody = (javax.wsdl.extensions.soap.SOAPBody) WebServicePortMetaData.getExtensibilityElement(elements,
- javax.wsdl.extensions.soap.SOAPBody.class);
- return soapBody;
- }
-
- /**
- * Returns the use attribute
- *
- * @param wsdlOperation
- * @return
- */
- public String getUse() {
- if (use == null) {
- javax.wsdl.extensions.soap.SOAPBody soapBody = getSOAPBody(true);
- if (soapBody != null) {
- use = soapBody.getUse();
- }
- if (use == null)
- use = "literal";
- }
- return use;
- }
-
- public String getEncoding() {
- if (encoding == null) {
- javax.wsdl.extensions.soap.SOAPBody soapBody = getSOAPBody(true);
- if (soapBody != null) {
- List<String> styles=(List<String>)soapBody.getEncodingStyles();
- if (styles!=null && !styles.isEmpty())
- encoding = styles.get(0);
- }
- if (encoding == null)
- encoding = "";
- }
- return encoding;
- }
-
- public boolean isDocLitWrapped() {
- boolean flag = getStyle().equals("document") && getUse().equals("literal");
- if (!flag)
- return false;
- Message msg = getMessage(true);
- if (msg == null)
- return false;
- List parts = msg.getOrderedParts(null);
- if (parts.size() != 1)
- return false;
- Part part = (Part) parts.get(0);
- QName element = part.getElementName();
- if (element == null)
- return false;
- return element.getLocalPart().equals(bindingOperation.getOperation().getName());
- }
-
- /*
- public SOAPMediator createMediator(boolean serverMode)
- throws SOAPException {
- // create a new mediator for each invoke for thread-safety
- boolean rpcStyle = getStyle().equals("rpc");
- boolean rpcEncoded = isEncoded();
-
- SOAPMediator mediator = null;
-
- if (!rpcStyle) {
- // Document
- mediator = new SOAPDocumentLiteralMediatorImpl(this, serverMode);
- } else {
- if (!rpcEncoded)
- mediator = new SOAPRPCLiteralMediatorImpl(this, serverMode); // RPC-literal
- else
- mediator = new SOAPRPCEncodedMediatorImpl(this, serverMode); // RPC-encoded
- }
- return mediator;
- }
- */
-
- /**
- * Get the operation signature from the WSDL operation
- *
- * @param wsdlBinding
- * @param bindingOperation
- * @return
- */
- public List getOperationSignature() {
- if (signature == null) {
- signature = new ArrayList();
-
- Operation operation = bindingOperation.getOperation();
- if (operation == null)
- return signature;
-
- final Input input = operation.getInput();
- if (input == null) {
- return signature;
- }
-
- String style = getStyle();
-
- if (style.equals("rpc")) {
- Collection partNames = input.getMessage().getParts().values();
- for (Iterator i = partNames.iterator(); i.hasNext();) {
- Part part = (Part) i.next();
- signature.add(part.getName());
- }
- } else {
- /*
- * WS-I Basic Profile 1.1 4.7.6 Operation Signatures
- * Definition: operation signature
- *
- * The profile defines the "operation signature" to be the
- * fully qualified name of the child element of SOAP body of
- * the SOAP input message described by an operation in a
- * WSDL binding.
- *
- * In the case of rpc-literal binding, the operation name is
- * used as a wrapper for the part accessors. In the
- * document-literal case, since a wrapper with the operation
- * name is not present, the message signatures must be
- * correctly designed so that they meet this requirement.
- *
- * An endpoint that supports multiple operations must
- * unambiguously identify the operation being invoked based
- * on the input message that it receives. This is only
- * possible if all the operations specified in the
- * wsdl:binding associated with an endpoint have a unique
- * operation signature.
- *
- * R2710 The operations in a wsdl:binding in a DESCRIPTION
- * MUST result in operation signatures that are different
- * from one another.
- */
- List bodyParts = getSOAPBodyParts(true);
-
- Collection parts = input.getMessage().getParts().values();
- // Exclude the parts to be transmitted in SOAP header
- if (bodyParts == null)
- parts.removeAll(getInputHeaderParts());
- for (Iterator i = parts.iterator(); i.hasNext();) {
- Part part = (Part) i.next();
- if (bodyParts == null) {
- // All parts
- QName elementName = part.getElementName();
- if (elementName == null) {
- elementName = new QName("", part.getName());
- // TODO: [rfeng] throw new
- // ServiceRuntimeException("Message part for
- // document style must refer to an XSD element
- // using a QName: " + part);
- }
- signature.add(elementName);
- } else {
- // "parts" in soap:body
- if (bodyParts.contains(part.getName())) {
- QName elementName = part.getElementName();
- if (elementName == null) {
- elementName = new QName("", part.getName());
- // TODO: [rfeng] throw new
- // ServiceRuntimeException("Message part for
- // document style must refer to an XSD
- // element using a QName: " + part);
- }
- signature.add(elementName);
- }
-
- }
- }
- }
- }
- return signature;
- }
-
- public Message getMessage(boolean isInput) {
- Operation operation = bindingOperation.getOperation();
- if (operation == null)
- return null;
-
- if (isInput) {
- final Input input = operation.getInput();
- return input == null ? null : input.getMessage();
- } else {
- final Output output = operation.getOutput();
- return output == null ? null : output.getMessage();
- }
- }
-
- public Part getInputPart(int index) {
- Part part = null;
- Message message = getMessage(true);
- if (message == null)
- return part;
-
- List parts = message.getOrderedParts(null);
- return (Part) parts.get(index);
-
- }
-
- public Part getOutputPart(int index) {
- Part part = null;
- Message message = getMessage(false);
- if (message == null)
- return part;
-
- List parts = message.getOrderedParts(null);
- return (Part) parts.get(index);
-
- }
-
- /**
- * Get a list of indexes for each part in the SOAP body
- *
- * @param isInput TODO
- * @return
- */
- public List getBodyPartIndexes(boolean isInput) {
- List indexes = new ArrayList();
-
- Message message = getMessage(isInput);
- if (message == null)
- return indexes;
-
- List bodyParts = getSOAPBodyParts(isInput);
- List parts = message.getOrderedParts(null);
- Set headerParts = (isInput) ? getInputHeaderParts() : getOutputHeaderParts();
-
- int index = 0;
- for (Iterator i = parts.iterator(); i.hasNext(); index++) {
- Part part = (Part) i.next();
- if (headerParts.contains(part))
- continue;
- if (bodyParts == null) {
- // All parts
- indexes.add(new Integer(index));
- } else {
- // "parts" in soap:body
- if (bodyParts.contains(part.getName()))
- indexes.add(new Integer(index));
-
- }
- }
- return indexes;
- }
-
- /**
- * Get the corresponding index for a part in the SOAP header by element
- * name
- *
- * @param elementName
- * @param isInput TODO
- * @return
- */
- public int getHeaderPartIndex(QName elementName, boolean isInput) {
-
- Message message = getMessage(isInput);
- if (message == null)
- return -1;
-
- List parts = message.getOrderedParts(null);
- Set headerParts = isInput ? getInputHeaderParts() : getOutputHeaderParts();
-
- int index = 0;
- for (Iterator i = parts.iterator(); i.hasNext(); index++) {
- Part part = (Part) i.next();
- // Test if the part is in header section
- if (headerParts.contains(part) && elementName.equals(part.getElementName())) {
- return index;
- }
- }
- return -1;
- }
-
- public BindingOperation getBindingOperation() {
- return bindingOperation;
- }
-
-} \ No newline at end of file
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServicePortMetaData.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServicePortMetaData.java
deleted file mode 100644
index 9ce85d3ca8..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/handler/WebServicePortMetaData.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed 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.binding.axis.handler;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.wsdl.Binding;
-import javax.wsdl.BindingOperation;
-import javax.wsdl.Definition;
-import javax.wsdl.Port;
-import javax.wsdl.PortType;
-import javax.wsdl.Service;
-import javax.wsdl.extensions.soap.SOAPAddress;
-import javax.wsdl.extensions.soap.SOAPBinding;
-import javax.xml.namespace.QName;
-import javax.xml.soap.Name;
-import javax.xml.soap.SOAPBodyElement;
-import javax.xml.soap.SOAPElement;
-
-import org.apache.tuscany.model.types.wsdl.WSDLServiceContract;
-
-/**
- * Metadata for a WSDL port
- *
- */
-public class WebServicePortMetaData {
-
- private final static String SOAP_ENCODING_URI = "http://schemas.xmlsoap.org/wsdl/soap/";
-
- private Service wsdlService;
- private QName wsdlServiceName;
- private Port wsdlPort;
- private Binding wsdlBinding;
- private QName wsdlPortName;
- private PortType wsdlPortType;
- private QName wsdlPortTypeName;
- private String endpoint;
- private boolean managed;
- private List allOperationMetaData;
- private WSDLServiceContract interfaceType;
-
- /**
- * Constructor
- *
- * @param wsdlDefinition
- * @param portName
- */
- public WebServicePortMetaData(Definition wsdlDefinition, Port wsdlPort, String endpoint, boolean managed) {
-
- // Lookup the named port
- this.wsdlPort=wsdlPort;
- wsdlPortName = new QName(wsdlDefinition.getTargetNamespace(), wsdlPort.getName());
-
- Collection<Service> services=(Collection<Service>)wsdlDefinition.getServices().values();
- for (Service service : services) {
- if (service.getPorts().containsValue(wsdlPort)) {
- wsdlService = service;
- wsdlServiceName = service.getQName();
- break;
- }
- }
-
- // Save the binding
- wsdlBinding = wsdlPort.getBinding();
- if (wsdlBinding == null) {
- throw new IllegalArgumentException("WSDL binding cannot be found for " + wsdlPortName);
- }
-
- // Save the portType
- wsdlPortType = wsdlBinding.getPortType();
- if (wsdlPortType == null) {
- throw new IllegalArgumentException("WSDL portType cannot be found for " + wsdlPortName);
- }
- wsdlPortTypeName = wsdlPortType.getQName();
-
- // Save the endpoint
- this.endpoint = endpoint;
-
- // Track if this endpoint is managed or not
- this.managed = managed;
- }
-
- /**
- * Constructor
- *
- * @param serviceName
- * @param portName
- * @param portType
- */
- public WebServicePortMetaData(QName serviceName, String portName, QName portTypeName, String endpoint) {
- wsdlServiceName = serviceName;
- wsdlPortName = new QName(serviceName.getNamespaceURI(), portName);
- wsdlPortTypeName = portTypeName;
- this.endpoint = endpoint;
- }
-
- /**
- * @return Returns the wsdlPort.
- */
- public javax.wsdl.Port getPort() {
- return wsdlPort;
- }
-
- /**
- * @return Returns the wsdlService.
- */
- public QName getServiceName() {
- return wsdlServiceName;
- }
-
- /**
- * @return Returns the wsdlService.
- */
- public javax.wsdl.Service getService() {
- return wsdlService;
- }
-
- /**
- * @return Returns the wsdlPortType.
- */
- public PortType getPortType() {
- return wsdlPortType;
- }
-
- /**
- * @return Returns the wsdlPortType.
- */
- public QName getPortTypeName() {
- return wsdlPortTypeName;
- }
-
- /**
- * @return Returns the wsdlBinding.
- */
- public Binding getBinding() {
- return wsdlBinding;
- }
-
- /**
- * @return Returns the wsdlPortName.
- */
- public QName getPortName() {
- return wsdlPortName;
- }
-
- /**
- * Returns the endpoint of a given port.
- *
- * @param wsdlPort
- * @return
- */
- public String getEndpoint() {
-
- // Return the specified endpoint
- if (endpoint != null)
- return endpoint;
-
- // Find the target endpoint on the port
- if (wsdlPort != null) {
- final List wsdlPortExtensions = wsdlPort.getExtensibilityElements();
- for (Iterator i = wsdlPortExtensions.iterator(); i.hasNext();) {
- final Object extension = i.next();
- if (extension instanceof SOAPAddress) {
- final SOAPAddress address = (SOAPAddress) extension;
- return address.getLocationURI();
- }
- }
- }
-
- return null;
- }
-
- /**
- * Returns the SOAP binding style.
- * @return
- */
- public String getStyle() {
-
- // Find the binding style
- String style = null;
- if (wsdlBinding != null) {
- final List wsdlBindingExtensions = wsdlBinding.getExtensibilityElements();
- SOAPBinding soapBinding = (SOAPBinding) getExtensibilityElement(wsdlBindingExtensions, SOAPBinding.class);
- if (soapBinding != null)
- style = soapBinding.getStyle();
- }
-
- // Default to document
- return (style == null) ? "document" : style;
- }
-
- /**
- * Returns the use attribute
- * @return
- */
- public String getUse() {
- List list = getAllOperationMetaData();
- WebServiceOperationMetaData operationMetaData = (WebServiceOperationMetaData) list.get(0);
- return operationMetaData.getUse();
- }
-
- /**
- * Returns the encoding attribute
- * @return
- */
- public String getEncoding() {
- List list = getAllOperationMetaData();
- WebServiceOperationMetaData operationMetaData = (WebServiceOperationMetaData) list.get(0);
- return operationMetaData.getEncoding();
- }
-
- /**
- * @return Returns true if this is a managed web service.
- */
- public boolean isManaged() {
- return managed;
- }
-
- /**
- * Returns the first extensibility element of the given type.
- * @param elements
- * @param type
- * @return
- */
- public static Object getExtensibilityElement(List elements, Class type) {
- for (Iterator i = elements.iterator(); i.hasNext();) {
- Object element = i.next();
- if (type.isInstance(element))
- return element;
- }
- return null;
- }
-
- /**
- * Returns the extensibility elements of the given type.
- * @param elements
- * @param type
- * @return
- */
- public static List getExtensibilityElements(List elements, Class type) {
- List result = new ArrayList();
- for (Iterator i = elements.iterator(); i.hasNext();) {
- Object element = i.next();
- if (type.isInstance(element))
- result.add(element);
- }
- return result;
- }
-
- /**
- * Get the operation signature from the SOAP Body
- * @param body
- * @return A list of QNames
- */
- public static List getOperationSignature(javax.xml.soap.SOAPBody body) {
- List signature = new ArrayList();
- for (Iterator i = body.getChildElements(); i.hasNext();) {
- Object child = i.next();
- if (child instanceof SOAPBodyElement) {
- Name name = ((SOAPBodyElement) child).getElementName();
- QName qname = new QName(name.getURI(), name.getLocalName(), name.getPrefix());
- signature.add(qname);
- }
- }
- return signature;
- }
-
- public static List getRPCOperationSignature(javax.xml.soap.SOAPBody body) {
- List signature = new ArrayList();
- for (Iterator i = body.getChildElements(); i.hasNext();) {
- Object child = i.next();
- if (child instanceof SOAPBodyElement) {
- SOAPBodyElement op = ((SOAPBodyElement) child);
- for (Iterator j = op.getChildElements(); j.hasNext();) {
- Object part = i.next();
- if (part instanceof SOAPElement) {
- SOAPElement p = (SOAPElement) part;
- signature.add(p.getLocalName());
- }
- }
- }
- }
- return signature;
- }
-
- public WebServiceOperationMetaData getOperationMetaData(javax.xml.soap.SOAPBody body) {
- List s1 = getOperationSignature(body);
- // List rpcParts = getRPCOperationSignature(body);
- for (Iterator it = getAllOperationMetaData().iterator(); it.hasNext();) {
- WebServiceOperationMetaData descriptor = (WebServiceOperationMetaData) it.next();
-
- String style = descriptor.getStyle();
-
- if (style.equals("document")) {
- List s2 = descriptor.getOperationSignature();
- if (s1.equals(s2))
- return descriptor;
- } else {
- QName op1 = (QName) s1.get(0);
- QName op2 = descriptor.getRPCOperationName();
- if (op1.equals(op2)) {
- /*
- * // FIXME: [rfeng] We don't support method overloading
- * List partNames = getOperationSignature(binding,
- * bindingOperation); if (rpcParts.equals(partNames))
- */
- return descriptor;
- }
- }
- }
- return null;
- }
-
- public List getAllOperationMetaData() {
- if (allOperationMetaData == null) {
- allOperationMetaData = new ArrayList();
- for (Iterator it = wsdlBinding.getBindingOperations().iterator(); it.hasNext();) {
- final BindingOperation bindingOperation = (BindingOperation) it.next();
- if (bindingOperation.getOperation() != null)
- allOperationMetaData.add(new WebServiceOperationMetaData(wsdlBinding, bindingOperation));
- }
- }
- return allOperationMetaData;
- }
-
- public WebServiceOperationMetaData getOperationMetaData(String operationName) {
- for (Iterator it = getAllOperationMetaData().iterator(); it.hasNext();) {
- WebServiceOperationMetaData descriptor = (WebServiceOperationMetaData) it.next();
- String opName = descriptor.getBindingOperation().getOperation().getName();
-
- if (opName.equals(operationName))
- return descriptor;
- }
- return null;
- }
-
- /**
- * Returns the WSDL service contract
- * @return
- */
- public WSDLServiceContract getInterfaceType() {
- return interfaceType;
- }
-
-} \ No newline at end of file
diff --git a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/loader/WebServiceSCDLModelLoader.java b/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/loader/WebServiceSCDLModelLoader.java
deleted file mode 100644
index e60d77525f..0000000000
--- a/tags/java-stable-20060304/sca/binding.axis/src/main/java/org/apache/tuscany/binding/axis/loader/WebServiceSCDLModelLoader.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.apache.tuscany.binding.axis.loader;
-
-import org.apache.tuscany.binding.axis.assembly.WebServiceAssemblyFactory;
-import org.apache.tuscany.binding.axis.assembly.WebServiceBinding;
-import org.apache.tuscany.binding.axis.assembly.impl.WebServiceAssemblyFactoryImpl;
-import org.apache.tuscany.binding.axis.assembly.impl.WebServiceBindingImpl;
-import org.apache.tuscany.core.runtime.RuntimeContext;
-import org.apache.tuscany.core.system.annotation.Autowire;
-import org.apache.tuscany.core.loader.SCDLModelLoaderRegistry;
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.AssemblyModelObject;
-import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
-import org.osoa.sca.annotations.Init;
-import org.osoa.sca.annotations.Destroy;
-
-/**
- * Populates the assembly model from an SCDL model
- */
-@org.osoa.sca.annotations.Scope("MODULE")
-public class WebServiceSCDLModelLoader implements SCDLModelLoader {
-
- private RuntimeContext runtimeContext;
- private SCDLModelLoaderRegistry loaderRegistry;
- private WebServiceAssemblyFactory wsFactory;
-
- /**
- * Constructs a new WebServiceSCDLModelLoader.
- */
- public WebServiceSCDLModelLoader() {
- this.wsFactory=new WebServiceAssemblyFactoryImpl();
- }
-
- /**
- * @param runtimeContext The runtimeContext to set.
- */
- @Autowire
- public void setRuntimeContext(RuntimeContext runtimeContext) {
- this.runtimeContext = runtimeContext;
- }
-
- // @Autowire
- public void setLoaderRegistry(SCDLModelLoaderRegistry registry) {
- this.loaderRegistry = registry;
- }
-
- @Init(eager=true)
- public void init() {
- runtimeContext.addLoader(this);
-// loaderRegistry.registerLoader(this);
- }
-
- @Destroy
- public void destroy() {
- loaderRegistry.unregisterLoader(this);
- }
-
- /**
- * @see org.apache.tuscany.model.scdl.loader.SCDLModelLoader#load(org.apache.tuscany.model.assembly.AssemblyModelContext, java.lang.Object)
- */
- public AssemblyModelObject load(AssemblyModelContext modelContext, Object object) {
- if (object instanceof org.apache.tuscany.model.scdl.WebServiceBinding) {
- org.apache.tuscany.model.scdl.WebServiceBinding scdlBinding=(org.apache.tuscany.model.scdl.WebServiceBinding)object;
- WebServiceBinding binding=wsFactory.createWebServiceBinding();
- binding.setURI(scdlBinding.getUri());
-
- // Set the port URI into the assembly binding, it'll be resolved in the initialize method
- ((WebServiceBindingImpl)binding).setPortURI(scdlBinding.getPort());
-
- return binding;
-
- } else
- return null;
- }
-}