diff options
author | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2009-08-28 07:40:28 +0000 |
---|---|---|
committer | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2009-08-28 07:40:28 +0000 |
commit | ac78a258e361c11bf3867ce10bd9d135993a726f (patch) | |
tree | fa1d21412e341774e71e0cdfe3627134e1ea5b41 | |
parent | ad5f06c2a01a1f5bf3fc832b95dce9ec45a246b4 (diff) |
Add testcase for restarting DomainNodes and work around a problem that uncovers with stopping the NodeFactory kills all DOmainNodes
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@808793 13f79535-47bb-0310-9956-ffa450edef68
2 files changed, 83 insertions, 3 deletions
diff --git a/java/sca/modules/domain-node/src/main/java/org/apache/tuscany/sca/node/DomainNode.java b/java/sca/modules/domain-node/src/main/java/org/apache/tuscany/sca/node/DomainNode.java index ba862f8226..f4c7d0f97c 100644 --- a/java/sca/modules/domain-node/src/main/java/org/apache/tuscany/sca/node/DomainNode.java +++ b/java/sca/modules/domain-node/src/main/java/org/apache/tuscany/sca/node/DomainNode.java @@ -72,9 +72,10 @@ public class DomainNode { node.stop();
}
- nodeFactory.destroy();
- nodeFactory = null;
- nodes.clear();
+// TODO: stopping the node factory stops _all_ domain nodes not just this instance
+// nodeFactory.destroy();
+// nodeFactory = null;
+// nodes.clear();
}
public String addContribution(String location) {
diff --git a/java/sca/modules/domain-node/src/test/java/org/apache/tuscany/sca/node/StopStartNodesTestCase.java b/java/sca/modules/domain-node/src/test/java/org/apache/tuscany/sca/node/StopStartNodesTestCase.java new file mode 100644 index 0000000000..db2e5590a1 --- /dev/null +++ b/java/sca/modules/domain-node/src/test/java/org/apache/tuscany/sca/node/StopStartNodesTestCase.java @@ -0,0 +1,79 @@ +/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sca.node;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+import itest.nodes.Helloworld;
+
+import org.junit.After;
+import org.junit.Test;
+import org.oasisopen.sca.client.SCAClient;
+
+/**
+ * This shows how to test the Calculator service component.
+ */
+public class StopStartNodesTestCase{
+
+ private static DomainNode clientNode;
+ private static DomainNode serviceNode;
+
+ @Test
+ public void testTwoNodesSameDomain() throws Exception {
+ serviceNode = new DomainNode("vm://fooDomain", "target/test-classes/itest-nodes-helloworld-service-2.0-SNAPSHOT.jar");
+ clientNode = new DomainNode("vm://fooDomain", "target/test-classes/itest-nodes-helloworld-client-2.0-SNAPSHOT.jar");
+
+ Helloworld service = SCAClient.getService(Helloworld.class, "fooDomain/HelloworldService");
+ assertNotNull(service);
+ assertEquals("Hello Petra", service.sayHello("Petra"));
+
+ Helloworld client = SCAClient.getService(Helloworld.class, "fooDomain/HelloworldClient");
+ assertNotNull(client);
+ assertEquals("Hi Hello Petra", client.sayHello("Petra"));
+
+ serviceNode.stop();
+
+ client = SCAClient.getService(Helloworld.class, "fooDomain/HelloworldClient");
+ assertNotNull(client);
+ try {
+ assertEquals("Hi Hello Petra", client.sayHello("Petra"));
+ fail();
+ } catch (Exception e) {
+ e.printStackTrace();
+ // expected
+ }
+
+ serviceNode = new DomainNode("vm://fooDomain", "target/test-classes/itest-nodes-helloworld-service-2.0-SNAPSHOT.jar");
+ client = SCAClient.getService(Helloworld.class, "fooDomain/HelloworldClient");
+ assertNotNull(client);
+ assertEquals("Hi Hello Petra", client.sayHello("Petra"));
+ }
+
+ @After
+ public void tearDownAfterClass() throws Exception {
+ if (clientNode != null && clientNode.isStarted()) {
+ clientNode.stop();
+ }
+ if (serviceNode != null && serviceNode.isStarted()) {
+ serviceNode.stop();
+ }
+ }
+}
|