summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/trunk/samples/helloworld-erlang-service/src/test/java
diff options
context:
space:
mode:
authornash <nash@13f79535-47bb-0310-9956-ffa450edef68>2010-10-29 09:39:25 +0000
committernash <nash@13f79535-47bb-0310-9956-ffa450edef68>2010-10-29 09:39:25 +0000
commitce8f90902c62b076969745f9de08b3a5d30c74e5 (patch)
treefd35171fe0778712d2d4d6368475ed1ed07f5799 /sca-java-1.x/trunk/samples/helloworld-erlang-service/src/test/java
parentc0056d9c8280c84b0f7ba55bbe532a6a723031ad (diff)
Merge r1028655 TUSCANY-3759: Add code to read stdin and stderr from spawned epmd process and reverse changes made by commit r1028378
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1028659 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-1.x/trunk/samples/helloworld-erlang-service/src/test/java')
-rw-r--r--sca-java-1.x/trunk/samples/helloworld-erlang-service/src/test/java/helloworld/HelloWorldErlangServerTestCase.java155
1 files changed, 87 insertions, 68 deletions
diff --git a/sca-java-1.x/trunk/samples/helloworld-erlang-service/src/test/java/helloworld/HelloWorldErlangServerTestCase.java b/sca-java-1.x/trunk/samples/helloworld-erlang-service/src/test/java/helloworld/HelloWorldErlangServerTestCase.java
index 7f7d78c50d..a071e153d2 100644
--- a/sca-java-1.x/trunk/samples/helloworld-erlang-service/src/test/java/helloworld/HelloWorldErlangServerTestCase.java
+++ b/sca-java-1.x/trunk/samples/helloworld-erlang-service/src/test/java/helloworld/HelloWorldErlangServerTestCase.java
@@ -1,68 +1,87 @@
-/*
- * 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 helloworld;
-
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertNotNull;
-
-import helloworld.dynaignore.IgnorableRunner;
-import helloworld.dynaignore.IgnoreTest;
-
-import java.io.IOException;
-
-import org.apache.tuscany.sca.host.embedded.SCADomain;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-
-
-/**
- * Tests that the helloworld server is available
- */
-@RunWith(IgnorableRunner.class)
-public class HelloWorldErlangServerTestCase {
-
- private static final String EPMD_COMMAND = "epmd";
-
- @Test
- public void testServiceCall() throws IOException {
- Process epmdProcess = null;
- try {
- epmdProcess = Runtime.getRuntime().exec(EPMD_COMMAND);
- } catch (Exception e) {
- System.out
- .println("Cannot proceed - exception while executing "
- + EPMD_COMMAND
- + ": "
- + e.getMessage()
- + ". Valid and working Erlang/OTP distribution is required.");
- throw new IgnoreTest();
- }
- SCADomain scaDomain = SCADomain
- .newInstance("helloworlderlangservice.composite");
- HelloWorldService helloWorldService = scaDomain.getService(
- HelloWorldService.class,
- "HelloWorldServiceComponent/HelloWorldService");
- assertNotNull(helloWorldService);
- assertEquals("Hello Smith", helloWorldService.getGreetings("Smith"));
- scaDomain.close();
- epmdProcess.destroy();
- }
-
-}
+/*
+ * 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 helloworld;
+
+import java.io.InputStream;
+import java.io.IOException;
+
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertNotNull;
+
+import helloworld.dynaignore.IgnorableRunner;
+import helloworld.dynaignore.IgnoreTest;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Tests that the helloworld server is available
+ */
+@RunWith(IgnorableRunner.class)
+public class HelloWorldErlangServerTestCase {
+
+ private static final String EPMD_COMMAND = "epmd";
+
+ @Test
+ public void testServiceCall() {
+ Process epmdProcess = null;
+ try {
+ epmdProcess = Runtime.getRuntime().exec(EPMD_COMMAND);
+ } catch (IOException e) {
+ System.out
+ .println("Cannot proceed - exception while executing "
+ + EPMD_COMMAND
+ + ": "
+ + e.getMessage()
+ + ". Valid and working Erlang/OTP distribution is required.");
+ throw new IgnoreTest();
+ }
+ startReaderThread(epmdProcess.getInputStream());
+ startReaderThread(epmdProcess.getErrorStream());
+
+ SCADomain scaDomain = SCADomain
+ .newInstance("helloworlderlangservice.composite");
+ HelloWorldService helloWorldService = scaDomain.getService(
+ HelloWorldService.class,
+ "HelloWorldServiceComponent/HelloWorldService");
+ assertNotNull(helloWorldService);
+ assertEquals("Hello Smith", helloWorldService.getGreetings("Smith"));
+ scaDomain.close();
+
+ epmdProcess.destroy();
+ }
+
+ private static void startReaderThread(final InputStream stream) {
+ Thread readerThread = new Thread() {
+ public void run() {
+ try {
+ byte[] buf = new byte[100];
+ while (true) {
+ stream.read(buf);
+ }
+ } catch (Exception e) {
+ return;
+ }
+ }
+ };
+ readerThread.start();
+ }
+
+}