Author: rfeng
Date: Fri Oct 19 10:10:29 2007
New Revision: 586540

URL: http://svn.apache.org/viewvc?rev=586540&view=rev
Log:
Apply the patch from Mark Combellack for TUSCANY-1859. Thank you, Mark.

Added:
    incubator/tuscany/java/sca/itest/wires/   (with props)
    incubator/tuscany/java/sca/itest/wires/pom.xml   (with props)
    incubator/tuscany/java/sca/itest/wires/src/
    incubator/tuscany/java/sca/itest/wires/src/main/
    incubator/tuscany/java/sca/itest/wires/src/main/java/
    incubator/tuscany/java/sca/itest/wires/src/main/java/org/
    incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/
    incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/
    incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/
    
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/
    
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireClient.java
   (with props)
    
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireClientImpl.java
   (with props)
    
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireService.java
   (with props)
    
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireServiceImpl.java
   (with props)
    incubator/tuscany/java/sca/itest/wires/src/main/resources/
    incubator/tuscany/java/sca/itest/wires/src/main/resources/WireTest.composite
    incubator/tuscany/java/sca/itest/wires/src/test/
    incubator/tuscany/java/sca/itest/wires/src/test/java/
    incubator/tuscany/java/sca/itest/wires/src/test/java/org/
    incubator/tuscany/java/sca/itest/wires/src/test/java/org/apache/
    incubator/tuscany/java/sca/itest/wires/src/test/java/org/apache/tuscany/
    incubator/tuscany/java/sca/itest/wires/src/test/java/org/apache/tuscany/sca/
    
incubator/tuscany/java/sca/itest/wires/src/test/java/org/apache/tuscany/sca/itest/
    
incubator/tuscany/java/sca/itest/wires/src/test/java/org/apache/tuscany/sca/itest/WireTestCase.java
   (with props)
Modified:
    incubator/tuscany/java/sca/itest/pom.xml
    
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeWireBuilderImpl.java
    
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java

Modified: incubator/tuscany/java/sca/itest/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/pom.xml?rev=586540&r1=586539&r2=586540&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/pom.xml (original)
+++ incubator/tuscany/java/sca/itest/pom.xml Fri Oct 19 10:10:29 2007
@@ -69,6 +69,10 @@
                 <module>services</module>
                 <module>component-type</module>
                 <module>interfaces</module>
+                <module>wires</module>
+                <!--
+                <module>callback-separatethread</module>
+                -->
                 <module>scopes</module>
                 <module>wsdl</module>
                 <module>wsdlless</module>

Propchange: incubator/tuscany/java/sca/itest/wires/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Fri Oct 19 10:10:29 2007
@@ -0,0 +1,13 @@
+target
+*.iws
+*.ipr
+*.iml
+.project
+.classpath
+maven.log
+velocity.log*
+junit*.properties
+surefire*.properties
+.settings
+.deployables
+.wtpmodules

Added: incubator/tuscany/java/sca/itest/wires/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/wires/pom.xml?rev=586540&view=auto
==============================================================================
--- incubator/tuscany/java/sca/itest/wires/pom.xml (added)
+++ incubator/tuscany/java/sca/itest/wires/pom.xml Fri Oct 19 10:10:29 2007
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * 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.    
+-->
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.tuscany.sca</groupId>
+        <artifactId>tuscany-itest</artifactId>
+        <version>1.1-incubating-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <artifactId>itest-wires</artifactId>
+    <name>Apache Tuscany SCA Wires Basic Integration Tests</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-host-embedded</artifactId>
+            <version>1.1-incubating-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-implementation-java-runtime</artifactId>
+            <version>1.1-incubating-SNAPSHOT</version>
+            <scope>runtime</scope>
+        </dependency>
+    </dependencies>
+</project>

Propchange: incubator/tuscany/java/sca/itest/wires/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/itest/wires/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireClient.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireClient.java?rev=586540&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireClient.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireClient.java
 Fri Oct 19 10:10:29 2007
@@ -0,0 +1,34 @@
+/*
+ * 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.itest;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * This is the client interface for the wires tests 
+ */
[EMAIL PROTECTED]
+public interface WireClient {
+
+    /**
+     * This tests the wires.
+     */
+    void runTests();
+}

