You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/10/24 06:31:01 UTC

svn commit: r587778 [5/13] - in /incubator/tuscany/branches/sca-java-1.0.1: ./ distribution/ distribution/bundle/ distribution/manifest/ distribution/webapp/src/main/java/org/apache/tuscany/sca/webapp/ distribution/webapp/src/main/resources/_node/ dist...

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDomain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDomain.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDomain.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDomain.java Tue Oct 23 21:30:02 2007
@@ -20,35 +20,17 @@
 package org.apache.tuscany.sca.binding.sca.axis2;
 
 import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
 
 import javax.xml.namespace.QName;
 
-import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.assembly.Component;
-import org.apache.tuscany.sca.assembly.ComponentService;
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.CompositeService;
-import org.apache.tuscany.sca.assembly.SCABinding;
-import org.apache.tuscany.sca.assembly.SCABindingFactory;
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.service.ContributionService;
-import org.apache.tuscany.sca.core.assembly.ActivationException;
-import org.apache.tuscany.sca.core.context.ServiceReferenceImpl;
-import org.apache.tuscany.sca.domain.SCADomainService;
-import org.apache.tuscany.sca.host.embedded.impl.ReallySmallRuntime;
-import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.apache.tuscany.sca.node.ComponentManager;
-import org.apache.tuscany.sca.node.ContributionManager;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-import org.apache.tuscany.sca.runtime.RuntimeComponentContext;
-import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
+import org.apache.tuscany.sca.domain.DomainException;
+import org.apache.tuscany.sca.domain.SCADomain;
+import org.apache.tuscany.sca.domain.SCADomainSPI;
+import org.apache.tuscany.sca.domain.model.Domain;
 import org.osoa.sca.CallableReference;
 import org.osoa.sca.ServiceReference;
-import org.osoa.sca.ServiceRuntimeException;
 
 /**
  * The very minimum domain implementation to get these tests going without creating a dependency on 
@@ -56,212 +38,190 @@
  * 
  * @version $Rev: 552343 $ $Date$
  */
