diff options
Diffstat (limited to 'branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf')
10 files changed, 547 insertions, 0 deletions
diff --git a/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/pom.xml b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/pom.xml new file mode 100644 index 0000000000..9e1dcba891 --- /dev/null +++ b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/pom.xml @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-sca</artifactId> + <version>2.0-M4-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + + <artifactId>helloworld-jsf</artifactId> + <name>Apache Tuscany SCA Sample Helloworld JSF</name> + <packaging>war</packaging> + + <dependencies> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-sca-api</artifactId> + <version>2.0-M4-SNAPSHOT</version> + <scope>compile</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-web-runtime</artifactId> + <version>2.0-M4-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-myfaces</artifactId> + <version>2.0-M4-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + </dependencies> + + <build> + <finalName>${artifactId}</finalName> + </build> + +</project> diff --git a/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/java/sample/HelloWorldController.java b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/java/sample/HelloWorldController.java new file mode 100644 index 0000000000..9c9f541997 --- /dev/null +++ b/branches/sca-java-2.0-M4/samples/webapps/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/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/java/sample/HelloworldService.java b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/java/sample/HelloworldService.java new file mode 100644 index 0000000000..53ff7a5ca1 --- /dev/null +++ b/branches/sca-java-2.0-M4/samples/webapps/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/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/java/sample/HelloworldServiceImpl.java b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/java/sample/HelloworldServiceImpl.java new file mode 100644 index 0000000000..23925d6c69 --- /dev/null +++ b/branches/sca-java-2.0-M4/samples/webapps/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/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/WEB-INF/faces-config.xml b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/WEB-INF/faces-config.xml new file mode 100644 index 0000000000..99cee9faeb --- /dev/null +++ b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/WEB-INF/faces-config.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<faces-config version="1.2" + xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> + + <!-- managed beans of the simple hello world app --> + <managed-bean> + <managed-bean-name>helloWorld</managed-bean-name> + <managed-bean-class>sample.HelloWorldController</managed-bean-class> + <managed-bean-scope>request</managed-bean-scope> + </managed-bean> + + <!-- navigation rules for helloWorld.jsp --> + <navigation-rule> + <from-view-id>/helloWorld.jsp</from-view-id> + <navigation-case> + <from-outcome>success</from-outcome> + <to-view-id>/page2.jsp</to-view-id> + </navigation-case> + </navigation-rule> + + <!-- navigation rules for page2.jsp --> + <navigation-rule> + <from-view-id>/page2.jsp</from-view-id> + <navigation-case> + <from-outcome>back</from-outcome> + <to-view-id>/helloWorld.jsp</to-view-id> + </navigation-case> + </navigation-rule> + +</faces-config> diff --git a/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/WEB-INF/web.composite b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/WEB-INF/web.composite new file mode 100644 index 0000000000..875d6aae9d --- /dev/null +++ b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/WEB-INF/web.composite @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903" + xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1" + targetNamespace="http://samples" + name="Helloworld"> + + <component name="foo"> + <implementation.web web-uri=""/> + <reference name="service" target="HelloworldComponent"/> + </component> + + <component name="HelloworldComponent"> + <implementation.java class="sample.HelloworldServiceImpl"/> + </component> + +</composite> diff --git a/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/WEB-INF/web.xml b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..fecbd7c79b --- /dev/null +++ b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,191 @@ +<?xml version="1.0"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<web-app xmlns="http://java.sun.com/xml/ns/j2ee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" + version="2.4"> + + <description>MyProject web.xml</description> + + <!-- The only web.xml change to the MyFaces Helloworld sample is to add + the Tuscany listener and annotation processor context parameter --> + <listener> + <listener-class>org.apache.tuscany.sca.host.webapp.TuscanyContextListener</listener-class> + </listener> + <context-param> + <param-name>org.apache.myfaces.config.annotation.LifecycleProvider</param-name> + <param-value>org.apache.tuscany.sca.myfaces.TuscanyAnnotationLifecycleProvider</param-value> + </context-param> + + <!--optional: context-param> + <description>Comma separated list of URIs of (additional) faces config files. + (e.g. /WEB-INF/my-config.xml) + See JSF 1.0 PRD2, 10.3.2 + Attention: You do not need to put /WEB-INF/faces-config.xml in here. + </description> + <param-name>javax.faces.CONFIG_FILES</param-name> + <param-value>/WEB-INF/examples-config.xml</param-value> + </context-param--> + <context-param> + <description>State saving method: "client" or "server" (= default) + See JSF Specification 2.5.3</description> + <param-name>javax.faces.STATE_SAVING_METHOD</param-name> + <param-value>client</param-value> + </context-param> + <context-param> + <description>Only applicable if state saving method is "server" (= default). + Defines the amount (default = 20) of the latest views are stored in session.</description> + <param-name>org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION</param-name> + <param-value>20</param-value> + </context-param> + <context-param> + <description>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.</description> + <param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name> + <param-value>true</param-value> + </context-param> + <context-param> + <description>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.</description> + <param-name>org.apache.myfaces.COMPRESS_STATE_IN_SESSION</param-name> + <param-value>true</param-value> + </context-param> + <context-param> + <description>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"</description> + <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name> + <param-value>true</param-value> + </context-param> + <context-param> + <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name> + <param-value>false</param-value> + </context-param> + <context-param> + <description>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"</description> + <param-name>org.apache.myfaces.PRETTY_HTML</param-name> + <param-value>true</param-value> + </context-param> + <context-param> + <description>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"</description> + <param-name>org.apache.myfaces.AUTO_SCROLL</param-name> + <param-value>true</param-value> + </context-param> + + <context-param> + <description>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. + </description> + <param-name>org.apache.myfaces.SECRET</param-name> + <param-value>NzY1NDMyMTA=</param-value> + </context-param> + + <context-param> + <description> + Validate managed beans, navigation rules and ensure that forms are not nested. + </description> + <param-name>org.apache.myfaces.VALIDATE</param-name> + <param-value>true</param-value> + </context-param> + + <context-param> + <description> + Treat readonly same as if disabled attribute was set for select elements. + </description> + <param-name>org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS</param-name> + <param-value>true</param-value> + </context-param> + + <context-param> + <description> + 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. + </description> + <param-name>org.apache.myfaces.ADD_RESOURCE_CLASS</param-name> + <param-value>org.apache.myfaces.renderkit.html.util.DefaultAddResource</param-value> + </context-param> + + <context-param> + <description> + Virtual path in the URL which triggers loading of resources for the MyFaces extended components + in the ExtensionFilter. + </description> + <param-name>org.apache.myfaces.RESOURCE_VIRTUAL_PATH</param-name> + <param-value>/faces/myFacesExtensionResource</param-value> + </context-param> + + <context-param> + <description> + Check if the extensions-filter has been properly configured. + </description> + <param-name>org.apache.myfaces.CHECK_EXTENSIONS_FILTER</param-name> + <param-value>true</param-value> + </context-param> + + <context-param> + <description> + Define partial state saving as true/false. + </description> + <param-name>javax.faces.PARTIAL_STATE_SAVING_METHOD</param-name> + <param-value>false</param-value> + </context-param> + + <!-- Listener, to allow Jetty serving MyFaces apps --> + <listener> + <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class> + </listener> + + <!-- Faces Servlet --> + <servlet> + <servlet-name>Faces Servlet</servlet-name> + <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> + <load-on-startup>1</load-on-startup> + </servlet> + + <!-- Faces Servlet Mapping --> + <servlet-mapping> + <servlet-name>Faces Servlet</servlet-name> + <url-pattern>*.jsf</url-pattern> + </servlet-mapping> + + <!-- Welcome files --> + <welcome-file-list> + <welcome-file>index.jsp</welcome-file> + <welcome-file>index.html</welcome-file> + </welcome-file-list> + +</web-app> diff --git a/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/helloWorld.jsp b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/helloWorld.jsp new file mode 100644 index 0000000000..189c142c99 --- /dev/null +++ b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/helloWorld.jsp @@ -0,0 +1,40 @@ +<!--
+ * 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.
+-->
+
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+
+<html>
+ <head>
+ <title>Apache Tuscany Helloworld JSF sample</title>
+ </head>
+ <body>
+ <h2>Apache Tuscany Helloworld JSF sample</h2>
+ <f:view>
+ <h:form id="mainForm">
+ <h:panelGrid columns="2">
+ <h:outputLabel for="name" value="Please enter your name" />
+ <h:inputText id="name" value="#{helloWorld.name}" required="true"/>
+ <h:commandButton value="Press me" action="#{helloWorld.send}"/>
+ <h:messages showDetail="true" showSummary="false"/>
+ </h:panelGrid>
+ </h:form>
+ </f:view>
+ </body>
+</html>
diff --git a/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/index.jsp b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/index.jsp new file mode 100644 index 0000000000..5ca296e115 --- /dev/null +++ b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/index.jsp @@ -0,0 +1,23 @@ +<!--
+ * 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.
+-->
+
+<%@ page session="false"%>
+<%
+response.sendRedirect("helloWorld.jsf");
+%>
diff --git a/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/page2.jsp b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/page2.jsp new file mode 100644 index 0000000000..89259021c7 --- /dev/null +++ b/branches/sca-java-2.0-M4/samples/webapps/helloworld-jsf/src/main/webapp/page2.jsp @@ -0,0 +1,38 @@ +<!--
+ * 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.
+-->
+
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<html>
+ <head>
+ <title>Apache Tuscany Helloworld JSF sample</title>
+ </head>
+ <body>
+ <h2>Apache Tuscany Helloworld JSF sample</h2>
+ <f:view>
+ <h:form id="mainForm">
+ <h:inputTextarea readonly="true" rows="20" cols="80" value="#{helloWorld.name}"/>
+ <br>
+ <h:commandLink action="back">
+ <h:outputText value="Home"/>
+ </h:commandLink>
+ </h:form>
+ </f:view>
+ </body>
+</html>
|