Propchange: 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireClient.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireClient.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireClientImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireClientImpl.java?rev=586540&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireClientImpl.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireClientImpl.java
 Fri Oct 19 10:10:29 2007
@@ -0,0 +1,52 @@
+/*
+ * 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.itest;
+
+import junit.framework.Assert;
+
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * This is the client implementation for the wires tests 
+ */
[EMAIL PROTECTED](WireClient.class)
+public class WireClientImpl implements WireClient {
+    /**
+     * This is our injected reference to the WireService
+     */
+    @Reference
+    protected WireService aWireService;
+
+    /**
+     * This tests the wire reference
+     */
+    public void runTests() {
+        // Make sure the wire has injected a reference
+        Assert.assertNotNull(aWireService);
+        
+        // Test the injected reference
+        String msg = aWireService.sayHello("MCC");
+        
+        // Validate the response
+        Assert.assertNotNull(msg);
+        Assert.assertEquals("Hello MCC", msg);
+    }
+}

Propchange: 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireClientImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireClientImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireService.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireService.java?rev=586540&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireService.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireService.java
 Fri Oct 19 10:10:29 2007
@@ -0,0 +1,36 @@
+/*
+ * 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.itest;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Sample Wire Service 
+ */
[EMAIL PROTECTED]
+public interface WireService {
+    /**
+     * Returns "Hello " + aName
+     * 
+     * @param aName The name to say hello
+     * @return "Hello " + aName
+     */
+    String sayHello(String aName);
+}

Propchange: 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireServiceImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireServiceImpl.java?rev=586540&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireServiceImpl.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireServiceImpl.java
 Fri Oct 19 10:10:29 2007
@@ -0,0 +1,39 @@
+/*
+ * 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.itest;
+
+import org.osoa.sca.annotations.Service;
+
+/**
+ * Sample WireService Implementation 
+ */
[EMAIL PROTECTED](WireService.class)
+public class WireServiceImpl implements WireService {
+
+    /**
+     * Returns "Hello " + aName
+     * 
+     * @param aName The name to say hello
+     * @return "Hello " + aName
+     */
+    public String sayHello(String aName) {
+        return "Hello " + aName;
+    }
+}

Propchange: 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/itest/wires/src/main/java/org/apache/tuscany/sca/itest/WireServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/itest/wires/src/main/resources/WireTest.composite
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/wires/src/main/resources/WireTest.composite?rev=586540&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/wires/src/main/resources/WireTest.composite 
(added)
+++ 
incubator/tuscany/java/sca/itest/wires/src/main/resources/WireTest.composite 
Fri Oct 19 10:10:29 2007
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"; 
targetNamespace="http://wires"; name="WireTest">
+
+    <component name="WireClient">
+        <implementation.java 
class="org.apache.tuscany.sca.itest.WireClientImpl"/>
+<!-- We are not using a reference - we are using a wire - see below -->
+<!-- The equivalent reference for the wire would be as follows -->
+<!--    <reference name="aWireService" target="WireService"/>-->
+    </component> 
+    
+    <component name="WireService">
+      <implementation.java 
class="org.apache.tuscany.sca.itest.WireServiceImpl"/>
+    </component>  
+  
+    <wire source="WireClient/aWireService" target="WireService/WireService"/>
+</composite>

Added: 
incubator/tuscany/java/sca/itest/wires/src/test/java/org/apache/tuscany/sca/itest/WireTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/wires/src/test/java/org/apache/tuscany/sca/itest/WireTestCase.java?rev=586540&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/itest/wires/src/test/java/org/apache/tuscany/sca/itest/WireTestCase.java
 (added)
+++ 
incubator/tuscany/java/sca/itest/wires/src/test/java/org/apache/tuscany/sca/itest/WireTestCase.java
 Fri Oct 19 10:10:29 2007