-public class TestDomain implements SCANode {
+public class TestDomain implements SCADomainSPI {
     
-    private String nodeName;
     private String domainURI;
-    private static SCADomainService serviceDiscovery;   
-    private ReallySmallRuntime nodeRuntime;
-    
-    private ClassLoader cl = BaseTest.class.getClassLoader();
-    private Composite nodeComposite = null;
         
     
-    public TestDomain(String domainURI, String nodeName, TestServiceDiscoveryImpl serviceDiscovery)
-      throws Exception {
+    public TestDomain(String domainURI) {
         this.domainURI = domainURI; 
-        this.nodeName = nodeName;
-        this.serviceDiscovery = serviceDiscovery;
-        
-        try {
-
-            // create and start domainA
-            nodeRuntime = new ReallySmallRuntime(cl);
-            nodeRuntime.start();
-            
-            // Create an in-memory domain level composite
-            AssemblyFactory assemblyFactory = nodeRuntime.getAssemblyFactory();
-            nodeComposite = assemblyFactory.createComposite();
-            nodeComposite.setName(new QName(Constants.SCA10_NS, "domain"));
-            nodeComposite.setURI(domainURI);
-            
-            // add the top level composite into the composite activator
-            nodeRuntime.getCompositeActivator().setDomainComposite(nodeComposite);  
-            
-            // make the domain available to the model. 
-            ModelFactoryExtensionPoint factories = nodeRuntime.getExtensionPointRegistry().getExtensionPoint(ModelFactoryExtensionPoint.class);
-            NodeFactoryImpl domainFactory = new NodeFactoryImpl(this);
-            factories.addFactory(domainFactory);                       
-
-            // add a contribution to the domain
-            ContributionService contributionService = nodeRuntime.getContributionService();
-
-            // find the current directory as a URL. This is where our contribution 
-            // will come from
-            URL contributionURL = Thread.currentThread().getContextClassLoader().getResource(nodeName + "/");
-
-            // Contribute the SCA application
-            Contribution contribution = contributionService.contribute("http://calculator", contributionURL, null, //resolver, 
-                                                                       false);
-            Composite composite = contribution.getDeployables().get(0);
-
-            // Add the deployable composite to the domain
-            nodeComposite.getIncludes().add(composite);
-            nodeRuntime.getCompositeBuilder().build(composite);
-            nodeRuntime.getCompositeActivator().activate(composite);
-            nodeRuntime.getCompositeActivator().start(composite);
-            
-        } catch (Exception ex) {
-            System.err.println("Exception when creating domain " + ex.getMessage());
-            ex.printStackTrace(System.err);
-            throw ex;
-        }         
     }
     
-    public void start()
-        throws ActivationException {
+    public void start() throws DomainException {
         
     }
     
-    public void stop() 
-      throws ActivationException {
-        nodeRuntime.stop();
+    public void stop() throws DomainException {
     }
     
         
-    public String getNodeURI(){
-        return nodeName;
-    }  
-    
-    public String getDomainURI(){
+    public String getURI(){
         return domainURI;
-    } 
+    }
+     
     
+    List<ServiceEndpoint> serviceEndpoints = new ArrayList<ServiceEndpoint>();
     
-    public URL getNodeURL(){
-        return null;
-    }  
+    public class ServiceEndpoint {
+        private String domainUri;
+        private String nodeUri;
+        private String serviceName;
+        private String bindingName;
+        private String url;
+        
+        public ServiceEndpoint(String domainUri, String nodeUri, String serviceName, String bindingName, String URL){
+            this.domainUri = domainUri;
+            this.nodeUri = nodeUri;
+            this.serviceName = serviceName;
+            this.bindingName = bindingName;
+            this.url = URL;
+        }
+        
+        public boolean match(String domainUri, String serviceName, String bindingName) {
+            // trap the case where the we are trying to map
+            //   ComponentName/Service name with a registered ComponentName             - this is OK
+            //   ComponentName              with a registered ComponentName/ServiceName - this should fail
+            
+            boolean serviceNameMatch = false;
+            
+            if (this.serviceName.equals(serviceName)) {
+                serviceNameMatch = true;
+            } else {
+                int s = serviceName.indexOf('/');
+                if ((s != -1) &&
+                    (this.serviceName.equals(serviceName.substring(0, s)))){
+                    serviceNameMatch = true;
+                }
+            }
+            
+            return ((this.domainUri.equals(domainUri)) &&
+                    (serviceNameMatch) &&
+                    (this.bindingName.equals(bindingName)));
+        }
+        
+        public String getUrl() {
+            return url;
+        }     
+        
+        @Override
+        public String toString (){
+            return "[" +
+                   domainUri + " " +
+                   nodeUri + " " +
+                   serviceName + " " +
+                   bindingName + " " + 
+                   url +
+                   "]";
+        }
+    }
     
-    public URL getDomainURL(){
+    public Domain getDomainModel() {
         return null;
-    }     
+    }
+     
+    /**
+     * Accepts information about a service endpoint and holds onto it
+     * 
+     * @param domainUri the string uri for the distributed domain
+     * @param nodeUri the string uri for the current node
+     * @param serviceName the name of the service that is exposed and the provided endpoint
+     * @param bindingName the remote binding that is providing the endpoint
+     * @param url the enpoint url
+     */
+    public String registerServiceEndpoint(String domainUri, String nodeUri, String serviceName, String bindingName, String URL){
+        // if the service name ends in a "/" remove it
+        String modifiedServiceName = null;
+        if ( serviceName.endsWith("/") ) {
+            modifiedServiceName = serviceName.substring(0, serviceName.length() - 1);
+        } else {
+            modifiedServiceName = serviceName;
+        }        
+        ServiceEndpoint serviceEndpoint = new ServiceEndpoint (domainUri, nodeUri, modifiedServiceName, bindingName, URL);
+        serviceEndpoints.add(serviceEndpoint);
+        System.err.println("Registering service: " + serviceEndpoint.toString());
+        return "";
+    }
+    
+    public String removeServiceEndpoint(String domainUri, String nodeUri, String serviceName, String bindingName){
+        return "";  
+    }
+    /**
+     * Locates information about a service endpoint 
+     * 
+     * @param domainUri the string uri for the distributed domain
+     * @param serviceName the name of the service that is exposed and the provided endpoint
+     * @param bindingName the remote binding that we want to find an endpoint for
+     * @return url the endpoint url
+     */
+    public String findServiceEndpoint(String domainUri, String serviceName, String bindingName){
+        System.err.println("Finding service: [" + 
+                           domainUri + " " +
+                           serviceName + " " +
+                           bindingName +
+                           "]");
+        
+        String url = null;
+        
+        for(ServiceEndpoint serviceEndpoint : serviceEndpoints){
+            if ( serviceEndpoint.match(domainUri, serviceName, bindingName)){
+                url = serviceEndpoint.getUrl();
+                System.err.println("Matching service url: " + url); 
+            }
+        }
+        return url;
+    }
     
-    public SCADomainService getDomainService(){
-        return serviceDiscovery;
-    } 
+    public SCADomain getDomain(){
+        return null;
+    }
     
-    public ContributionManager getContributionManager(){
+    public String addNode(String nodeURI, String nodeURL){
         return null;
     }
     
-    public ComponentManager getComponentManager(){
+
+    public String removeNode(String nodeURI){
         return null;
+    }
+    
+    public void registerContribution(String nodeURI, String contributionURI, String contributionURL){
+    }
+    
+    public void unregisterContribution(String contributionURI){
     }    
     
-    public <B, R extends CallableReference<B>> R cast(B target) throws IllegalArgumentException {
-        return null; 
+    public void addContribution(String contributionURI, URL contributionURL) throws DomainException {
+    }
+        
+
+    public void removeContribution(String contributionURI) throws DomainException {
+    }
+    
+    public void addDeploymentComposite(String contributionURI, String compositeXML) throws DomainException {
     }
 
-    public <B> B getService(Class<B> businessInterface, String serviceName) {
-        ServiceReference<B> serviceReference = getServiceReference(businessInterface, serviceName);
-        if (serviceReference == null) {
-            throw new ServiceRuntimeException("Service not found: " + serviceName);
-        }
-        return serviceReference.getService();
+    public void addToDomainLevelComposite(QName compositeQName) throws DomainException {
+    }
+  
+    public void removeFromDomainLevelComposite(QName compositeQName) throws DomainException {
+    }
+    
+    public void startComposite(QName compositeName) throws DomainException {
     }
 
-    private <B> ServiceReference<B> createServiceReference(Class<B> businessInterface, String targetURI) {
-        try {
-            AssemblyFactory assemblyFactory = nodeRuntime.getAssemblyFactory();
-            Composite composite = assemblyFactory.createComposite();
-            composite.setName(new QName(Constants.SCA10_TUSCANY_NS, "default"));
-            RuntimeComponent component = (RuntimeComponent)assemblyFactory.createComponent();
-            component.setName("default");
-            component.setURI("default");
-            nodeRuntime.getCompositeActivator().configureComponentContext(component);
-            composite.getComponents().add(component);
-            RuntimeComponentReference reference = (RuntimeComponentReference)assemblyFactory.createComponentReference();
-            reference.setName("default");
-            ModelFactoryExtensionPoint factories =
-                nodeRuntime.getExtensionPointRegistry().getExtensionPoint(ModelFactoryExtensionPoint.class);
-            JavaInterfaceFactory javaInterfaceFactory = factories.getFactory(JavaInterfaceFactory.class);
-            InterfaceContract interfaceContract = javaInterfaceFactory.createJavaInterfaceContract();
-            interfaceContract.setInterface(javaInterfaceFactory.createJavaInterface(businessInterface));
-            reference.setInterfaceContract(interfaceContract);
-            component.getReferences().add(reference);
-            reference.setComponent(component);
-            SCABindingFactory scaBindingFactory = factories.getFactory(SCABindingFactory.class);
-            SCABinding binding = scaBindingFactory.createSCABinding();
-            binding.setURI(targetURI);
-            reference.getBindings().add(binding);       
-            return new ServiceReferenceImpl<B>(businessInterface, component, reference, binding, nodeRuntime
-                .getProxyFactory(), nodeRuntime.getCompositeActivator());
-        } catch (Exception e) {
-            throw new ServiceRuntimeException(e);
-        }
+    public void stopComposite(QName compositeName) throws DomainException {             
+    }
+    
+    public <B, R extends CallableReference<B>> R cast(B target) throws IllegalArgumentException {
+        return null;
+    }
+    
+    public <B> B getService(Class<B> businessInterface, String serviceName) {
+        return null;
     }
 
     public <B> ServiceReference<B> getServiceReference(Class<B> businessInterface, String name) {
-
-        // Extract the component name
-        String componentName;
-        String serviceName;
-        int i = name.indexOf('/');
-        if (i != -1) {
-            componentName = name.substring(0, i);
-            serviceName = name.substring(i + 1);
-
-        } else {
-            componentName = name;
-            serviceName = null;
-        }
-
-        // Lookup the component in the domain
-        
-        Component component = null;
-        
-        for (Composite composite: nodeComposite.getIncludes()) {
-            for (Component componentLoop: composite.getComponents()) {
-                if (componentLoop.getName().equals(componentName)) {
-                    component = componentLoop;
-                    break;
-                }
-            }
-        }        
-        if (component == null) {
-            // The component is not local in the partition, try to create a remote service ref
-            return createServiceReference(businessInterface, name);
-        }
-        RuntimeComponentContext componentContext = null;
-
-        // If the component is a composite, then we need to find the
-        // non-composite component that provides the requested service
-        if (component.getImplementation() instanceof Composite) {
-            for (ComponentService componentService : component.getServices()) {
-                if (serviceName == null || serviceName.equals(componentService.getName())) {
-                    CompositeService compositeService = (CompositeService)componentService.getService();
-                    if (compositeService != null) {
-                        if (serviceName != null) {
-                            serviceName = "$promoted$." + serviceName;
-                        }
-                        componentContext =
-                            ((RuntimeComponent)compositeService.getPromotedComponent()).getComponentContext();
-                        return componentContext.createSelfReference(businessInterface, compositeService
-                            .getPromotedService());
-                    }
-                    break;
-                }
-            }
-            // No matching service is found
-            throw new ServiceRuntimeException("Composite service not found: " + name);
-        } else {
-            componentContext = ((RuntimeComponent)component).getComponentContext();
-            if (serviceName != null) {
-                return componentContext.createSelfReference(businessInterface, serviceName);
-            } else {
-                return componentContext.createSelfReference(businessInterface);
-            }
-        }
+        return null;
     } 
     
     

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientCallbackOnewayRemoteImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientCallbackOnewayRemoteImpl.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientCallbackOnewayRemoteImpl.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientCallbackOnewayRemoteImpl.java Tue Oct 23 21:30:02 2007
@@ -21,7 +21,6 @@
 
 import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorldClient;
 import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorldServiceCallbackOnewayRemote;
-import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorldServiceCallbackRemote;
 import org.osoa.sca.annotations.Reference;
 
 public class HelloWorldClientCallbackOnewayRemoteImpl implements HelloWorldClient {

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientLocalImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientLocalImpl.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientLocalImpl.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientLocalImpl.java Tue Oct 23 21:30:02 2007
@@ -21,7 +21,6 @@
 
 import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorldClient;
 import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorldServiceLocal;
-import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorldServiceRemote;
 import org.osoa.sca.annotations.Reference;
 
 public class HelloWorldClientLocalImpl implements HelloWorldClient {

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientRemote2Impl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientRemote2Impl.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientRemote2Impl.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientRemote2Impl.java Tue Oct 23 21:30:02 2007
@@ -20,8 +20,6 @@
 package org.apache.tuscany.sca.binding.sca.axis2.helloworld.impl;
 
 import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorldClient;
-import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorldServiceLocal;
-import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorldServiceRemote;
 import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorldServiceRemote2;
 import org.osoa.sca.annotations.Reference;
 

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientRemoteImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientRemoteImpl.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientRemoteImpl.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/helloworld/impl/HelloWorldClientRemoteImpl.java Tue Oct 23 21:30:02 2007
@@ -20,7 +20,6 @@
 package org.apache.tuscany.sca.binding.sca.axis2.helloworld.impl;
 
 import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorldClient;
-import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorldServiceLocal;
 import org.apache.tuscany.sca.binding.sca.axis2.helloworld.HelloWorldServiceRemote;
 import org.osoa.sca.annotations.Reference;
 

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-xml/src/main/java/org/apache/tuscany/sca/binding/sca/xml/SCABindingProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-xml/src/main/java/org/apache/tuscany/sca/binding/sca/xml/SCABindingProcessor.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-xml/src/main/java/org/apache/tuscany/sca/binding/sca/xml/SCABindingProcessor.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-xml/src/main/java/org/apache/tuscany/sca/binding/sca/xml/SCABindingProcessor.java Tue Oct 23 21:30:02 2007
@@ -37,7 +37,10 @@
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
 import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
 import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+import org.apache.tuscany.sca.policy.IntentAttachPointType;
+import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
 import org.apache.tuscany.sca.policy.PolicyFactory;
+import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
 
 /**
  * A processor to read the XML that describes the SCA binding.
@@ -48,6 +51,7 @@
     private PolicyFactory policyFactory;       
     private SCABindingFactory scaBindingFactory;
     private PolicyAttachPointProcessor policyProcessor;
+    private IntentAttachPointTypeFactory  intentAttachPointTypeFactory;
 
     protected static final String BINDING_SCA = "binding.sca";
     protected static final QName BINDING_SCA_QNAME = new QName(Constants.SCA10_NS, BINDING_SCA);
@@ -56,6 +60,7 @@
         this.policyFactory = modelFactories.getFactory(PolicyFactory.class);
         this.scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class);
         policyProcessor = new PolicyAttachPointProcessor(policyFactory);
+        this.intentAttachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class);
     }
     
     //FIXME Remove this constructor
@@ -77,6 +82,10 @@
 
     public SCABinding read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
         SCABinding scaBinding = scaBindingFactory.createSCABinding();
+        IntentAttachPointType bindingType = intentAttachPointTypeFactory.createBindingType();
+        bindingType.setName(getArtifactType());
+        bindingType.setUnresolved(true);
+        ((PolicySetAttachPoint)scaBinding).setType(bindingType);
         
         // Read policies
         policyProcessor.readPolicies(scaBinding, reader);

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-xml/src/test/java/org/apace/tuscany/sca/binding/sca/xml/ReadTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-xml/src/test/java/org/apace/tuscany/sca/binding/sca/xml/ReadTestCase.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-xml/src/test/java/org/apace/tuscany/sca/binding/sca/xml/ReadTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca-xml/src/test/java/org/apace/tuscany/sca/binding/sca/xml/ReadTestCase.java Tue Oct 23 21:30:02 2007
@@ -46,6 +46,7 @@
 import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl;
+import org.apache.tuscany.sca.policy.DefaultIntentAttachPointTypeFactory;
 import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
 import org.apache.tuscany.sca.policy.PolicyFactory;
 
@@ -114,7 +115,7 @@
         Composite composite = compositeProcessor.read(reader);
         assertNotNull(composite);
 
-        CompositeBuilderImpl compositeUtil = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, mapper, null, null);
+        CompositeBuilderImpl compositeUtil = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, new DefaultIntentAttachPointTypeFactory(), mapper, null, null);
         compositeUtil.build(composite);
         
         SCABinding referenceSCABinding = (SCABinding) composite.getComponents().get(0).getReferences().get(0).getBindings().get(0);

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/DistributedSCABindingImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/DistributedSCABindingImpl.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/DistributedSCABindingImpl.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/DistributedSCABindingImpl.java Tue Oct 23 21:30:02 2007
@@ -18,8 +18,6 @@
  */
 package org.apache.tuscany.sca.binding.sca.impl;
 
-import java.util.List;
-
 import org.apache.tuscany.sca.assembly.SCABinding;
 import org.apache.tuscany.sca.binding.sca.DistributedSCABinding;
 

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCABindingProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCABindingProviderFactory.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCABindingProviderFactory.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCABindingProviderFactory.java Tue Oct 23 21:30:02 2007
@@ -47,7 +47,7 @@
         NodeFactory domainFactory = factories.getFactory(NodeFactory.class);
         
         if (domainFactory != null) {
-        	node = domainFactory.getNode();
+        	node = domainFactory.getNode(); 
         }
         
     } 

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAReferenceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAReferenceBindingProvider.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAReferenceBindingProvider.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAReferenceBindingProvider.java Tue Oct 23 21:30:02 2007
@@ -23,7 +23,7 @@
 import org.apache.tuscany.sca.assembly.SCABinding;
 import org.apache.tuscany.sca.binding.sca.DistributedSCABinding;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.domain.SCADomainService;
+import org.apache.tuscany.sca.domain.SCADomainSPI;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.invocation.Invoker;
@@ -38,7 +38,7 @@
 import org.apache.tuscany.sca.runtime.RuntimeWire;
 import org.osoa.sca.ServiceUnavailableException;
 
-/**
+/** 
  * The sca reference binding provider mediates between the twin requirements of 
  * local sca bindings and remote sca bindings. In the local case is does 
  * very little. When the sca binding model is set as being remote (because a 
@@ -99,10 +99,10 @@
             // at this node. The binding uri might be null here if the dynamic reference has been
             // fully configured yet. It won't have all of the information until invocation time
             if ((node != null) && (binding.getURI() != null)) {
-                SCADomainService serviceDiscovery = node.getDomainService();
+                SCADomainSPI domainProxy = (SCADomainSPI)node.getDomain();
 
                 String serviceUrl =
-                    serviceDiscovery.findServiceEndpoint(node.getDomainURI(),
+                    domainProxy.findServiceEndpoint(node.getDomain().getURI(),
                                                          binding.getURI(),
                                                          SCABinding.class.getName());
                 if ((serviceUrl == null) || serviceUrl.equals("")) {

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAServiceBindingProvider.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAServiceBindingProvider.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAServiceBindingProvider.java Tue Oct 23 21:30:02 2007
@@ -23,8 +23,6 @@
 import org.apache.tuscany.sca.binding.sca.DistributedSCABinding;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.node.SCANode;
 import org.apache.tuscany.sca.provider.BindingProviderFactory;
 import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
@@ -42,7 +40,7 @@
  */
 public class RuntimeSCAServiceBindingProvider implements ServiceBindingProvider {
   
-	private SCANode node;
+	private SCANode node; 
     private RuntimeComponentService service;
     private BindingProviderFactory<DistributedSCABinding> distributedProviderFactory;
     private ServiceBindingProvider distributedProvider;

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/SCABindingImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/SCABindingImpl.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/SCABindingImpl.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/SCABindingImpl.java Tue Oct 23 21:30:02 2007
@@ -25,8 +25,8 @@
 import org.apache.tuscany.sca.assembly.Component;
 import org.apache.tuscany.sca.assembly.ComponentService;
 import org.apache.tuscany.sca.assembly.Extensible;
-import org.apache.tuscany.sca.assembly.SCABinding;
 import org.apache.tuscany.sca.assembly.OptimizableBinding;
+import org.apache.tuscany.sca.assembly.SCABinding;
 import org.apache.tuscany.sca.policy.Intent;
 import org.apache.tuscany.sca.policy.IntentAttachPointType;
 import org.apache.tuscany.sca.policy.PolicySet;

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/test/java/org/apace/tuscany/sca/binding/sca/SCABindingTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/test/java/org/apace/tuscany/sca/binding/sca/SCABindingTestCase.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/test/java/org/apace/tuscany/sca/binding/sca/SCABindingTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-sca/src/test/java/org/apace/tuscany/sca/binding/sca/SCABindingTestCase.java Tue Oct 23 21:30:02 2007
@@ -41,6 +41,7 @@
 import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl;
+import org.apache.tuscany.sca.policy.DefaultIntentAttachPointTypeFactory;
 import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
 import org.apache.tuscany.sca.policy.PolicyFactory;
 import org.junit.After;
@@ -101,7 +102,7 @@
 	       
 	        compositeReader.resolve(composite, resolver);
 	        
-	        CompositeBuilderImpl compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, mapper, null, null);
+	        CompositeBuilderImpl compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, new DefaultIntentAttachPointTypeFactory(), mapper, null, null);
 	        compositeBuilder.build(composite);
 	        
 	        SCABinding referenceSCABinding = (SCABinding) composite.getComponents().get(0).getReferences().get(0).getBindings().get(0);

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/pom.xml?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/pom.xml (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/pom.xml Tue Oct 23 21:30:02 2007
@@ -103,6 +103,16 @@
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-java2wsdl</artifactId>
             <version>1.3</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.ant</groupId>
+                    <artifactId>ant</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>xom</groupId>
+                    <artifactId>xom</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java Tue Oct 23 21:30:02 2007
@@ -18,8 +18,6 @@
  */
 package org.apache.tuscany.sca.binding.ws.axis2;
 
-import java.lang.reflect.InvocationTargetException;
-
 import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMElement;

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2OneWayBindingInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2OneWayBindingInvoker.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2OneWayBindingInvoker.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2OneWayBindingInvoker.java Tue Oct 23 21:30:02 2007
@@ -18,8 +18,6 @@
  */
 package org.apache.tuscany.sca.binding.ws.axis2;
 
-import java.lang.reflect.InvocationTargetException;
-
 import javax.xml.namespace.QName;
 
 import org.apache.axiom.soap.SOAPFactory;

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java Tue Oct 23 21:30:02 2007
@@ -53,7 +53,7 @@
         }
 
         // Set to use the Axiom data binding
-        contract.getInterface().setDefaultDataBinding(OMElement.class.getName());
+        contract.getInterface().resetDataBinding(OMElement.class.getName());
 
         axisClient = new Axis2ServiceClient(component, reference, wsBinding, servletHost, messageFactory);
     }

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java Tue Oct 23 21:30:02 2007
@@ -22,9 +22,7 @@
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
 import org.apache.tuscany.sca.host.http.ServletHost;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
-import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.provider.ServiceBindingProvider;
 import org.apache.tuscany.sca.runtime.RuntimeComponent;
@@ -53,7 +51,7 @@
         }
 
         // Set to use the Axiom data binding
-        contract.getInterface().setDefaultDataBinding(OMElement.class.getName());
+        contract.getInterface().resetDataBinding(OMElement.class.getName());
 
         axisProvider = new Axis2ServiceProvider(component, service, wsBinding, servletHost, messageFactory);
     }

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java Tue Oct 23 21:30:02 2007
@@ -54,10 +54,9 @@
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
+import org.apache.neethi.Policy;
 import org.apache.tuscany.sca.assembly.AbstractContract;
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
-import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.DeployedArtifact;
 import org.apache.tuscany.sca.host.http.ServletHost;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.interfacedef.wsdl.xml.XMLDocumentHelper;
@@ -70,7 +69,6 @@
 import org.apache.tuscany.sca.policy.security.ws.Axis2ConfigParamPolicy;
 import org.apache.tuscany.sca.runtime.RuntimeComponent;
 import org.apache.ws.commons.schema.resolver.URIResolver;
-import org.xml.sax.InputSource;
 
 public class Axis2ServiceClient {
 
@@ -340,6 +338,9 @@
                             configParam.setParameterElement(axis2ConfigParamPolicy.getParamElements().get(paramName));
                             configContext.getAxisConfiguration().addParameter(configParam);
                         }
+                    } else if ( policy instanceof Policy ) {
+                        Policy wsPolicy = (Policy)policy;
+                        configContext.getAxisConfiguration().applyPolicy(wsPolicy);
                     }
                 }
             }

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java Tue Oct 23 21:30:02 2007
@@ -28,6 +28,10 @@
 import java.security.PrivilegedAction;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 import javax.wsdl.Definition;
 import javax.wsdl.Port;
@@ -40,10 +44,16 @@
 import javax.xml.transform.dom.DOMSource;
 
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.soap.SOAPHeader;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
+import org.apache.axis2.transport.jms.JMSSender;
+import org.apache.axis2.transport.jms.JMSListener;
+import org.apache.axis2.transport.jms.JMSConstants;
+import org.apache.axis2.transport.jms.JMSUtils;
 import org.apache.axis2.addressing.AddressingConstants;
 import org.apache.axis2.addressing.EndpointReferenceHelper;
 import org.apache.axis2.context.ConfigurationContext;
@@ -52,17 +62,22 @@
 import org.apache.axis2.deployment.DeploymentException;
 import org.apache.axis2.deployment.ModuleBuilder;
 import org.apache.axis2.deployment.util.Utils;
+import org.apache.axis2.description.AxisEndpoint;
 import org.apache.axis2.description.AxisModule;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.Parameter;
+import org.apache.axis2.description.TransportInDescription;
+import org.apache.axis2.description.TransportOutDescription;
 import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;
 import org.apache.axis2.description.WSDL2Constants;
 import org.apache.axis2.description.WSDLToAxisServiceBuilder;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.MessageReceiver;
+import org.apache.axis2.engine.ListenerManager;
 import org.apache.axis2.i18n.Messages;
 import org.apache.axis2.wsdl.WSDLConstants;
+import org.apache.neethi.Policy;
 import org.apache.tuscany.sca.assembly.AbstractContract;
 import org.apache.tuscany.sca.assembly.Binding;
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
@@ -74,6 +89,7 @@
 import org.apache.tuscany.sca.interfacedef.java.JavaInterface;
 import org.apache.tuscany.sca.invocation.Message;
 import org.apache.tuscany.sca.invocation.MessageFactory;
+import org.apache.tuscany.sca.policy.Intent;
 import org.apache.tuscany.sca.policy.PolicySet;
 import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
 import org.apache.tuscany.sca.policy.security.ws.Axis2ConfigParamPolicy;
@@ -83,12 +99,16 @@
 import org.apache.tuscany.sca.runtime.RuntimeWire;
 
 public class Axis2ServiceProvider {
+    
+    private final static Logger logger = Logger.getLogger(Axis2ServiceProvider.class.getName());    
 
     private AbstractContract contract;
     private WebServiceBinding wsBinding;
     private ServletHost servletHost;
     private MessageFactory messageFactory;
     private ConfigurationContext configContext;
+    private JMSSender jmsSender;
+    private JMSListener jmsListener;
 
     public static final QName QNAME_WSA_ADDRESS =
         new QName(AddressingConstants.Final.WSA_NAMESPACE, AddressingConstants.EPR_ADDRESS);
@@ -103,7 +123,15 @@
     // TODO: what to do about the base URI?
     // This port number may be used to construct callback URIs.  The value 8085 is used
     // beacuse it matches the service port number used by the simple-callback-ws sample.
-    private static final String BASE_URI = "http://localhost:8085/";
+    private static final String BASE_HTTP_URI = "http://localhost:8085/";
+    private static final String BASE_JMS_URI = "jms:";
+    
+    private static final String DEFAULT_QUEUE_CONNECTION_FACTORY = "TuscanyQueueConnectionFactory";
+    
+    private static final QName TRANSPORT_JMS_QUALIFIED_INTENT = new QName("http://www.osoa.org/xmlns/sca/1.0","transport.jms");
+    
+    private PolicySet transportJmsPolicySet = null;
+        
 
     public Axis2ServiceProvider(RuntimeComponent component,
                                 AbstractContract contract,
@@ -115,6 +143,7 @@
         this.wsBinding = wsBinding;
         this.servletHost = servletHost;
         this.messageFactory = messageFactory;
+
         
         try {
             TuscanyAxisConfigurator tuscanyAxisConfigurator = new TuscanyAxisConfigurator();
@@ -129,7 +158,45 @@
 
         configContext.setContextRoot(servletHost.getContextPath());
 
-        String uri = computeActualURI(BASE_URI, component, contract).normalize().toString();
+        // pull out the binding intents to see what sort of transport is required
+        transportJmsPolicySet = getPolicySet(TRANSPORT_JMS_QUALIFIED_INTENT);
+        
+        String uri;
+        
+        if (transportJmsPolicySet != null){
+            uri = computeActualURI(BASE_JMS_URI, component, contract).normalize().toString();
+            
+            // construct the rest of the uri based on the policy. All the details are put
+            // into the uri here rather than being place directly into the Axis configuration 
+            // as the Axis JMS sender relies on parsing the target URI      
+            Axis2ConfigParamPolicy axis2ConfigParamPolicy = null;
+            for ( Object policy : transportJmsPolicySet.getPolicies() ) {
+                if ( policy instanceof Axis2ConfigParamPolicy ) {
+                    axis2ConfigParamPolicy = (Axis2ConfigParamPolicy)policy;
+                    Iterator paramIterator = axis2ConfigParamPolicy.getParamElements().get(DEFAULT_QUEUE_CONNECTION_FACTORY).getChildElements();
+                    
+                    if (paramIterator.hasNext()){
+                        StringBuffer uriParams = new StringBuffer("?");
+                       
+                        while (paramIterator.hasNext()){
+                            OMElement parameter = (OMElement)paramIterator.next();
+                            uriParams.append(parameter.getAttributeValue(new QName("","name")));
+                            uriParams.append("=");
+                            uriParams.append(parameter.getText());
+                            
+                            if (paramIterator.hasNext()){
+                                uriParams.append("&");
+                            }
+                        }
+                        
+                        uri = uri + uriParams;
+                    }
+                }
+            }                     
+        } else {
+            uri = computeActualURI(BASE_HTTP_URI, component, contract).normalize().toString();
+        }
+        
         if (uri.endsWith("/")) {
             uri = uri.substring(0, uri.length() - 1);
         }
@@ -155,23 +222,77 @@
         // service for every port
 
         try {
-            AxisService axisService = createAxisService(); 
-            configContext.getAxisConfiguration().addService(createAxisService());
+            AxisService axisService = createAxisService();
+            configContext.getAxisConfiguration().addService( axisService );
+          
+            if ( axisService.getEndpointURL().startsWith( "http" ) ) {
+                Axis2ServiceServlet servlet = new Axis2ServiceServlet();
+                servlet.init(configContext);
+                String servletURI = wsBinding.getURI();
+                configContext.setContextRoot(servletURI);
+                servletHost.addServletMapping(servletURI, servlet);
+            } else if ( axisService.getEndpointURL().startsWith( "jms" ) ) {
+                logger.log(Level.INFO,"Axis2 JMS URL=" + axisService.getEndpointURL() );
+                
+                jmsListener = new JMSListener();
+                jmsSender = new JMSSender();
+                ListenerManager listenerManager = configContext.getListenerManager();
+                TransportInDescription trsIn = configContext.getAxisConfiguration().getTransportIn(Constants.TRANSPORT_JMS);
+                                
+                // get JMS transport parameters from the binding uri
+                Map<String, String> jmsProps = JMSUtils.getProperties( wsBinding.getURI() );
+
+                // collect the parameters used to configure the JMS transport
+                OMFactory fac = OMAbstractFactory.getOMFactory();
+                OMElement parms = fac.createOMElement(DEFAULT_QUEUE_CONNECTION_FACTORY, null);                    
+
+                for ( String key : jmsProps.keySet() ) {
+                    OMElement param = fac.createOMElement("parameter", null);
+                    param.addAttribute( "name", key, null );
+                    param.addChild(fac.createOMText(param, jmsProps.get(key)));
+                    parms.addChild(param);
+                }
+                
+                Parameter queueConnectionFactory = new Parameter(DEFAULT_QUEUE_CONNECTION_FACTORY, parms);
+                trsIn.addParameter( queueConnectionFactory );
+                
+                trsIn.setReceiver(jmsListener);
+
+                configContext.getAxisConfiguration().addTransportIn( trsIn );
+                TransportOutDescription trsOut = configContext.getAxisConfiguration().getTransportOut(Constants.TRANSPORT_JMS);
+                //configContext.getAxisConfiguration().addTransportOut( trsOut );
+                trsOut.setSender(jmsSender);
+
+                if (listenerManager == null) {
+                    listenerManager = new ListenerManager();
+                    listenerManager.init(configContext);
+                }
+                listenerManager.addListener(trsIn, true);
+                jmsSender.init(configContext, trsOut);
+                jmsListener.init(configContext, trsIn);
+                jmsListener.start();
+            }
         } catch (AxisFault e) {
             throw new RuntimeException(e);
-        } 
-
-        Axis2ServiceServlet servlet = new Axis2ServiceServlet();
-        servlet.init(configContext);
-        String servletURI = wsBinding.getURI();
-        servletHost.addServletMapping(servletURI, servlet);
+        }
     }
 
     public void stop() {
-        servletHost.removeServletMapping(wsBinding.getURI());
+        if ( jmsListener != null ) {
+            jmsListener.stop();
+            jmsListener.destroy();
+        }
+        else {
+            servletHost.removeServletMapping(wsBinding.getURI());
+        }
+
+        if ( jmsSender != null )
+            jmsSender.stop();
+
         try {
             configContext.getAxisConfiguration().removeService(wsBinding.getURI());
-        } catch (AxisFault e) {
+        }
+        catch (AxisFault e) {
             throw new RuntimeException(e);
         }
     }
@@ -186,7 +307,7 @@
      * If the <binding.ws> has no wsdlElement but does have a uri attribute then
      * the uri takes precidence over any implicitly used WSDL.
      * 
-     * @param parent
+     * @param baseURI
      */
     protected URI computeActualURI(String baseURI, RuntimeComponent component, AbstractContract contract) {
 
@@ -338,9 +459,20 @@
         AxisService axisService = builder.populateService();
 
         String path = URI.create(wsBinding.getURI()).getPath();
-        axisService.setName(path);
+        String name = ( path.startsWith( "/") ? path.substring(1) : path );
+        axisService.setName(name);
+        String endpointURL = wsBinding.getURI();
+        axisService.setEndpointURL(endpointURL );
         axisService.setDocumentation("Tuscany configured AxisService for service: " + wsBinding.getURI());
-
+        for ( Iterator i = axisService.getEndpoints().values().iterator(); i.hasNext(); ) {
+            AxisEndpoint ae = (AxisEndpoint)i.next();
+            if (endpointURL.startsWith("jms") ) {
+                Parameter qcf = new Parameter(JMSConstants.CONFAC_PARAM, null);
+                qcf.setValue(DEFAULT_QUEUE_CONNECTION_FACTORY);
+                axisService.addParameter(qcf);
+                break;
+            }
+        }
         // Use the existing WSDL
         Parameter wsdlParam = new Parameter(WSDLConstants.WSDL_4_J_DEFINITION, null);
         wsdlParam.setValue(definition);
@@ -428,7 +560,8 @@
         // create a message object and set the args as its body
         Message msg = messageFactory.createMessage();
         msg.setBody(args);
-
+        msg.setOperation( op );
+        
         // if reference parameters are needed, create a new "To" EPR to hold them
         EndpointReference to = null;
         if (callbackAddress != null ||
@@ -468,6 +601,24 @@
         return wsBinding;
     }
     
+    private PolicySet getPolicySet(QName intentName){
+        PolicySet returnPolicySet = null;
+        
+        if ( wsBinding instanceof PolicySetAttachPoint ) {
+            PolicySetAttachPoint policiedBinding = (PolicySetAttachPoint)wsBinding; 
+            for ( PolicySet policySet : policiedBinding.getPolicySets() ) {
+                for (Intent intent : policySet.getProvidedIntents()){
+                    if ( intent.getName().equals(intentName) ){
+                        returnPolicySet = policySet;
+                        break;
+                    }
+                }
+            }
+        }
+        
+        return returnPolicySet;
+    } 
+    
     private void configureSecurity() throws AxisFault {
         if ( wsBinding instanceof PolicySetAttachPoint ) {
             PolicySetAttachPoint policiedBinding = (PolicySetAttachPoint)wsBinding; 
@@ -483,6 +634,9 @@
                             configParam.setParameterElement(axis2ConfigParamPolicy.getParamElements().get(paramName));
                             configContext.getAxisConfiguration().addParameter(configParam);
                         }
+                    } else if ( policy instanceof Policy ) {
+                        Policy wsPolicy = (Policy)policy;
+                        configContext.getAxisConfiguration().applyPolicy(wsPolicy);
                     }
                 }
             }

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceServlet.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceServlet.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceServlet.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceServlet.java Tue Oct 23 21:30:02 2007
@@ -38,11 +38,8 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.axis2.AxisFault;
-import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.description.TransportInDescription;
-import org.apache.axis2.engine.ListenerManager;
 import org.apache.axis2.transport.http.AxisServlet;
 import org.apache.axis2.transport.http.ListingAgent;
 import org.apache.axis2.transport.http.server.HttpUtils;

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Java2WSDLHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Java2WSDLHelper.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Java2WSDLHelper.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Java2WSDLHelper.java Tue Oct 23 21:30:02 2007
@@ -23,10 +23,10 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.reflect.Method;
+import java.net.URI;
 import java.net.URL;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 
 import javax.wsdl.Binding;
 import javax.wsdl.BindingOperation;
@@ -43,8 +43,8 @@
 import javax.wsdl.Types;
 import javax.wsdl.WSDLException;
 import javax.wsdl.extensions.ExtensibilityElement;
+import javax.wsdl.extensions.UnknownExtensibilityElement;
 import javax.wsdl.extensions.schema.Schema;
-import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLLocator;
 import javax.wsdl.xml.WSDLReader;
 import javax.xml.namespace.QName;
@@ -56,18 +56,25 @@
 import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;
 import org.apache.tuscany.sca.interfacedef.wsdl.DefaultWSDLFactory;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
+import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
 import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterfaceContract;
+import org.apache.tuscany.sca.interfacedef.wsdl.XSDefinition;
 import org.apache.tuscany.sca.interfacedef.wsdl.impl.InvalidWSDLException;
 import org.apache.tuscany.sca.interfacedef.wsdl.impl.WSDLOperationIntrospectorImpl;
+import org.apache.tuscany.sca.interfacedef.wsdl.xml.WSDLModelResolver;
 import org.apache.tuscany.sca.interfacedef.wsdl.xml.XMLDocumentHelper;
 import org.apache.tuscany.sca.policy.Intent;
 import org.apache.tuscany.sca.policy.IntentAttachPoint;
+import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.commons.schema.XmlSchemaCollection;
 import org.apache.ws.java2wsdl.Java2WSDLBuilder;
 import org.osoa.sca.annotations.OneWay;
+import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
 import org.xml.sax.InputSource;
 
 /**
@@ -78,7 +85,8 @@
     /**
      * Create a WSDLInterfaceContract from a JavaInterfaceContract
      */
-    public static WSDLInterfaceContract createWSDLInterfaceContract(JavaInterfaceContract contract, WebServiceBinding wsBinding) {
+    public static WSDLInterfaceContract createWSDLInterfaceContract(JavaInterfaceContract contract,
+                                                                    WebServiceBinding wsBinding) {
         JavaInterface iface = (JavaInterface)contract.getInterface();
         Definition def = Java2WSDLHelper.createDefinition(iface.getJavaClass(), wsBinding);
 
@@ -98,14 +106,13 @@
         PortType portType = (PortType)def.getAllPortTypes().values().iterator().next();
         wsdlInterface.setPortType(portType);
 
-        readInlineSchemas(def, wsdlDefinition.getInlinedSchemas());
+        readInlineSchemas(wsdlFactory, wsdlDefinition, def, new XmlSchemaCollection());
 
         try {
             for (Operation op : iface.getOperations()) {
                 javax.wsdl.Operation wsdlOp = portType.getOperation(op.getName(), null, null);
                 WSDLOperationIntrospectorImpl opx =
-                    new WSDLOperationIntrospectorImpl(wsdlFactory, wsdlOp, wsdlDefinition.getInlinedSchemas(), null,
-                                                      null);
+                    new WSDLOperationIntrospectorImpl(wsdlFactory, wsdlOp, wsdlDefinition, null, null);
 
                 Operation clonedOp = (Operation)op.clone();
                 clonedOp.setDataBinding(null);
@@ -117,8 +124,8 @@
                 for (DataType<?> dt : clonedOp.getInputType().getLogical()) {
                     dt.setDataBinding(null);
                 }
-                
-                if (clonedOp.getOutputType() != null ){
+
+                if (clonedOp.getOutputType() != null) {
                     clonedOp.getOutputType().setDataBinding(null);
                 }
                 for (DataType<?> dt : clonedOp.getFaultTypes()) {
@@ -138,29 +145,92 @@
         return wsdlContract;
     }
 
-    protected static void readInlineSchemas(Definition definition, XmlSchemaCollection schemaCollection) {
+    private static Document promote(Element element) {
+        Document doc = (Document)element.getOwnerDocument().cloneNode(false);
+        Element schema = (Element)doc.importNode(element, true);
+        doc.appendChild(schema);
+        Node parent = element.getParentNode();
+        while (parent instanceof Element) {
+            Element root = (Element)parent;
+            NamedNodeMap nodeMap = root.getAttributes();
+            for (int i = 0; i < nodeMap.getLength(); i++) {
+                Attr attr = (Attr)nodeMap.item(i);
+                String name = attr.getName();
+                if ("xmlns".equals(name) || name.startsWith("xmlns:")) {
+                    if (schema.getAttributeNode(name) == null) {
+                        schema.setAttributeNodeNS((Attr)doc.importNode(attr, true));
+                    }
+                }
+            }
+            parent = parent.getParentNode();
+        }
+        doc.setDocumentURI(element.getOwnerDocument().getDocumentURI());
+        return doc;
+    }
+
+    /**
+     * Populate the inline schemas including those from the imported definitions
+     * 
+     * @param definition
+     * @param schemaCollection
+     */
+    private static void readInlineSchemas(WSDLFactory wsdlFactory,
+                                          WSDLDefinition wsdlDefinition,
+                                          Definition definition,
+                                          XmlSchemaCollection schemaCollection) {
         Types types = definition.getTypes();
         if (types != null) {
+            int index = 0;
             for (Object ext : types.getExtensibilityElements()) {
-                if (ext instanceof Schema) {
-                    Element element = ((Schema)ext).getElement();
-                    schemaCollection.setBaseUri(((Schema)ext).getDocumentBaseURI());
-                    schemaCollection.read(element, definition.getDocumentBaseURI());
+                ExtensibilityElement extElement = (ExtensibilityElement)ext;
+                Element element = null;
+                if (WSDLModelResolver.XSD_QNAME_LIST.contains(extElement.getElementType())) {
+                    if (extElement instanceof Schema) {
+                        element = ((Schema)extElement).getElement();
+                    } else if (extElement instanceof UnknownExtensibilityElement) {
+                        element = ((UnknownExtensibilityElement)extElement).getElement();
+                    }
+                }
+                if (element != null) {
+                    Document doc = promote(element);
+                    XSDefinition xsDefinition = wsdlFactory.createXSDefinition();
+                    xsDefinition.setUnresolved(true);
+                    xsDefinition.setNamespace(element.getAttribute("targetNamespace"));
+                    xsDefinition.setDocument(doc);
+                    xsDefinition.setLocation(URI.create(doc.getDocumentURI() + "#" + index));
+                    loadXSD(schemaCollection, xsDefinition);
+                    wsdlDefinition.getXmlSchemas().add(xsDefinition);
+                    index++;
                 }
             }
         }
         for (Object imports : definition.getImports().values()) {
-            List<?> impList = (List<?>)imports;
+            List impList = (List)imports;
             for (Object i : impList) {
                 javax.wsdl.Import anImport = (javax.wsdl.Import)i;
-                // Read inline schemas
+                // Read inline schemas 
                 if (anImport.getDefinition() != null) {
-                    readInlineSchemas(anImport.getDefinition(), schemaCollection);
+                    readInlineSchemas(wsdlFactory, wsdlDefinition, anImport.getDefinition(), schemaCollection);
                 }
             }
         }
     }
 
+    private static void loadXSD(XmlSchemaCollection schemaCollection, XSDefinition definition) {
+        if (definition.getSchema() != null) {
+            return;
+        }
+        if (definition.getDocument() != null) {
+            String uri = null;
+            if (definition.getLocation() != null) {
+                uri = definition.getLocation().toString();
+            }
+            XmlSchema schema = schemaCollection.read(definition.getDocument(), uri, null);
+            definition.setSchemaCollection(schemaCollection);
+            definition.setSchema(schema);
+        }
+    }
+
     /**
      * Create a WSDL4J Definition object from a Java interface
      */
@@ -185,7 +255,7 @@
 
             WSDLLocatorImpl locator = new WSDLLocatorImpl(new ByteArrayInputStream(os.toByteArray()));
             Definition definition = reader.readWSDL(locator);
-            
+
             processSOAPVersion(definition, wsBinding);
             processNoArgAndVoidReturnMethods(definition, javaInterface);
 
@@ -198,18 +268,18 @@
 
     private static void processSOAPVersion(Definition definition, WebServiceBinding wsBinding) {
         if (requiresSOAP12(wsBinding)) {
-             removePort(definition, "SOAP11port_http");
-         } else {
-             removePort(definition, "SOAP12port_http");
-         }
+            removePort(definition, "SOAP11port_http");
+        } else {
+            removePort(definition, "SOAP12port_http");
+        }
     }
 
     private static void removePort(Definition definition, String portNameSuffix) {
         Service service = (Service)definition.getServices().values().iterator().next();
-        Map<?,?> ports = service.getPorts();
+        Map<?, ?> ports = service.getPorts();
         for (Object o : ports.keySet()) {
             if (((String)o).endsWith(portNameSuffix)) {
-                Port p = (Port) ports.remove(o);
+                Port p = (Port)ports.remove(o);
                 definition.removeBinding(p.getBinding().getQName());
                 break;
             }
@@ -217,7 +287,7 @@
     }
 
     private static final QName SOAP12_INTENT = new QName("http://www.osoa.org/xmlns/sca/1.0", "soap12");
-    
+
     private static boolean requiresSOAP12(WebServiceBinding wsBinding) {
         if (wsBinding instanceof IntentAttachPoint) {
             List<Intent> intents = ((IntentAttachPoint)wsBinding).getRequiredIntents();
@@ -266,12 +336,12 @@
                 Message inputMsg = input.getMessage();
                 if (inputMsg.getParts().isEmpty()) {
                     // create wrapper element and add it to the schema DOM
-                    Element wrapper = document.createElementNS("http://www.w3.org/2001/XMLSchema",
-                                                               xsPrefix + ":element");
+                    Element wrapper =
+                        document.createElementNS("http://www.w3.org/2001/XMLSchema", xsPrefix + ":element");
                     wrapper.setAttribute("name", opName);
                     schema.appendChild(wrapper);
-                    Element complexType = document.createElementNS("http://www.w3.org/2001/XMLSchema",
-                                                                   xsPrefix + ":complexType");
+                    Element complexType =
+                        document.createElementNS("http://www.w3.org/2001/XMLSchema", xsPrefix + ":complexType");
                     wrapper.appendChild(complexType);
 
                     // create new part for the wrapper and add it to the message
@@ -294,12 +364,12 @@
                 if (!isOneWay) {
                     // create wrapper element and add it to the schema DOM
                     String msgName = opName + "Response";
-                    Element wrapper = document.createElementNS("http://www.w3.org/2001/XMLSchema",
-                                                               xsPrefix + ":element");
+                    Element wrapper =
+                        document.createElementNS("http://www.w3.org/2001/XMLSchema", xsPrefix + ":element");
                     wrapper.setAttribute("name", msgName);
                     schema.appendChild(wrapper);
-                    Element complexType = document.createElementNS("http://www.w3.org/2001/XMLSchema",
-                                                                   xsPrefix + ":complexType");
+                    Element complexType =
+                        document.createElementNS("http://www.w3.org/2001/XMLSchema", xsPrefix + ":complexType");
                     wrapper.appendChild(complexType);
 
                     // create new part for the wrapper

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/engine/config/axis2.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/engine/config/axis2.xml?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/engine/config/axis2.xml (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/engine/config/axis2.xml Tue Oct 23 21:30:02 2007
@@ -200,26 +200,29 @@
         <!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter>            -->
     </transportReceiver>
     
-    <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
-    <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
+     <!-- Added by Tuscany -->
+     <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
+        <!--  These configuation parameters now come from the binding.ws uri
+              or from a policy set
         <parameter name="myTopicConnectionFactory">
-        	<parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
-        	<parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
-        	<parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
+            <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+            <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
+            <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
         </parameter>
 
         <parameter name="myQueueConnectionFactory">
-        	<parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
-        	<parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
-        	<parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
+            <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+            <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
+            <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
         </parameter>
 
         <parameter name="default">
-        	<parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
-        	<parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
-        	<parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
+            <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+            <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
+            <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
         </parameter>
-    </transportReceiver>-->
+        -->
+     </transportReceiver>
 
     <!-- ================================================= -->
     <!-- Non-blocking http/s Transport Listener  -->
@@ -302,8 +305,8 @@
         <parameter name="PROTOCOL">HTTP/1.1</parameter>
         <parameter name="Transfer-Encoding">chunked</parameter>
     </transportSender>
-    <!--<transportSender name="jms"-->
-                     <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
+    <transportSender name="jms"
+                     class="org.apache.axis2.transport.jms.JMSSender"/>
      
     <!-- ================================================= -->
     <!-- Non-blocking http/s Transport Sender  -->
@@ -357,6 +360,24 @@
 
 	<!-- Added by Tuscany -->
     <module ref="rampart"/>
+    
+    <!-- wsp:Policy wsu:Id="UTOverTransport" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+		<wsp:ExactlyOne>
+		  <wsp:All>
+ 		 	<sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+				<wsp:Policy>
+					<sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient" />
+				</wsp:Policy>
+			</sp:SignedSupportingTokens>
+			
+			<ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy"> 
+				<ramp:user>TuscanyWsUser</ramp:user>
+				<ramp:passwordType>PasswordText</ramp:passwordType>
+				<ramp:passwordCallbackClass>org.apache.tuscany.sca.binding.ws.axis2.itests.policy.wspolicy.ClientPWCBHandler</ramp:passwordCallbackClass>
+			</ramp:RampartConfig>
+			</wsp:All>
+		</wsp:ExactlyOne>
+	</wsp:Policy-->
 
     <!--Configuring module , providing parameters for modules whether they refer or not-->
     <!--<moduleConfig name="addressing">-->
@@ -419,9 +440,10 @@
                      class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
             <handler name="SOAPMessageBodyBasedDispatcher"
                      class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
+<!--
             <handler name="HTTPLocationBasedDispatcher"
                      class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
+-->					 
         </phase>
         <phase name="RMPhase"/>
         <!--  System pre defined phases       -->
@@ -458,9 +480,10 @@
                      class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
             <handler name="SOAPMessageBodyBasedDispatcher"
                      class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
+<!--
             <handler name="HTTPLocationBasedDispatcher"
                      class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
+-->					 
         </phase>
         <phase name="RMPhase"/>
         <!--      user can add his own phases to this area  -->

Modified: incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/Java2WSDLHelperTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/Java2WSDLHelperTestCase.java?rev=587778&r1=587777&r2=587778&view=diff
==============================================================================
--- incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/Java2WSDLHelperTestCase.java (original)
+++ incubator/tuscany/branches/sca-java-1.0.1/modules/binding-ws-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/Java2WSDLHelperTestCase.java Tue Oct 23 21:30:02 2007
@@ -27,7 +27,6 @@
 
 import junit.framework.TestCase;
 
-import org.apache.tuscany.sca.binding.ws.axis2.Java2WSDLHelper;
 import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
 import org.apache.tuscany.sca.interfacedef.java.DefaultJavaInterfaceFactory;
 import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceContract;



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org