summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--java/sca/modules/node2-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java27
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);
+ }
+ }
}