@@ -0,0 +1,66 @@
+/*
+ * 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.itest;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+
+/**
+ * This test case will attempt to use a wire
+ */
+public class WireTestCase extends TestCase {
+
+    /**
+     * The SCADomain we are using 
+     */
+    private SCADomain domain;
+    
+    /**
+     * The client the tests should use
+     */
+    private WireClient aWireClient;
+
+    /**
+     * Run the wire tests
+     */
+    public void testWire() {
+        aWireClient.runTests(); 
+    }
+
+    /**
+     * Load the Wire composite and look up the client.
+     */
+    @Override
+    protected void setUp() throws Exception {
+        domain = SCADomain.newInstance("WireTest.composite");
+        aWireClient = domain.getService(WireClient.class, "WireClient");
+        Assert.assertNotNull(aWireClient);
+    }
+
+    /**
+     * Shutdown the SCA domain
+     */
+    @Override
+    protected void tearDown() throws Exception {
+        domain.close();
+    }
+}

Propchange: 
incubator/tuscany/java/sca/itest/wires/src/test/java/org/apache/tuscany/sca/itest/WireTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/itest/wires/src/test/java/org/apache/tuscany/sca/itest/WireTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: 
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeWireBuilderImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeWireBuilderImpl.java?rev=586540&r1=586539&r2=586540&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeWireBuilderImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeWireBuilderImpl.java
 Fri Oct 19 10:10:29 2007
@@ -119,11 +119,11 @@
         // Compute the policies before connecting component references
         computePolicies(composite);
 
-        // Connect component references to their targets
-        connectComponentReferences(composite, components, componentServices, 
componentReferences);
-
         // Connect component references as described in wires
         connectWires(composite, componentServices, componentReferences);
+
+        // Connect component references to their targets
+        connectComponentReferences(composite, components, componentServices, 
componentReferences);
 
         // Validate that references are wired or promoted, according
         // to their multiplicity

Modified: 
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java?rev=586540&r1=586539&r2=586540&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
 Fri Oct 19 10:10:29 2007
@@ -73,30 +73,30 @@
      */
 
     private URLArtifactProcessor artifactProcessor;
-    
+
     /**
      * Registry of available stax processors,
      * used for loading contribution metadata in a extensible way
      */
     private StAXArtifactProcessor staxProcessor;
-    
+
     /**
      * Event listener for contribution operations
      */
     private ExtensibleContributionListener contributionListener;
-    
+
     /**
      * Registry of available model resolvers
      */
-    
+
     private ModelResolverExtensionPoint modelResolvers;
-    
+
     /**
      * Model factory extension point
      */
-    
+
     private ModelFactoryExtensionPoint modelFactories;
-    
+
     /**
      * xml factory used to create reader instance to load contribution metadata
      */
@@ -111,9 +111,8 @@
      * Contribution model facotry
      */
     private ContributionFactory contributionFactory;
-    
+
     private ModelResolver domainResolver;
