summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test')
-rw-r--r--sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/java/helloworld/jaxrs/HelloWorld.java70
-rw-r--r--sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/java/helloworld/jaxrs/HelloWorldApp.java64
-rw-r--r--sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/java/helloworld/jaxrs/test/HelloWorldTestCase.java71
-rw-r--r--sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/resources/helloworld/jaxrs/HelloWorld.composite29
4 files changed, 234 insertions, 0 deletions
diff --git a/sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/java/helloworld/jaxrs/HelloWorld.java b/sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/java/helloworld/jaxrs/HelloWorld.java
new file mode 100644
index 0000000000..3a493ea10e
--- /dev/null
+++ b/sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/java/helloworld/jaxrs/HelloWorld.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *******************************************************************************/
+
+package helloworld.jaxrs;
+
+import java.util.Date;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.apache.wink.common.model.synd.SyndEntry;
+import org.apache.wink.common.model.synd.SyndText;
+
+/**
+ * Simple example - Hello World!
+ * <p/>
+ * The SDK dispatches HTTP requests for URI
+ * <code>http://[host]:[port]/HelloWorld/rest/world</code>, where
+ * <code>HelloWorld</code> is the context root, to this class. A simple Atom
+ * entry is returned in HTTP response.
+ * <p/>
+ * The service document is available at URI
+ * <code>http://[host]:[port]/HelloWorld/rest</code> but it is empty because
+ * this simple demo doesn't contain any collection of resources.
+ * <p/>
+ * 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 HelloWorld {
+ public static final String ID = "helloworld:1";
+
+ /**
+ * 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(MediaType.APPLICATION_ATOM_XML)
+ public SyndEntry getGreeting() {
+ // create and return a syndication entry with a "Hello World!" title,
+ // some ID and the current time.
+ SyndEntry synd = new SyndEntry(new SyndText("Hello World!"), ID, new Date());
+ return synd;
+ }
+
+}
diff --git a/sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/java/helloworld/jaxrs/HelloWorldApp.java b/sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/java/helloworld/jaxrs/HelloWorldApp.java
new file mode 100644
index 0000000000..97ff1cb13e
--- /dev/null
+++ b/sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/java/helloworld/jaxrs/HelloWorldApp.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package helloworld.jaxrs;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.ws.rs.core.Application;
+
+public class HelloWorldApp extends Application {
+
+ /*
+ * A singletons is used to serve multiple requests.
+ * It keeps domain-model objects in memory between requests.
+ */
+ private Set<Object> instances = new HashSet<Object>();
+
+ /*
+ * Per-request service classes are instantiated for each
+ * request, and disposed of after the request is processed.
+ */
+ private Set<Class<?>> classes = new HashSet<Class<?>>();
+
+ /**
+ * Create the singleton service implementation
+ */
+ public HelloWorldApp() {
+ instances.add(new HelloWorld());
+ // classes.add(HelloWorld.class);
+ }
+
+ /**
+ * Methods used to discover the JAX-RS service objects
+ */
+
+ // Set of singleton service objects
+ @Override
+ public Set<Object> getSingletons() {
+ return instances;
+ }
+
+ // Set of per-request service classes
+ @Override
+ public Set<Class<?>> getClasses() {
+ return classes;
+ }
+
+}
diff --git a/sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/java/helloworld/jaxrs/test/HelloWorldTestCase.java b/sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/java/helloworld/jaxrs/test/HelloWorldTestCase.java
new file mode 100644
index 0000000000..34edff56ca
--- /dev/null
+++ b/sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/java/helloworld/jaxrs/test/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 helloworld.jaxrs.test;
+
+import java.io.File;
+
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.apache.wink.client.ClientResponse;
+import org.apache.wink.client.RestClient;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ *
+ */
+public class HelloWorldTestCase {
+ private static Node node;
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ node =
+ NodeFactory.getInstance().createNode("helloworld/jaxrs/HelloWorld.composite",
+ new Contribution("c1", new File("target/test-classes").toURI()
+ .toString())).start();
+ }
+
+ @Test
+ public void testDummy() {
+ RestClient client = new RestClient();
+ ClientResponse response = client.resource("http://localhost:8080/world").get();
+ String out = response.getEntity(String.class);
+ System.out.println(out);
+ Assert.assertEquals(200, response.getStatusCode());
+ }
+
+ /**
+ * @throws java.lang.Exception
+ */
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ if (node != null) {
+ node.stop();
+ }
+ }
+
+}
diff --git a/sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/resources/helloworld/jaxrs/HelloWorld.composite b/sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/resources/helloworld/jaxrs/HelloWorld.composite
new file mode 100644
index 0000000000..db7329ca3e
--- /dev/null
+++ b/sca-java-2.x/branches/2.0-Beta1/modules/implementation-jaxrs-runtime/src/test/resources/helloworld/jaxrs/HelloWorld.composite
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
+ targetNamespace="http://sample/jaxrs"
+ name="HelloWorld">
+
+ <component name="HelloWorldApp">
+ <tuscany:implementation.jaxrs application="helloworld.jaxrs.HelloWorldApp"/>
+ </component>
+
+</composite>