From 70b8c9ded494eece9cf2e0bbc2063acac6387473 Mon Sep 17 00:00:00 2001 From: antelder Date: Thu, 26 Feb 2009 06:53:59 +0000 Subject: Add a sample using the stripes web framework git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@748041 13f79535-47bb-0310-9956-ffa450edef68 --- .../main/java/mystripes/action/BaseActionBean.java | 15 ++++++ .../main/java/mystripes/action/HomeActionBean.java | 27 ++++++++++ .../src/main/java/sample/HelloworldService.java | 25 +++++++++ .../main/java/sample/HelloworldServiceImpl.java | 28 ++++++++++ .../src/main/resources/StripesResources.properties | 57 ++++++++++++++++++++ .../src/main/resources/log4j.properties | 31 +++++++++++ .../src/main/webapp/WEB-INF/jsp/home.jsp | 8 +++ .../src/main/webapp/WEB-INF/jsp/layout.jsp | 21 ++++++++ .../src/main/webapp/WEB-INF/jsp/taglibs.jsp | 11 ++++ .../src/main/webapp/WEB-INF/web.composite | 34 ++++++++++++ .../src/main/webapp/WEB-INF/web.xml | 61 ++++++++++++++++++++++ .../helloworld-stripes/src/main/webapp/index.html | 6 +++ 12 files changed, 324 insertions(+) create mode 100644 java/sca/samples/webapps/helloworld-stripes/src/main/java/mystripes/action/BaseActionBean.java create mode 100644 java/sca/samples/webapps/helloworld-stripes/src/main/java/mystripes/action/HomeActionBean.java create mode 100644 java/sca/samples/webapps/helloworld-stripes/src/main/java/sample/HelloworldService.java create mode 100644 java/sca/samples/webapps/helloworld-stripes/src/main/java/sample/HelloworldServiceImpl.java create mode 100644 java/sca/samples/webapps/helloworld-stripes/src/main/resources/StripesResources.properties create mode 100644 java/sca/samples/webapps/helloworld-stripes/src/main/resources/log4j.properties create mode 100644 java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/jsp/home.jsp create mode 100644 java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/jsp/layout.jsp create mode 100644 java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/jsp/taglibs.jsp create mode 100644 java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/web.composite create mode 100644 java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/web.xml create mode 100644 java/sca/samples/webapps/helloworld-stripes/src/main/webapp/index.html (limited to 'java/sca/samples/webapps/helloworld-stripes/src/main') diff --git a/java/sca/samples/webapps/helloworld-stripes/src/main/java/mystripes/action/BaseActionBean.java b/java/sca/samples/webapps/helloworld-stripes/src/main/java/mystripes/action/BaseActionBean.java new file mode 100644 index 0000000000..901e3ff1b8 --- /dev/null +++ b/java/sca/samples/webapps/helloworld-stripes/src/main/java/mystripes/action/BaseActionBean.java @@ -0,0 +1,15 @@ +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/java/sca/samples/webapps/helloworld-stripes/src/main/java/mystripes/action/HomeActionBean.java b/java/sca/samples/webapps/helloworld-stripes/src/main/java/mystripes/action/HomeActionBean.java new file mode 100644 index 0000000000..acbe5456ea --- /dev/null +++ b/java/sca/samples/webapps/helloworld-stripes/src/main/java/mystripes/action/HomeActionBean.java @@ -0,0 +1,27 @@ +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/java/sca/samples/webapps/helloworld-stripes/src/main/java/sample/HelloworldService.java b/java/sca/samples/webapps/helloworld-stripes/src/main/java/sample/HelloworldService.java new file mode 100644 index 0000000000..123774b936 --- /dev/null +++ b/java/sca/samples/webapps/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/java/sca/samples/webapps/helloworld-stripes/src/main/java/sample/HelloworldServiceImpl.java b/java/sca/samples/webapps/helloworld-stripes/src/main/java/sample/HelloworldServiceImpl.java new file mode 100644 index 0000000000..66cef71a25 --- /dev/null +++ b/java/sca/samples/webapps/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/java/sca/samples/webapps/helloworld-stripes/src/main/resources/StripesResources.properties b/java/sca/samples/webapps/helloworld-stripes/src/main/resources/StripesResources.properties new file mode 100644 index 0000000000..a23399569a --- /dev/null +++ b/java/sca/samples/webapps/helloworld-stripes/src/main/resources/StripesResources.properties @@ -0,0 +1,57 @@ + +# 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/java/sca/samples/webapps/helloworld-stripes/src/main/resources/log4j.properties b/java/sca/samples/webapps/helloworld-stripes/src/main/resources/log4j.properties new file mode 100644 index 0000000000..77fa204a15 --- /dev/null +++ b/java/sca/samples/webapps/helloworld-stripes/src/main/resources/log4j.properties @@ -0,0 +1,31 @@ +# 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/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/jsp/home.jsp b/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/jsp/home.jsp new file mode 100644 index 0000000000..ea3fc55714 --- /dev/null +++ b/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/jsp/home.jsp @@ -0,0 +1,8 @@ +<%@ include file="/WEB-INF/jsp/taglibs.jsp" %> + + + +

sayHello returns: ${actionBean.hello}

+

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

+
+
diff --git a/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/jsp/layout.jsp b/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/jsp/layout.jsp new file mode 100644 index 0000000000..72e696ecb8 --- /dev/null +++ b/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/jsp/layout.jsp @@ -0,0 +1,21 @@ +<%@ include file="/WEB-INF/jsp/taglibs.jsp" %> + + + + + + + ${title} + + + + + +
+ + +
+ + + +
\ No newline at end of file diff --git a/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/jsp/taglibs.jsp b/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/jsp/taglibs.jsp new file mode 100644 index 0000000000..4e38b14e9f --- /dev/null +++ b/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/jsp/taglibs.jsp @@ -0,0 +1,11 @@ +<%-- 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/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/web.composite b/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/web.composite new file mode 100644 index 0000000000..b687b2d056 --- /dev/null +++ b/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/web.composite @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/web.xml b/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..0a16144519 --- /dev/null +++ b/java/sca/samples/webapps/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/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/index.html b/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/index.html new file mode 100644 index 0000000000..2b070f4ce0 --- /dev/null +++ b/java/sca/samples/webapps/helloworld-stripes/src/main/webapp/index.html @@ -0,0 +1,6 @@ + + + + + + -- cgit v1.2.3