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/22 07:40:51 UTC
svn commit: r531146 - in /incubator/tuscany/java/sca/modules:
contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/
contribution-impl/src/test/java/org/apache/tuscany/contribution/services/
contribution/ contribution/src/main/ja...
Author: lresende
Date: Sat Apr 21 22:40:50 2007
New Revision: 531146
URL: http://svn.apache.org/viewvc?view=rev&rev=531146
Log:
Contribution model return list of deployables composites
Added:
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/services/ContributionMetadataLoaderTestCase.java
- copied, changed from r529749, incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/services/ContributionLoaderTestCase.java
Removed:
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/services/ContributionLoaderTestCase.java
Modified:
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionMetadataLoaderImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java
incubator/tuscany/java/sca/modules/contribution/pom.xml
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/Contribution.java
Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionMetadataLoaderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionMetadataLoaderImpl.java?view=diff&rev=531146&r1=531145&r2=531146
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionMetadataLoaderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionMetadataLoaderImpl.java Sat Apr 21 22:40:50 2007
@@ -27,6 +27,8 @@
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
+import org.apache.tuscany.assembly.Composite;
+import org.apache.tuscany.assembly.impl.CompositeImpl;
import org.apache.tuscany.contribution.Contribution;
import org.apache.tuscany.contribution.ContributionImport;
import org.apache.tuscany.contribution.service.ContributionMetadataLoader;
@@ -40,6 +42,8 @@
public class ContributionMetadataLoaderImpl implements ContributionMetadataLoader {
//FIXME use this from constants ?
private static final String SCA10_NS = "http://www.osoa.org/xmlns/sca/1.0";
+ private static final String TARGET_NAMESPACE = "targetNamespace";
+ private static final String NAME = "composite";
private static final QName CONTRIBUTION = new QName(SCA10_NS, "contribution");
private static final QName DEPLOYABLE = new QName(SCA10_NS, "deployable");
@@ -80,14 +84,19 @@
if (ns == null) {
throw new InvalidValueException("Invalid prefix: " + prefix);
}
- compositeName = new QName(ns, localPart, prefix);
+ compositeName = new QName(getString(reader, TARGET_NAMESPACE), localPart, prefix);
} else {
String prefix = "";
String ns = reader.getNamespaceURI();
String localPart = name;
- compositeName = new QName(ns, localPart, prefix);
+ compositeName = new QName(getString(reader, TARGET_NAMESPACE), localPart, prefix);
}
- contribution.getDeployables().add(compositeName);
+
+ Composite composite = new CompositeImpl();
+ composite.setName(compositeName);
+ composite.setUnresolved(true);
+
+ contribution.getDeployables().add(composite);
} else if (IMPORT.equals(element)) {
String ns = reader.getAttributeValue(null, "namespace");
if (ns == null) {
@@ -115,6 +124,49 @@
break;
}
+ }
+ }
+
+ /**
+ * Returns the string value of an attribute.
+ * @param reader
+ * @param name
+ * @return
+ */
+ protected String getString(XMLStreamReader reader, String name) {
+ return reader.getAttributeValue(null, name);
+ }
+
+ /**
+ * Returns the qname value of an attribute.
+ * @param reader
+ * @param name
+ * @return
+ */
+ protected QName getQName(XMLStreamReader reader, String name) {
+ String qname = reader.getAttributeValue(null, name);
+ return getQNameValue(reader, qname);
+ }
+
+
+ /**
+ * Returns a qname from a string.
+ * @param reader
+ * @param value
+ * @return
+ */
+ protected QName getQNameValue(XMLStreamReader reader, String value) {
+ if (value != null) {
+ int index = value.indexOf(':');
+ String prefix = index == -1 ? "" : value.substring(0, index);
+ String localName = index == -1 ? value : value.substring(index + 1);
+ String ns = reader.getNamespaceContext().getNamespaceURI(prefix);
+ if (ns == null) {
+ ns = "";
+ }
+ return new QName(ns, localName, prefix);
+ } else {
+ return null;
}
}
Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java?view=diff&rev=531146&r1=531145&r2=531146
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java Sat Apr 21 22:40:50 2007
@@ -24,6 +24,7 @@
import java.net.URI;
import java.net.URL;
import java.net.URLClassLoader;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -32,6 +33,7 @@
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
+import org.apache.tuscany.assembly.Composite;
import org.apache.tuscany.contribution.Contribution;
import org.apache.tuscany.contribution.DeployedArtifact;
import org.apache.tuscany.contribution.processor.PackageProcessorExtension;
@@ -117,7 +119,7 @@
InputStream metadataStream = null;
URL[] clUrls = {sourceURL};
- URLClassLoader cl = new URLClassLoader(clUrls, getClass().getClassLoader());
+ URLClassLoader cl = new URLClassLoader(clUrls);
contributionMetadataURL = cl.getResource(Contribution.SCA_CONTRIBUTION_META);
generatedContributionMetadataURL = cl.getResource(Contribution.SCA_CONTRIBUTION_GENERATED_META);
@@ -200,7 +202,7 @@
}
/**
- *
+ * Utility/Helper methods for contribution service
*/
/**
@@ -258,6 +260,8 @@
processResolvePhase(contribution);
processOptimizationPhase(contribution);
+ processDeployables(contribution);
+
// store the contribution on the registry
this.contributionRegistry.put(contribution.getUri(), contribution);
}
@@ -288,7 +292,16 @@
this.artifactProcessor.resolve(artifact.getModelObject(), artifactResolver);
}
}
-
+
+ //resolve deployables from contribution metadata
+ List<Composite> resolvedDeployables = new ArrayList<Composite>();
+ for (Composite deployableComposite : contribution.getDeployables()) {
+ deployableComposite = artifactResolver.resolve(Composite.class, deployableComposite);
+ resolvedDeployables.add(deployableComposite);
+ }
+
+ contribution.getDeployables().clear();
+ contribution.getDeployables().addAll(resolvedDeployables);
}
private void processOptimizationPhase(Contribution contribution) throws ContributionException {
@@ -300,4 +313,16 @@
}
+ private void processDeployables(Contribution contribution) throws ContributionException {
+ if (contribution.getDeployables() == null || contribution.getDeployables().size() == 0){
+ //Contribution metadata not available with a list of deployables
+ //Promote all composites to deployable
+ for (DeployedArtifact deployedArtifact : contribution.getArtifacts().values()) {
+ Object model = deployedArtifact.getModelObject();
+ if (model instanceof Composite) {
+ contribution.getDeployables().add((Composite) model);
+ }
+ }
+ }
+ }
}
Copied: incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/services/ContributionMetadataLoaderTestCase.java (from r529749, incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/services/ContributionLoaderTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/services/ContributionMetadataLoaderTestCase.java?view=diff&rev=531146&p1=incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/services/ContributionLoaderTestCase.java&r1=529749&p2=incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/services/ContributionMetadataLoaderTestCase.java&r2=531146
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/services/ContributionLoaderTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/services/ContributionMetadataLoaderTestCase.java Sat Apr 21 22:40:50 2007
@@ -33,7 +33,7 @@
/**
* @version $Rev$ $Date$
*/
-public class ContributionLoaderTestCase extends TestCase {
+public class ContributionMetadataLoaderTestCase extends TestCase {
private static final String VALID_XML =
"<?xml version=\"1.0\" encoding=\"ASCII\"?>"
Modified: incubator/tuscany/java/sca/modules/contribution/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/pom.xml?view=diff&rev=531146&r1=531145&r2=531146
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/contribution/pom.xml Sat Apr 21 22:40:50 2007
@@ -30,6 +30,12 @@
<dependencies>
<dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-assembly</artifactId>
+ <version>1.0-incubating-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
<groupId>stax</groupId>
<artifactId>stax-api</artifactId>
<version>1.0.1</version>
Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/Contribution.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/Contribution.java?view=diff&rev=531146&r1=531145&r2=531146
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/Contribution.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/Contribution.java Sat Apr 21 22:40:50 2007
@@ -27,7 +27,7 @@
import java.util.List;
import java.util.Map;
-import javax.xml.namespace.QName;
+import org.apache.tuscany.assembly.Composite;
/**
* The representation of a deployed contribution
@@ -40,7 +40,7 @@
protected List<String> exports = new ArrayList<String>();
protected List<ContributionImport> imports = new ArrayList<ContributionImport>();
- protected List<QName> deployables = new ArrayList<QName>();
+ protected List<Composite> deployables = new ArrayList<Composite>();
/**
* A list of artifacts in the contribution
@@ -80,7 +80,7 @@
return imports;
}
- public List<QName> getDeployables() {
+ public List<Composite> getDeployables() {
return deployables;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org