From c791fd804344b8719fb69be84b8174c84cc4f4dc Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Mon, 10 Jan 2011 19:51:07 +0000 Subject: Sandbox to experiment with Databinding automatic wrapper transformations. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1057335 13f79535-47bb-0310-9956-ffa450edef68 --- .../implementation-web/helloworld-jaxrs/README | 8 + .../implementation-web/helloworld-jaxrs/pom.xml | 131 ++++++++++++++ .../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 ++++++ .../src/test/java/itest/HelloworldTestCase.java | 43 +++++ .../implementation-web/helloworld-js-client/README | 8 + .../helloworld-js-client/pom.xml | 104 +++++++++++ .../src/main/java/sample/HelloworldService.java | 25 +++ .../main/java/sample/HelloworldServiceImpl.java | 28 +++ .../src/main/webapp/WEB-INF/web.composite | 36 ++++ .../src/main/webapp/WEB-INF/web.xml | 41 +++++ .../src/main/webapp/hello.html | 51 ++++++ .../src/test/java/itest/HelloworldTestCase.java | 77 +++++++++ .../implementation-web/helloworld-jsf/README | 8 + .../implementation-web/helloworld-jsf/pom.xml | 99 +++++++++++ .../src/main/java/sample/HelloWorldController.java | 56 ++++++ .../src/main/java/sample/HelloworldService.java | 25 +++ .../main/java/sample/HelloworldServiceImpl.java | 27 +++ .../src/main/webapp/WEB-INF/faces-config.xml | 51 ++++++ .../src/main/webapp/WEB-INF/web.composite | 34 ++++ .../helloworld-jsf/src/main/webapp/WEB-INF/web.xml | 191 +++++++++++++++++++++ .../helloworld-jsf/src/main/webapp/helloWorld.jsp | 40 +++++ .../helloworld-jsf/src/main/webapp/index.jsp | 23 +++ .../helloworld-jsf/src/main/webapp/page2.jsp | 38 ++++ .../implementation-web/helloworld-jsp/README | 7 + .../implementation-web/helloworld-jsp/pom.xml | 98 +++++++++++ .../src/main/java/sample/HelloworldService.java | 25 +++ .../main/java/sample/HelloworldServiceImpl.java | 28 +++ .../src/main/webapp/WEB-INF/web.composite | 34 ++++ .../helloworld-jsp/src/main/webapp/WEB-INF/web.xml | 41 +++++ .../helloworld-jsp/src/main/webapp/hello.jsp | 37 ++++ .../src/test/java/itest/HelloworldTestCase.java | 53 ++++++ .../implementation-web/helloworld-servlet/README | 8 + .../implementation-web/helloworld-servlet/pom.xml | 105 +++++++++++ .../src/main/java/sample/HelloworldService.java | 25 +++ .../main/java/sample/HelloworldServiceImpl.java | 27 +++ .../src/main/java/sample/HelloworldServlet.java | 64 +++++++ .../src/main/webapp/WEB-INF/web.composite | 34 ++++ .../src/main/webapp/WEB-INF/web.xml | 44 +++++ .../helloworld-servlet/src/main/webapp/hello.html | 46 +++++ .../src/test/java/itest/HelloworldTestCase.java | 55 ++++++ .../implementation-web/helloworld-stripes/README | 8 + .../implementation-web/helloworld-stripes/pom.xml | 118 +++++++++++++ .../main/java/mystripes/action/BaseActionBean.java | 33 ++++ .../main/java/mystripes/action/HomeActionBean.java | 45 +++++ .../src/main/java/sample/HelloworldService.java | 25 +++ .../main/java/sample/HelloworldServiceImpl.java | 28 +++ .../src/main/resources/StripesResources.properties | 73 ++++++++ .../src/main/resources/log4j.properties | 48 ++++++ .../src/main/webapp/WEB-INF/jsp/home.jsp | 26 +++ .../src/main/webapp/WEB-INF/jsp/layout.jsp | 39 +++++ .../src/main/webapp/WEB-INF/jsp/taglibs.jsp | 29 ++++ .../src/main/webapp/WEB-INF/web.composite | 34 ++++ .../src/main/webapp/WEB-INF/web.xml | 61 +++++++ .../helloworld-stripes/src/main/webapp/index.html | 24 +++ .../helloworld-stripes/src/test/java/README | 7 + .../src/test/java/itest/HelloworldTestCase.java | 53 ++++++ .../learning-more/implementation-web/pom.xml | 50 ++++++ 62 files changed, 2794 insertions(+) create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/README create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/pom.xml create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/java/sample/HelloWorldResource.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/java/sample/HelloworldService.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/java/sample/HelloworldServiceImpl.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/webapp/WEB-INF/application create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/webapp/WEB-INF/web.composite create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/webapp/WEB-INF/web.xml create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/test/java/itest/HelloworldTestCase.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/README create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/pom.xml create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/java/sample/HelloworldService.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/java/sample/HelloworldServiceImpl.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/webapp/WEB-INF/web.composite create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/webapp/WEB-INF/web.xml create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/webapp/hello.html create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/test/java/itest/HelloworldTestCase.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/README create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/pom.xml create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/java/sample/HelloWorldController.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/java/sample/HelloworldService.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/java/sample/HelloworldServiceImpl.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/WEB-INF/faces-config.xml create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/WEB-INF/web.composite create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/WEB-INF/web.xml create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/helloWorld.jsp create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/index.jsp create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/page2.jsp create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/README create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/pom.xml create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/java/sample/HelloworldService.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/java/sample/HelloworldServiceImpl.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/webapp/WEB-INF/web.composite create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/webapp/WEB-INF/web.xml create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/webapp/hello.jsp create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/test/java/itest/HelloworldTestCase.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/README create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/pom.xml create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/java/sample/HelloworldService.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/java/sample/HelloworldServiceImpl.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/java/sample/HelloworldServlet.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/webapp/WEB-INF/web.composite create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/webapp/WEB-INF/web.xml create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/webapp/hello.html create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/test/java/itest/HelloworldTestCase.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/README create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/pom.xml create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/java/mystripes/action/BaseActionBean.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/java/mystripes/action/HomeActionBean.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/java/sample/HelloworldService.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/java/sample/HelloworldServiceImpl.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/resources/StripesResources.properties create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/resources/log4j.properties create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/jsp/home.jsp create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/jsp/layout.jsp create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/jsp/taglibs.jsp create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/web.composite create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/web.xml create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/index.html create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/test/java/README create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/test/java/itest/HelloworldTestCase.java create mode 100644 sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/pom.xml (limited to 'sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web') diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/README b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/README new file mode 100644 index 0000000000..82c3349c85 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/README @@ -0,0 +1,8 @@ +Sample implementation.web JAXRS WebApp +========================================== + +This sample contribution shows SCA components implemented in a webapp and +accessed using JAXRS. + +See http://tuscany.apache.org/documentation-2x/20-beta-samples-documentation.html +for more information \ No newline at end of file diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/pom.xml b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/pom.xml new file mode 100644 index 0000000000..43b0e64daa --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/pom.xml @@ -0,0 +1,131 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-samples-implementation-webapp + 2.0-SNAPSHOT + ../pom.xml + + + sample-implementation-web-helloworld-jaxrs-webapp + war + Apache Tuscany SCA Sample implemenation.web Helloworld JAX-RS WebApp + + + + + + org.apache.tuscany.sca + tuscany-base-runtime + 2.0-SNAPSHOT + + + + + org.apache.wink + wink-common + 1.1.2-incubating + + + org.apache.wink + wink-server + 1.1.2-incubating + + + javax.xml.bind + jaxb-api + + + com.sun.xml.bind + jaxb-impl + + + org.slf4j + slf4j-api + + + + + + org.slf4j + slf4j-api + 1.6.0 + + + + junit + junit + 4.8.1 + test + + + + net.sourceforge.htmlunit + htmlunit + 2.6 + test + + + + + + helloworld-jaxrs + + + org.mortbay.jetty + maven-jetty-plugin + 6.1.18 + + helloworld-jaxrs + foo + 9999 + + + + start-jetty + process-test-classes + + run + + + 0 + true + + + 8085 + + + + + + stop-jetty + prepare-package + + stop + + + + + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/java/sample/HelloWorldResource.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/java/sample/HelloWorldResource.java new file mode 100644 index 0000000000..42625b8a78 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/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-jaxrs/rest/world, where + * helloworld-jaxrs is the context root, to this class. A simple + * plain text entry is returned in HTTP response. + *

