diff options
-rw-r--r-- | java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java b/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java index b032a4fb9a..2d3f6350db 100644 --- a/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java +++ b/java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java @@ -19,9 +19,13 @@ package org.apache.tuscany.sca.node.impl; +import java.io.File; +import java.net.MalformedURLException; + import org.apache.tuscany.sca.node.SCAContribution; import org.apache.tuscany.sca.node.SCANode2; import org.apache.tuscany.sca.node.SCANode2Factory; +import org.osoa.sca.ServiceRuntimeException; /** * Default implementation of an SCA node factory. @@ -51,4 +55,27 @@ public class NodeFactoryImpl extends SCANode2Factory { public SCANode2 createSCANode(String compositeURI, String compositeContent, SCAContribution... contributions) { return new NodeImpl(compositeURI, compositeContent, contributions); } + + @Override + public SCANode2 createSCANode(String compositeURI) { + try { + + File compositeFile = new File(compositeURI); + if (!compositeFile.exists()) { + throw new IllegalArgumentException("composite not found: " + compositeURI); + } + + File compositeFolder = compositeFile.getParentFile(); + SCAContribution contribution = new SCAContribution(compositeFolder.getName(), compositeFolder.toURL().toString()); + + SCANode2 node = createSCANode(compositeFile.getName(), contribution); + + node.start(); + + return node; + + } catch (MalformedURLException e) { + throw new ServiceRuntimeException(e); + } + } } |