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/04/12 18:26:19 UTC

svn commit: r528010 - in /incubator/tuscany/java/sca/modules: assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/ assembly/src/main/java/org/apache/tuscany/assembly/util/ implementation-java-xml/src/main/java/org/apache/tuscany/implementation/j...

Author: jsdelfino
Date: Thu Apr 12 09:26:15 2007
New Revision: 528010

URL: http://svn.apache.org/viewvc?view=rev&rev=528010
Log:
Fixed the component implementation resolution logic so that we can track unresolved implementations.

Modified:
    incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/BaseArtifactProcessor.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/CompositeUtil.java
    incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/xml/JavaImplementationProcessor.java

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/BaseArtifactProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/BaseArtifactProcessor.java?view=diff&rev=528010&r1=528009&r2=528010
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/BaseArtifactProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/assembly/xml/BaseArtifactProcessor.java Thu Apr 12 09:26:15 2007
@@ -385,11 +385,16 @@
      */
     protected Implementation resolveImplementation(Implementation implementation, ArtifactResolver resolver) throws ContributionResolveException {
         if (implementation != null) {
-            implementation = resolver.resolve(Implementation.class, implementation);
             if (implementation.isUnresolved()) {
-                extensionProcessor.resolve(implementation, resolver);
-                implementation.setUnresolved(false);
-                resolver.add(implementation);
+                implementation = resolver.resolve(Implementation.class, implementation);
+
+                // Lazily resolve implementations
+                if (implementation.isUnresolved()) {
+                    extensionProcessor.resolve(implementation, resolver);
+                    if (!implementation.isUnresolved()) {
+                        resolver.add(implementation);
+                    }
+                }
             }
         }
         return implementation;

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/CompositeUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/CompositeUtil.java?view=diff&rev=528010&r1=528009&r2=528010
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/CompositeUtil.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/CompositeUtil.java Thu Apr 12 09:26:15 2007
@@ -266,6 +266,14 @@
             compServices = new HashMap<String, ComponentService>();
             compReferences = new HashMap<String, ComponentReference>();
             compProperties = new HashMap<String, ComponentProperty>();
+            
+            // Check that the component has a resolved implementation
+            Implementation implementation = component.getImplementation();
+            if (implementation == null) {
+                problems.add(component);
+            } else if (implementation.isUnresolved()) {
+                problems.add(implementation);
+            }
 
             initializePropsSvcRefs(component,
                                    implServices,

Modified: incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/xml/JavaImplementationProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/xml/JavaImplementationProcessor.java?view=diff&rev=528010&r1=528009&r2=528010
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/xml/JavaImplementationProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/xml/JavaImplementationProcessor.java Thu Apr 12 09:26:15 2007
@@ -101,6 +101,7 @@
         try {
             Class javaClass = Class.forName(javaImplementation.getName(), true, Thread.currentThread().getContextClassLoader());
             javaImplementation.setJavaClass(javaClass);
+            javaImplementation.setUnresolved(false);
             
             //FIXME JavaImplementationDefinition should not be mandatory 
             if (javaImplementation instanceof JavaImplementationDefinition) {



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