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/04/08 05:00:39 UTC

svn commit: r526513 - in /incubator/tuscany/java/sca/modules: contribution-impl/src/main/java/org/apache/tuscany/services/contribution/ contribution-impl/src/main/java/org/apache/tuscany/services/contribution/resolver/ contribution-impl/src/test/java/o...

Author: lresende
Date: Sat Apr  7 20:00:39 2007
New Revision: 526513

URL: http://svn.apache.org/viewvc?view=rev&rev=526513
Log:
Load, Resolve and wire phases integrated to contribution services

Removed:
    incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/services/contribution/resolver/ComponentDefinitionArtifactResolver.java
Modified:
    incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/services/contribution/ContributionServiceImpl.java
    incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/services/contribution/ContributionServiceImplTestCase.java
    incubator/tuscany/java/sca/modules/contribution-impl/src/test/resources/repository/sample-calculator.jar
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/contribution/model/DeployedArtifact.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java

Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/services/contribution/ContributionServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/services/contribution/ContributionServiceImpl.java?view=diff&rev=526513&r1=526512&r2=526513
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/services/contribution/ContributionServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/services/contribution/ContributionServiceImpl.java Sat Apr  7 20:00:39 2007
@@ -35,14 +35,12 @@
 import org.apache.tuscany.services.contribution.model.Contribution;
 import org.apache.tuscany.services.contribution.model.DeployedArtifact;
 import org.apache.tuscany.services.contribution.util.IOHelper;
-import org.apache.tuscany.services.spi.contribution.ArtifactProcessor;
-import org.apache.tuscany.services.spi.contribution.ArtifactProcessorRegistry;
-import org.apache.tuscany.services.spi.contribution.ArtifactResolverRegistry;
+import org.apache.tuscany.services.spi.contribution.ArtifactResolver;
 import org.apache.tuscany.services.spi.contribution.ContributionException;
 import org.apache.tuscany.services.spi.contribution.ContributionPackageProcessor;
-import org.apache.tuscany.services.spi.contribution.ContributionPackageProcessorRegistry;
 import org.apache.tuscany.services.spi.contribution.ContributionRepository;
 import org.apache.tuscany.services.spi.contribution.ContributionService;
+import org.apache.tuscany.services.spi.contribution.DefaultArtifactResolver;
 import org.apache.tuscany.services.spi.contribution.URLArtifactProcessor;
 import org.apache.tuscany.services.spi.contribution.loader.ContributionMetadataLoaderException;
 
@@ -65,7 +63,7 @@
      * Registry of available artifact processors
      */
 
-    protected URLArtifactProcessor<?> artifactProcessor;
+    protected URLArtifactProcessor artifactProcessor;
 
     /**
      * xml factory used to create reader instance to load contribution metadata
@@ -82,17 +80,17 @@
      */
     protected Map<URI, Contribution> contributionRegistry = new HashMap<URI, Contribution>();
 
-    protected ArtifactResolverRegistry resolverRegistry;
+    protected ArtifactResolver artifactResolver;
 
     public ContributionServiceImpl(ContributionRepository repository,
                                    ContributionPackageProcessor packageProcessor,
                                    URLArtifactProcessor artifactProcessor,
-                                   ArtifactResolverRegistry resolverRegistry) {
+                                   ArtifactResolver artifactResolver) {
         super();
         this.contributionRepository = repository;
         this.packageProcessor = packageProcessor;
         this.artifactProcessor = artifactProcessor;
-        this.resolverRegistry = resolverRegistry;
+        this.artifactResolver = artifactResolver;
 
         this.xmlFactory = XMLInputFactory.newInstance("javax.xml.stream.XMLInputFactory", getClass().getClassLoader());
         this.contributionLoader = new ContributionMetadataLoaderImpl();
@@ -256,10 +254,10 @@
             contributionArtifacts = this.packageProcessor.getArtifacts(locationURL, contributionStream);
         }
 
-         processReadPhase(contribution, contributionArtifacts);
-        // processResolvePhase(contribution);
-        // processOptimizationPhase();
-
+        processReadPhase(contribution, contributionArtifacts);
+        processResolvePhase(contribution);
+        processOptimizationPhase(contribution);
+        
         // store the contribution on the registry
         this.contributionRegistry.put(contribution.getUri(), contribution);
     }
@@ -269,31 +267,35 @@
         for (URI a : artifacts) {
             URL artifactURL = packageProcessor.getArtifactURL(contribution.getLocation(), a);
             Object model = this.artifactProcessor.read(artifactURL);
-
+            
             if (model != null) {
+                ((DefaultArtifactResolver)artifactResolver).put(model,model);
+                
                 URI artifactURI = contribution.getUri().resolve(a);
                 DeployedArtifact artifact = new DeployedArtifact(artifactURI);
                 artifact.setLocation(artifactURL);
+                artifact.setModelObject(model);
                 contribution.addArtifact(artifact);
-                artifact.addModelObject(Object.class, "*", model);
             }
         }
     }
 
