From 469cda8a3933309571383eb35ea022169dd99ee3 Mon Sep 17 00:00:00 2001 From: kelvingoodson Date: Mon, 13 Sep 2010 09:25:34 +0000 Subject: move hello world samples to getting started git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@996462 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/helloworld/HelloWorldClientTestCase.java | 85 ------ .../test/java/helloworld/HelloWorldTestServer.java | 67 ----- .../src/test/java/helloworld/TestCaseRunner.java | 329 --------------------- 3 files changed, 481 deletions(-) delete mode 100644 sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldClientTestCase.java delete mode 100644 sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldTestServer.java delete mode 100644 sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/TestCaseRunner.java (limited to 'sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test') diff --git a/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldClientTestCase.java b/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldClientTestCase.java deleted file mode 100644 index 3918f9a4a5..0000000000 --- a/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldClientTestCase.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * 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 junit.framework.Assert; - -import org.apache.tuscany.sca.node.Contribution; -import org.apache.tuscany.sca.node.ContributionLocationHelper; -import org.apache.tuscany.sca.node.Node; -import org.apache.tuscany.sca.node.NodeFactory; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -/** - * Test case for helloworld web service client - */ -public class HelloWorldClientTestCase { - - private HelloWorldService helloWorldService; - private static Node node; - - private TestCaseRunner server; - - @Before - public void startClient() throws Exception { - try { - - NodeFactory factory = NodeFactory.newInstance(); - String contribution = ContributionLocationHelper.getContributionLocation(HelloWorldClient.class); - node = - factory.createNode("helloworldwsclient.composite", new Contribution("helloworld", contribution)) - .start(); - - helloWorldService = node.getService(HelloWorldService.class, "HelloWorldServiceComponent"); - - server = new TestCaseRunner(HelloWorldTestServer.class); - server.before(); - - } catch (Throwable e) { - e.printStackTrace(); - } - } - - @Test - public void testWSClient() throws Exception { - Name name = HelloworldFactory.INSTANCE.createName(); - name.setFirst("John"); - name.setLast("Smith"); - String msg = helloWorldService.getGreetings(name); - Assert.assertEquals("Hello John Smith", msg); - } - - @After - public void stopClient() throws Exception { - server.after(); - node.stop(); - } - - public static void main(String[] args) throws Exception { - HelloWorldClientTestCase test = new HelloWorldClientTestCase(); - test.startClient(); - test.testWSClient(); - - System.in.read(); - } - -} diff --git a/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldTestServer.java b/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldTestServer.java deleted file mode 100644 index 98487ad88b..0000000000 --- a/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/HelloWorldTestServer.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * 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.IOException; -import java.net.Socket; - -import org.apache.tuscany.sca.node.Contribution; -import org.apache.tuscany.sca.node.ContributionLocationHelper; -import org.apache.tuscany.sca.node.Node; -import org.apache.tuscany.sca.node.NodeFactory; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -/** - * Starts up the SCA runtime which starts listening for service requests - */ -public class HelloWorldTestServer { - - private Node node; - - @Before - public void startServer() throws Exception { - try { - - NodeFactory factory = NodeFactory.newInstance(); - String contribution = ContributionLocationHelper.getContributionLocation(HelloWorldService.class); - node = factory.createNode("helloworldws.composite", new Contribution("helloworld", contribution)).start(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Test - public void testPing() throws IOException { - new Socket("127.0.0.1", 8085); - } - - @After - public void stopServer() throws Exception { - node.stop(); - } - - public static void main(String[] args) throws Exception { - - HelloWorldTestServer test = new HelloWorldTestServer(); - test.startServer(); - } - -} diff --git a/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/TestCaseRunner.java b/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/TestCaseRunner.java deleted file mode 100644 index b6b4ed2254..0000000000 --- a/sca-java-2.x/trunk/samples/helloworld-ws-sdo/src/test/java/helloworld/TestCaseRunner.java +++ /dev/null @@ -1,329 +0,0 @@ -/* - * 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.lang.annotation.Annotation; -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; -import java.net.URL; -import java.net.URLClassLoader; -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -/** - * A helper class that can be used to run an SCA JUnit test case. The test case will run in an isolated class loader. - * - * @version $Rev$ $Date$ - */ -public class TestCaseRunner { - - private ClassLoader classLoader; - private Class testSuiteClass; - private Object testSuite; - private Class testResultClass; - private Class testCaseClass; - private Object testCase; - - private Class beforeAnnotation; - private Class beforeClassAnnotation; - private Class afterAnnotation; - private Class afterClassAnnotation; - private Class junit4AdapterClass; - private Class junit3TestCaseClass; - - /** - * Constructs a new TestCase runner. - * - * @param testClass - */ - public TestCaseRunner(Class testClass, String... isolatedClasses) { - try { - ClassLoader tccl = setupClassLoader(testClass, isolatedClasses); - - try { - // Thread.currentThread().setContextClassLoader(classLoader); - // Allow privileged access to set class loader. Requires RuntimePermission - // setContextClassLoader in security policy. - final ClassLoader finalClassLoader = classLoader; - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - Thread.currentThread().setContextClassLoader(finalClassLoader); - return null; - } - }); - - testCaseClass = Class.forName(testClass.getName(), true, classLoader); - testCase = testCaseClass.newInstance(); - ClassLoader testClassLoader = testCaseClass.getClassLoader(); - - junit3TestCaseClass = Class.forName("junit.framework.TestCase", true, testClassLoader); - - testSuiteClass = Class.forName("junit.framework.TestSuite", true, testClassLoader); - Constructor testSuiteConstructor = testSuiteClass.getConstructor(Class.class); - testSuite = testSuiteConstructor.newInstance(testCaseClass); - - testResultClass = Class.forName("junit.framework.TestResult", true, testClassLoader); - - try { - beforeAnnotation = Class.forName("org.junit.Before", true, testClassLoader); - afterAnnotation = Class.forName("org.junit.After", true, testClassLoader); - beforeClassAnnotation = Class.forName("org.junit.BeforeClass", true, testClassLoader); - afterClassAnnotation = Class.forName("org.junit.AfterClass", true, testClassLoader); - junit4AdapterClass = Class.forName("junit.framework.JUnit4TestAdapter", true, testClassLoader); - } catch (Exception e) { - // Unexpected - throw new AssertionError(e); - } - } catch (Throwable e) { - e.printStackTrace(); - } finally { - // Thread.currentThread().setContextClassLoader(tccl); - // Allow privileged access to set class loader. Requires RuntimePermission - // setContextClassLoader in security policy. - final ClassLoader finaltccl = tccl; - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - Thread.currentThread().setContextClassLoader(finaltccl); - return null; - } - }); - } - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - private ClassLoader setupClassLoader(Class testClass, String... isolatedClasses) { - ClassLoader tccl = Thread.currentThread().getContextClassLoader(); - classLoader = testClass.getClassLoader(); - if (classLoader instanceof URLClassLoader) { - URL[] urls = ((URLClassLoader)classLoader).getURLs(); - classLoader = new ClassLoaderImpl(urls, classLoader, isolatedClasses); - } else if (classLoader == tccl || classLoader.getParent() == tccl) { - classLoader = new URLClassLoader(new URL[0], classLoader); - } else { - classLoader = tccl; - } - return tccl; - } - - /** - * Run the test case - */ - public void run() { - ClassLoader tccl = Thread.currentThread().getContextClassLoader(); - try { - // Thread.currentThread().setContextClassLoader(classLoader); - // Allow privileged access to set class loader. Requires RuntimePermission - // setContextClassLoader in security policy. - final ClassLoader finalClassLoader = classLoader; - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - Thread.currentThread().setContextClassLoader(finalClassLoader); - return null; - } - }); - - if (junit3TestCaseClass.isAssignableFrom(testCaseClass)) { - Object testResult = testResultClass.newInstance(); - Method runMethod = testSuiteClass.getMethod("run", testResultClass); - runMethod.invoke(testSuite, testResult); - } else { - Object junit4Adapter = junit4AdapterClass.getConstructor(Class.class).newInstance(testCaseClass); - Object testResult = testResultClass.newInstance(); - Method runMethod = junit4AdapterClass.getMethod("run", testResultClass); - runMethod.invoke(junit4Adapter, testResult); - } - } catch (Exception e) { - throw new RuntimeException(e); - } finally { - // Thread.currentThread().setContextClassLoader(tccl); - // Allow privileged access to set class loader. Requires RuntimePermission - // setContextClassLoader in security policy. - final ClassLoader finaltccl = tccl; - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - Thread.currentThread().setContextClassLoader(finaltccl); - return null; - } - }); - } - } - - /** - * Invoke the setUp method - */ - public void setUp() { - execute("setUp"); - } - - /** - * Invoke the before methods - */ - public void before() { - execute(beforeAnnotation); - } - - /** - * Invoke the beforeClass methods - */ - public void beforeClass() { - execute(beforeClassAnnotation); - } - - /** - * Invoke the tearDown method - */ - public void tearDown() { - execute("tearDown"); - } - - /** - * Invoke the after methods - */ - public void after() { - execute(afterAnnotation); - } - - /** - * Invoke the afterClass methods - */ - public void afterClass() { - execute(afterClassAnnotation); - } - - /** - * Invoke the specified test method. - */ - public void run(String methodName) { - execute(methodName); - } - - /** - * Invoke the methods annotated with the specified annotation. - */ - private void execute(Class annotationClass) { - if (annotationClass == null) { - throw new RuntimeException(new NoSuchMethodException()); - } - ClassLoader tccl = Thread.currentThread().getContextClassLoader(); - try { - // Thread.currentThread().setContextClassLoader(classLoader); - // Allow privileged access to set class loader. Requires RuntimePermission - // setContextClassLoader in security policy. - final ClassLoader finalClassLoader = classLoader; - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - Thread.currentThread().setContextClassLoader(finalClassLoader); - return null; - } - }); - - for (Method method : testCaseClass.getDeclaredMethods()) { - for (Annotation annotation : method.getAnnotations()) { - if (annotation.annotationType() == annotationClass) { - method.invoke(testCase); - } - } - } - } catch (Exception e) { - throw new RuntimeException(e); - } finally { - // Thread.currentThread().setContextClassLoader(tccl); - // Allow privileged access to set class loader. Requires RuntimePermission - // setContextClassLoader in security policy. - final ClassLoader finaltccl = tccl; - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - Thread.currentThread().setContextClassLoader(finaltccl); - return null; - } - }); - } - } - - /** - * Invoke the specified method - */ - private void execute(String methodName) { - ClassLoader tccl = Thread.currentThread().getContextClassLoader(); - try { - // Thread.currentThread().setContextClassLoader(classLoader); - // Allow privileged access to set class loader. Requires RuntimePermission - // setContextClassLoader in security policy. - final ClassLoader finalClassLoader = classLoader; - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - Thread.currentThread().setContextClassLoader(finalClassLoader); - return null; - } - }); - Method setUpMethod = testCaseClass.getDeclaredMethod(methodName); - setUpMethod.setAccessible(true); - setUpMethod.invoke(testCase); - } catch (Exception e) { - throw new RuntimeException(e); - } finally { - // Thread.currentThread().setContextClassLoader(tccl); - // Allow privileged access to set class loader. Requires RuntimePermission - // setContextClassLoader in security policy. - final ClassLoader finaltccl = tccl; - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - Thread.currentThread().setContextClassLoader(finaltccl); - return null; - } - }); - } - } - - public static class ClassLoaderImpl extends URLClassLoader { - private Set isolatedClasses = new HashSet(); - - /** - * @param urls - * @param parent - */ - public ClassLoaderImpl(URL[] urls, ClassLoader parent, String... sharedClasses) { - super(urls, parent); - this.isolatedClasses.addAll(Arrays.asList(sharedClasses)); - } - - @Override - protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException { - if (!isolatedClasses.contains(name)) { - return super.loadClass(name, resolve); - } else { - Class cls = findLoadedClass(name); - if (cls == null) { - cls = findClass(name); - } - if (resolve) { - resolveClass(cls); - } - return cls; - } - } - - } - -} -- cgit v1.2.3