You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/05/08 08:56:08 UTC

svn commit: r536103 - in /incubator/tuscany/java/sca/modules: binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/ core-spi/src/main/java/org/apache/tuscany/core/ core/src/main/java/org/apache/tuscany/core/runtime/

Author: jsdelfino
Date: Mon May  7 23:56:07 2007
New Revision: 536103

URL: http://svn.apache.org/viewvc?view=rev&rev=536103
Log:
Ported RMI binding to the latest SPIs.

Added:
    incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java   (with props)
Modified:
    incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/DefaultRMIBindingFactory.java
    incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentReference.java
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentService.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java

Modified: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/DefaultRMIBindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/DefaultRMIBindingFactory.java?view=diff&rev=536103&r1=536102&r2=536103
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/DefaultRMIBindingFactory.java (original)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/DefaultRMIBindingFactory.java Mon May  7 23:56:07 2007
@@ -33,7 +33,7 @@
     }
     
     public RMIBinding createRMIBinding() {
-        return new RMIBindingProvider(rmiHost);
+        return new RMIBindingProviderFactory(rmiHost);
     }
 
 }

Modified: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java?view=diff&rev=536103&r1=536102&r2=536103
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java Mon May  7 23:56:07 2007
@@ -43,22 +43,24 @@
 import org.apache.tuscany.invocation.Invoker;
 import org.apache.tuscany.invocation.Message;
 import org.apache.tuscany.invocation.MessageImpl;
-import org.apache.tuscany.provider.ReferenceBindingActivator;
 import org.apache.tuscany.provider.ReferenceBindingProvider;
-import org.apache.tuscany.provider.ServiceBindingActivator;
 import org.apache.tuscany.provider.ServiceBindingProvider;
 import org.apache.tuscany.rmi.RMIHost;
 import org.apache.tuscany.rmi.RMIHostException;
 import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.component.WorkContextTunnel;
 
+
 /**
- * @author administrator
+ * 
+ * RMIBindingProvider
  *
+ * @version $Rev: $ $Date: $
  */