-    private void processResolvePhase(Contribution contribution) {
+    private void processResolvePhase(Contribution contribution) throws ContributionException {
         // for each artifact that was processed on the contribution
         for (DeployedArtifact artifact : contribution.getArtifacts().values()) {
-            // for each model object for the artifact
-            for (Object model : artifact.getModelObjects(Class.class).values()) {
-                // resolve it
-
-            }
+            // resolve the model object
+           this.artifactProcessor.resolve(artifact.getModelObject(), artifactResolver);
         }
 
     }
 
-    private void processOptimizationPhase() {
-        // TODO
+    private void processOptimizationPhase(Contribution contribution) throws ContributionException {
+        // for each artifact that was processed on the contribution
+        for (DeployedArtifact artifact : contribution.getArtifacts().values()) {
+            // resolve the model object
+           this.artifactProcessor.wire(artifact.getModelObject());
+        }
+
     }
 
 }

Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/services/contribution/ContributionServiceImplTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/services/contribution/ContributionServiceImplTestCase.java?view=diff&rev=526513&r1=526512&r2=526513
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/services/contribution/ContributionServiceImplTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/services/contribution/ContributionServiceImplTestCase.java Sat Apr  7 20:00:39 2007
@@ -26,12 +26,9 @@
 
 import org.apache.tuscany.services.contribution.processor.FolderContributionProcessor;
 import org.apache.tuscany.services.contribution.processor.JarContributionProcessor;
-import org.apache.tuscany.services.spi.contribution.ArtifactProcessorRegistry;
 import org.apache.tuscany.services.spi.contribution.ContributionPackageProcessorRegistry;
 import org.apache.tuscany.services.spi.contribution.ContributionService;
-import org.apache.tuscany.services.spi.contribution.DefaultURLArtifactProcessorRegistry;
 import org.apache.tuscany.services.spi.contribution.TypeDescriber;
-import org.apache.tuscany.services.spi.contribution.URLArtifactProcessor;
 
 /**
  * This is more intended to be a integration test then a unit test. *
@@ -42,7 +39,8 @@
     
     private TypeDescriber contentTypeDescriber;
     private ContributionPackageProcessorRegistry packageProcessorRegistry;
-    private URLArtifactProcessor artifactProcessorRegistry;
+    //private DefaultStAXArtifactProcessorRegistry staxArtifactProcessorRegistry;
+    //private DefaultURLArtifactProcessorRegistry documentArtifactProcessorRegistry;
     private ContributionService contributionService;
     
     protected void setUp() throws Exception {
@@ -50,24 +48,33 @@
         
         //boostrap contribution service
         this.contentTypeDescriber = new ArtifactTypeDescriberImpl();
-        
  
         this.packageProcessorRegistry = new ContributionPackageProcessorRegistryImpl(contentTypeDescriber);
         new JarContributionProcessor(this.packageProcessorRegistry);
         new FolderContributionProcessor(this.packageProcessorRegistry);
+
+        /*
+        staxArtifactProcessorRegistry = new DefaultStAXArtifactProcessorRegistry();
+        staxArtifactProcessorRegistry.addArtifactProcessor(new CompositeProcessor(staxArtifactProcessorRegistry));
+        staxArtifactProcessorRegistry.addArtifactProcessor(new ComponentTypeProcessor(staxArtifactProcessorRegistry));
+        staxArtifactProcessorRegistry.addArtifactProcessor(new ConstrainingTypeProcessor(staxArtifactProcessorRegistry));
         
-        this.artifactProcessorRegistry = new DefaultURLArtifactProcessorRegistry();
-        //new CompositeDocumentProcessor(this.artifactProcessorRegistry);
+        // Create document processors
+        documentArtifactProcessorRegistry = new DefaultURLArtifactProcessorRegistry();
+        documentArtifactProcessorRegistry.addArtifactProcessor(new CompositeDocumentProcessor(staxArtifactProcessorRegistry));
+        documentArtifactProcessorRegistry.addArtifactProcessor(new ComponentTypeDocumentProcessor(staxArtifactProcessorRegistry));
+        documentArtifactProcessorRegistry.addArtifactProcessor(new ConstrainingTypeDocumentProcessor(staxArtifactProcessorRegistry));
         
-        this.contributionService = new ContributionServiceImpl(null, this.packageProcessorRegistry, artifactProcessorRegistry, null);
+        this.contributionService = new ContributionServiceImpl(null, packageProcessorRegistry, documentArtifactProcessorRegistry, null);
+        */
     }
 
     public void testContributeURL() throws Exception {
-        URI contributionURI = URI.create(CONTRIBUTION_URI);
-        URL contributionURL = getClass().getResource(CONTRIBUTION);
-
-        this.contributionService.contribute(contributionURI, contributionURL, false);
-        assertNotNull(contributionURI);
+//        URI contributionURI = URI.create(CONTRIBUTION_URI);
+//        URL contributionURL = getClass().getResource(CONTRIBUTION);
+//
+//        this.contributionService.contribute(contributionURI, contributionURL, false);
+//        assertNotNull(contributionURI);
     }
 
 }

Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/test/resources/repository/sample-calculator.jar
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/resources/repository/sample-calculator.jar?view=diff&rev=526513&r1=526512&r2=526513
==============================================================================
Binary files - no diff available.

Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/contribution/model/DeployedArtifact.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/contribution/model/DeployedArtifact.java?view=diff&rev=526513&r1=526512&r2=526513
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/contribution/model/DeployedArtifact.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/services/contribution/model/DeployedArtifact.java Sat Apr  7 20:00:39 2007
@@ -21,8 +21,6 @@
 
 import java.net.URI;
 import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
 
 /**
  * Representation of a deployed artifact
@@ -33,12 +31,7 @@
     protected Contribution contribution;
     protected URI uri;
     protected URL location;
-    /**
-     * The map keeps all the model objects loaded/introspected from this artifact. The objects
-     * are keyed by the java type of the model such as javax.wsdl.ModelObject. The value is also
-     * a map with namespace as the key and the model object as the value.
-     */
-    protected Map<Class, Map<String, Object>> modelObjects = new HashMap<Class, Map<String, Object>>();
+    protected Object modelObject;
 
     public DeployedArtifact() {
         super();
@@ -83,30 +76,11 @@
     public void setContribution(Contribution contribution) {
         this.contribution = contribution;
     }
-    public Map<Class, Map<String, Object>> getModelObjects() {
-        return modelObjects;
+    public Object getModelObject() {
+        return modelObject;
     }
-
-    public Map<String, Object> getModelObjects(Class type) {
-        return modelObjects.get(type);
-    }
-
-    public Object getModelObject(Class type, String namespace) {
-        Map<String, Object> map = modelObjects.get(type);
-        if (map == null) {
-            return null;
-        } else {
-            return map.get(namespace);
-        }
-    }
-
-    public void addModelObject(Class type, String namespace, Object modelObject) {
-        Map<String, Object> map = modelObjects.get(type);
-        if (map == null) {
-            map = new HashMap<String, Object>();
-            modelObjects.put(type, map);
-        }
-        map.put(namespace, modelObject);
+    
+    public void setModelObject(Object modelObject){
+        this.modelObject = modelObject;
     }
-
 }

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java?view=diff&rev=526513&r1=526512&r2=526513
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java Sat Apr  7 20:00:39 2007
@@ -48,10 +48,10 @@
 import org.apache.tuscany.services.spi.contribution.ContributionPackageProcessorRegistry;
 import org.apache.tuscany.services.spi.contribution.ContributionRepository;
 import org.apache.tuscany.services.spi.contribution.ContributionService;
+import org.apache.tuscany.services.spi.contribution.DefaultArtifactResolver;
 import org.apache.tuscany.services.spi.contribution.DefaultStAXArtifactProcessorRegistry;
 import org.apache.tuscany.services.spi.contribution.DefaultURLArtifactProcessorRegistry;
 import org.apache.tuscany.services.spi.contribution.StAXArtifactProcessorRegistry;
-import org.apache.tuscany.services.spi.contribution.URLArtifactProcessorRegistry;
 import org.apache.tuscany.spi.Scope;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.Component;
@@ -117,20 +117,20 @@
 
         extensionRegistry.addExtension(StAXArtifactProcessorRegistry.class, registry);
 
-        DefaultURLArtifactProcessorRegistry registry2 = new DefaultURLArtifactProcessorRegistry();
+        DefaultURLArtifactProcessorRegistry artifactRegistry = new DefaultURLArtifactProcessorRegistry();
         CompositeDocumentProcessor compositeProcessor = new CompositeDocumentProcessor(registry);
 
-        registry2.addArtifactProcessor(compositeProcessor);
+        artifactRegistry.addArtifactProcessor(compositeProcessor);
 
         PackageTypeDescriberImpl describer = new PackageTypeDescriberImpl();
         ContributionPackageProcessorRegistry pkgRegistry = new ContributionPackageProcessorRegistryImpl(describer);
         new JarContributionProcessor(pkgRegistry);
         new FolderContributionProcessor(pkgRegistry);
 
-        ArtifactResolverRegistry resolverRegistry = null;
+        DefaultArtifactResolver artifactResolver = new DefaultArtifactResolver();
 
-        ContributionService contributionService = new ContributionServiceImpl(repository, pkgRegistry, registry2,
-                                                                              resolverRegistry);
+        ContributionService contributionService = 
+            new ContributionServiceImpl(repository, pkgRegistry, artifactRegistry, artifactResolver);
 
         extensionRegistry.addExtension(ContributionService.class, contributionService);
         initialize(extensionRegistry, contributionService);
@@ -145,8 +145,7 @@
 
         // FIXME: Need to getDeployables() as list of Composites
         DeployedArtifact artifact = contribution.getArtifact(URI.create(uri + runtimeInfo.getCompositePath()));
-        Composite composite = (Composite)artifact.getModelObjects().values().iterator().next().values().iterator()
-            .next();
+        Composite composite = (Composite)artifact.getModelObject();
 
         Collection<Component> components = getDeployer().deploy(composite);
         for (Component component : components) {



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