+ * The service document is available at URI + * http://[host]:[port]/helloworld-jaxrs/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/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/java/sample/HelloworldService.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/java/sample/HelloworldService.java new file mode 100644 index 0000000000..123774b936 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/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/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/java/sample/HelloworldServiceImpl.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/java/sample/HelloworldServiceImpl.java new file mode 100644 index 0000000000..66cef71a25 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/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/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/webapp/WEB-INF/application b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/webapp/WEB-INF/application new file mode 100644 index 0000000000..8ce781d6c8 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/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/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/webapp/WEB-INF/web.composite b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/webapp/WEB-INF/web.composite new file mode 100644 index 0000000000..7ff71519e9 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/webapp/WEB-INF/web.composite @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/webapp/WEB-INF/web.xml b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..3c5726a818 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/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/* + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/test/java/itest/HelloworldTestCase.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/test/java/itest/HelloworldTestCase.java new file mode 100644 index 0000000000..50197cdfcb --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jaxrs/src/test/java/itest/HelloworldTestCase.java @@ -0,0 +1,43 @@ +/* + * 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 org.junit.Test; + +import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; +import com.gargoylesoftware.htmlunit.TextPage; +import com.gargoylesoftware.htmlunit.WebClient; + +/** + */ +public class HelloworldTestCase { + + @Test + public void testA() throws FailingHttpStatusCodeException, MalformedURLException, IOException { + TextPage page = (TextPage)new WebClient().getPage("http://localhost:8085/helloworld-jaxrs/rest/world"); + assertEquals("Hello World", page.getContent()); + } + +} diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/README b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/README new file mode 100644 index 0000000000..455a56b815 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/README @@ -0,0 +1,8 @@ +Sample implementation.web JS WebApp +========================================== + +This sample contribution shows SCA components implemented in a webapp and +accessed using Javascript. + +See http://tuscany.apache.org/documentation-2x/20-beta-samples-documentation.html +for more information \ No newline at end of file diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/pom.xml b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/pom.xml new file mode 100644 index 0000000000..bbde1b0d65 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/pom.xml @@ -0,0 +1,104 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-samples-implementation-webapp + 2.0-SNAPSHOT + ../pom.xml + + + sample-implementation-web-helloworld-js-client-webapp + war + Apache Tuscany SCA Sample implemenation.web Helloworld Javascript Client WebApp + + + + + org.apache.tuscany.sca + tuscany-base-runtime + 2.0-SNAPSHOT + + + + org.apache.tuscany.sca + tuscany-databinding-json + 2.0-SNAPSHOT + + + + junit + junit + 4.8.1 + test + + + + net.sourceforge.htmlunit + htmlunit + 2.6 + test + + + + + + helloworld-js-client + + + org.mortbay.jetty + maven-jetty-plugin + 6.1.18 + + helloworld-js-client + foo + 9999 + + + + start-jetty + process-test-classes + + run + + + 0 + true + + + 8085 + + + + + + stop-jetty + prepare-package + + stop + + + + + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/java/sample/HelloworldService.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/java/sample/HelloworldService.java new file mode 100644 index 0000000000..123774b936 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/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/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/java/sample/HelloworldServiceImpl.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/java/sample/HelloworldServiceImpl.java new file mode 100644 index 0000000000..66cef71a25 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/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/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/webapp/WEB-INF/web.composite b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/webapp/WEB-INF/web.composite new file mode 100644 index 0000000000..d41a8535e2 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/webapp/WEB-INF/web.composite @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/webapp/WEB-INF/web.xml b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..babeb7b203 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,41 @@ + + + + + Apache Tuscany Helloworld JSP Sample + + + tuscany + org.apache.tuscany.sca.host.webapp.TuscanyServletFilter + + + + tuscany + /* + + + + hello.html + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/webapp/hello.html b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/webapp/hello.html new file mode 100644 index 0000000000..12024cc4d3 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/main/webapp/hello.html @@ -0,0 +1,51 @@ + + + + + Apache Tuscany Helloworld Javascript Client Sample + + + + + + + + + +

