From 2e0a5f4c1368993c8cf71b9f4b59273a323b9aff Mon Sep 17 00:00:00 2001 From: antelder Date: Thu, 28 Jul 2011 11:07:25 +0000 Subject: Recreate 2.0-Beta3 branch from current trunk git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1151792 13f79535-47bb-0310-9956-ffa450edef68 --- .../samples/getting-started/getting-started.odt | Bin 0 -> 11166 bytes .../samples/getting-started/getting-started.pdf | Bin 0 -> 28006 bytes .../getting-started/helloworld-jaxrs/README | 22 +++ .../getting-started/helloworld-jaxrs/pom.xml | 120 ++++++++++++++ .../src/main/java/sample/Helloworld.java | 28 ++++ .../src/main/java/sample/HelloworldImpl.java | 27 +++ .../src/main/java/sample/JaxrsHelloworld.java | 36 ++++ .../main/resources/META-INF/sca-contribution.xml | 25 +++ .../src/main/resources/helloworld.composite | 33 ++++ .../src/test/java/sample/HelloworldTestCase.java | 71 ++++++++ .../getting-started/helloworld-jsonp/README | 23 +++ .../getting-started/helloworld-jsonp/pom.xml | 113 +++++++++++++ .../src/main/java/sample/Helloworld.java | 28 ++++ .../src/main/java/sample/HelloworldImpl.java | 27 +++ .../main/resources/META-INF/sca-contribution.xml | 25 +++ .../src/main/resources/helloworld.composite | 32 ++++ .../src/test/java/sample/HelloworldTestCase.java | 74 +++++++++ .../getting-started/helloworld-jsonrpc/README | 27 +++ .../getting-started/helloworld-jsonrpc/pom.xml | 113 +++++++++++++ .../src/main/java/sample/Helloworld.java | 28 ++++ .../src/main/java/sample/HelloworldImpl.java | 27 +++ .../main/resources/META-INF/sca-contribution.xml | 25 +++ .../src/main/resources/helloworld.composite | 32 ++++ .../src/test/java/sample/HelloworldTestCase.java | 75 +++++++++ .../getting-started/helloworld-scaclient/README | 25 +++ .../getting-started/helloworld-scaclient/pom.xml | 121 ++++++++++++++ .../src/main/java/sample/Helloworld.java | 28 ++++ .../src/main/java/sample/HelloworldSCAClient.java | 45 +++++ .../src/test/java/sample/HelloworldTestCase.java | 56 +++++++ .../getting-started/helloworld-spring/README | 18 ++ .../getting-started/helloworld-spring/pom.xml | 106 ++++++++++++ .../src/main/java/sample/Helloworld.java | 28 ++++ .../src/main/java/sample/HelloworldImpl.java | 27 +++ .../main/resources/META-INF/sca-contribution.xml | 25 +++ .../src/main/resources/helloworld-context.xml | 27 +++ .../src/main/resources/helloworld.composite | 29 ++++ .../src/test/java/sample/HelloworldTestCase.java | 48 ++++++ .../getting-started/helloworld-webapp/README | 32 ++++ .../getting-started/helloworld-webapp/pom.xml | 181 +++++++++++++++++++++ .../src/main/java/sample/Helloworld.java | 28 ++++ .../src/main/webapp/WEB-INF/web.composite | 30 ++++ .../src/main/webapp/WEB-INF/web.xml | 41 +++++ .../helloworld-webapp/src/main/webapp/hello.jsp | 37 +++++ .../src/test/java/itest/HelloworldTestCase.java | 53 ++++++ .../src/test/resources/test-web.xml | 30 ++++ .../getting-started/helloworld-webservice/README | 18 ++ .../getting-started/helloworld-webservice/pom.xml | 113 +++++++++++++ .../src/main/java/sample/Helloworld.java | 28 ++++ .../src/main/java/sample/HelloworldImpl.java | 27 +++ .../main/resources/META-INF/sca-contribution.xml | 25 +++ .../src/main/resources/helloworld.composite | 32 ++++ .../src/test/java/sample/HelloworldTestCase.java | 76 +++++++++ .../getting-started/helloworld-withdeps/README | 35 ++++ .../getting-started/helloworld-withdeps/pom.xml | 120 ++++++++++++++ .../resources/META-INF/helloworld.composite | 29 ++++ .../resources/META-INF/sca-contribution.xml | 25 +++ .../helloworld-withdeps/src/main/assembly/zip.xml | 41 +++++ .../src/main/java/sample/Helloworld.java | 28 ++++ .../src/main/java/sample/HelloworldImpl.java | 29 ++++ .../src/test/java/sample/HelloworldTestCase.java | 49 ++++++ .../samples/getting-started/helloworld/README | 43 +++++ .../samples/getting-started/helloworld/pom.xml | 92 +++++++++++ .../src/main/java/sample/Helloworld.java | 28 ++++ .../src/main/java/sample/HelloworldImpl.java | 27 +++ .../main/resources/META-INF/sca-contribution.xml | 25 +++ .../src/main/resources/helloworld.composite | 29 ++++ .../src/test/java/sample/HelloworldTestCase.java | 48 ++++++ .../2.0-Beta3/samples/getting-started/pom.xml | 45 +++++ 68 files changed, 3038 insertions(+) create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/getting-started.odt create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/getting-started.pdf create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/README create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/pom.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/java/sample/Helloworld.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/java/sample/HelloworldImpl.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/java/sample/JaxrsHelloworld.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/resources/helloworld.composite create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/test/java/sample/HelloworldTestCase.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/README create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/pom.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/java/sample/Helloworld.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/java/sample/HelloworldImpl.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/resources/helloworld.composite create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/test/java/sample/HelloworldTestCase.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/README create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/pom.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/java/sample/Helloworld.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/java/sample/HelloworldImpl.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/resources/helloworld.composite create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/test/java/sample/HelloworldTestCase.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/README create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/pom.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/src/main/java/sample/Helloworld.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/src/main/java/sample/HelloworldSCAClient.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/src/test/java/sample/HelloworldTestCase.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/README create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/pom.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/java/sample/Helloworld.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/java/sample/HelloworldImpl.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/resources/helloworld-context.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/resources/helloworld.composite create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/test/java/sample/HelloworldTestCase.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/README create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/pom.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/java/sample/Helloworld.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/webapp/WEB-INF/web.composite create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/webapp/WEB-INF/web.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/webapp/hello.jsp create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/test/java/itest/HelloworldTestCase.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/test/resources/test-web.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/README create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/pom.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/java/sample/Helloworld.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/java/sample/HelloworldImpl.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/resources/helloworld.composite create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/test/java/sample/HelloworldTestCase.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/README create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/pom.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/assembly/resources/META-INF/helloworld.composite create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/assembly/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/assembly/zip.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/java/sample/Helloworld.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/java/sample/HelloworldImpl.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/test/java/sample/HelloworldTestCase.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/README create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/pom.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/java/sample/Helloworld.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/java/sample/HelloworldImpl.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/resources/helloworld.composite create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/test/java/sample/HelloworldTestCase.java create mode 100644 sca-java-2.x/branches/2.0-Beta3/samples/getting-started/pom.xml (limited to 'sca-java-2.x/branches/2.0-Beta3/samples/getting-started') diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/getting-started.odt b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/getting-started.odt new file mode 100644 index 0000000000..078cce7478 Binary files /dev/null and b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/getting-started.odt differ diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/getting-started.pdf b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/getting-started.pdf new file mode 100644 index 0000000000..23f272d0c2 Binary files /dev/null and b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/getting-started.pdf differ diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/README b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/README new file mode 100644 index 0000000000..ae2a0101e0 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/README @@ -0,0 +1,22 @@ +Tuscany - Getting Started - Helloworld JAX-RS Sample +---------------------------------------------------- + +This sample extends the helloworld sample to make the helloworld service available as an HTTP endpoint by using JAX-RS and the Tuscany REST binding. + +The changes to the helloworld sample are: +- update the pom.xml with the additional dependencies +- add a new Java interface which uses JAX-RS annotations +- update the composite to use the new interface and binding + +As with all the getting-started samples you can run this sample with: + + mvn tuscany:run + +Then at a web browser enter the following URL: + +http://localhost:8080/HelloworldComponent/Helloworld/sayHello?name=world + +which should return a page saying: + +Hello world + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/pom.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/pom.xml new file mode 100644 index 0000000000..ff38e2cdce --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/pom.xml @@ -0,0 +1,120 @@ + + + + 4.0.0 + + + org.apache.tuscany.sca.samples + tuscany-samples + 2.0-Beta3-SNAPSHOT + + + helloworld-jaxrs + 2.0-Beta3-SNAPSHOT + + Apache Tuscany SCA Samples Helloworld JAX-RS + + + ${project.version} + + + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + provided + + + + javax.ws.rs + jsr311-api + 1.1.1 + provided + + + + junit + junit + 4.8.1 + test + + + + org.apache.tuscany.sca + tuscany-base-runtime + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-binding-rest-runtime + ${tuscany.version} + test + + + + org.mortbay.jetty + jetty + 6.1.26 + test + + + + + + + + + + + org.apache.tuscany.sca + tuscany-maven-plugin + ${tuscany.version} + + + org.apache.tuscany.sca + tuscany-binding-rest-runtime + ${tuscany.version} + + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/java/sample/Helloworld.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/java/sample/Helloworld.java new file mode 100644 index 0000000000..f4e8c50448 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/java/sample/Helloworld.java @@ -0,0 +1,28 @@ +/* + * 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 sample; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface Helloworld { + + String sayHello(String name); + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/java/sample/HelloworldImpl.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/java/sample/HelloworldImpl.java new file mode 100644 index 0000000000..089b1a4290 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/java/sample/HelloworldImpl.java @@ -0,0 +1,27 @@ +/* + * 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 sample; + +public class HelloworldImpl implements Helloworld { + + public String sayHello(String name) { + return "Hello " + name; + } + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/java/sample/JaxrsHelloworld.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/java/sample/JaxrsHelloworld.java new file mode 100644 index 0000000000..a944736144 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/java/sample/JaxrsHelloworld.java @@ -0,0 +1,36 @@ +/* + * 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 sample; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface JaxrsHelloworld { + + @GET + @Path("sayHello") + @Produces(MediaType.TEXT_PLAIN) + String sayHello(@QueryParam("name") String name); +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..95c32fb5bf --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/resources/helloworld.composite b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..88df3636c3 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/main/resources/helloworld.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/test/java/sample/HelloworldTestCase.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/test/java/sample/HelloworldTestCase.java new file mode 100644 index 0000000000..93a9a0e719 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jaxrs/src/test/java/sample/HelloworldTestCase.java @@ -0,0 +1,71 @@ +/* + * 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 sample; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; + +import org.apache.tuscany.sca.Node; +import org.apache.tuscany.sca.TuscanyRuntime; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.monitor.ValidationException; +import org.apache.tuscany.sca.runtime.ActivationException; +import org.junit.Assert; +import org.junit.Test; +import org.oasisopen.sca.NoSuchServiceException; + +public class HelloworldTestCase { + + @Test + public void testSayHello() throws NoSuchServiceException, IOException, ContributionReadException, ActivationException, ValidationException { + + // Run the SCA composite in a Tuscany runtime + Node node = TuscanyRuntime.runComposite("helloworld.composite", "target/classes"); + try { + + // test that has exposed an HTTP endpoint that works as expected + URL url = new URL("http://localhost:8080/HelloworldComponent/Helloworld/sayHello?name=Amelia"); + Assert.assertEquals("Hello Amelia", read(url.openStream())); + + } finally { + // Stop the Tuscany runtime Node + node.stop(); + } + } + + private static String read(InputStream is) throws IOException { + BufferedReader reader = null; + try { + reader = new BufferedReader(new InputStreamReader(is)); + StringBuffer sb = new StringBuffer(); + String str; + while ((str = reader.readLine()) != null) { + sb.append(str); + } + return sb.toString(); + } finally { + if (reader != null) { + reader.close(); + } + } + } +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/README b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/README new file mode 100644 index 0000000000..5a99f91036 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/README @@ -0,0 +1,23 @@ +Tuscany - Getting Started - Helloworld JSONP Sample +--------------------------------------------------- + +This sample extends the helloworld sample to make the helloworld service available as an HTTP endpoint using JSONP. +JSONP is a protocol supported by many Web clients that enables client requests to a server in a different domain. + +The changes to the helloworld sample are: +- update the pom.xml with the additional dependencies +- update the composite to use the JSONP binding + +As with all the getting-started samples you can run this sample with: + + mvn tuscany:run + +Then at a web browser enter the following URL: + +http://localhost:8080/HelloworldComponent/Helloworld/sayHello?name=world&callback=respFunc + +which should return a page saying: + +respFunc("Hello world"); + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/pom.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/pom.xml new file mode 100644 index 0000000000..78eac50efd --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/pom.xml @@ -0,0 +1,113 @@ + + + + 4.0.0 + + + org.apache.tuscany.sca.samples + tuscany-samples + 2.0-Beta3-SNAPSHOT + + + + helloworld-jsonp + 2.0-Beta3-SNAPSHOT + + Apache Tuscany SCA Samples Helloworld JSONP + + + ${project.version} + + + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + provided + + + + junit + junit + 4.8.1 + test + + + + org.apache.tuscany.sca + tuscany-base-runtime + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-binding-jsonp-runtime + ${tuscany.version} + test + + + org.mortbay.jetty + jetty + 6.1.26 + test + + + + + + + + + + + org.apache.tuscany.sca + tuscany-maven-plugin + ${tuscany.version} + + + org.apache.tuscany.sca + tuscany-binding-jsonp-runtime + ${tuscany.version} + + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/java/sample/Helloworld.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/java/sample/Helloworld.java new file mode 100644 index 0000000000..f4e8c50448 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/java/sample/Helloworld.java @@ -0,0 +1,28 @@ +/* + * 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 sample; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface Helloworld { + + String sayHello(String name); + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/java/sample/HelloworldImpl.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/java/sample/HelloworldImpl.java new file mode 100644 index 0000000000..089b1a4290 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/java/sample/HelloworldImpl.java @@ -0,0 +1,27 @@ +/* + * 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 sample; + +public class HelloworldImpl implements Helloworld { + + public String sayHello(String name) { + return "Hello " + name; + } + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..95c32fb5bf --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/resources/helloworld.composite b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..4c33fd2b70 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/main/resources/helloworld.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/test/java/sample/HelloworldTestCase.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/test/java/sample/HelloworldTestCase.java new file mode 100644 index 0000000000..7951e4d6e8 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonp/src/test/java/sample/HelloworldTestCase.java @@ -0,0 +1,74 @@ +/* + * 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 sample; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; + +import org.apache.tuscany.sca.Node; +import org.apache.tuscany.sca.TuscanyRuntime; +import org.junit.Assert; +import org.junit.Test; +import org.oasisopen.sca.NoSuchServiceException; + +public class HelloworldTestCase { + + @Test + public void testSayHello() throws NoSuchServiceException, IOException { + + // Run the SCA composite in a Tuscany runtime + Node node = TuscanyRuntime.runComposite("helloworld.composite", "target/classes"); + try { + + // Get the Helloworld service proxy + Helloworld helloworld = node.getService(Helloworld.class, "HelloworldComponent"); + + // test that it works as expected + Assert.assertEquals("Hello Amelia", helloworld.sayHello("Amelia")); + + // test that has exposed an HTTP endpoint that works as expected + URL url = new URL("http://localhost:8080/HelloworldComponent/Helloworld/sayHello?name=Amelia&callback=someFunc"); + Assert.assertEquals("someFunc(\"Hello Amelia\");", read(url.openStream())); + + } finally { + // Stop the Tuscany runtime Node + node.stop(); + } + } + + private static String read(InputStream is) throws IOException { + BufferedReader reader = null; + try { + reader = new BufferedReader(new InputStreamReader(is)); + StringBuffer sb = new StringBuffer(); + String str; + while ((str = reader.readLine()) != null) { + sb.append(str); + } + return sb.toString(); + } finally { + if (reader != null) { + reader.close(); + } + } + } +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/README b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/README new file mode 100644 index 0000000000..c197ddcd95 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/README @@ -0,0 +1,27 @@ +Tuscany - Getting Started - Helloworld JSONRPC Sample +----------------------------------------------------- + +This sample extends the helloworld sample to make the helloworld service available as a JSON-RPC endpoint. +JSON-RPC is a protocol for doing remote procedure calls encoded in JSON. + +The changes to the helloworld sample are: +- update the pom.xml with the additional dependencies +- update the composite to use the JSON-RPC binding + +As with all the getting-started samples you can run this sample with: + + mvn tuscany:run + +Then at a web browser enter the following URL: +(JSON-RPC aruguments are base64 encoded, so in this URL "WyJXb3JsZCJd" unecoded is "["World"]") + + http://localhost:8080/HelloworldComponent/Helloworld?method=sayHello¶ms=WyJXb3JsZCJd&id=1 + +which should return a page saying: + + {"id":1,"result":"Hello World"} + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/pom.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/pom.xml new file mode 100644 index 0000000000..639e0c61a3 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/pom.xml @@ -0,0 +1,113 @@ + + + + 4.0.0 + + + org.apache.tuscany.sca.samples + tuscany-samples + 2.0-Beta3-SNAPSHOT + + + + helloworld-jsonrpc + 2.0-Beta3-SNAPSHOT + + Apache Tuscany SCA Samples Helloworld JSON-RPC + + + ${project.version} + + + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + provided + + + + junit + junit + 4.8.1 + test + + + + org.apache.tuscany.sca + tuscany-base-runtime + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-binding-jsonrpc-runtime + ${tuscany.version} + test + + + org.mortbay.jetty + jetty + 6.1.26 + test + + + + + + + + + + + org.apache.tuscany.sca + tuscany-maven-plugin + ${tuscany.version} + + + org.apache.tuscany.sca + tuscany-binding-jsonrpc-runtime + ${tuscany.version} + + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/java/sample/Helloworld.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/java/sample/Helloworld.java new file mode 100644 index 0000000000..f4e8c50448 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/java/sample/Helloworld.java @@ -0,0 +1,28 @@ +/* + * 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 sample; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface Helloworld { + + String sayHello(String name); + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/java/sample/HelloworldImpl.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/java/sample/HelloworldImpl.java new file mode 100644 index 0000000000..089b1a4290 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/java/sample/HelloworldImpl.java @@ -0,0 +1,27 @@ +/* + * 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 sample; + +public class HelloworldImpl implements Helloworld { + + public String sayHello(String name) { + return "Hello " + name; + } + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..95c32fb5bf --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/resources/helloworld.composite b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..5b37e6f3db --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/main/resources/helloworld.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/test/java/sample/HelloworldTestCase.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/test/java/sample/HelloworldTestCase.java new file mode 100644 index 0000000000..61e53a6939 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-jsonrpc/src/test/java/sample/HelloworldTestCase.java @@ -0,0 +1,75 @@ +/* + * 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 sample; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; + +import org.apache.tuscany.sca.Node; +import org.apache.tuscany.sca.TuscanyRuntime; +import org.junit.Assert; +import org.junit.Test; +import org.oasisopen.sca.NoSuchServiceException; + +public class HelloworldTestCase { + + @Test + public void testSayHello() throws NoSuchServiceException, IOException { + + // Run the SCA composite in a Tuscany runtime + Node node = TuscanyRuntime.runComposite("helloworld.composite", "target/classes"); + try { + + // Get the Helloworld service proxy + Helloworld helloworld = node.getService(Helloworld.class, "HelloworldComponent"); + + // test that it works as expected + Assert.assertEquals("Hello Amelia", helloworld.sayHello("Amelia")); + + // test that has exposed an HTTP endpoint that works as expected + // JSONRPC args are base64 encoded, ["World"] = WyJXb3JsZCJd + URL url = new URL("http://localhost:8080/HelloworldComponent/Helloworld?method=sayHello¶ms=WyJXb3JsZCJd&id=1"); + Assert.assertEquals("{\"id\":1,\"result\":\"Hello World\"}", read(url.openStream())); + + } finally { + // Stop the Tuscany runtime Node + node.stop(); + } + } + + private static String read(InputStream is) throws IOException { + BufferedReader reader = null; + try { + reader = new BufferedReader(new InputStreamReader(is)); + StringBuffer sb = new StringBuffer(); + String str; + while ((str = reader.readLine()) != null) { + sb.append(str); + } + return sb.toString(); + } finally { + if (reader != null) { + reader.close(); + } + } + } +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/README b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/README new file mode 100644 index 0000000000..5672944c8f --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/README @@ -0,0 +1,25 @@ +Tuscany - Getting Started - Helloworld SCAClient Sample +------------------------------------------------------- + +This sample demonstrates using the OASIS SCAClient API to invoke a service in a remote SCA domain. + +See the README in the top-level samples folder for general information on the Tuscany samples. + +This project has a plain Java SE class with a main method which uses the OASIS SCAClient API to invoke a Helloworld service in a remote SCA domain. + +Before running this sample you must have a helloworld service running in a SCA domain somewhere, for example, you can do that by using a separate command prompt to run one of the Tuscany "Getting Started" samples which provide a helloworld service, for examaple, helloworld, or helloworld-spring. + +You can then run this SCAClient sample with the Maven command: + + mvn tuscany:run + +As this sample uses a standard Java SE main class you can also run it with the maven exec java plugin: + + mvn exec:java + +You should see the following output: + + HelloworldSCAClient, using domainURI uri:default + Calling HelloworldComponent.sayHello("world") + Hello world + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/pom.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/pom.xml new file mode 100644 index 0000000000..e2d5182a8f --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/pom.xml @@ -0,0 +1,121 @@ + + + + 4.0.0 + + + org.apache.tuscany.sca.samples + tuscany-samples + 2.0-Beta3-SNAPSHOT + + + + helloworld-scaclient + 2.0-Beta3-SNAPSHOT + + Apache Tuscany SCA Samples Helloworld SCAClient + + + ${project.version} + + + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + provided + + + + junit + junit + 4.8.1 + test + + + + org.apache.tuscany.sca + tuscany-base-runtime + ${tuscany.version} + test + + + + + org.apache.tuscany.sca + tuscany-domain-hazelcast + ${tuscany.version} + test + + + + + + + + + + + org.apache.tuscany.sca + tuscany-maven-plugin + ${tuscany.version} + + sample.HelloworldSCAClient + + + + + + org.codehaus.mojo + exec-maven-plugin + 1.1.1 + + + + java + + + + + sample.HelloworldSCAClient + test + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/src/main/java/sample/Helloworld.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/src/main/java/sample/Helloworld.java new file mode 100644 index 0000000000..1eeb8be9fd --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/src/main/java/sample/Helloworld.java @@ -0,0 +1,28 @@ +/* + * 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 sample; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface Helloworld { + + String sayHello(String name); + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/src/main/java/sample/HelloworldSCAClient.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/src/main/java/sample/HelloworldSCAClient.java new file mode 100644 index 0000000000..0a91fdb70f --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/src/main/java/sample/HelloworldSCAClient.java @@ -0,0 +1,45 @@ +/* + * 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 sample; + +import java.net.URI; + +import org.oasisopen.sca.NoSuchDomainException; +import org.oasisopen.sca.NoSuchServiceException; +import org.oasisopen.sca.client.SCAClientFactory; + +public class HelloworldSCAClient { + + public static void main(String[] args) throws NoSuchDomainException, NoSuchServiceException { + + String domainURI = System.getProperties().getProperty("domainURI"); + if (domainURI == null || domainURI.length() < 1) { + domainURI = "uri:default"; + } + + System.out.println("HelloworldSCAClient, using domainURI " + domainURI); + SCAClientFactory factory = SCAClientFactory.newInstance(URI.create(domainURI)); + + String name = args.length < 1 ? "world" : args[0]; + System.out.println("Calling HelloworldComponent.sayHello(\"" + name + "\"):"); + Helloworld service = factory.getService(Helloworld.class, "HelloworldComponent"); + System.out.println(service.sayHello(name)); + } + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/src/test/java/sample/HelloworldTestCase.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/src/test/java/sample/HelloworldTestCase.java new file mode 100644 index 0000000000..d983c25b61 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-scaclient/src/test/java/sample/HelloworldTestCase.java @@ -0,0 +1,56 @@ +/* + * 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 sample; + +import org.apache.tuscany.sca.Node; +import org.apache.tuscany.sca.TuscanyRuntime; +import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.monitor.ValidationException; +import org.apache.tuscany.sca.runtime.ActivationException; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.oasisopen.sca.NoSuchDomainException; +import org.oasisopen.sca.NoSuchServiceException; + +public class HelloworldTestCase { + + static Node node; + + @Test + public void testSayHello() throws NoSuchDomainException, NoSuchServiceException { + System.setProperty("domainURI", "uri:default?wka=127.0.0.1:7654"); + HelloworldSCAClient.main(new String[0]); + } + + @BeforeClass + public static void start() throws ContributionReadException, ActivationException, ValidationException { + node = TuscanyRuntime.newInstance().createNode("uri:default?bind=127.0.0.1:7654"); + String curi = node.installContribution(null, "../helloworld/target/classes", null, null); + node.startDeployables(curi); + } + + @AfterClass + public static void stop() { + if (node != null) { + node.stop(); + } + } + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/README b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/README new file mode 100644 index 0000000000..5fb675b502 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/README @@ -0,0 +1,18 @@ +Tuscany - Getting Started - Helloworld Spring Sample +---------------------------------------------------- + +This sample is an alternative version of the helloworld sample which uses the Spring Framework instead of an SCA Java component. + +The changes to the helloworld sample are: +- update the pom.xml with the additional Spring dependencies +- add a Spring context xml file to define the Spring application +- update the composite to use + +As with all the getting-started samples you can run this sample with: + + mvn tuscany:run + +And then as with the original helloworld sample you may test the service by using the Shell "invoke" command: + + invoke HelloworldComponent sayHello yourName + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/pom.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/pom.xml new file mode 100644 index 0000000000..f085fe31b4 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/pom.xml @@ -0,0 +1,106 @@ + + + + 4.0.0 + + + org.apache.tuscany.sca.samples + tuscany-samples + 2.0-Beta3-SNAPSHOT + + + helloworld-spring + 2.0-Beta3-SNAPSHOT + + Apache Tuscany SCA Samples Helloworld Spring + + + ${project.version} + + + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + provided + + + + junit + junit + 4.8.1 + test + + + + org.apache.tuscany.sca + tuscany-base-runtime + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-implementation-spring-runtime + ${tuscany.version} + test + + + + + + + + + + + org.apache.tuscany.sca + tuscany-maven-plugin + ${tuscany.version} + + + org.apache.tuscany.sca + tuscany-implementation-spring-runtime + ${tuscany.version} + + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/java/sample/Helloworld.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/java/sample/Helloworld.java new file mode 100644 index 0000000000..f4e8c50448 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/java/sample/Helloworld.java @@ -0,0 +1,28 @@ +/* + * 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 sample; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface Helloworld { + + String sayHello(String name); + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/java/sample/HelloworldImpl.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/java/sample/HelloworldImpl.java new file mode 100644 index 0000000000..089b1a4290 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/java/sample/HelloworldImpl.java @@ -0,0 +1,27 @@ +/* + * 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 sample; + +public class HelloworldImpl implements Helloworld { + + public String sayHello(String name) { + return "Hello " + name; + } + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..95c32fb5bf --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/resources/helloworld-context.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/resources/helloworld-context.xml new file mode 100644 index 0000000000..a6b11d2399 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/resources/helloworld-context.xml @@ -0,0 +1,27 @@ + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/resources/helloworld.composite b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..4ed0fb51dc --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/main/resources/helloworld.composite @@ -0,0 +1,29 @@ + + + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/test/java/sample/HelloworldTestCase.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/test/java/sample/HelloworldTestCase.java new file mode 100644 index 0000000000..be27aa68ef --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-spring/src/test/java/sample/HelloworldTestCase.java @@ -0,0 +1,48 @@ +/* + * 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 sample; + +import org.junit.Assert; + +import org.apache.tuscany.sca.Node; +import org.apache.tuscany.sca.TuscanyRuntime; +import org.junit.Test; +import org.oasisopen.sca.NoSuchServiceException; + +public class HelloworldTestCase { + + @Test + public void testSayHello() throws NoSuchServiceException { + + // Run the SCA composite in a Tuscany runtime + Node node = TuscanyRuntime.runComposite("helloworld.composite", "target/classes"); + try { + + // Get the Helloworld service proxy + Helloworld helloworld = node.getService(Helloworld.class, "HelloworldComponent"); + + // test that it works as expected + Assert.assertEquals("Hello Amelia", helloworld.sayHello("Amelia")); + + } finally { + // Stop the Tuscany runtime Node + node.stop(); + } + } +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/README b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/README new file mode 100644 index 0000000000..bcf11d9886 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/README @@ -0,0 +1,32 @@ +Tuscany - Getting Started - Helloworld WebApp Sample +---------------------------------------------------- + +This sample demonstrates how to use SCA contributions with Web Applications + +See the README in the top-level samples folder for general information on the Tuscany samples. + +This sample project creates a .war web application which includes Tuscany. The SCA contribution +from the helloworld sample is included within the war and its SCA composite started by the webapp, +and there is a JSP page which shows how to invoke SCA services by using the SCA taglib. + +As this sample creates a web application .war archive there is a manual step to deploy the WAR file +to your web application server. The archive is the helloworld-webapp-.war in the target folder. +Alternatively, you can run it by using the Maven Tomcat plugin by using the following command: + + mvn tomcat:run + +or if you prefer Jetty then: + + mvn jetty:run + +Once the web app is running use your browser to visit the following URL; + +http://localhost:8080/helloworld-webapp + +(The port and hostname will of course vary depending on your local installation) + +You should then see the web page return the following: + + Calling HelloworldService sayHello("world") returns: + + Hello world \ No newline at end of file diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/pom.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/pom.xml new file mode 100644 index 0000000000..c6522341d1 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/pom.xml @@ -0,0 +1,181 @@ + + + + 4.0.0 + + + org.apache.tuscany.sca.samples + tuscany-samples + 2.0-Beta3-SNAPSHOT + + + + helloworld-webapp + 2.0-Beta3-SNAPSHOT + + Apache Tuscany SCA Samples Helloworld WebApp + war + + + ${project.version} + + + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + + + + org.apache.tuscany.sca + tuscany-base-runtime + ${tuscany.version} + + + + junit + junit + 4.8.1 + test + + + + net.sourceforge.htmlunit + htmlunit + 2.6 + test + + + xalan + xalan + + + + + + + xalan + xalan + 2.7.0 + test + + + xml-apis + xml-apis + + + + + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + copy + compile + + copy + + + + + org.apache.tuscany.sca.samples + helloworld + ${project.version} + + src/main/webapp/WEB-INF/sca-contributions + + + + + + + + + + org.apache.tuscany.sca + tuscany-maven-plugin + ${tuscany.version} + + + + + org.mortbay.jetty + maven-jetty-plugin + 6.1.26 + + helloworld-webapp + foo + 9999 + + + + start-jetty + process-test-classes + + run + + + 0 + true + + + 8085 + + + + + + stop-jetty + prepare-package + + stop + + + + + + + + org.codehaus.mojo + tomcat-maven-plugin + 1.1 + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/java/sample/Helloworld.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/java/sample/Helloworld.java new file mode 100644 index 0000000000..1eeb8be9fd --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/java/sample/Helloworld.java @@ -0,0 +1,28 @@ +/* + * 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 sample; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface Helloworld { + + String sayHello(String name); + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/webapp/WEB-INF/web.composite b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/webapp/WEB-INF/web.composite new file mode 100644 index 0000000000..0c03826f99 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/webapp/WEB-INF/web.composite @@ -0,0 +1,30 @@ + + + + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/webapp/WEB-INF/web.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..b83a9c3417 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,41 @@ + + + + + Apache Tuscany Helloworld Sample + + + tuscany + org.apache.tuscany.sca.host.webapp.TuscanyServletFilter + + + + tuscany + /* + + + + hello.jsp + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/webapp/hello.jsp b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/webapp/hello.jsp new file mode 100644 index 0000000000..57abb08ca2 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/main/webapp/hello.jsp @@ -0,0 +1,37 @@ + + +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib uri="http://www.osoa.org/sca/sca_jsp.tld" prefix="sca" %> + + + + + + +