-    
 
     public ContributionServiceImpl(ContributionRepository repository,
                                    PackageProcessor packageProcessor,
@@ -141,38 +140,40 @@
     }
 
     public Contribution contribute(String contributionURI, URL sourceURL, 
boolean storeInRepository)
-            throws ContributionException, IOException {
+        throws ContributionException, IOException {
         if (contributionURI == null) {
             throw new IllegalArgumentException("URI for the contribution is 
null");
         }
         if (sourceURL == null) {
             throw new IllegalArgumentException("Source URL for the 
contribution is null");
         }
-        
+
         return addContribution(contributionURI, sourceURL, null, null, 
storeInRepository);
     }
-    
-    public Contribution contribute(String contributionURI, URL sourceURL, 
ModelResolver modelResolver, boolean storeInRepository) throws 
ContributionException,
-        IOException {
+
+    public Contribution contribute(String contributionURI,
+                                   URL sourceURL,
+                                   ModelResolver modelResolver,
+                                   boolean storeInRepository) throws 
ContributionException, IOException {
         if (contributionURI == null) {
             throw new IllegalArgumentException("URI for the contribution is 
null");
         }
         if (sourceURL == null) {
             throw new IllegalArgumentException("Source URL for the 
contribution is null");
         }
-        
+
         return addContribution(contributionURI, sourceURL, null, 
modelResolver, storeInRepository);
     }
 
     public Contribution contribute(String contributionURI, URL sourceURL, 
InputStream input)
-            throws ContributionException, IOException {
+        throws ContributionException, IOException {
 
         return addContribution(contributionURI, sourceURL, input, null, true);
     }
-    
-    public Contribution contribute(String contributionURI, URL sourceURL, 
InputStream input, ModelResolver modelResolver) 
+
+    public Contribution contribute(String contributionURI, URL sourceURL, 
InputStream input, ModelResolver modelResolver)
         throws ContributionException, IOException {
-        
+
         return addContribution(contributionURI, sourceURL, input, 
modelResolver, true);
     }
 
@@ -219,37 +220,38 @@
 
         URL[] clUrls = {sourceURL};
         URLClassLoader cl = new URLClassLoader(clUrls, null);
-        
-        ContributionMetadataDocumentProcessor metadataDocumentProcessor = 
-            new ContributionMetadataDocumentProcessor(cl, staxProcessor, 
assemblyFactory, contributionFactory, xmlFactory);
+
+        ContributionMetadataDocumentProcessor metadataDocumentProcessor =
+            new ContributionMetadataDocumentProcessor(cl, staxProcessor, 
assemblyFactory, contributionFactory,
+                                                      xmlFactory);
         contributionMetadata = contributionFactory.createContribution();
         try {
             metadataDocumentProcessor.read(contributionMetadata);
         } catch (XMLStreamException e) {
             throw new InvalidContributionMetadataException("Invalid 
contribution metadata for contribution.");
         }
-        
+
         // For debugging purposes, write it back to XML
-//        if (contributionMetadata != null) {
-//            try {
-//                ByteArrayOutputStream bos = new ByteArrayOutputStream();
-//                XMLOutputFactory outputFactory = 
XMLOutputFactory.newInstance();
-//                
outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, 
Boolean.TRUE);
-//                staxProcessor.write(contributionMetadata, 
outputFactory.createXMLStreamWriter(bos));
-//                Document document = 
DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new 
ByteArrayInputStream(bos.toByteArray()));
-//                OutputFormat format = new OutputFormat();
-//                format.setIndenting(true);
-//                format.setIndent(2);
-//                XMLSerializer serializer = new XMLSerializer(System.out, 
format);
-//                serializer.serialize(document);
-//            } catch (Exception e) {
-//                e.printStackTrace();
-//            }
-//        }
-        
+        //        if (contributionMetadata != null) {
+        //            try {
+        //                ByteArrayOutputStream bos = new 
ByteArrayOutputStream();
+        //                XMLOutputFactory outputFactory = 
XMLOutputFactory.newInstance();
+        //                
outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, 
Boolean.TRUE);
+        //                staxProcessor.write(contributionMetadata, 
outputFactory.createXMLStreamWriter(bos));
+        //                Document document = 
DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new 
ByteArrayInputStream(bos.toByteArray()));
+        //                OutputFormat format = new OutputFormat();
+        //                format.setIndenting(true);
+        //                format.setIndent(2);
+        //                XMLSerializer serializer = new 
XMLSerializer(System.out, format);
+        //                serializer.serialize(document);
+        //            } catch (Exception e) {
+        //                e.printStackTrace();
+        //            }
+        //        }
+
         return contributionMetadata;
     }
-    
+
     /**
      * Note:
      * 
@@ -263,15 +265,15 @@
      * @throws DeploymentException
      */
     private Contribution addContribution(String contributionURI,
-                                 URL sourceURL,
-                                 InputStream contributionStream,
-                                 ModelResolver modelResolver,
-                                 boolean storeInRepository) throws 
IOException, ContributionException {
-        
+                                         URL sourceURL,
+                                         InputStream contributionStream,
+                                         ModelResolver modelResolver,
+                                         boolean storeInRepository) throws 
IOException, ContributionException {
+
         if (contributionStream == null && sourceURL == null) {
             throw new IllegalArgumentException("The content of the 
contribution is null.");
         }
-                
+
         // store the contribution in the contribution repository
         URL locationURL = sourceURL;
         if (contributionRepository != null && storeInRepository) {
@@ -284,21 +286,21 @@
 
         //initialize contribution based on it's metadata if available
         Contribution contribution = readContributionMetadata(locationURL);
-        
+
         // Create contribution model resolver
         if (modelResolver == null) {
             modelResolver = new ExtensibleModelResolver(contribution, 
modelResolvers, modelFactories);
         }
-        
-        if ( modelResolver instanceof ExtensibleModelResolver ) {
+
+        if (modelResolver instanceof ExtensibleModelResolver) {
             
((ExtensibleModelResolver)modelResolver).setDomainResolver(domainResolver);
         }
-        
+
         //set contribution initial information
         contribution.setURI(contributionURI.toString());
         contribution.setLocation(locationURL.toString());
         contribution.setModelResolver(modelResolver);
-        
+
         List<URI> contributionArtifacts = null;
 
         //NOTE: if a contribution is stored on the repository
@@ -319,13 +321,13 @@
 
         // Read all artifacts in the contribution
         processReadPhase(contribution, contributionArtifacts);
-        
+
         //
         
this.contributionListener.contributionAdded(this.contributionRepository, 
contribution);
-        
+
         // Resolve them
         processResolvePhase(contribution);
-        
+
         // Add all composites under META-INF/sca-deployables to the
         // list of deployables
         String prefix = Contribution.SCA_CONTRIBUTION_DEPLOYABLES;
@@ -339,10 +341,10 @@
                 }
             }
         }
-                
+
         // store the contribution on the registry
         this.contributionRepository.addContribution(contribution);
-        
+
         return contribution;
     }
 
