From 23c2714c6b6a895cc931edddfde54bc51768c20c Mon Sep 17 00:00:00 2001 From: rfeng Date: Thu, 25 Jun 2009 19:50:46 +0000 Subject: Use the QName as the key for binding base URIs git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@788487 13f79535-47bb-0310-9956-ffa450edef68 --- .../sca/assembly/builder/CompositeBuilderTmp.java | 4 ++- .../DefaultCompositeBuilderExtensionPoint.java | 6 +++-- .../impl/CompositeBindingURIBuilderImpl.java | 29 +++++++++------------- .../builder/impl/CompositeBuilderImpl.java | 5 ++-- .../tuscany/sca/node/impl/NodeFactoryImpl.java | 18 ++++++-------- .../sca/node/launcher/NodeLauncherUtil.java | 9 ++++++- 6 files changed, 38 insertions(+), 33 deletions(-) diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilderTmp.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilderTmp.java index cf3e62ab38..c6bf6caac0 100644 --- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilderTmp.java +++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/CompositeBuilderTmp.java @@ -22,6 +22,8 @@ package org.apache.tuscany.sca.assembly.builder; import java.util.List; import java.util.Map; +import javax.xml.namespace.QName; + import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.definitions.Definitions; import org.apache.tuscany.sca.monitor.Monitor; @@ -49,6 +51,6 @@ public interface CompositeBuilderTmp { * @param monitor * @throws CompositeBuilderException */ - void build(Composite composite, Definitions definitions, Map, List> bindingMap, Monitor monitor) throws CompositeBuilderException; + void build(Composite composite, Definitions definitions, Map> bindingBaseURIs, Monitor monitor) throws CompositeBuilderException; } diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultCompositeBuilderExtensionPoint.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultCompositeBuilderExtensionPoint.java index 4d6612979f..035d620778 100644 --- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultCompositeBuilderExtensionPoint.java +++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/DefaultCompositeBuilderExtensionPoint.java @@ -25,6 +25,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.xml.namespace.QName; + import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.core.FactoryExtensionPoint; @@ -125,9 +127,9 @@ public class DefaultCompositeBuilderExtensionPoint implements CompositeBuilderEx getBuilder().build(composite, definitions, monitor); } - public void build(Composite composite, Definitions definitions, Map, List> bindingMap, Monitor monitor) + public void build(Composite composite, Definitions definitions, Map> bindingBaseURIs, Monitor monitor) throws CompositeBuilderException { - ((CompositeBuilderTmp)getBuilder()).build(composite, definitions, bindingMap, monitor); + ((CompositeBuilderTmp)getBuilder()).build(composite, definitions, bindingBaseURIs, monitor); } private CompositeBuilder getBuilder() { diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java index 896d6d3540..2ef6202a85 100644 --- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java +++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java @@ -25,6 +25,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.xml.namespace.QName; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.TransformerFactory; @@ -81,10 +82,10 @@ public class CompositeBindingURIBuilderImpl extends BaseBuilderImpl implements C public void build(Composite composite, Definitions definitions, Monitor monitor) throws CompositeBuilderException { configureBindingURIsAndNames(composite, definitions, monitor); } - - public void build(Composite composite, Definitions definitions, Map, List> bindingMap, Monitor monitor) + + public void build(Composite composite, Definitions definitions, Map> bindingBaseURIs, Monitor monitor) throws CompositeBuilderException { - configureBindingURIs(composite, null, definitions, bindingMap, monitor); + configureBindingURIs(composite, null, definitions, bindingBaseURIs, monitor); configureBindingNames(composite, monitor); } @@ -107,7 +108,7 @@ public class CompositeBindingURIBuilderImpl extends BaseBuilderImpl implements C * @param defaultBindings list of default binding configurations */ protected void configureBindingURIs(Composite composite, - Definitions definitions, Map, List> defaultBindings, + Definitions definitions, Map> defaultBindings, Monitor monitor) throws CompositeBuilderException { configureBindingURIs(composite, null, definitions, defaultBindings, monitor); } @@ -133,7 +134,7 @@ public class CompositeBindingURIBuilderImpl extends BaseBuilderImpl implements C * @param defaultBindings list of default binding configurations */ private void configureBindingURIs(Composite composite, String uri, - Definitions definitions, Map, List> defaultBindings, + Definitions definitions, Map> defaultBindings, Monitor monitor) throws CompositeBuilderException { String parentComponentURI = uri; @@ -346,7 +347,7 @@ public class CompositeBindingURIBuilderImpl extends BaseBuilderImpl implements C * @param defaultBindings */ private void constructBindingURI(String parentComponentURI, Composite composite, Service service, - Binding binding, Map, List> defaultBindings, Monitor monitor) + Binding binding, Map> defaultBindings, Monitor monitor) throws CompositeBuilderException{ // This is a composite service so there is no component to provide a component URI // The path to this composite (through nested composites) is used. @@ -365,7 +366,7 @@ public class CompositeBindingURIBuilderImpl extends BaseBuilderImpl implements C * @param defaultBindings the list of default binding configurations */ private void constructBindingURI(Component component, Service service, - Binding binding, Map, List> defaultBindings, Monitor monitor) + Binding binding, Map> defaultBindings, Monitor monitor) throws CompositeBuilderException{ boolean includeBindingName = component.getServices().size() != 1; constructBindingURI(component.getURI(), service, binding, includeBindingName, defaultBindings, monitor); @@ -382,7 +383,7 @@ public class CompositeBindingURIBuilderImpl extends BaseBuilderImpl implements C * @throws CompositeBuilderException */ private void constructBindingURI(String componentURIString, Service service, Binding binding, - boolean includeBindingName, Map, List> defaultBindings, Monitor monitor) + boolean includeBindingName, Map> defaultBindings, Monitor monitor) throws CompositeBuilderException{ try { @@ -426,15 +427,9 @@ public class CompositeBindingURIBuilderImpl extends BaseBuilderImpl implements C // calculate the base URI URI baseURI = null; if (defaultBindings != null) { - for (Class bindingClass : defaultBindings.keySet()){ - if (bindingClass.isInstance(binding)){ - List uris = defaultBindings.get(bindingClass); - if (uris.size() > 0){ - baseURI = new URI(addSlashToPath(uris.get(0))); - } - - break; - } + List uris = defaultBindings.get(binding.getType()); + if (uris != null && uris.size() > 0) { + baseURI = new URI(addSlashToPath(uris.get(0))); } } diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java index e1598bb75f..bced0c807e 100644 --- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java +++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java @@ -22,6 +22,7 @@ import java.util.List; import java.util.Map; import java.util.logging.Logger; +import javax.xml.namespace.QName; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.TransformerFactory; @@ -145,7 +146,7 @@ public class CompositeBuilderImpl implements CompositeBuilder, CompositeBuilderT build(composite, definitions, null, monitor); } - public void build(Composite composite, Definitions definitions, Map, List> bindingMap, Monitor monitor) throws CompositeBuilderException { + public void build(Composite composite, Definitions definitions, Map> bindingBaseURIs, Monitor monitor) throws CompositeBuilderException { try { // Collect and fuse includes @@ -170,7 +171,7 @@ public class CompositeBuilderImpl implements CompositeBuilder, CompositeBuilderT // Configure service binding URIs and names. Creates an SCA defined URI based // on the scheme base URI, the component name and the binding name - ((CompositeBuilderTmp)compositeBindingURIBuilder).build(composite, definitions, bindingMap, monitor); + ((CompositeBuilderTmp)compositeBindingURIBuilder).build(composite, definitions, bindingBaseURIs, monitor); // Create $promoted$ component services on bottom level components // to represent promoted services 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 66f6f0e090..d4de78c81a 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 @@ -598,23 +598,21 @@ public class NodeFactoryImpl extends NodeFactory { tempComposite.getIncludes().add(composite); } } - + // TODO - EPR - create a binding map to pass down into the builders - // for use during URI calculation. - Map, List> bindingMap = new HashMap, List>(); - for (BindingConfiguration config : configuration.getBindings()){ - StAXArtifactProcessor processor = xmlProcessors.getProcessor(config.getBindingType()); - Class bindingClass = processor.getModelType(); - bindingMap.put(bindingClass, config.getBaseURIs()); + // for use during URI calculation. + Map> bindingMap = new HashMap>(); + for (BindingConfiguration config : configuration.getBindings()) { + bindingMap.put(config.getBindingType(), config.getBaseURIs()); } - + // build the top level composite ((CompositeBuilderTmp)compositeBuilder).build(tempComposite, systemDefinitions, bindingMap, monitor); analyzeProblems(); - + endpointReferenceBuilder.build(tempComposite, systemDefinitions, monitor); analyzeProblems(); - + return tempComposite; } diff --git a/java/sca/modules/node-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/NodeLauncherUtil.java b/java/sca/modules/node-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/NodeLauncherUtil.java index 33cb50ca97..d616cb4f5c 100644 --- a/java/sca/modules/node-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/NodeLauncherUtil.java +++ b/java/sca/modules/node-launcher/src/main/java/org/apache/tuscany/sca/node/launcher/NodeLauncherUtil.java @@ -371,9 +371,16 @@ final class NodeLauncherUtil { Object node; if (configurationURI != null) { + URL url = null; + URI uri = URI.create(configurationURI); + if (uri.getScheme() == null) { + uri = new File(configurationURI).toURI(); + } + url = uri.toURL(); + // NodeFactory.createNode(URL) Method create = bootstrapClass.getMethod("createNode", URL.class); - node = create.invoke(nodeFactory, new URL(configurationURI)); + node = create.invoke(nodeFactory, url); } else if (contributionClassLoader != null) { -- cgit v1.2.3