From 66b949a8a7f78a0ceaa9eb52f6be07ff69a12ff4 Mon Sep 17 00:00:00 2001 From: kelvingoodson Date: Sat, 25 Sep 2010 16:44:22 +0000 Subject: TUSCANY-3677 getting-started clearup git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1001269 13f79535-47bb-0310-9956-ffa450edef68 --- .../contribution-helloworld-ws-sdo/README | 214 -------------- .../contribution-helloworld-ws-sdo/build.xml | 101 ------- .../helloworld-ws-sdo.png | Bin 7549 -> 0 bytes .../maven-eclipse.xml | 8 - .../contribution-helloworld-ws-sdo/pom.xml | 180 ----------- .../src/main/java/helloworld/HelloWorldClient.java | 51 ---- .../src/main/java/helloworld/HelloWorldImpl.java | 33 --- .../src/main/java/helloworld/HelloWorldServer.java | 51 ---- .../main/java/helloworld/HelloWorldService.java | 34 --- .../helloworld/HelloWorldServiceComponent.java | 42 --- .../main/java/services/bcircle/BioTestCase.java | 59 ---- .../java/services/bcircle/BiochemicalCircle.java | 29 -- .../services/bcircle/BiochemicalCircleImpl.java | 40 --- .../main/resources/META-INF/sca-contribution.xml | 28 -- .../src/main/resources/helloworldws.composite | 31 -- .../main/resources/helloworldwsclient.composite | 34 --- .../src/main/resources/logging.properties | 30 -- .../resources/clinicalLaboratory.composite | 34 --- .../src/main/resources/test.xsd | 35 --- .../src/main/resources/wsdl/helloworld.wsdl | 88 ------ .../java/helloworld/HelloWorldClientTestCase.java | 85 ------ .../test/java/helloworld/HelloWorldTestServer.java | 67 ----- .../src/test/java/helloworld/TestCaseRunner.java | 329 --------------------- 23 files changed, 1603 deletions(-) delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/README delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/build.xml delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/helloworld-ws-sdo.png delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/maven-eclipse.xml delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/pom.xml delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldClient.java delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldImpl.java delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServer.java delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldService.java delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServiceComponent.java delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/services/bcircle/BioTestCase.java delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircle.java delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircleImpl.java delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/META-INF/sca-contribution.xml delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/helloworldws.composite delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/helloworldwsclient.composite delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/logging.properties delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/resources/clinicalLaboratory.composite delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/test.xsd delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/wsdl/helloworld.wsdl delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/test/java/helloworld/HelloWorldClientTestCase.java delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/test/java/helloworld/HelloWorldTestServer.java delete mode 100644 sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/test/java/helloworld/TestCaseRunner.java (limited to 'sca-java-2.x/trunk/samples/getting-started') diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/README b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/README deleted file mode 100644 index be947b1923..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/README +++ /dev/null @@ -1,214 +0,0 @@ -Hello World Web Service References using SDO Sample -=================================================== -This sample demonstrates an SCA reference that uses a web service binding which works with SDO. - -The README in the samples directory (the directory above this) provides -general instructions about building and running samples. Take a look there -first. - -To run this sample ------------------- -This sample is dependent on helloworld-ws-service. Open a command prompt to start -the service. If you are running ant do the following: - -cd helloworld-ws-service -ant run - -if you don't have ant, issue one of the following commands for windows or *nix: - -java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-helloworld-ws-service.jar helloworld.HelloWorldServer - -and on *nix do - -java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-helloworld-ws-service.jar helloworld.HelloWorldServer - -You should see the following output: - -Buildfile: build.xml - -run-server: - [java] log4j:WARN No appenders could be found for logger (org.apache.axiom. -om.util.StAXUtils). - [java] log4j:WARN Please initialize the log4j system properly. - [java] Aug 24, 2007 11:17:33 AM org.apache.catalina.core.StandardEngine sta -rt - [java] INFO: Starting Servlet Engine: Apache Tomcat/6.0.10 - [java] Aug 24, 2007 11:17:34 AM org.apache.catalina.startup.ContextConfig d -efaultWebConfig - [java] INFO: No default web.xml - [java] Aug 24, 2007 11:17:34 AM org.apache.catalina.startup.DigesterFactory - register - [java] WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_0. -xsd - [java] Aug 24, 2007 11:17:34 AM org.apache.catalina.startup.DigesterFactory - register - [java] WARNING: Could not get url for /javax/servlet/jsp/resources/web-jspt -aglibrary_1_1.dtd - [java] Aug 24, 2007 11:17:34 AM org.apache.catalina.startup.DigesterFactory - register - [java] WARNING: Could not get url for /javax/servlet/jsp/resources/web-jspt -aglibrary_1_2.dtd - [java] Aug 24, 2007 11:17:34 AM org.apache.catalina.startup.DigesterFactory - register - [java] WARNING: Could not get url for /javax/servlet/jsp/resources/web-jspt -aglibrary_2_0.xsd - [java] Aug 24, 2007 11:17:34 AM org.apache.catalina.startup.DigesterFactory - register - [java] WARNING: Could not get url for /javax/servlet/resources/j2ee_web_ser -vices_1_1.xsd - [java] Aug 24, 2007 11:17:34 AM org.apache.coyote.http11.Http11Protocol ini -t - [java] INFO: Initializing Coyote HTTP/1.1 on http-8085 - [java] Aug 24, 2007 11:17:34 AM org.apache.coyote.http11.Http11Protocol sta -rt - [java] INFO: Starting Coyote HTTP/1.1 on http-8085 - [java] Aug 24, 2007 11:17:34 AM org.apache.tuscany.sca.http.tomcat.TomcatSe -rver addServletMapping - [java] INFO: Added Servlet mapping: http://localhost:8085/HelloWorldService - - [java] HelloWorld server started (press enter to shutdown) - -The server is now ready. - - -Now, open another command window to run the client. - -cd helloworld-ws-sdo -ant run - -OR if you don't have ant, on Windows do - -java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-helloworld-ws-sdo.jar helloworld.HelloWorldClient - -and on *nix do - -java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-helloworld-ws-sdo.jar helloworl.HelloWorldClient - -You should be able to see the following result: - -Buildfile: build.xml - -run: - [java] log4j:WARN No appenders could be found for logger (org.apache.axiom. -om.util.StAXUtils). - [java] log4j:WARN Please initialize the log4j system properly. - [java] Injected helloWorldService - [java] Called getGreetings - [java] Hello David Haney - -BUILD SUCCESSFUL -Total time: 9 seconds - - -Sample Overview ---------------- -The sample provides a single component that is wired to a reference with a -web service binding. The binding refers to WSDL that identifies the service -exposed by the helloworld-ws-service sample. - -helloworld-ws-sdo/ - src/ - main/ - java/ - helloworld/ - HelloWorldService.java - interface description for - HelloWorldServiceComponent - HelloWorldServiceComponent.java - component implementation - HelloWorldClient.java - starts the SCA Runtime and - deploys the helloworldwsclient - .composite. It then calls the - HelloWorldServiceComponent - resources/ - wsdl - helloworld.wsdl - the service description that the - SCA reference uses to bind to service. - - test/ - java/ - helloworld/ - HelloWorldClientTestCase.java - JUnit test case - helloworld-ws-sdo.png - a pictorial representation of the - sample .composite file - build.xml - the Ant build file - pom.xml - the Maven build file - -Building And Running The Sample Using Ant ------------------------------------------ -You can build and run the sample with the binary distribution using Ant. -Make sure that you have started helloworld-ws-service which this sample is dependent on -in a separate command window. You can either follow the instruction at the begining of this -sample file or if you want to build and run the service, follow the README under helloworld-ws-service. - -Now, let's build and run helloworld-ws-sdo sample: - -cd helloworld-ws-sdo -ant -ant run - -You should see the following output from the run target. - -run: - [java] log4j:WARN No appenders could be found for logger (org.apache.axiom. -om.util.StAXUtils). - [java] log4j:WARN Please initialize the log4j system properly. - [java] Injected helloWorldService - [java] Called getGreetings - [java] Hello World - -Building And Running The Sample Using Maven -------------------------------------------- -You can build and run the sample with either the binary or source distributions using Maven. Please note that you do not need to start helloworld-ws-service in this case since Maven does this for you. - -cd helloworld-ws-sdo -mvn - -You should see the following output from the test phase. - -------------------------------------------------------- - T E S T S -------------------------------------------------------- -Running helloworld.HelloWorldClientTestCase -log4j:WARN No appenders could be found for logger (org.apache.axiom.om.util.StAX -Utils). -log4j:WARN Please initialize the log4j system properly. -log4j:WARN No appenders could be found for logger (org.apache.axiom.om.util.StAX -Utils). -log4j:WARN Please initialize the log4j system properly. -Aug 23, 2007 2:27:32 PM org.apache.catalina.core.StandardEngine start -INFO: Starting Servlet Engine: Apache Tomcat/6.0.10 -Aug 23, 2007 2:27:32 PM org.apache.catalina.startup.ContextConfig defaultWebConf -ig -INFO: No default web.xml -Aug 23, 2007 2:27:32 PM org.apache.catalina.startup.DigesterFactory register -WARNING: Could not get url for /javax/servlet/jsp/resources/jsp_2_0.xsd -Aug 23, 2007 2:27:32 PM org.apache.catalina.startup.DigesterFactory register -WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_ -1.dtd -Aug 23, 2007 2:27:32 PM org.apache.catalina.startup.DigesterFactory register -WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_1_ -2.dtd -Aug 23, 2007 2:27:32 PM org.apache.catalina.startup.DigesterFactory register -WARNING: Could not get url for /javax/servlet/jsp/resources/web-jsptaglibrary_2_ -0.xsd -Aug 23, 2007 2:27:32 PM org.apache.catalina.startup.DigesterFactory register -WARNING: Could not get url for /javax/servlet/resources/j2ee_web_services_1_1.xs -d -Aug 23, 2007 2:27:32 PM org.apache.coyote.http11.Http11Protocol init -INFO: Initializing Coyote HTTP/1.1 on http-8085 -Aug 23, 2007 2:27:32 PM org.apache.coyote.http11.Http11Protocol start -INFO: Starting Coyote HTTP/1.1 on http-8085 -Aug 23, 2007 2:27:32 PM org.apache.tuscany.sca.http.tomcat.TomcatServer addServl -etMapping -INFO: Added Servlet mapping: http://localhost:8085/HelloWorldService -Injected helloWorldService -Called getGreetings -Aug 23, 2007 2:27:34 PM org.apache.coyote.http11.Http11Protocol destroy -INFO: Stopping Coyote HTTP/1.1 on http-8085 -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 8.502 sec - -Results : - -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 - - -This shows that the Junit test cases have run successfully. diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/build.xml b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/build.xml deleted file mode 100644 index 401315d424..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/build.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/helloworld-ws-sdo.png b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/helloworld-ws-sdo.png deleted file mode 100644 index bd2bba41db..0000000000 Binary files a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/helloworld-ws-sdo.png and /dev/null differ diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/maven-eclipse.xml b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/maven-eclipse.xml deleted file mode 100644 index 3adfca89f4..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/maven-eclipse.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/pom.xml b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/pom.xml deleted file mode 100644 index c5bf5ff186..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/pom.xml +++ /dev/null @@ -1,180 +0,0 @@ - - - - 4.0.0 - - org.apache.tuscany.sca - tuscany-samples - 2.0-SNAPSHOT - ../pom.xml - - sample-helloworld-ws-sdo - Apache Tuscany SCA Sample HelloWorld Web Service SDO - - - - org.apache.tuscany.sca - tuscany-node-api - 2.0-SNAPSHOT - - - - org.apache.tuscany.sca - tuscany-node-impl - 2.0-SNAPSHOT - runtime - - - org.apache.tuscany.sca - tuscany-implementation-java-runtime - 2.0-SNAPSHOT - runtime - - - - org.apache.tuscany.sca - tuscany-binding-ws-runtime-axis2 - 2.0-SNAPSHOT - runtime - - - - org.apache.tuscany.sdo - tuscany-sdo-lib - 1.1.1 - - - org.apache.tuscany.sdo - tuscany-sdo-impl - 1.1.1 - - - backport-util-concurrent - backport-util-concurrent - - - - - backport-util-concurrent - backport-util-concurrent - 3.1 - - - org.apache.tuscany.sca - tuscany-databinding-sdo - 2.0-SNAPSHOT - compile - - - - org.apache.tuscany.sca - tuscany-host-jetty - 2.0-SNAPSHOT - runtime - - - - junit - junit - 4.5 - test - - - - - - ${artifactId} - - - - - - org.apache.tuscany.maven.plugins - maven-tuscany-plugin - 2.0-SNAPSHOT - - - org.apache.tuscany.sca - tuscany-databinding-sdo - 2.0-SNAPSHOT - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 1.0 - - - add-source - generate-sources - - add-test-source - - - - target/sdo-source - - - - - - - org.apache.tuscany.sdo - tuscany-sdo-plugin - 1.1.1 - - - generate-helloworld-sdo - generate-sources - - ${basedir}/src/main/resources/wsdl/helloworld.wsdl - helloworld - Helloworld - true - true - true - - - generate - - - - generate-helloworld-sdo1 - generate-sources - - ${basedir}/src/main/resources/test.xsd - model.sdo - Entity - true - true - true - - - generate - - - - - - - - diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldClient.java b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldClient.java deleted file mode 100644 index ebc270811f..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldClient.java +++ /dev/null @@ -1,51 +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 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; - -/** - * This client program shows how to create an SCA runtime, start it, locate the - * HelloWorld service and invoke it. - */ -public class HelloWorldClient { - - public final static void main(String[] args) throws Exception { - - NodeFactory factory = NodeFactory.newInstance(); - String contribution = ContributionLocationHelper.getContributionLocation(HelloWorldClient.class); - Node node = - factory.createNode("helloworldwsclient.composite", new Contribution("helloworld", contribution)).start(); - - HelloWorldService helloWorldService = node.getService(HelloWorldService.class, "HelloWorldServiceComponent"); - - Name name = HelloworldFactory.INSTANCE.createName(); - - name.setFirst("David"); - name.setLast("Haney"); - - String value = helloWorldService.getGreetings(name); - System.out.println(value); - - node.stop(); - } -} diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldImpl.java b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldImpl.java deleted file mode 100644 index c42a4d59c3..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldImpl.java +++ /dev/null @@ -1,33 +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 org.oasisopen.sca.annotation.Service; - -/** - * This class implements the HelloWorld service. - */ -@Service(HelloWorldService.class) -public class HelloWorldImpl implements HelloWorldService { - - public String getGreetings(Name name) { - return "Hello " + name.getFirst() + " " + name.getLast(); - } - -} diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServer.java b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServer.java deleted file mode 100644 index ff5cb4ceda..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServer.java +++ /dev/null @@ -1,51 +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 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; - -/** - * This server program shows how to create an SCA runtime, and start it which - * activates the helloworld Web service endpoint. - */ -public class HelloWorldServer { - - public static void main(String[] args) { - - NodeFactory factory = NodeFactory.newInstance(); - String contribution = ContributionLocationHelper.getContributionLocation(HelloWorldServer.class); - Node node = factory.createNode("helloworldws.composite", new Contribution("helloworld", contribution)).start(); - - try { - System.out.println("HelloWorld server started (press enter to shutdown)"); - System.in.read(); - } catch (IOException e) { - e.printStackTrace(); - } - - node.stop(); - System.out.println("HelloWorld server stopped"); - } - -} diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldService.java b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldService.java deleted file mode 100644 index fa257a0605..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldService.java +++ /dev/null @@ -1,34 +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 javax.xml.ws.RequestWrapper; -import javax.xml.ws.ResponseWrapper; - -import org.oasisopen.sca.annotation.Remotable; - -/** - * The interface for the helloworld service - */ -@Remotable -public interface HelloWorldService { - @RequestWrapper(className="helloworld.getGreetings") - @ResponseWrapper(className="helloworld.getGreetingsResponse") - public String getGreetings(Name name); -} diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServiceComponent.java b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServiceComponent.java deleted file mode 100644 index 711eef63b5..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/helloworld/HelloWorldServiceComponent.java +++ /dev/null @@ -1,42 +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; - -/** - * The HelloWorld service implementation - */ -public class HelloWorldServiceComponent implements HelloWorldService { - - HelloWorldService helloWorldService; - - public String getGreetings(Name name) { - System.out.println("Called getGreetings"); - return helloWorldService.getGreetings(name); - } - - public HelloWorldService getHelloWorldService() { - System.out.println("Got Injected helloWorldService"); - return helloWorldService; - } - - public void setHelloWorldService(HelloWorldService helloWorldService) { - System.out.println("Injected helloWorldService"); - this.helloWorldService = helloWorldService; - } -} diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/services/bcircle/BioTestCase.java b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/services/bcircle/BioTestCase.java deleted file mode 100644 index d222d77b3b..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/services/bcircle/BioTestCase.java +++ /dev/null @@ -1,59 +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 services.bcircle; - -import model.sdo.EntityFactory; -import model.sdo.Laboratory; - -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; - -public class BioTestCase { - - /** - * @param args - */ - public static void main(String[] args) { - BiochemicalCircle biochemicalCircl = new BiochemicalCircleImpl(); - Laboratory lab2 = biochemicalCircl.getLaboratory("Lab2"); //This invocation without use SCA works ok. - - NodeFactory factory = NodeFactory.newInstance(); - String contribution = ContributionLocationHelper.getContributionLocation(BioTestCase.class); - Node node = - factory.createNode("resources/clinicalLaboratory.composite", new Contribution("clinical", contribution)) - .start(); - - BiochemicalCircle biochemicalCircle = node.getService(BiochemicalCircle.class, "BiochemicalCircleComponent"); - - Laboratory lab = EntityFactory.INSTANCE.createLaboratory(); - lab.setName("lab2"); - biochemicalCircle.setLaboratory(lab); // this invocation works ok too - - lab = biochemicalCircle.getLaboratory("Lab2"); // here I have an exception posted below. - - //here I wait a moment before close scaDomain - System.out.println(lab.getName()); - - node.stop(); - - } -} diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircle.java b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircle.java deleted file mode 100644 index a988a4156c..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircle.java +++ /dev/null @@ -1,29 +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 services.bcircle; - -import org.oasisopen.sca.annotation.Remotable; - -@Remotable -public interface BiochemicalCircle { - void setLaboratory(model.sdo.Laboratory lab); - - model.sdo.Laboratory getLaboratory(String name); -} diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircleImpl.java b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircleImpl.java deleted file mode 100644 index b609f58373..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/java/services/bcircle/BiochemicalCircleImpl.java +++ /dev/null @@ -1,40 +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 services.bcircle; -import model.sdo.EntityFactory; -import model.sdo.Laboratory; - -import org.oasisopen.sca.annotation.Service; - - -@Service(BiochemicalCircle.class) -public class BiochemicalCircleImpl implements BiochemicalCircle{ - public Laboratory getLaboratory(String name) { - - Laboratory lab = EntityFactory.INSTANCE.createLaboratory(); - lab.setName("Main Laboratory"); - return lab; - } - - public void setLaboratory(Laboratory lab) { - //sad method - System.out.println(lab.getName()); - } -} diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/META-INF/sca-contribution.xml deleted file mode 100644 index f8b2a60f6a..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/META-INF/sca-contribution.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/helloworldws.composite b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/helloworldws.composite deleted file mode 100644 index 46c819d08c..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/helloworldws.composite +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/helloworldwsclient.composite b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/helloworldwsclient.composite deleted file mode 100644 index 65b0e294a8..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/helloworldwsclient.composite +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/logging.properties b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/logging.properties deleted file mode 100644 index 3dca310cdb..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/logging.properties +++ /dev/null @@ -1,30 +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. -# -# $Rev$ $Date$ -# - -# Custom logging configuration for Tuscany samples -# By default, only INFO level logging is enabled and ALL messages get sent to the console -# For more messages from the runtime, uncomment specific settings at the end of this file -handlers = java.util.logging.ConsoleHandler -java.util.logging.ConsoleHandler.level = ALL -java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter -.level=INFO - -# Uncomment the next setting to get all Tuscany messages (this will be a lot) -#org.apache.tuscany.level=FINEST diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/resources/clinicalLaboratory.composite b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/resources/clinicalLaboratory.composite deleted file mode 100644 index 0451cee24c..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/resources/clinicalLaboratory.composite +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/test.xsd b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/test.xsd deleted file mode 100644 index 7fd9aa0013..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/test.xsd +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/wsdl/helloworld.wsdl b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/wsdl/helloworld.wsdl deleted file mode 100644 index 882819110f..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/main/resources/wsdl/helloworld.wsdl +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/test/java/helloworld/HelloWorldClientTestCase.java b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/test/java/helloworld/HelloWorldClientTestCase.java deleted file mode 100644 index 3918f9a4a5..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-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/getting-started/contributions/contribution-helloworld-ws-sdo/src/test/java/helloworld/HelloWorldTestServer.java b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/test/java/helloworld/HelloWorldTestServer.java deleted file mode 100644 index 98487ad88b..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-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/getting-started/contributions/contribution-helloworld-ws-sdo/src/test/java/helloworld/TestCaseRunner.java b/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-helloworld-ws-sdo/src/test/java/helloworld/TestCaseRunner.java deleted file mode 100644 index b6b4ed2254..0000000000 --- a/sca-java-2.x/trunk/samples/getting-started/contributions/contribution-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