From d5e64539010bf1fcc2351a2dc87ee8f7797a1cc1 Mon Sep 17 00:00:00 2001 From: slaws Date: Mon, 10 Aug 2009 12:29:51 +0000 Subject: TUSCANY-3020 - when definitions are aggregated together check that there are no duplicates. DOne here rather than later at the resolve phase as there is a better chance of reporting some sensible context to the user about which definitions.xml file is in error. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@802762 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'java/sca/modules/node-impl/src') diff --git a/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java b/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java index 41531a7b10..db0c44ad39 100644 --- a/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java +++ b/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java @@ -433,9 +433,11 @@ public class NodeFactoryImpl extends NodeFactory { systemDefinitions = definitionsFactory.createDefinitions(); DefinitionsExtensionPoint definitionsExtensionPoint = extensionPoints.getExtensionPoint(DefinitionsExtensionPoint.class); + monitor.pushContext("Extension points definitions"); for(Definitions defs: definitionsExtensionPoint.getDefinitions()) { - DefinitionsUtil.aggregate(defs, systemDefinitions); + DefinitionsUtil.aggregate(defs, systemDefinitions, monitor); } + monitor.popContext(); // create a system contribution to hold the definitions. The contribution // will be extended later with definitions from application contributions @@ -482,11 +484,14 @@ public class NodeFactoryImpl extends NodeFactory { // each contribution so that for unresolved items the resolution // processing will look in the system contribution for (Contribution contribution: contributions) { + monitor.pushContext("Contribution: " + contribution.getURI()); // aggregate definitions for (Artifact artifact : contribution.getArtifacts()) { Object model = artifact.getModel(); if (model instanceof Definitions) { - DefinitionsUtil.aggregate((Definitions)model, systemDefinitions); + monitor.pushContext("Definitions: " + artifact.getLocation()); + DefinitionsUtil.aggregate((Definitions)model, systemDefinitions, monitor); + monitor.popContext(); } } @@ -497,6 +502,7 @@ public class NodeFactoryImpl extends NodeFactory { DefaultImport defaultImport = contributionFactory.createDefaultImport(); defaultImport.setModelResolver(systemContribution.getModelResolver()); contribution.getImports().add(defaultImport); + monitor.popContext(); } ExtensibleModelResolver modelResolver = new ExtensibleModelResolver(new Contributions(contributions), modelResolvers, modelFactories); -- cgit v1.2.3