Apache Tuscany Helloworld JSP Sample

+ + Calling HelloworldService sayHello("world") returns: + +

+ + <%= service.sayHello("world") %> + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/test/java/itest/HelloworldTestCase.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/test/java/itest/HelloworldTestCase.java new file mode 100644 index 0000000000..40da70b98d --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/test/java/itest/HelloworldTestCase.java @@ -0,0 +1,53 @@ +/* + * 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 itest; + +import static org.junit.Assert.assertEquals; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.util.Iterator; + +import org.junit.Test; + +import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; +import com.gargoylesoftware.htmlunit.WebClient; +import com.gargoylesoftware.htmlunit.html.HtmlElement; +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlParagraph; + +/** + */ +public class HelloworldTestCase { + + @Test + public void testA() throws FailingHttpStatusCodeException, MalformedURLException, IOException { + HtmlPage page = (HtmlPage)new WebClient().getPage("http://localhost:8085/helloworld-webapp"); + Iterator ss = page.getAllHtmlChildElements().iterator(); + while(ss.hasNext()) { + HtmlElement htmlElement = (HtmlElement) ss.next(); + if( htmlElement instanceof HtmlParagraph) { + assertEquals("Hello world", htmlElement.asText()); + break; + } + } + } + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/test/resources/test-web.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/test/resources/test-web.xml new file mode 100644 index 0000000000..4ca1c962a0 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webapp/src/test/resources/test-web.xml @@ -0,0 +1,30 @@ + + + + + + org.apache.tuscany.sca.config + uri:default?bind=127.0.0.1:54321 + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/README b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/README new file mode 100644 index 0000000000..b61a694fa9 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/README @@ -0,0 +1,18 @@ +Tuscany - Getting Started - Helloworld Web Service Sample +--------------------------------------------------------- + +This sample extends the helloworld sample to make the helloworld service available as a SOAP based Web Service endpoint. + +The changes to the helloworld sample are: +- update the pom.xml with the additional dependencies +- update the composite to use the Web Service binding + +As with all the getting-started samples you can run this sample with: + + mvn tuscany:run + +You really need a Web Service client to invoke the service but you can get the WSDL description for the service by using a web browser with the following URL: + + http://localhost:8080/HelloworldComponent/Helloworld?wsdl + +which should return the WSDL document for the service. diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/pom.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/pom.xml new file mode 100644 index 0000000000..4a29969b5f --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/pom.xml @@ -0,0 +1,113 @@ + + + + 4.0.0 + + + org.apache.tuscany.sca.samples + tuscany-samples + 2.0-Beta3-SNAPSHOT + + + + helloworld-webservice + 2.0-Beta3-SNAPSHOT + + Apache Tuscany SCA Samples Helloworld Web Service + + + ${project.version} + + + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + provided + + + + junit + junit + 4.8.1 + test + + + + org.apache.tuscany.sca + tuscany-base-runtime + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-binding-ws-runtime-axis2 + ${tuscany.version} + test + + + org.mortbay.jetty + jetty + 6.1.26 + test + + + + + + + + + + + org.apache.tuscany.sca + tuscany-maven-plugin + ${tuscany.version} + + + org.apache.tuscany.sca + tuscany-binding-ws-runtime-axis2 + ${tuscany.version} + + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/java/sample/Helloworld.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/java/sample/Helloworld.java new file mode 100644 index 0000000000..f4e8c50448 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/java/sample/Helloworld.java @@ -0,0 +1,28 @@ +/* + * 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 sample; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface Helloworld { + + String sayHello(String name); + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/java/sample/HelloworldImpl.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/java/sample/HelloworldImpl.java new file mode 100644 index 0000000000..089b1a4290 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/java/sample/HelloworldImpl.java @@ -0,0 +1,27 @@ +/* + * 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 sample; + +public class HelloworldImpl implements Helloworld { + + public String sayHello(String name) { + return "Hello " + name; + } + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..95c32fb5bf --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/resources/helloworld.composite b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..5f001c05a9 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/main/resources/helloworld.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/test/java/sample/HelloworldTestCase.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/test/java/sample/HelloworldTestCase.java new file mode 100644 index 0000000000..0680e8cd01 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-webservice/src/test/java/sample/HelloworldTestCase.java @@ -0,0 +1,76 @@ +/* + * 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 sample; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.MalformedURLException; +import java.net.URL; + +import org.apache.tuscany.sca.Node; +import org.apache.tuscany.sca.TuscanyRuntime; +import org.junit.Assert; +import org.junit.Test; +import org.oasisopen.sca.NoSuchServiceException; + +public class HelloworldTestCase { + + @Test + public void testSayHello() throws NoSuchServiceException, IOException { + + // Run the SCA composite in a Tuscany runtime + Node node = TuscanyRuntime.runComposite("helloworld.composite", "target/classes"); + try { + + // Get the Helloworld service proxy + Helloworld helloworld = node.getService(Helloworld.class, "HelloworldComponent"); + + // test that it works as expected + Assert.assertEquals("Hello Amelia", helloworld.sayHello("Amelia")); + + // test that has exposed an HTTP endpoint that works as expected + // to keep this test simple just do ?wsdl on the endpoint + URL url = new URL("http://localhost:8080/HelloworldComponent/Helloworld?wsdl"); + Assert.assertTrue(read(url.openStream()).contains("address location=")); + + } finally { + // Stop the Tuscany runtime Node + node.stop(); + } + } + + private static String read(InputStream is) throws IOException { + BufferedReader reader = null; + try { + reader = new BufferedReader(new InputStreamReader(is)); + StringBuffer sb = new StringBuffer(); + String str; + while ((str = reader.readLine()) != null) { + sb.append(str); + } + return sb.toString(); + } finally { + if (reader != null) { + reader.close(); + } + } + } +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/README b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/README new file mode 100644 index 0000000000..e2fd876b52 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/README @@ -0,0 +1,35 @@ +Tuscany - Getting Started - Helloworld With Dependencies Sample +--------------------------------------------------------------- + +This sample extends the helloworld sample to show how to use ZIP format contributions which include dependencys jar which are made available on the contribution classpath. To demonstrate this the Helloworld service is updated to use a Apache Commons Lang 3.0 utility to capatalize the first letter of the name. + +The changes to the helloworld sample are: +- update sample.HelloworldImpl class is updated to use the Apache Commons Lang 3.0 WordUtils utility +- the Maven build is updated to use the Assembly plugin to create a ZIP archive of the contrubution which includes the dependency jars + +Presently the Tuscany Shell does not work "as is" to run this sample with "mvn tuscany:run". Instead you need to do the following in the helloworld-withdeps directory: + +- build the ZIP contribution + + mvn clean install + +- start the Tuscany Shell + + mvn tuscany:shell + +- install the sample contribution + + install target\helloworld-withdeps-2.0-Beta3-SNAPSHOT.zip + +- start the SCA composite + + start helloworld-withdeps META-INF/helloworld.composite + +And then as with the original helloworld sample you may test the service by using the Shell "invoke" command: + + invoke HelloworldComponent sayHello yourName + +which should return a hello text with the name capatilized: + + Hello YourName + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/pom.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/pom.xml new file mode 100644 index 0000000000..7a955b1900 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/pom.xml @@ -0,0 +1,120 @@ + + + + 4.0.0 + + + org.apache.tuscany.sca.samples + tuscany-samples + 2.0-Beta3-SNAPSHOT + + + helloworld-withdeps + 2.0-Beta3-SNAPSHOT + + Apache Tuscany SCA Samples Helloworld With Dependencies + + + ${project.version} + + + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + provided + + + + org.apache.commons + commons-lang3 + 3.0 + + + + junit + junit + 4.8.1 + test + + + + org.apache.tuscany.sca + tuscany-base-runtime + ${tuscany.version} + test + + + + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 2.2.1 + + + zip + package + + single + + + false + + src/main/assembly/zip.xml + + + + + + + + + org.apache.tuscany.sca + tuscany-maven-plugin + ${tuscany.version} + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/assembly/resources/META-INF/helloworld.composite b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/assembly/resources/META-INF/helloworld.composite new file mode 100644 index 0000000000..8e23a93895 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/assembly/resources/META-INF/helloworld.composite @@ -0,0 +1,29 @@ + + + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/assembly/resources/META-INF/sca-contribution.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/assembly/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..9112e02cbe --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/assembly/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/assembly/zip.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/assembly/zip.xml new file mode 100644 index 0000000000..1d71d28a6f --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/assembly/zip.xml @@ -0,0 +1,41 @@ + + + + zip + false + + + zip + + + + + src/main/assembly/resources + . + + + + + + lib + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/java/sample/Helloworld.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/java/sample/Helloworld.java new file mode 100644 index 0000000000..f4e8c50448 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/java/sample/Helloworld.java @@ -0,0 +1,28 @@ +/* + * 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 sample; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface Helloworld { + + String sayHello(String name); + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/java/sample/HelloworldImpl.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/java/sample/HelloworldImpl.java new file mode 100644 index 0000000000..1852632429 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/main/java/sample/HelloworldImpl.java @@ -0,0 +1,29 @@ +/* + * 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 sample; + +import org.apache.commons.lang3.text.WordUtils; + +public class HelloworldImpl implements Helloworld { + + public String sayHello(String name) { + return "Hello " + WordUtils.capitalize(name); + } + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/test/java/sample/HelloworldTestCase.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/test/java/sample/HelloworldTestCase.java new file mode 100644 index 0000000000..6770d288fd --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld-withdeps/src/test/java/sample/HelloworldTestCase.java @@ -0,0 +1,49 @@ +/* + * 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 sample; + +import org.junit.Assert; +import org.junit.Test; +import org.oasisopen.sca.NoSuchServiceException; + +public class HelloworldTestCase { + + @Test + public void testSayHello() throws NoSuchServiceException { + +// // Run the SCA composite in a Tuscany runtime +// Node node = TuscanyRuntime.runComposite(null, "target/helloworld-withdeps-2.0-SNAPSHOT.zip"); +// try { +// +// // Get the Helloworld service proxy +// Helloworld helloworld = node.getService(Helloworld.class, "HelloworldComponent"); +// +// // test that it works as expected +// Assert.assertEquals("Hello Amelia", helloworld.sayHello("amelia")); +// +// } finally { +// // Stop the Tuscany runtime Node +// node.stop(); +// } + Helloworld helloworld = new HelloworldImpl(); + + // Test that a lower case name does get capitalized + Assert.assertEquals("Hello Amelia", helloworld.sayHello("amelia")); + } +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/README b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/README new file mode 100644 index 0000000000..f6e9a086d4 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/README @@ -0,0 +1,43 @@ +Tuscany - Getting Started - Helloworld Sample +--------------------------------------------- + +This sample demonstrates a simple helloworld style SCA application and how to run that with Tuscany. + +See the README in the top-level samples folder for general information on the Tuscany samples. + +This project creates an SCA contribution with a deployable composite named helloworld.composite. +The composite defines an SCA component, HelloworldComponent, which provides a Helloworld service, +the component is implemented by a Java class. + +You can use the contribution by starting the composite in the Tuscany Shell. To do that run the +following command in the helloworld folder: + + mvn tuscany:run + +Alternatively, the Tuscany Shell can be started with the scripts in the Tuscany binary distribution +bin folder. To do that run the following command at the root of a Tuscany binary distribution: + + bin\tuscany.bat samples\getting-started\helloworld + +Once the Shell has been started with one of those methods you can use Shell commands to explore +the SCA domain, for example, use the "installed" command to get the status of installed contributions, +"services" to see the available component services, and you may test calling the helloworld service by +using the "invoke" command: + + invoke HelloworldComponent sayHello yourName + +--- + +This sample was created by the Tuscany contribution-jar Maven archetype. You can use that archetype to +create your own SCA contribution projects by running the following Maven command: + + mvn archetype:generate -DarchetypeCatalog=http://tuscany.apache.org + +then at the prompt select 1 to choose the contribution-jar archetype and then answer the questions. +This project used the following answers: + + Define value for property 'groupId': : org.apache.tuscany.sca.samples + Define value for property 'artifactId': : helloworld-contribution + Define value for property 'version': 1.0-SNAPSHOT: 2.0-Beta3-SNAPSHOT + Define value for property 'package': org.apache.tuscany.sca.samples: sample + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/pom.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/pom.xml new file mode 100644 index 0000000000..7923917727 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/pom.xml @@ -0,0 +1,92 @@ + + + + 4.0.0 + + + org.apache.tuscany.sca.samples + tuscany-samples + 2.0-Beta3-SNAPSHOT + + + helloworld + 2.0-Beta3-SNAPSHOT + + Apache Tuscany SCA Samples Helloworld + + + ${project.version} + + + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + apache.snapshots + Apache Snapshot Repository + http://repository.apache.org/snapshots + false + + + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + provided + + + + junit + junit + 4.8.1 + test + + + + org.apache.tuscany.sca + tuscany-base-runtime + ${tuscany.version} + test + + + + + + + + + + + org.apache.tuscany.sca + tuscany-maven-plugin + ${tuscany.version} + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/java/sample/Helloworld.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/java/sample/Helloworld.java new file mode 100644 index 0000000000..f4e8c50448 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/java/sample/Helloworld.java @@ -0,0 +1,28 @@ +/* + * 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 sample; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface Helloworld { + + String sayHello(String name); + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/java/sample/HelloworldImpl.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/java/sample/HelloworldImpl.java new file mode 100644 index 0000000000..089b1a4290 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/java/sample/HelloworldImpl.java @@ -0,0 +1,27 @@ +/* + * 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 sample; + +public class HelloworldImpl implements Helloworld { + + public String sayHello(String name) { + return "Hello " + name; + } + +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..95c32fb5bf --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/resources/helloworld.composite b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..e0206cd6e8 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/main/resources/helloworld.composite @@ -0,0 +1,29 @@ + + + + + + + + + diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/test/java/sample/HelloworldTestCase.java b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/test/java/sample/HelloworldTestCase.java new file mode 100644 index 0000000000..be27aa68ef --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/helloworld/src/test/java/sample/HelloworldTestCase.java @@ -0,0 +1,48 @@ +/* + * 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 sample; + +import org.junit.Assert; + +import org.apache.tuscany.sca.Node; +import org.apache.tuscany.sca.TuscanyRuntime; +import org.junit.Test; +import org.oasisopen.sca.NoSuchServiceException; + +public class HelloworldTestCase { + + @Test + public void testSayHello() throws NoSuchServiceException { + + // Run the SCA composite in a Tuscany runtime + Node node = TuscanyRuntime.runComposite("helloworld.composite", "target/classes"); + try { + + // Get the Helloworld service proxy + Helloworld helloworld = node.getService(Helloworld.class, "HelloworldComponent"); + + // test that it works as expected + Assert.assertEquals("Hello Amelia", helloworld.sayHello("Amelia")); + + } finally { + // Stop the Tuscany runtime Node + node.stop(); + } + } +} diff --git a/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/pom.xml b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/pom.xml new file mode 100644 index 0000000000..7fba246648 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta3/samples/getting-started/pom.xml @@ -0,0 +1,45 @@ + + + + 4.0.0 + + org.apache.tuscany.sca.samples + tuscany-samples + 2.0-Beta3-SNAPSHOT + + + tuscany-samples-getting-started + 2.0-Beta3-SNAPSHOT + pom + Apache Tuscany SCA Samples Getting Started + + + helloworld + helloworld-jaxrs + helloworld-jsonp + helloworld-jsonrpc + helloworld-scaclient + helloworld-spring + helloworld-webapp + helloworld-webservice + helloworld-withdeps + + + -- cgit v1.2.3