From 3343e844072fef61dd9791c0703438468364c497 Mon Sep 17 00:00:00 2001 From: antelder Date: Fri, 26 Mar 2010 06:56:22 +0000 Subject: Add helloworld sample for JAX-RS support git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@927710 13f79535-47bb-0310-9956-ffa450edef68 --- .../trunk/samples/webapps/helloworld-jaxrs/pom.xml | 67 +++++++++++++++++++++ .../src/main/java/sample/HelloWorldResource.java | 68 ++++++++++++++++++++++ .../src/main/java/sample/HelloworldService.java | 25 ++++++++ .../main/java/sample/HelloworldServiceImpl.java | 28 +++++++++ .../src/main/webapp/WEB-INF/application | 14 +++++ .../src/main/webapp/WEB-INF/web.composite | 34 +++++++++++ .../src/main/webapp/WEB-INF/web.xml | 49 ++++++++++++++++ 7 files changed, 285 insertions(+) create mode 100644 sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/pom.xml create mode 100644 sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/java/sample/HelloWorldResource.java create mode 100644 sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/java/sample/HelloworldService.java create mode 100644 sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/java/sample/HelloworldServiceImpl.java create mode 100644 sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/webapp/WEB-INF/application create mode 100644 sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/webapp/WEB-INF/web.composite create mode 100644 sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/webapp/WEB-INF/web.xml (limited to 'sca-java-2.x/trunk/samples/webapps') diff --git a/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/pom.xml b/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/pom.xml new file mode 100644 index 0000000000..8e33fcec09 --- /dev/null +++ b/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/pom.xml @@ -0,0 +1,67 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-sca + 2.0-SNAPSHOT + ../../pom.xml + + + sample-helloworld-jaxrs-webapp + war + Apache Tuscany SCA Sample Helloworld JAX-RS + + + + + + org.apache.tuscany.sca.shades + tuscany-base + 2.0-SNAPSHOT + + + + + org.apache.wink + wink-common + 1.0-incubating + + + org.apache.wink + wink-server + 1.0-incubating + + + + + + helloworld-jaxrs + + + org.mortbay.jetty + maven-jetty-plugin + 6.1.18 + + + + + diff --git a/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/java/sample/HelloWorldResource.java b/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/java/sample/HelloWorldResource.java new file mode 100644 index 0000000000..6a84a5775a --- /dev/null +++ b/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/java/sample/HelloWorldResource.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * 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.util.Date; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; + +import org.oasisopen.sca.annotation.Reference; + +/** + * Simple example - Hello World! + *

+ * The SDK dispatches HTTP requests for URI + * http://[host]:[port]/HelloWorld/rest/world, where + * HelloWorld is the context root, to this class. A simple Atom + * entry is returned in HTTP response. + *

+ * The service document is available at URI + * http://[host]:[port]/HelloWorld/rest but it is empty because + * this simple demo doesn't contain any collection of resources. + *

+ * This resource must be registered within a JAX-RS application, this example + * uses the default usage of application /WEB-INF/application + */ +@Path("/world") +public class HelloWorldResource { + + @Reference + protected HelloworldService service; + + + /** + * This method is called by the SDK for HTTP GET method requests where the + * Accept header allows the Atom media type application/atom+xml. A + * SyndEntry is created with basic information. Serialization of the + * SyndEntry to Atom entry is performed by the SDK automatically. The + * default status code of 200 (OK) is returned in the response. + * + * @return SyndEntry of the requested resource + */ + @GET + @Produces("text/plain") + public String getClichedMessage() { + return service == null ? "SCA reference not injected" : service.sayHello("World"); + } + +} diff --git a/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/java/sample/HelloworldService.java b/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/java/sample/HelloworldService.java new file mode 100644 index 0000000000..123774b936 --- /dev/null +++ b/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/java/sample/HelloworldService.java @@ -0,0 +1,25 @@ +/* + * 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 interface HelloworldService { + + String sayHello(String name); + +} diff --git a/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/java/sample/HelloworldServiceImpl.java b/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/java/sample/HelloworldServiceImpl.java new file mode 100644 index 0000000000..66cef71a25 --- /dev/null +++ b/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/java/sample/HelloworldServiceImpl.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; + + +public class HelloworldServiceImpl implements HelloworldService { + + public String sayHello(String name) { + return "Hello " + name; + } + +} diff --git a/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/webapp/WEB-INF/application b/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/webapp/WEB-INF/application new file mode 100644 index 0000000000..8ce781d6c8 --- /dev/null +++ b/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/webapp/WEB-INF/application @@ -0,0 +1,14 @@ +# 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. +sample.HelloWorldResource \ No newline at end of file diff --git a/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/webapp/WEB-INF/web.composite b/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/webapp/WEB-INF/web.composite new file mode 100644 index 0000000000..7ff71519e9 --- /dev/null +++ b/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/webapp/WEB-INF/web.composite @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/webapp/WEB-INF/web.xml b/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..3c5726a818 --- /dev/null +++ b/sca-java-2.x/trunk/samples/webapps/helloworld-jaxrs/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,49 @@ + + + + + Apache Tuscany Helloworld JAX-RS Sample + + + org.apache.tuscany.sca.host.webapp.TuscanyContextListener + + + + restSdkService + org.apache.wink.server.internal.servlet.RestServlet + + applicationConfigLocation + /WEB-INF/application + + + + deploymentConfiguration + org.apache.tuscany.sca.wink.TuscanyDeploymentConfiguration + + + + restSdkService + /rest/* + + + -- cgit v1.2.3