You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2010/04/08 14:21:20 UTC

svn commit: r931904 - in /tuscany/sca-java-2.x/trunk/modules: core-spi/src/main/java/org/apache/tuscany/sca/context/ core-spi/src/main/java/org/apache/tuscany/sca/runtime/ core/META-INF/ core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/ node...

Author: slaws
Date: Thu Apr  8 12:21:20 2010
New Revision: 931904

URL: http://svn.apache.org/viewvc?rev=931904&view=rev
Log:
TUSCANY-3529 - update binding matching to turn on code that looks at binding type provided intents

Modified:
    tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java
    tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeEndpoint.java
    tuscany/sca-java-2.x/trunk/modules/core/META-INF/MANIFEST.MF
    tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java
    tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java
    tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
    tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java
    tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientHandler.java

Modified: tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java?rev=931904&r1=931903&r2=931904&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java Thu Apr  8 12:21:20 2010
@@ -23,6 +23,7 @@ import org.apache.tuscany.sca.assembly.C
 import org.apache.tuscany.sca.assembly.Endpoint;
 import org.apache.tuscany.sca.assembly.EndpointReference;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.definitions.Definitions;
 import org.apache.tuscany.sca.invocation.Message;
 import org.apache.tuscany.sca.runtime.EndpointRegistry;
 import org.apache.tuscany.sca.runtime.RuntimeComponent;
@@ -41,8 +42,9 @@ public class CompositeContext {
     protected Composite domainComposite;
     protected String nodeURI;
     protected String domainURI;
+    protected Definitions systemDefinitions;
     
-    public CompositeContext(ExtensionPointRegistry registry, EndpointRegistry endpointRegistry, Composite domainComposite, String domainURI, String nodeURI) {
+    public CompositeContext(ExtensionPointRegistry registry, EndpointRegistry endpointRegistry, Composite domainComposite, String domainURI, String nodeURI, Definitions systemDefinitions) {
         this.extensionPointRegistry = registry;
         this.endpointRegistry = endpointRegistry;
         ContextFactoryExtensionPoint contextFactories = registry.getExtensionPoint(ContextFactoryExtensionPoint.class);
@@ -50,10 +52,11 @@ public class CompositeContext {
         this.domainComposite = domainComposite;
         this.domainURI = domainURI;
         this.nodeURI = nodeURI;
+        this.systemDefinitions = systemDefinitions;
     }    
     
     public CompositeContext(ExtensionPointRegistry registry, EndpointRegistry endpointRegistry) {
-        this(registry, endpointRegistry, null, "default", "default");
+        this(registry, endpointRegistry, null, "default", "default", null);
     }
     
     /**
@@ -136,4 +139,14 @@ public class CompositeContext {
     public String getDomainURI() {
         return domainURI;
     }
+    
+    /**
+     * The system definitions that result from starting the runtime. 
+     * TODO - these can be null when the SCAClient starts the runtime
+     * 
+     * @return systemDefinitions
+     */
+    public Definitions getSystemDefinitions() {
+        return systemDefinitions;
+    }
 }

Modified: tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeEndpoint.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeEndpoint.java?rev=931904&r1=931903&r2=931904&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeEndpoint.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/RuntimeEndpoint.java Thu Apr  8 12:21:20 2010
@@ -22,6 +22,7 @@ package org.apache.tuscany.sca.runtime;
 import java.io.Serializable;
 
 import org.apache.tuscany.sca.assembly.Endpoint;
+import org.apache.tuscany.sca.context.CompositeContext;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
 import org.apache.tuscany.sca.provider.ServiceBindingProvider;
 
@@ -55,4 +56,11 @@ public interface RuntimeEndpoint extends
      * @return The target component type service interface contract
      */
     InterfaceContract getComponentTypeServiceInterfaceContract();
+    
+    /**
+     * Get the composite context for the composite that contains this endpoint. This
+     * is useful for accessing various composite level objects from within the 
+     * runtime code
+     */
+    CompositeContext getCompositeContext();
 }

Modified: tuscany/sca-java-2.x/trunk/modules/core/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core/META-INF/MANIFEST.MF?rev=931904&r1=931903&r2=931904&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/core/META-INF/MANIFEST.MF (original)
+++ tuscany/sca-java-2.x/trunk/modules/core/META-INF/MANIFEST.MF Thu Apr  8 12:21:20 2010
@@ -47,6 +47,7 @@ Import-Package: javax.security.auth,
  org.apache.tuscany.sca.core.factory;version="2.0.0",
  org.apache.tuscany.sca.core.invocation;version="2.0.0",
  org.apache.tuscany.sca.core.scope;version="2.0.0",
+ org.apache.tuscany.sca.definitions;version="2.0.0",
  org.apache.tuscany.sca.extensibility;version="2.0.0",
  org.apache.tuscany.sca.interfacedef;version="2.0.0",
  org.apache.tuscany.sca.interfacedef.impl;version="2.0.0";resolution:=optional,

Modified: tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java?rev=931904&r1=931903&r2=931904&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java Thu Apr  8 12:21:20 2010
@@ -40,15 +40,19 @@ import org.apache.tuscany.sca.assembly.b
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.FactoryExtensionPoint;
 import org.apache.tuscany.sca.core.UtilityExtensionPoint;
+import org.apache.tuscany.sca.core.assembly.impl.RuntimeEndpointImpl;
+import org.apache.tuscany.sca.definitions.Definitions;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.MonitorFactory;
+import org.apache.tuscany.sca.policy.BindingType;
 import org.apache.tuscany.sca.policy.Intent;
 import org.apache.tuscany.sca.policy.IntentMap;
 import org.apache.tuscany.sca.policy.PolicySet;
 import org.apache.tuscany.sca.policy.Qualifier;
 import org.apache.tuscany.sca.runtime.EndpointReferenceBinder;
 import org.apache.tuscany.sca.runtime.EndpointRegistry;
+import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
 import org.oasisopen.sca.ServiceRuntimeException;
 
 /**
@@ -482,18 +486,26 @@ public class EndpointReferenceBinderImpl
         List<Intent> eprIntents = new ArrayList<Intent>();
         eprIntents.addAll(endpointReference.getRequiredIntents());
         
+        // TODO - seems that we should do this loop on a binding by binding basis
+        //        rather than each time we do matching
+        BindingType bindingType = null;
+        Definitions systemDefinitions = ((RuntimeEndpoint)endpoint).getCompositeContext().getSystemDefinitions();
+        for (BindingType loopBindingType : systemDefinitions.getBindingTypes()){
+            if (loopBindingType.getType().equals(binding.getType())){
+                bindingType = loopBindingType;
+                break;
+            }
+        }
+        
         // first check the binding type
-        for (Intent intent : endpointReference.getRequiredIntents()){
-/* TODO 
-            BindingType bindingType = null; //TODO - where to get this?
-            
-            if (bindingType.getAlwaysProvidedIntents().contains(intent)){
+        for (Intent intent : endpointReference.getRequiredIntents()){ 
+            if (bindingType != null && 
+                bindingType.getAlwaysProvidedIntents().contains(intent)){
                 eprIntents.remove(intent);
-            } else if (bindingType.getMayProvidedIntents().contains(intent)){
+            } else if (bindingType != null &&
+                       bindingType.getMayProvidedIntents().contains(intent)){
                 eprIntents.remove(intent);
             } else {
-            
-*/  
                // TODO - this code also appears in the ComponentPolicyBuilder
                //        so should rationalize
                loop: for (PolicySet policySet : referencePolicySets){
@@ -517,11 +529,8 @@ public class EndpointReferenceBinderImpl
                             }
                         }
                     }                    