@@ -357,12 +359,12 @@
      */
     private void processReadPhase(Contribution contribution, List<URI> 
artifacts) throws ContributionException,
         MalformedURLException {
-        
+
         ModelResolver modelResolver = contribution.getModelResolver();
-        URL contributionURL = new URL(contribution.getLocation()); 
+        URL contributionURL = new URL(contribution.getLocation());
         for (URI a : artifacts) {
             URL artifactURL = packageProcessor.getArtifactURL(new 
URL(contribution.getLocation()), a);
-            
+
             // Add the deployed artifact model to the resolver
             DeployedArtifact artifact = 
this.contributionFactory.createDeployedArtifact();
             artifact.setURI(a.toString());
@@ -374,7 +376,7 @@
             Object model = this.artifactProcessor.read(contributionURL, a, 
artifactURL);
             if (model != null) {
                 artifact.setModel(model);
-                
+
                 // Add the loaded model to the model resolver
                 modelResolver.addModel(model);
             }
@@ -390,38 +392,39 @@
      */
     @SuppressWarnings("unchecked")
     private void processResolvePhase(Contribution contribution) throws 
ContributionException {
-       List<DeployedArtifact> composites = new ArrayList<DeployedArtifact>();
-       
+        List<DeployedArtifact> composites = new ArrayList<DeployedArtifact>();
+
         // for each artifact that was processed on the contribution
         for (DeployedArtifact artifact : contribution.getArtifacts()) {
-               //leave the composites to be resolved at the end
-               if(artifact.getURI().endsWith(".composite")) {
-                       composites.add(artifact);
-               } else {
+            //leave the composites to be resolved at the end
+            if (artifact.getURI().endsWith(".composite")) {
+                composites.add(artifact);
+            } else {
                 // resolve the model object
                 if (artifact.getModel() != null) {
                     this.artifactProcessor.resolve(artifact.getModel(), 
contribution.getModelResolver());
-                }                      
-               }       
+                }
+            }
         }
-        
+
         //process each composite file
-        for(DeployedArtifact artifact : composites) {
+        for (DeployedArtifact artifact : composites) {
             // resolve the model object
             if (artifact.getModel() != null) {
-               System.out.println("Processing Resolve Phase : " + 
artifact.getURI() );
+                // System.out.println("Processing Resolve Phase : " + 
artifact.getURI());
                 this.artifactProcessor.resolve(artifact.getModel(), 
contribution.getModelResolver());
             }
         }
-    
+
         //resolve deployables from contribution metadata
         List<Composite> resolvedDeployables = new ArrayList<Composite>();
         for (Composite deployableComposite : contribution.getDeployables()) {
-            Composite resolvedDeployable = 
contribution.getModelResolver().resolveModel(Composite.class, 
deployableComposite);
-                        
+            Composite resolvedDeployable =
+                contribution.getModelResolver().resolveModel(Composite.class, 
deployableComposite);
+
             resolvedDeployables.add(resolvedDeployable);
         }
         contribution.getDeployables().clear();
         contribution.getDeployables().addAll(resolvedDeployables);
-    }  
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to