From 54fdb68ef9f00e6744a1685f208b7c860ef4cd33 Mon Sep 17 00:00:00 2001 From: antelder Date: Tue, 13 Apr 2010 10:12:18 +0000 Subject: Add a NodeFactory newInstance method that takes a Properties object instead of a map or maps to configure the runtime, which makes it easier to use git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@933537 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/tuscany/sca/node/NodeFactory.java | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'sca-java-2.x/trunk') diff --git a/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java b/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java index b8bfbee356..e4df78ffde 100644 --- a/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java +++ b/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java @@ -31,8 +31,10 @@ import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Properties; import org.apache.tuscany.sca.node.configuration.DefaultNodeConfigurationFactory; import org.apache.tuscany.sca.node.configuration.NodeConfiguration; @@ -192,6 +194,28 @@ public abstract class NodeFactory extends DefaultNodeConfigurationFactory { return nodeFactory; } + public static NodeFactory newInstance(Properties properties) { + Map> attributes = new HashMap>(); + for (String key : properties.stringPropertyNames()) { + int i = key.lastIndexOf('.'); + String mk, m2k; + if (i > -1) { + mk = key.substring(0, i); + m2k = key.substring(i+1); + } else { + mk = "system"; + m2k = key; + } + Map m2 = attributes.get(mk); + if (m2 == null) { + m2 = new HashMap(); + attributes.put(mk, m2); + } + m2.put(m2k, properties.getProperty(key)); + } + return newInstance(attributes); + } + /** * Configure the NodeFactory instance * @param attributes -- cgit v1.2.3