You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2007/07/22 18:44:00 UTC

svn commit: r558509 - in /incubator/tuscany/java/sca/modules: assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/ host-embedded/src/main/java/org/apache/tuscany/sca/hos...

Author: lresende
Date: Sun Jul 22 09:43:59 2007
New Revision: 558509

URL: http://svn.apache.org/viewvc?view=rev&rev=558509
Log:
Updates to ModelReseolver extensibility 
   - Adding ConstrainingTypeModelResolver

Added:
    incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeModelResolver.java
Modified:
    incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java

Added: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeModelResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeModelResolver.java?view=auto&rev=558509
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeModelResolver.java (added)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeModelResolver.java Sun Jul 22 09:43:59 2007
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.sca.assembly.xml;
+
+import org.apache.tuscany.sca.assembly.ConstrainingType;
+import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.contribution.ContributionImport;
+import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver;
+
+/**
+ * An Model Resolver for ConstrainigType artifact types.
+ *
+ * @version $Rev: 557916 $ $Date: 2007-07-20 01:04:40 -0700 (Fri, 20 Jul 2007) $
+ */
+public class ConstrainingTypeModelResolver extends DefaultModelResolver {
+
+    public ConstrainingTypeModelResolver(ClassLoader cl, Contribution contribution) {
+        super(cl,contribution);
+    }
+
+    private ConstrainingType resolveImportedModel(ConstrainingType unresolved) {
+        ConstrainingType resolved = unresolved;
+        String namespace = unresolved.getName().getNamespaceURI();
+        if (namespace != null && namespace.length() > 0) {
+            for (ContributionImport contributionImport : this.contribution.getImports()) {
+                if (contributionImport.getNamespace().equals(namespace)) {
+                    
+                    // Delegate the resolution to the import resolver
+                    resolved = contributionImport.getModelResolver().resolveModel(ConstrainingType.class, unresolved);
+                    
+                    // If resolved... then we are done
+                    if(unresolved.isUnresolved() == false) {
+                        break;
+                    }
+                }
+            }
+        }
+        return resolved;
+    }
+    
+    @Override
+    public <T> T resolveModel(Class<T> modelClass, T unresolved) {
+        ConstrainingType resolved = (ConstrainingType) super.resolveModel(modelClass, unresolved);
+
+        if (resolved.isUnresolved()) {
+            resolved = resolveImportedModel(resolved);
+        }
+        
+        return (T)resolved;
+    }
+    
+    
+}

Modified: incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java?view=diff&rev=558509&r1=558508&r2=558509
==============================================================================
--- incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java Sun Jul 22 09:43:59 2007
@@ -31,6 +31,7 @@
 import org.apache.tuscany.sca.assembly.xml.CompositeModelResolver;
 import org.apache.tuscany.sca.assembly.xml.CompositeProcessor;
 import org.apache.tuscany.sca.assembly.xml.ConstrainingTypeDocumentProcessor;
+import org.apache.tuscany.sca.assembly.xml.ConstrainingTypeModelResolver;
 import org.apache.tuscany.sca.assembly.xml.ConstrainingTypeProcessor;
 import org.apache.tuscany.sca.contribution.ContributionFactory;
 import org.apache.tuscany.sca.contribution.processor.ContributionPostProcessor;
@@ -126,6 +127,7 @@
         registry.addExtensionPoint(modelResolverExtensionPoint);
         
         modelResolverExtensionPoint.addResolver(Composite.class, CompositeModelResolver.class);
+        modelResolverExtensionPoint.addResolver(Composite.class, ConstrainingTypeModelResolver.class);
         
         //Create contribution postProcessor extension point
         DefaultContributionPostProcessorExtensionPoint contributionPostProcessors = new DefaultContributionPostProcessorExtensionPoint();

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java?view=diff&rev=558509&r1=558508&r2=558509
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java Sun Jul 22 09:43:59 2007
@@ -45,6 +45,7 @@
 import org.apache.tuscany.sca.assembly.xml.CompositeModelResolver;
 import org.apache.tuscany.sca.assembly.xml.CompositeProcessor;
 import org.apache.tuscany.sca.assembly.xml.ConstrainingTypeDocumentProcessor;
+import org.apache.tuscany.sca.assembly.xml.ConstrainingTypeModelResolver;
 import org.apache.tuscany.sca.assembly.xml.ConstrainingTypeProcessor;
 import org.apache.tuscany.sca.assembly.xml.SCABindingProcessor;
 import org.apache.tuscany.sca.contribution.ContributionFactory;
@@ -207,6 +208,7 @@
         registry.addExtensionPoint(modelResolverExtensionPoint);
         
         modelResolverExtensionPoint.addResolver(Composite.class, CompositeModelResolver.class);
+        modelResolverExtensionPoint.addResolver(Composite.class, ConstrainingTypeModelResolver.class);
         
         //Create contribution postProcessor extension point
         DefaultContributionPostProcessorExtensionPoint contributionPostProcessors = new DefaultContributionPostProcessorExtensionPoint();



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