Apache Tuscany Helloworld Javascript Client Sample

+ + + + + +
+ + + \ No newline at end of file diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/test/java/itest/HelloworldTestCase.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/test/java/itest/HelloworldTestCase.java new file mode 100644 index 0000000000..de41997a59 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-js-client/src/test/java/itest/HelloworldTestCase.java @@ -0,0 +1,77 @@ +/* + * 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.assertTrue; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLConnection; +import java.net.URLEncoder; + +import org.junit.Ignore; +import org.junit.Test; + +/** + * Verfiy the serverside code is working, not sure how to easily itest the browser javascript code + */ +@Ignore("TUSCANY-3688") +public class HelloworldTestCase { + + @Test + public void testA() throws MalformedURLException, IOException { + + URL url = new URL("http://localhost:8085/helloworld-js-client/org.oasisopen.sca.componentContext.js/foo/call/plaincall/service.sayHello.dwr"); + URLConnection conn = url.openConnection(); + conn.setDoOutput(true); + OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); + + // to find this run the sample through TCPMON to capture the messages + + String data = URLEncoder.encode("callCount", "UTF-8") + "=" + URLEncoder.encode("1", "UTF-8"); + data += "&" + URLEncoder.encode("page", "UTF-8") + "=" + URLEncoder.encode("/helloworld-js-client/", "UTF-8"); + data += "&" + URLEncoder.encode("httpSessionId", "UTF-8") + "=" + URLEncoder.encode("", "UTF-8"); + data += "&" + URLEncoder.encode("scriptSessionId", "UTF-8") + "=" + URLEncoder.encode("A023DA664E56F075491BE1B87B37B02671", "UTF-8"); + data += "&" + URLEncoder.encode("c0-scriptName", "UTF-8") + "=" + URLEncoder.encode("service", "UTF-8"); + data += "&" + URLEncoder.encode("c0-methodName", "UTF-8") + "=" + URLEncoder.encode("sayHello", "UTF-8"); + data += "&" + URLEncoder.encode("c0-id", "UTF-8") + "=" + URLEncoder.encode("0", "UTF-8"); + data += "&" + URLEncoder.encode("c0-param0", "UTF-8") + "=" + URLEncoder.encode("string:petra", "UTF-8"); + data += "&" + URLEncoder.encode("batchId", "UTF-8") + "=" + URLEncoder.encode("0", "UTF-8"); + + wr.write(data); + wr.flush(); + + BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); + rd.readLine(); // throw 'allowScriptTagRemoting is false.'; + rd.readLine(); //#DWR-INSERT + rd.readLine(); //#DWR-REPLY + String line = rd.readLine(); // dwr.engine._remoteHandleCallback('0','0',"Hello petra"); + wr.close(); + rd.close(); + + assertTrue(line.endsWith("\"Hello petra\");")); + + } + +} diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/README b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/README new file mode 100644 index 0000000000..c845341743 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/README @@ -0,0 +1,8 @@ +Sample implementation.web JSF WebApp +========================================== + +This sample contribution shows SCA components implemented in a webapp and +accessed using Java Server Faces. + +See http://tuscany.apache.org/documentation-2x/20-beta-samples-documentation.html +for more information \ No newline at end of file diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/pom.xml b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/pom.xml new file mode 100644 index 0000000000..d93f1475ab --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/pom.xml @@ -0,0 +1,99 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-samples-implementation-webapp + 2.0-SNAPSHOT + ../pom.xml + + + sample-implementation-web-helloworld-jsf-webapp + Apache Tuscany SCA Sample implemenation.web Helloworld JSF WebApp + war + + + + + org.apache.tuscany.sca + tuscany-sca-api + 2.0-SNAPSHOT + compile + + + + org.apache.tuscany.sca + tuscany-base-runtime + 2.0-SNAPSHOT + runtime + + + + org.apache.tuscany.sca + tuscany-myfaces + 2.0-SNAPSHOT + runtime + + + + + + helloworld-jsf + + + org.mortbay.jetty + maven-jetty-plugin + 6.1.18 + + helloworld-jsf + foo + 9999 + + + + start-jetty + process-test-classes + + run + + + 0 + true + + + 8085 + + + + + + stop-jetty + prepare-package + + stop + + + + + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/java/sample/HelloWorldController.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/java/sample/HelloWorldController.java new file mode 100644 index 0000000000..9c9f541997 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/java/sample/HelloWorldController.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.oasisopen.sca.annotation.Reference; + +/** + * + */ +public class HelloWorldController { + + @Reference + protected HelloworldService service; + + private String name; + + public HelloWorldController() { + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * Method that is backed to a submit button of a form. + */ + public String send() { + if (service == null) { + name = "reference not injected!"; + } else { + name = service.sayHello(name); + } + return "success"; + } + +} diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/java/sample/HelloworldService.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/java/sample/HelloworldService.java new file mode 100644 index 0000000000..53ff7a5ca1 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/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/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/java/sample/HelloworldServiceImpl.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/java/sample/HelloworldServiceImpl.java new file mode 100644 index 0000000000..23925d6c69 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/java/sample/HelloworldServiceImpl.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 HelloworldServiceImpl implements HelloworldService { + + public String sayHello(String name) { + return "Hello " + name; + } + +} diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/WEB-INF/faces-config.xml b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/WEB-INF/faces-config.xml new file mode 100644 index 0000000000..99cee9faeb --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/WEB-INF/faces-config.xml @@ -0,0 +1,51 @@ + + + + + + + helloWorld + sample.HelloWorldController + request + + + + + /helloWorld.jsp + + success + /page2.jsp + + + + + + /page2.jsp + + back + /helloWorld.jsp + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/WEB-INF/web.composite b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/WEB-INF/web.composite new file mode 100644 index 0000000000..8976adde3c --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/WEB-INF/web.composite @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/WEB-INF/web.xml b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..fecbd7c79b --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,191 @@ + + + + + MyProject web.xml + + + + org.apache.tuscany.sca.host.webapp.TuscanyContextListener + + + org.apache.myfaces.config.annotation.LifecycleProvider + org.apache.tuscany.sca.myfaces.TuscanyAnnotationLifecycleProvider + + + + + State saving method: "client" or "server" (= default) + See JSF Specification 2.5.3 + javax.faces.STATE_SAVING_METHOD + client + + + Only applicable if state saving method is "server" (= default). + Defines the amount (default = 20) of the latest views are stored in session. + org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION + 20 + + + Only applicable if state saving method is "server" (= default). + If true (default) the state will be serialized to a byte stream before it + is written to the session. + If false the state will not be serialized to a byte stream. + org.apache.myfaces.SERIALIZE_STATE_IN_SESSION + true + + + Only applicable if state saving method is "server" (= default) and if + org.apache.myfaces.SERIALIZE_STATE_IN_SESSION is true (= default) + If true (default) the serialized state will be compressed before it + is written to the session. If false the state will not be compressed. + org.apache.myfaces.COMPRESS_STATE_IN_SESSION + true + + + This parameter tells MyFaces if javascript code should be allowed in the + rendered HTML output. + If javascript is allowed, command_link anchors will have javascript code + that submits the corresponding form. + If javascript is not allowed, the state saving info and nested parameters + will be added as url parameters. + Default: "true" + org.apache.myfaces.ALLOW_JAVASCRIPT + true + + + org.apache.myfaces.DETECT_JAVASCRIPT + false + + + If true, rendered HTML code will be formatted, so that it is "human readable". + i.e. additional line separators and whitespace will be written, that do not + influence the HTML code. + Default: "true" + org.apache.myfaces.PRETTY_HTML + true + + + If true, a javascript function will be rendered that is able to restore the + former vertical scroll on every request. Convenient feature if you have pages + with long lists and you do not want the browser page to always jump to the top + if you trigger a link or button action that stays on the same page. + Default: "false" + org.apache.myfaces.AUTO_SCROLL + true + + + + Used for encrypting view state. Only relevant for client side + state saving. See MyFaces wiki/web site documentation for instructions + on how to configure an application for diffenent encryption strengths. + + org.apache.myfaces.SECRET + NzY1NDMyMTA= + + + + + Validate managed beans, navigation rules and ensure that forms are not nested. + + org.apache.myfaces.VALIDATE + true + + + + + Treat readonly same as if disabled attribute was set for select elements. + + org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS + true + + + + + Use the defined class as the class which will be called when a resource is added to the + ExtensionFilter handling. Using StreamingAddResource here helps with performance. If you want to add + custom components and want to use the ExtensionFilter, you need to provide your custom implementation here. + + org.apache.myfaces.ADD_RESOURCE_CLASS + org.apache.myfaces.renderkit.html.util.DefaultAddResource + + + + + Virtual path in the URL which triggers loading of resources for the MyFaces extended components + in the ExtensionFilter. + + org.apache.myfaces.RESOURCE_VIRTUAL_PATH + /faces/myFacesExtensionResource + + + + + Check if the extensions-filter has been properly configured. + + org.apache.myfaces.CHECK_EXTENSIONS_FILTER + true + + + + + Define partial state saving as true/false. + + javax.faces.PARTIAL_STATE_SAVING_METHOD + false + + + + + org.apache.myfaces.webapp.StartupServletContextListener + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + + + Faces Servlet + *.jsf + + + + + index.jsp + index.html + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/helloWorld.jsp b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/helloWorld.jsp new file mode 100644 index 0000000000..189c142c99 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/helloWorld.jsp @@ -0,0 +1,40 @@ + + +<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> +<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> + + + + Apache Tuscany Helloworld JSF sample + + +

Apache Tuscany Helloworld JSF sample

+ + + + + + + + + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/index.jsp b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/index.jsp new file mode 100644 index 0000000000..5ca296e115 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/index.jsp @@ -0,0 +1,23 @@ + + +<%@ page session="false"%> +<% +response.sendRedirect("helloWorld.jsf"); +%> diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/page2.jsp b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/page2.jsp new file mode 100644 index 0000000000..89259021c7 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsf/src/main/webapp/page2.jsp @@ -0,0 +1,38 @@ + + +<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> +<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> + + + Apache Tuscany Helloworld JSF sample + + +

Apache Tuscany Helloworld JSF sample

+ + + +
+ + + +
+
+ + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/README b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/README new file mode 100644 index 0000000000..828aadb0f1 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/README @@ -0,0 +1,7 @@ +The README in the /samples directory provides +general instructions about building and running samples. (where +distribution-unpack-dir is the directory in which you unpacked the tuscany +binary distribution archive). Take a look there first (noting at you read it that this sample +is not a new style sample). + +TODO - finish \ No newline at end of file diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/pom.xml b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/pom.xml new file mode 100644 index 0000000000..0aeed87589 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/pom.xml @@ -0,0 +1,98 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-samples-implementation-webapp + 2.0-SNAPSHOT + ../pom.xml + + + sample-implementation-web-helloworld-jsp-webapp + war + Apache Tuscany SCA Sample implemenation-web Helloworld JSP WebApp + + + + + org.apache.tuscany.sca + tuscany-base-runtime + 2.0-SNAPSHOT + + + + junit + junit + 4.8.1 + test + + + + net.sourceforge.htmlunit + htmlunit + 2.6 + test + + + + + + helloworld-jsp + + + org.mortbay.jetty + maven-jetty-plugin + 6.1.18 + + helloworld-jsp + foo + 9999 + + + + start-jetty + process-test-classes + + run + + + 0 + true + + + 8085 + + + + + + stop-jetty + prepare-package + + stop + + + + + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/java/sample/HelloworldService.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/java/sample/HelloworldService.java new file mode 100644 index 0000000000..53ff7a5ca1 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/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/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/java/sample/HelloworldServiceImpl.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/java/sample/HelloworldServiceImpl.java new file mode 100644 index 0000000000..a22c095f29 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/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/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/webapp/WEB-INF/web.composite b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/webapp/WEB-INF/web.composite new file mode 100644 index 0000000000..8976adde3c --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/webapp/WEB-INF/web.composite @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/webapp/WEB-INF/web.xml b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..fa1f7ad7b9 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,41 @@ + + + + + Apache Tuscany Helloworld JSP Sample + + + tuscany + org.apache.tuscany.sca.host.webapp.TuscanyServletFilter + + + + tuscany + /* + + + + hello.jsp + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/webapp/hello.jsp b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/main/webapp/hello.jsp new file mode 100644 index 0000000000..ffd01cca73 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/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/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/test/java/itest/HelloworldTestCase.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/src/test/java/itest/HelloworldTestCase.java new file mode 100644 index 0000000000..665957b0eb --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-jsp/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-jsp"); + 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/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/README b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/README new file mode 100644 index 0000000000..6874bcaddc --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/README @@ -0,0 +1,8 @@ +Sample implementation.web Servlet WebApp +========================================== + +This sample contribution shows SCA components implemented in a webapp and +accessed using a Servlet. + +See http://tuscany.apache.org/documentation-2x/20-beta-samples-documentation.html +for more information \ No newline at end of file diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/pom.xml b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/pom.xml new file mode 100644 index 0000000000..8892949405 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/pom.xml @@ -0,0 +1,105 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-samples-implementation-webapp + 2.0-SNAPSHOT + ../pom.xml + + + sample-implementation-web-helloworld-servlet-webapp + war + Apache Tuscany SCA Sample implementation.web Helloworld Servlet WebApp + + + + + org.apache.tuscany.sca + tuscany-base-runtime + 2.0-SNAPSHOT + + + + javax.servlet + servlet-api + 2.5 + provided + + + + junit + junit + 4.8.1 + test + + + + net.sourceforge.htmlunit + htmlunit + 2.6 + test + + + + + + helloworld-servlet + + + org.mortbay.jetty + maven-jetty-plugin + 6.1.18 + + helloworld-servlet + foo + 9999 + + + + start-jetty + process-test-classes + + run + + + 0 + true + + + 8085 + + + + + + stop-jetty + prepare-package + + stop + + + + + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/java/sample/HelloworldService.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/java/sample/HelloworldService.java new file mode 100644 index 0000000000..2e43e09897 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/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/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/java/sample/HelloworldServiceImpl.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/java/sample/HelloworldServiceImpl.java new file mode 100644 index 0000000000..9e79276704 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/java/sample/HelloworldServiceImpl.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 HelloworldServiceImpl implements HelloworldService { + + public String sayHello(String name) { + return "Hello " + name; + } + +} diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/java/sample/HelloworldServlet.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/java/sample/HelloworldServlet.java new file mode 100644 index 0000000000..bb72c50f6a --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/java/sample/HelloworldServlet.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 sample; + +import java.io.IOException; +import java.io.Writer; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.oasisopen.sca.ComponentContext; +import org.oasisopen.sca.annotation.Reference; + +/** + */ +public class HelloworldServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + + @Reference + protected HelloworldService service; + + @Override + public void init(ServletConfig servletConfig) throws ServletException { + if (service == null) { + System.out.println("HelloworldServlet reference injection failed, using ComponentContext"); + ComponentContext cc = (ComponentContext)servletConfig.getServletContext().getAttribute("org.oasisopen.sca.ComponentContext"); + service = cc.getService(HelloworldService.class, "service"); + } + } + + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws IOException { + + String name = request.getParameter("name"); + String greeting = service.sayHello(name); + + Writer out = response.getWriter(); + out.write("Apache Tuscany Helloworld Servlet Sample"); + out.write("

Apache Tuscany Helloworld Servlet Sample

"); + out.write("
Result: " + greeting); + out.write(""); + out.flush(); + out.close(); + } +} diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/webapp/WEB-INF/web.composite b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/webapp/WEB-INF/web.composite new file mode 100644 index 0000000000..8976adde3c --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/webapp/WEB-INF/web.composite @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/webapp/WEB-INF/web.xml b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..a91b3fc96b --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,44 @@ + + + + + Apache Tuscany Helloworld Servlet Sample + + org.apache.tuscany.sca.host.webapp.TuscanyContextListener + + + HelloworldServlet + sample.HelloworldServlet + + + + HelloworldServlet + /HelloworldServlet + + + + hello.html + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/webapp/hello.html b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/webapp/hello.html new file mode 100644 index 0000000000..c4484916aa --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/main/webapp/hello.html @@ -0,0 +1,46 @@ + + + + +Apache Tuscany Helloworld Servlet Sample + + + + +

Apache Tuscany Helloworld Servlet Sample

+ +
+ + + + + + + + +
Enter your name: + +
+ +
+
+ + + \ No newline at end of file diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/test/java/itest/HelloworldTestCase.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/test/java/itest/HelloworldTestCase.java new file mode 100644 index 0000000000..61d722da1f --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-servlet/src/test/java/itest/HelloworldTestCase.java @@ -0,0 +1,55 @@ +/* + * 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.assertTrue; + +import java.io.IOException; +import java.net.MalformedURLException; + +import org.junit.Test; + +import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; +import com.gargoylesoftware.htmlunit.WebClient; +import com.gargoylesoftware.htmlunit.html.HtmlButton; +import com.gargoylesoftware.htmlunit.html.HtmlForm; +import com.gargoylesoftware.htmlunit.html.HtmlInput; +import com.gargoylesoftware.htmlunit.html.HtmlPage; + +/** + */ +public class HelloworldTestCase { + + @Test + public void testA() throws FailingHttpStatusCodeException, MalformedURLException, IOException { + HtmlPage page = (HtmlPage)new WebClient().getPage("http://localhost:8085/helloworld-servlet"); + + HtmlForm form = (HtmlForm) page.getForms().get(0); + + HtmlInput textField = form.getInputByName("name"); + textField.setValueAttribute("petra"); + + HtmlButton button = (HtmlButton) form.getButtonsByName("submit").get(0); + + HtmlPage pageResponse = (HtmlPage) button.click(); + + assertTrue(pageResponse.getWebResponse().getContentAsString().endsWith("Hello petra")); + } + +} diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/README b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/README new file mode 100644 index 0000000000..f331fb036c --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/README @@ -0,0 +1,8 @@ +Sample implementation.web Stripes WebApp +========================================== + +This sample contribution shows SCA components implemented in a webapp and +accessed using a Stripes. + +See http://tuscany.apache.org/documentation-2x/20-beta-samples-documentation.html +for more information \ No newline at end of file diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/pom.xml b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/pom.xml new file mode 100644 index 0000000000..fd96fc3367 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/pom.xml @@ -0,0 +1,118 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-samples-implementation-webapp + 2.0-SNAPSHOT + ../pom.xml + + + sample-implementation-web-helloworld-stripes-webapp + war + Apache Tuscany SCA Sample implementation.web Helloworld Stripes WebApp + + + + + + org.apache.tuscany.sca + tuscany-base-runtime + 2.0-SNAPSHOT + + + + org.apache.tuscany.sca + tuscany-stripes + 2.0-SNAPSHOT + + + + + net.sourceforge.stripes + stripes + 1.5.2 + + + + taglibs + standard + 1.1.2 + + + + junit + junit + 4.8.1 + test + + + + net.sourceforge.htmlunit + htmlunit + 2.6 + test + + + + + + helloworld-stripes + + + org.mortbay.jetty + maven-jetty-plugin + 6.1.18 + + helloworld-stripes + foo + 9999 + + + + start-jetty + process-test-classes + + run + + + 0 + true + + + 8085 + + + + + + stop-jetty + prepare-package + + stop + + + + + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/java/mystripes/action/BaseActionBean.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/java/mystripes/action/BaseActionBean.java new file mode 100644 index 0000000000..0ab02682ac --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/java/mystripes/action/BaseActionBean.java @@ -0,0 +1,33 @@ +/* + * 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 mystripes.action; + +import net.sourceforge.stripes.action.ActionBean; +import net.sourceforge.stripes.action.ActionBeanContext; + +public class BaseActionBean implements ActionBean { + private ActionBeanContext context; + + public ActionBeanContext getContext() { + return context; + } + public void setContext(ActionBeanContext context) { + this.context = context; + } +} diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/java/mystripes/action/HomeActionBean.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/java/mystripes/action/HomeActionBean.java new file mode 100644 index 0000000000..0385c92369 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/java/mystripes/action/HomeActionBean.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 mystripes.action; + +import net.sourceforge.stripes.action.DefaultHandler; +import net.sourceforge.stripes.action.ForwardResolution; +import net.sourceforge.stripes.action.Resolution; +import net.sourceforge.stripes.action.UrlBinding; + +import org.oasisopen.sca.annotation.Reference; + +import sample.HelloworldService; + +@UrlBinding("/Home.htm") +public class HomeActionBean extends BaseActionBean { + + @Reference + HelloworldService service; + + @DefaultHandler + public Resolution view() { + return new ForwardResolution("/WEB-INF/jsp/home.jsp"); + } + + public String getHello() { + return service.sayHello("world"); + } + +} diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/java/sample/HelloworldService.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/java/sample/HelloworldService.java new file mode 100644 index 0000000000..53ff7a5ca1 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/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/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/java/sample/HelloworldServiceImpl.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/java/sample/HelloworldServiceImpl.java new file mode 100644 index 0000000000..a22c095f29 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/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/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/resources/StripesResources.properties b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/resources/StripesResources.properties new file mode 100644 index 0000000000..902842a19e --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/resources/StripesResources.properties @@ -0,0 +1,73 @@ +# +# 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. +# + +# Resource strings used by the tag when there are no nested tags +stripes.errors.header=
Please fix the following errors:
    +stripes.errors.beforeError=
  1. +stripes.errors.afterError=
  2. +stripes.errors.footer=
+ +# Resource strings used by the tag when displaying errors for a +# specific field (e.g. ). If not supplied the +# values above will be used instead. +stripes.fieldErrors.header= +stripes.fieldErrors.beforeError= +stripes.fieldErrors.afterError=
+stripes.fieldErrors.footer= + +# Resource strings used by the stripes:messages tag +stripes.messages.header=
    +stripes.messages.beforeMessage=
  • +stripes.messages.afterMessage=
  • +stripes.messages.footer=
+ +# Validation error messages produced by Stripes' built-in converter classes. These +# are default error messages and can be overridden on per-field and per-form levels. +# Using the 'invalidNumber' error for a field 'age' of a form posting to +# '/user/Profile.action', the keys looked for (in order) would be: +# 1: /user/Profile.action.age.invalidNumber +# 2: /user/Profile.action.age.errorMessage +# 3: age.errorMessage +# 4: /user/Profile.action.invalidNumber +# 5: converter.number.invalidNumber +converter.number.invalidNumber=The value ({1}) entered in field {0} must be a valid number +converter.byte.outOfRange=The value ({1}) entered in field {0} was out of the range {2} to {3} +converter.short.outOfRange=The value ({1}) entered in field {0} was out of the range {2} to {3} +converter.integer.outOfRange=The value ({1}) entered in field {0} was out of the range {2} to {3} +converter.float.outOfRange=The value ({1}) entered in field {0} was out of the range {2} to {3} +converter.enum.notAnEnumeratedValue=The value "{1}" is not a valid value for field {0} +converter.date.invalidDate=The value ({1}) entered in field {0} must be a valid date +converter.email.invalidEmail=The value ({1}) entered is not a valid email address +converter.creditCard.invalidCreditCard=The value ({1}) entered is not a valid credit card number + +# Validation error messages produced by Stripes' annotation based validations. These +# are default error messages and can be overridden on per-field and per-form levels. +# Using the 'valueNotPresent' required field error for a field 'username' of a form +# posting to '/user/Register.action', the keys looked for (in order) would be: +# 1: /user/Register.action.username.valueNotPresent +# 2: /user/Register.action.username.errorMessage +# 3: username.errorMessage +# 4: /user/Register.action.valueNotPresent +# 5: validation.required.valueNotPresent +validation.required.valueNotPresent={0} is a required field +validation.minlength.valueTooShort={0} must be at least {2} characters long +validation.maxlength.valueTooLong={0} must be no more than {2} characters long +validation.minvalue.valueBelowMinimum=The minimum allowed value for {0} is {2} +validation.maxvalue.valueAboveMaximum=The maximum allowed value for {0} is {2} +validation.mask.valueDoesNotMatch={1} is not a valid {0} +validation.expression.valueFailedExpression=The value supplied ({1}) for field {0} is invalid +validation.file.postBodyTooBig=Total upload size of {3} KB exceeds the maximum size of {2} KB diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/resources/log4j.properties b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/resources/log4j.properties new file mode 100644 index 0000000000..2741999098 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/resources/log4j.properties @@ -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. +# + +# log4j.properties + +# Set up a logger to the console +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %-5p %c %x - %m%n + +# Use this to only see log messages beyond a certain threshold in the console +#log4j.appender.stdout.Threshold=WARN + +# Set up a logger to a log file +log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender +log4j.appender.logfile.layout=org.apache.log4j.PatternLayout +log4j.appender.logfile.layout.ConversionPattern=[%d{HH:mm:ss}] %-5p %c %x - %m%n +log4j.appender.logfile.File=${user.home}/stripesquick.log +log4j.appender.logfile.DatePattern='.'yyyy-MM-dd + +# Use this to only see log messages beyond a certain threshold in the log file +#log4j.appender.logfile.Threshold=WARN + +# Logger settings +log4j.rootLogger=INFO, stdout, logfile + +# Valid levels are TRACE, DEBUG, INFO, WARN, ERROR, FATAL +# Change to TRACE or DEBUG to see more log messages +log4j.logger.net.sourceforge.stripes=WARN +log4j.logger.org.stripesbook.quickstart=INFO +log4j.logger.org.mortbay.log=INFO +log4j.logger.org=WARN +log4j.logger.com=WARN +log4j.logger.net=WARN diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/jsp/home.jsp b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/jsp/home.jsp new file mode 100644 index 0000000000..0681c1f2bf --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/jsp/home.jsp @@ -0,0 +1,26 @@ + +<%@ include file="/WEB-INF/jsp/taglibs.jsp" %> + + + +

sayHello returns: ${actionBean.hello}

+

Congratulations, you've set up a Stripes SCA project!

+
+
diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/jsp/layout.jsp b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/jsp/layout.jsp new file mode 100644 index 0000000000..d0fb716b80 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/jsp/layout.jsp @@ -0,0 +1,39 @@ + +<%@ include file="/WEB-INF/jsp/taglibs.jsp" %> + + + + + + + ${title} + + + + + +
+ + +
+ + + +
\ No newline at end of file diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/jsp/taglibs.jsp b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/jsp/taglibs.jsp new file mode 100644 index 0000000000..f85602fcfa --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/jsp/taglibs.jsp @@ -0,0 +1,29 @@ + +<%-- Stripes TLD --%> +<%@ taglib prefix="s" uri="http://stripes.sourceforge.net/stripes.tld" %> +<%@ taglib prefix="sdyn" uri="http://stripes.sourceforge.net/stripes-dynattr.tld" %> + +<%-- JSTL TLDs --%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + +<%-- This is so that you can conveniently refer to the context path with ${contextPath} --%> + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/web.composite b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/web.composite new file mode 100644 index 0000000000..8976adde3c --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/web.composite @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/web.xml b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..f01584cc2f --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,61 @@ + + + + + Apache Tuscany Helloworld Stripes Sample + + + org.apache.tuscany.sca.host.webapp.TuscanyContextListener + + + + StripesFilter + net.sourceforge.stripes.controller.StripesFilter + + ActionResolver.Packages + mystripes.action + + + Extension.Packages + org.apache.tuscany.sca.stripes + + + + + DispatcherServlet + net.sourceforge.stripes.controller.DispatcherServlet + 1 + + + + StripesFilter + DispatcherServlet + REQUEST + FORWARD + + + + DispatcherServlet + *.htm + + + + index.html + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/index.html b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/index.html new file mode 100644 index 0000000000..c79d29e6a5 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/main/webapp/index.html @@ -0,0 +1,24 @@ + + + + + + + diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/test/java/README b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/test/java/README new file mode 100644 index 0000000000..828aadb0f1 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/test/java/README @@ -0,0 +1,7 @@ +The README in the /samples directory provides +general instructions about building and running samples. (where +distribution-unpack-dir is the directory in which you unpacked the tuscany +binary distribution archive). Take a look there first (noting at you read it that this sample +is not a new style sample). + +TODO - finish \ No newline at end of file diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/test/java/itest/HelloworldTestCase.java b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/src/test/java/itest/HelloworldTestCase.java new file mode 100644 index 0000000000..7f4359fa43 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/helloworld-stripes/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-stripes"); + Iterator ss = page.getAllHtmlChildElements().iterator(); + while(ss.hasNext()) { + HtmlElement htmlElement = (HtmlElement) ss.next(); + if( htmlElement instanceof HtmlParagraph) { + assertEquals("sayHello returns: Hello world", htmlElement.asText()); + break; + } + } + } + +} diff --git a/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/pom.xml b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/pom.xml new file mode 100644 index 0000000000..94b39e5561 --- /dev/null +++ b/sandbox/sebastien/java/wrapped/samples/learning-more/implementation-web/pom.xml @@ -0,0 +1,50 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-samples-learning-more + 2.0-SNAPSHOT + ../pom.xml + + tuscany-samples-implementation-webapp + pom + Apache Tuscany SCA Sample Web Applications + + + + default + + true + + + helloworld-jaxrs + helloworld-js-client + helloworld-jsf + + helloworld-servlet + helloworld-stripes + + + + -- cgit v1.2.3