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]