-public class RMIBindingProvider extends RMIBindingImpl implements ReferenceBindingActivator,
-ReferenceBindingProvider, ServiceBindingActivator, ServiceBindingProvider, MethodInterceptor {
+public class RMIBindingProvider implements ReferenceBindingProvider,
+    ServiceBindingProvider, MethodInterceptor {
 
+    private RMIBinding binding;
     private RMIHost rmiHost;
     private RuntimeWire wire;
     
@@ -68,7 +70,8 @@
     // and the component match in their service contracts.
     private Interface serviceInterface;
     
-    public RMIBindingProvider(RMIHost rmiHost) {
+    public RMIBindingProvider(RMIBinding binding, RMIHost rmiHost) {
+        this.binding = binding;
         this.rmiHost = rmiHost;
     }
 
@@ -83,8 +86,8 @@
     }
 
     public void start(RuntimeComponent component, RuntimeComponentService service) {
-        URI uri = URI.create(component.getURI() + "/" + getName());
-        setURI(uri.toString());
+        URI uri = URI.create(component.getURI() + "/" + binding.getName());
+        binding.setURI(uri.toString());
         RuntimeComponentService componentService = (RuntimeComponentService) service;
         
         //TODO : Need to figure out why we do a get(0)... will this work always...
@@ -94,8 +97,8 @@
         Remote rmiProxy = createRmiService();
         
         try {
-            rmiHost.registerService(getRmiServiceName(),
-                                    getPort(getRmiPort()),
+            rmiHost.registerService(binding.getRmiServiceName(),
+                                    getPort(binding.getRmiPort()),
                                     rmiProxy);
         } catch (RMIHostException e) {
             throw new NoRemoteServiceException(e);
@@ -104,8 +107,8 @@
 
     public void stop(RuntimeComponent component, RuntimeComponentService service) {
         try {
-            rmiHost.unregisterService(getRmiServiceName(), 
-                                      getPort(getRmiPort()));
+            rmiHost.unregisterService(binding.getRmiServiceName(), 
+                                      getPort(binding.getRmiPort()));
         } catch (RMIHostException e) {
             throw new NoRemoteServiceException(e.getMessage());
         }
@@ -118,9 +121,9 @@
                 JavaInterfaceUtil.findMethod(((JavaInterface)reference.getInterfaceContract().getInterface()).getJavaClass(),
                                                 operation);
             return new RMIBindingInvoker(rmiHost, 
-                                             getRmiHostName(), 
-                                             getRmiPort(), 
-                                             getRmiServiceName(), 
+                                             binding.getRmiHostName(), 
+                                             binding.getRmiPort(), 
+                                             binding.getRmiServiceName(), 
                                              remoteMethod);
         } catch (NoSuchMethodException e) {
             throw new NoRemoteMethodException(operation.toString(), e);

Added: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java?view=auto&rev=536103
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java (added)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java Mon May  7 23:56:07 2007
@@ -0,0 +1,47 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ *  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.rmi;
+
+import org.apache.tuscany.provider.BindingProviderFactory;
+import org.apache.tuscany.provider.ReferenceBindingProvider;
+import org.apache.tuscany.provider.ServiceBindingProvider;
+import org.apache.tuscany.rmi.RMIHost;
+
+
+/**
+ * 
+ * RMIBindingProvider
+ *
+ * @version $Rev$ $Date$
+ */
+public class RMIBindingProviderFactory extends RMIBindingImpl implements BindingProviderFactory {
+
+    private RMIHost rmiHost;
+    
+    public RMIBindingProviderFactory(RMIHost rmiHost) {
+        this.rmiHost = rmiHost;
+    }
+
+    public ReferenceBindingProvider createReferenceBindingProvider() {
+        return new RMIBindingProvider(this, rmiHost);
+    }
+    
+    public ServiceBindingProvider createServiceBindingProvider() {
+        return new RMIBindingProvider(this, rmiHost);
+    }
+}

Propchange: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentReference.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentReference.java?view=diff&rev=536103&r1=536102&r2=536103
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentReference.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentReference.java Mon May  7 23:56:07 2007
@@ -23,6 +23,7 @@
 
 import org.apache.tuscany.assembly.Binding;
 import org.apache.tuscany.assembly.ComponentReference;
+import org.apache.tuscany.provider.ReferenceBindingProvider;
 
 /**
  * @version $Rev$ $Date$
@@ -48,4 +49,24 @@
      * @return
      */
     RuntimeWire getRuntimeWire(Binding binding);
+
+    /**
+     * Returns the reference binding provider associated with this
+     * component reference and the given binding.
+     * 
+     * @param binding
+     * @return
+     */
+    ReferenceBindingProvider getBindingProvider(Binding binding);
+    
+    /**
+     * Sets the reference binding provider associated with this
+     * component reference and the given binding.
+     * 
+     * @param binding
+     * @param bindingProvider
+     * @return
+     */
+    void setBindingProvider(Binding binding, ReferenceBindingProvider bindingProvider);
+    
 }

Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentService.java?view=diff&rev=536103&r1=536102&r2=536103
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentService.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponentService.java Mon May  7 23:56:07 2007
@@ -23,6 +23,7 @@
 
 import org.apache.tuscany.assembly.Binding;
 import org.apache.tuscany.assembly.ComponentService;
+import org.apache.tuscany.provider.ServiceBindingProvider;
 
 /**
  * @version $Rev$ $Date$
@@ -62,4 +63,22 @@
      */
     List<RuntimeWire> getCallbackWires();
 
+    /**
+     * Returns the service binding provider associated with this
+     * component service and the given binding.
+     * 
+     * @param binding
+     * @return
+     */
+    ServiceBindingProvider getBindingProvider(Binding binding);
+    
+    /**
+     * Sets the service binding provider associated with this
+     * component service and the given binding.
+     *
+     * @param binding
+     * @param bindingProvider
+     */
+    void setBindingProvider(Binding binding, ServiceBindingProvider bindingProvider);
+    
 }

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java?view=diff&rev=536103&r1=536102&r2=536103
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java Mon May  7 23:56:07 2007
@@ -93,6 +93,50 @@
     }
 
     /**
+     * Configure a composite
+     * 
+     * @param composite
+     * @throws IncompatibleInterfaceContractException 
+     */
+    protected void configureComposite(Composite composite) throws IncompatibleInterfaceContractException {
+        for (Component component : composite.getComponents()) {
+
+            for (ComponentService service : component.getServices()) {
+                for (Binding binding : service.getBindings()) {
+                    if (binding instanceof BindingProviderFactory) {
+                        ServiceBindingProvider bindingProvider = ((BindingProviderFactory)binding).createServiceBindingProvider();
+                        if (bindingProvider != null) {
+                            ((RuntimeComponentService)service).setBindingProvider(binding, bindingProvider);
+                        }
+                    }
+                }
+            }
+            for (ComponentReference reference : component.getReferences()) {
+                for (Binding binding : reference.getBindings()) {
+                    if (binding instanceof BindingProviderFactory) {
+                        ReferenceBindingProvider bindingProvider = ((BindingProviderFactory)binding).createReferenceBindingProvider();
+                        if (bindingProvider != null) {
+                            ((RuntimeComponentReference)reference).setBindingProvider(binding, bindingProvider);
+                        }
+                    }
+                }
+            }
+
+            Implementation implementation = component.getImplementation();
+            if (implementation instanceof Composite) {
+                configureComposite((Composite)implementation);
+            } else if (implementation instanceof ImplementationProviderFactory) {
+                ImplementationProvider implementationProvider = ((ImplementationProviderFactory)implementation).createImplementationProvider();
+                if (implementationProvider != null) {
+                    ((RuntimeComponent)component).setImplementationProvider(implementationProvider);
+                    implementationProvider.configure((RuntimeComponent)component);
+                }
+                setScopeContainer(component);
+            }
+        }
+    }
+
+    /**
      * Start a composite
      */
     protected void startComposite(Composite composite) {
@@ -101,7 +145,7 @@
             for (ComponentService service : component.getServices()) {
                 for (Binding binding : service.getBindings()) {
                     if (binding instanceof BindingProviderFactory) {
-                        ServiceBindingActivator bindingActivator = ((BindingProviderFactory)binding).createServiceBindingProvider();
+                        ServiceBindingActivator bindingActivator = ((RuntimeComponentService)service).getBindingProvider(binding);
                         if (bindingActivator != null) {
                             bindingActivator.start((RuntimeComponent)component, (RuntimeComponentService)service);
                         }
@@ -111,13 +155,14 @@
             for (ComponentReference reference : component.getReferences()) {
                 for (Binding binding : reference.getBindings()) {
                     if (binding instanceof BindingProviderFactory) {
-                        ReferenceBindingActivator bindingActivator = ((BindingProviderFactory)binding).createReferenceBindingProvider();
+                        ReferenceBindingActivator bindingActivator = ((RuntimeComponentReference)reference).getBindingProvider(binding);
                         if (bindingActivator != null) {
                             bindingActivator.start((RuntimeComponent)component, (RuntimeComponentReference)reference);
                         }
                     }
                 }
             }
+
             Implementation implementation = component.getImplementation();
             if (implementation instanceof Composite) {
                 startComposite((Composite)implementation);
@@ -139,29 +184,6 @@
     }
 
     /**
-     * Configure a composite
-     * 
-     * @param composite
-     * @throws IncompatibleInterfaceContractException 
-     */
-    protected void configureComposite(Composite composite) throws IncompatibleInterfaceContractException {
-        for (Component component : composite.getComponents()) {
-
-            Implementation implementation = component.getImplementation();
-            if (implementation instanceof Composite) {
-                configureComposite((Composite)implementation);
-            } else if (implementation instanceof ImplementationProviderFactory) {
-                ImplementationProvider implementationProvider = ((ImplementationProviderFactory)implementation).createImplementationProvider();
-                if (implementationProvider != null) {
-                    ((RuntimeComponent)component).setImplementationProvider(implementationProvider);
-                    implementationProvider.configure((RuntimeComponent)component);
-                }
-                setScopeContainer(component);
-            }
-        }
-    }
-
-    /**
      * Stop a composite
      */
     public void stop(Composite composite) {
@@ -170,7 +192,7 @@
             for (ComponentService service : component.getServices()) {
                 for (Binding binding : service.getBindings()) {
                     if (binding instanceof BindingProviderFactory) {
-                        ServiceBindingActivator bindingActivator = ((BindingProviderFactory)binding).createServiceBindingProvider();
+                        ServiceBindingActivator bindingActivator = ((RuntimeComponentService)service).getBindingProvider(binding);
                         if (bindingActivator != null) {
                             bindingActivator.stop((RuntimeComponent)component, (RuntimeComponentService)service);
                         }
@@ -180,7 +202,7 @@
             for (ComponentReference reference : component.getReferences()) {
                 for (Binding binding : reference.getBindings()) {
                     if (binding instanceof BindingProviderFactory) {
-                        ReferenceBindingActivator bindingActivator = ((BindingProviderFactory)binding).createReferenceBindingProvider();
+                        ReferenceBindingActivator bindingActivator = ((RuntimeComponentReference)reference).getBindingProvider(binding);
                         if (bindingActivator != null) {
                             bindingActivator.stop((RuntimeComponent)component, (RuntimeComponentReference)reference);
                         }
@@ -248,7 +270,7 @@
     private InterfaceContract getInterfaceContract(ComponentReference reference, Binding binding) {
         InterfaceContract interfaceContract = reference.getInterfaceContract();
         if (binding instanceof BindingProviderFactory) {
-            ReferenceBindingProvider provider = ((BindingProviderFactory)binding).createReferenceBindingProvider();
+            ReferenceBindingProvider provider = ((RuntimeComponentReference)reference).getBindingProvider(binding);
             if (provider != null) {
                 InterfaceContract bindingContract = provider
                     .getBindingInterfaceContract((RuntimeComponentReference)reference);
@@ -379,7 +401,7 @@
         InterfaceContract interfaceContract = service.getInterfaceContract();
 
         if (binding instanceof BindingProviderFactory) {
-            ServiceBindingProvider provider = ((BindingProviderFactory)binding).createServiceBindingProvider();
+            ServiceBindingProvider provider = ((RuntimeComponentService)service).getBindingProvider(binding);
             if (provider != null) {
                 InterfaceContract bindingContract = provider.getBindingInterfaceContract((RuntimeComponentService)service);
                 if (bindingContract != null) {
@@ -512,7 +534,7 @@
                                       Operation operation,
                                       boolean isCallback) {
         if (binding instanceof BindingProviderFactory) {
-            ReferenceBindingProvider provider = ((BindingProviderFactory)binding).createReferenceBindingProvider();
+            ReferenceBindingProvider provider = ((RuntimeComponentReference)reference).getBindingProvider(binding);
             if (provider != null) {
                 Invoker invoker = provider.createInvoker((RuntimeComponent)component,
                                                                      (RuntimeComponentReference)reference,

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java?view=diff&rev=536103&r1=536102&r2=536103
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentReferenceImpl.java Mon May  7 23:56:07 2007
@@ -20,15 +20,19 @@
 package org.apache.tuscany.core.runtime;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.tuscany.assembly.Binding;
 import org.apache.tuscany.assembly.impl.ComponentReferenceImpl;
 import org.apache.tuscany.core.RuntimeComponentReference;
 import org.apache.tuscany.core.RuntimeWire;
+import org.apache.tuscany.provider.ReferenceBindingProvider;
 
 public class RuntimeComponentReferenceImpl extends ComponentReferenceImpl implements RuntimeComponentReference {
     private List<RuntimeWire> wires = new ArrayList<RuntimeWire>();
+    private Map<Binding, ReferenceBindingProvider> bindingProviders = new HashMap<Binding, ReferenceBindingProvider>();
 
     public void addRuntimeWire(RuntimeWire wire) {
         wires.add(wire);
@@ -45,6 +49,14 @@
             }
         }
         return null;
+    }
+    
+    public ReferenceBindingProvider getBindingProvider(Binding binding) {
+        return bindingProviders.get(binding);
+    }
+    
+    public void setBindingProvider(Binding binding, ReferenceBindingProvider bindingProvider) {
+        bindingProviders.put(binding, bindingProvider);
     }
 
 }

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java?view=diff&rev=536103&r1=536102&r2=536103
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentServiceImpl.java Mon May  7 23:56:07 2007
@@ -20,16 +20,20 @@
 package org.apache.tuscany.core.runtime;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.tuscany.assembly.Binding;
 import org.apache.tuscany.assembly.impl.ComponentServiceImpl;
 import org.apache.tuscany.core.RuntimeComponentService;
 import org.apache.tuscany.core.RuntimeWire;
+import org.apache.tuscany.provider.ServiceBindingProvider;
 
 public class RuntimeComponentServiceImpl extends ComponentServiceImpl implements RuntimeComponentService {
     private List<RuntimeWire> wires = new ArrayList<RuntimeWire>();
     private List<RuntimeWire> callbackWires = new ArrayList<RuntimeWire>();
+    private Map<Binding, ServiceBindingProvider> bindingProviders = new HashMap<Binding, ServiceBindingProvider>();
 
     public void addRuntimeWire(RuntimeWire wire) {
         wires.add(wire);
@@ -54,5 +58,13 @@
 
     public void addCallbackWire(RuntimeWire callbackWire) {
         this.callbackWires.add(callbackWire);
+    }
+    
+    public ServiceBindingProvider getBindingProvider(Binding binding) {
+        return bindingProviders.get(binding);
+    }
+    
+    public void setBindingProvider(Binding binding, ServiceBindingProvider bindingProvider) {
+        bindingProviders.put(binding, bindingProvider);
     }
 }



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