-                }
-                                
-/*          
+                }          
             }                
- */
         }
         
         // if there are unresolved intents the service and reference don't match

Modified: tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java?rev=931904&r1=931903&r2=931904&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java Thu Apr  8 12:21:20 2010
@@ -471,4 +471,14 @@ public class NodeFactoryImpl extends Nod
         super.configure(attributes);
     }
     
+    /**
+     * Added to allow the node access to the deployer in order to get 
+     * to the systemContribution and hence set up the CompositeContext so that
+     * the runtime epr matching algorithm can get at the binding types
+     * @return
+     */
+    public Deployer getDeployer() {
+        return deployer;
+    }
+    
 }

Modified: tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java?rev=931904&r1=931903&r2=931904&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java Thu Apr  8 12:21:20 2010
@@ -128,8 +128,13 @@ public class NodeImpl implements Node {
                 domainComposite = manager.configureNode(configuration, contributions, context);
 
                 this.compositeContext =
-                    new CompositeContext(manager.registry, endpointRegistry, domainComposite, configuration
-                        .getDomainURI(), configuration.getURI());
+                    new CompositeContext(manager.registry, 
+                                         endpointRegistry, 
+                                         domainComposite, 
+                                         configuration.getDomainURI(), 
+                                         configuration.getURI(),
+                                         manager.getDeployer().getSystemDefinitions());
+                
                 CompositeContext.setThreadCompositeContext(compositeContext);
             } finally {
                 // Reset the thread context monitor

Modified: tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java?rev=931904&r1=931903&r2=931904&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java Thu Apr  8 12:21:20 2010
@@ -93,8 +93,14 @@ public class SCAClientFactoryImpl extend
         this.proxyFactory = ExtensibleProxyFactory.getInstance(extensionsRegistry);
 
         String client = "sca.client." + UUID.randomUUID();
+
         this.compositeContext =
-            new CompositeContext(extensionsRegistry, endpointRegistry, null, domainURI.toString(), client);
+            new CompositeContext(extensionsRegistry, 
+                                 endpointRegistry, 
+                                 null, 
+                                 domainURI.toString(), 
+                                 client, 
+                                 this.nodeFactory.getDeployer().getSystemDefinitions());
     }   
     
     @Override

Modified: tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientHandler.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientHandler.java?rev=931904&r1=931903&r2=931904&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientHandler.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientHandler.java Thu Apr  8 12:21:20 2010
@@ -91,7 +91,7 @@ public class SCAClientHandler implements
 
             String client = "sca.client." + UUID.randomUUID();
             CompositeContext compositeContext =
-                new CompositeContext(extensionsRegistry, endpointRegistry, null, domainURI.toString(), client);
+                new CompositeContext(extensionsRegistry, endpointRegistry, null, domainURI.toString(), client, null);
 
             List<Endpoint> eps = endpointRegistry.findEndpoint(serviceName);
             if (eps == null || eps.size() < 1) {