summaryrefslogtreecommitdiffstats
path: root/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java44
1 files changed, 30 insertions, 14 deletions
diff --git a/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java b/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java
index d642244f2c..9e10a25885 100644
--- a/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java
+++ b/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/impl/ContributionCollectionImpl.java
@@ -59,7 +59,6 @@ import org.apache.tuscany.sca.contribution.DefaultExport;
import org.apache.tuscany.sca.contribution.DefaultImport;
import org.apache.tuscany.sca.contribution.Export;
import org.apache.tuscany.sca.contribution.Import;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
@@ -67,6 +66,7 @@ import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint;
import org.apache.tuscany.sca.contribution.service.ContributionReadException;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
import org.apache.tuscany.sca.core.UtilityExtensionPoint;
import org.apache.tuscany.sca.data.collection.Entry;
import org.apache.tuscany.sca.data.collection.Item;
@@ -80,7 +80,9 @@ import org.apache.tuscany.sca.monitor.Problem;
import org.apache.tuscany.sca.monitor.Problem.Severity;
import org.apache.tuscany.sca.workspace.Workspace;
import org.apache.tuscany.sca.workspace.WorkspaceFactory;
-import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder;
+import org.apache.tuscany.sca.workspace.builder.ContributionBuilder;
+import org.apache.tuscany.sca.workspace.builder.ContributionBuilderException;
+import org.apache.tuscany.sca.workspace.builder.ContributionBuilderExtensionPoint;
import org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl;
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
@@ -120,6 +122,7 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl
private XMLInputFactory inputFactory;
private XMLOutputFactory outputFactory;
private DocumentBuilder documentBuilder;
+ private ContributionBuilder contributionDependencyBuilder;
/**
* Cache workspace and contribution models.
@@ -151,7 +154,7 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl
monitor = monitorFactory.createMonitor();
// Create model factories
- ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
+ FactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
outputFactory = modelFactories.getFactory(XMLOutputFactory.class);
outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, true);
contributionFactory = modelFactories.getFactory(ContributionFactory.class);
@@ -169,6 +172,11 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl
// Create a document builder (used to pretty print XML)
documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+
+ // Get contribution dependency builder
+ ContributionBuilderExtensionPoint contributionBuilders = extensionPoints.getExtensionPoint(ContributionBuilderExtensionPoint.class);
+ contributionDependencyBuilder = contributionBuilders.getContributionBuilder("org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder");
+
}
public Entry<String, Item>[] getAll() {
@@ -182,7 +190,7 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl
if (contribution.getURI().equals(DEPLOYMENT_CONTRIBUTION_URI)) {
continue;
}
- entries.add(entry(workspace, contribution, monitor));
+ entries.add(entry(workspace, contribution, contributionDependencyBuilder, monitor));
}
return entries.toArray(new Entry[entries.size()]);
}
@@ -194,7 +202,7 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl
Workspace workspace = readContributions(readWorkspace());
for (Contribution contribution: workspace.getContributions()) {
if (key.equals(contribution.getURI())) {
- return item(workspace, contribution, monitor);
+ return item(workspace, contribution, contributionDependencyBuilder, monitor);
}
}
throw new NotFoundException(key);
@@ -282,8 +290,11 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl
if (key.equals(contribution.getURI())) {
// Compute the contribution dependencies
- ContributionDependencyBuilder analyzer = new ContributionDependencyBuilderImpl(monitor);
- List<Contribution> dependencies = analyzer.buildContributionDependencies(contribution, workspace);
+ try {
+ contributionDependencyBuilder.build(contribution, workspace, monitor);
+ } catch (ContributionBuilderException e) {
+ }
+ List<Contribution> dependencies = contribution.getDependencies();
// Returns entries for the dependencies
// optionally skip the specified contribution
@@ -293,7 +304,7 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl
// Skip the specified contribution
continue;
}
- entries.add(entry(workspace, dependency, monitor));
+ entries.add(entry(workspace, dependency, contributionDependencyBuilder, monitor));
}
break;
}
@@ -363,7 +374,7 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl
Contribution contribution = contributionFactory.createContribution();
contribution.setURI(uri);
contribution.setLocation(locationPath);
- entries.add(entry(suggestionWorkspace, contribution, monitor));
+ entries.add(entry(suggestionWorkspace, contribution, contributionDependencyBuilder, monitor));
}
}
@@ -379,10 +390,11 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl
* @param contribution
* @return
*/
- private static Entry<String, Item> entry(Workspace workspace, Contribution contribution, Monitor monitor) {
+ private static Entry<String, Item> entry(Workspace workspace, Contribution contribution,
+ ContributionBuilder contributionDependencyBuilder, Monitor monitor) {
Entry<String, Item> entry = new Entry<String, Item>();
entry.setKey(contribution.getURI());
- entry.setData(item(workspace, contribution, monitor));
+ entry.setData(item(workspace, contribution, contributionDependencyBuilder, monitor));
return entry;
}
@@ -394,7 +406,8 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl
* @param monitor
* @return
*/
- private static Item item(Workspace workspace, Contribution contribution, final Monitor monitor) {
+ private static Item item(Workspace workspace, Contribution contribution,
+ ContributionBuilder contributionDependencyBuilder, final Monitor monitor) {
String contributionURI = contribution.getURI();
Item item = new Item();
item.setTitle(title(contributionURI));
@@ -427,8 +440,11 @@ public class ContributionCollectionImpl implements ItemCollection, LocalItemColl
};
StringBuffer sb = new StringBuffer();
- ContributionDependencyBuilderImpl analyzer = new ContributionDependencyBuilderImpl(recordingMonitor);
- List<Contribution> dependencies = analyzer.buildContributionDependencies(contribution, workspace);
+ try {
+ contributionDependencyBuilder.build(contribution, workspace, recordingMonitor);
+ } catch (ContributionBuilderException e) {
+ }
+ List<Contribution> dependencies = contribution.getDependencies();
if (dependencies.size() > 1) {
sb.append("Dependencies: <span id=\"dependencies\">");
for (int i = 0, n = dependencies.size(); i < n ; i++) {