summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/node-impl
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2011-12-02 18:55:36 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2011-12-02 18:55:36 +0000
commit1ee87f0f4c14a106c7b37eef7aa218ed95a337b1 (patch)
tree99e02ee701e18738bcfe6eea759b96c56a5d502c /sca-java-2.x/trunk/modules/node-impl
parentf37a2fbbdc9a296727c533194a7f6fb90904d367 (diff)
Add ablity to specify endpoint descriptions in node.xml for local domain registry
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1209634 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/node-impl')
-rw-r--r--sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/configuration/xml/NodeConfigurationProcessor.java13
-rw-r--r--sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java15
-rw-r--r--sca-java-2.x/trunk/modules/node-impl/src/test/resources/org/apache/tuscany/sca/node/configuration/node1.xml9
3 files changed, 35 insertions, 2 deletions
diff --git a/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/configuration/xml/NodeConfigurationProcessor.java b/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/configuration/xml/NodeConfigurationProcessor.java
index 663129bc0f..48d76225fb 100644
--- a/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/configuration/xml/NodeConfigurationProcessor.java
+++ b/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/configuration/xml/NodeConfigurationProcessor.java
@@ -31,6 +31,7 @@ import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
+import org.apache.tuscany.sca.assembly.Endpoint;
import org.apache.tuscany.sca.common.xml.stax.StAXHelper;
import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
@@ -157,7 +158,12 @@ public class NodeConfigurationProcessor extends BaseStAXArtifactProcessor implem
helper.save(reader, writer);
composite.setContent(sw.toString());
} else {
- node.getExtensions().add(processor.read(reader, context));
+ Object ext = processor.read(reader, context);
+ if (ext instanceof Endpoint) {
+ node.getEndpointDescriptions().add((Endpoint)ext);
+ } else {
+ node.getExtensions().add(ext);
+ }
}
break;
@@ -238,6 +244,11 @@ public class NodeConfigurationProcessor extends BaseStAXArtifactProcessor implem
writeEnd(writer);
}
+ // FIXME: The composite processor assumes that composite is root element
+// for (Endpoint o : node.getEndpointDescriptions()) {
+// processor.write(o, writer, context);
+// }
+
for(Object o: node.getExtensions()) {
processor.write(o, writer, context);
}
diff --git a/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java b/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
index 22562a5b97..453b4fb486 100644
--- a/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
+++ b/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
@@ -136,7 +136,12 @@ public class NodeImpl implements Node, NodeExtension {
// Pass down the context attributes
compositeContext.getAttributes().putAll(configuration.getAttributes());
-
+ // Add endpoint descriptions from the node configuration if the domain registry is local
+ if (!domainRegistry.isDistributed()) {
+ for (Endpoint e : configuration.getEndpointDescriptions()) {
+ domainRegistry.addEndpoint(e);
+ }
+ }
// Activate the composite
compositeActivator.activate(compositeContext, domainComposite);
@@ -234,6 +239,14 @@ public class NodeImpl implements Node, NodeExtension {
compositeActivator.deactivate(domainComposite);
} // end if
+
+ // Remove the external endpoint descriptions from node.xml
+ DomainRegistry domainRegistry = compositeContext.getEndpointRegistry();
+ if (!domainRegistry.isDistributed()) {
+ for (Endpoint e : configuration.getEndpointDescriptions()) {
+ domainRegistry.removeEndpoint(e);
+ }
+ }
nodeFactory.removeNode(configuration);
/*
diff --git a/sca-java-2.x/trunk/modules/node-impl/src/test/resources/org/apache/tuscany/sca/node/configuration/node1.xml b/sca-java-2.x/trunk/modules/node-impl/src/test/resources/org/apache/tuscany/sca/node/configuration/node1.xml
index 4afc52d73b..0e574e61fe 100644
--- a/sca-java-2.x/trunk/modules/node-impl/src/test/resources/org/apache/tuscany/sca/node/configuration/node1.xml
+++ b/sca-java-2.x/trunk/modules/node-impl/src/test/resources/org/apache/tuscany/sca/node/configuration/node1.xml
@@ -55,4 +55,13 @@
</contribution>
<option name="debug" value="true"/>
<option name="validation">true</option>
+ <endpoint>
+ <sca:composite name="endpoint">
+ <sca:component name="Component1"> <!-- first component -->
+ <sca:service name="Service1">
+ <tuscany:binding.rest uri="http://localhost:8080/services/myResource" />
+ </sca:service>
+ </sca:component>
+ </sca:composite>
+ </endpoint>
</node> \ No newline at end of file