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/05 17:40:05 UTC

svn commit: r525849 - /incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactResolver.java

Author: jsdelfino
Date: Thu Apr  5 08:40:04 2007
New Revision: 525849

URL: http://svn.apache.org/viewvc?view=rev&rev=525849
Log:
Added logic to handle resolution of nested artifacts, for example a portType inside a WSDL, or a schema inside a WSDL.

Modified:
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactResolver.java

Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactResolver.java?view=diff&rev=525849&r1=525848&r2=525849
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactResolver.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/spi/contribution/DefaultArtifactResolver.java Thu Apr  5 08:40:04 2007
@@ -30,10 +30,25 @@
     private static final long serialVersionUID = -7826976465762296634L;
 
     public <T> T resolve(Class<T> modelClass, T unresolved) {
-        T resolved = modelClass.cast(get(unresolved));
+        Object resolved = get(unresolved);
         if (resolved != null) {
-            return resolved;
+            
+            // If the resolved object is an artifact resolver then delegate the
+            // resolution to it. This allows for nested resolutio, for example
+            // first resolve a WSDL document by namespace, then resolve
+            // a WSDL portType inside it.
+            if (resolved instanceof ArtifactResolver) {
+                ArtifactResolver resolver = (ArtifactResolver)resolved;
+                resolved = resolver.resolve(modelClass, unresolved);
+                return modelClass.cast(resolved);
+            } else {
+                
+                // Return the resolved object
+                return modelClass.cast(resolved);
+            }
         } else {
+            
+            // Return the unresolved object
             return unresolved;
         }
     }



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