From 9743e0050c184bf4c2a871ab7224b7041822941e Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Thu, 8 Mar 2012 23:23:35 +0100 Subject: [PATCH] =?utf8?q?Modul=20mit=20Beispiel-Konfigurationen=20=C3=BCb?= =?utf8?q?erarbeitet.=20Jetzt:=201=20Modul=20pro=20Test?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * Altes Modul cachecontrol-examples, das für mehrere Beispile- Konfigurationen, bzw. -Tests gedacht war, gelöscht. * Modul cachecontrol-examples-jsp für Beispiel-Konfiguration und -Test einer reinen JSP-Anwendung angelegt. * Testfall JspTest in diesem Modul implementiert, der die Konfiguration (die auch per "mvn jetty:run" gestartet und live getestet werden kann, programmatisch mit Hilfe von httpunit abklopft. * Das Test-Modul cachecontrol-examples-jsp enthält die spezifische Konfiguration für juplo-cachecontrol noch nicht! --- .../jetty.sh | 0 cachecontrol-example-jsp/pom.xml | 91 +++ .../src/main/resources/log4j.xml | 21 + .../src/main/webapp/WEB-INF/c.tld | 572 ++++++++++++++++++ .../src/main/webapp/WEB-INF/included.jsp | 2 + .../src/main/webapp/WEB-INF/web.xml | 6 + .../src/main/webapp/page-with-forward.jsp | 14 + .../src/main/webapp/page-with-include.jsp | 14 + .../src/main/webapp/simple-page.jsp | 13 + .../cachecontrol/examples/jsp/JspTest.java | 44 ++ .../tomcat.sh | 0 cachecontrol-examples/pom.xml | 158 ----- .../src/main/resources/config.xml | 34 -- .../src/main/webapp/WEB-INF/web.xml | 36 -- pom.xml | 4 +- 15 files changed, 780 insertions(+), 229 deletions(-) rename {cachecontrol-examples => cachecontrol-example-jsp}/jetty.sh (100%) create mode 100644 cachecontrol-example-jsp/pom.xml create mode 100644 cachecontrol-example-jsp/src/main/resources/log4j.xml create mode 100644 cachecontrol-example-jsp/src/main/webapp/WEB-INF/c.tld create mode 100644 cachecontrol-example-jsp/src/main/webapp/WEB-INF/included.jsp create mode 100644 cachecontrol-example-jsp/src/main/webapp/WEB-INF/web.xml create mode 100644 cachecontrol-example-jsp/src/main/webapp/page-with-forward.jsp create mode 100644 cachecontrol-example-jsp/src/main/webapp/page-with-include.jsp create mode 100644 cachecontrol-example-jsp/src/main/webapp/simple-page.jsp create mode 100644 cachecontrol-example-jsp/src/test/java/de/halbekunst/cachecontrol/examples/jsp/JspTest.java rename {cachecontrol-examples => cachecontrol-example-jsp}/tomcat.sh (100%) delete mode 100644 cachecontrol-examples/pom.xml delete mode 100644 cachecontrol-examples/src/main/resources/config.xml delete mode 100644 cachecontrol-examples/src/main/webapp/WEB-INF/web.xml diff --git a/cachecontrol-examples/jetty.sh b/cachecontrol-example-jsp/jetty.sh similarity index 100% rename from cachecontrol-examples/jetty.sh rename to cachecontrol-example-jsp/jetty.sh diff --git a/cachecontrol-example-jsp/pom.xml b/cachecontrol-example-jsp/pom.xml new file mode 100644 index 00000000..16cc1638 --- /dev/null +++ b/cachecontrol-example-jsp/pom.xml @@ -0,0 +1,91 @@ + + + + 4.0.0 + + + de.halbekunst + juplo + 2.0-SNAPSHOT + + + ${pom.parent.artifactId}-cachecontrol-example-jsp + war + Juplo - CacheControl - Examples: JSP-Page + + + + + + javax.servlet + jstl + ${jstl.version} + runtime + + + + + org.slf4j + ${slf4j.binding} + ${slf4j.version} + runtime + + + + + ${pom.parent.groupId} + ${pom.parent.artifactId}-test + ${pom.parent.version} + + + org.apache.tomcat + jasper + ${jasper.version} + test + + + + + + + + org.mortbay.jetty + jetty-maven-plugin + 8.0.1.v20110908 + + + + 0.0.0.0 + 8080 + 2 + + + 0 + + + ${project.basedir}/src/main/webapp/WEB-INF + + **/*.jsp + + + **/*.properties + **/*.xml + + + + + + + org.codehaus.mojo + tomcat-maven-plugin + 1.1 + + / + UTF-8 + + + + + + diff --git a/cachecontrol-example-jsp/src/main/resources/log4j.xml b/cachecontrol-example-jsp/src/main/resources/log4j.xml new file mode 100644 index 00000000..91fb330f --- /dev/null +++ b/cachecontrol-example-jsp/src/main/resources/log4j.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/cachecontrol-example-jsp/src/main/webapp/WEB-INF/c.tld b/cachecontrol-example-jsp/src/main/webapp/WEB-INF/c.tld new file mode 100644 index 00000000..8c447f59 --- /dev/null +++ b/cachecontrol-example-jsp/src/main/webapp/WEB-INF/c.tld @@ -0,0 +1,572 @@ + + + + + JSTL 1.1 core library + JSTL core + 1.1 + c + http://java.sun.com/jsp/jstl/core + + + + Provides core validation features for JSTL tags. + + + org.apache.taglibs.standard.tlv.JstlCoreTLV + + + + + + Catches any Throwable that occurs in its body and optionally + exposes it. + + catch + org.apache.taglibs.standard.tag.common.core.CatchTag + JSP + + +Name of the exported scoped variable for the +exception thrown from a nested action. The type of the +scoped variable is the type of the exception thrown. + + var + false + false + + + + + + Simple conditional tag that establishes a context for + mutually exclusive conditional operations, marked by + <when> and <otherwise> + + choose + org.apache.taglibs.standard.tag.common.core.ChooseTag + JSP + + + + + Simple conditional tag, which evalutes its body if the + supplied condition is true and optionally exposes a Boolean + scripting variable representing the evaluation of this condition + + if + org.apache.taglibs.standard.tag.rt.core.IfTag + JSP + + +The test condition that determines whether or +not the body content should be processed. + + test + true + true + boolean + + + +Name of the exported scoped variable for the +resulting value of the test condition. The type +of the scoped variable is Boolean. + + var + false + false + + + +Scope for var. + + scope + false + false + + + + + + Retrieves an absolute or relative URL and exposes its contents + to either the page, a String in 'var', or a Reader in 'varReader'. + + import + org.apache.taglibs.standard.tag.rt.core.ImportTag + org.apache.taglibs.standard.tei.ImportTEI + JSP + + +The URL of the resource to import. + + url + true + true + + + +Name of the exported scoped variable for the +resource's content. The type of the scoped +variable is String. + + var + false + false + + + +Scope for var. + + scope + false + false + + + +Name of the exported scoped variable for the +resource's content. The type of the scoped +variable is Reader. + + varReader + false + false + + + +Name of the context when accessing a relative +URL resource that belongs to a foreign +context. + + context + false + true + + + +Character encoding of the content at the input +resource. + + charEncoding + false + true + + + + + + The basic iteration tag, accepting many different + collection types and supporting subsetting and other + functionality + + forEach + org.apache.taglibs.standard.tag.rt.core.ForEachTag + org.apache.taglibs.standard.tei.ForEachTEI + JSP + + +Collection of items to iterate over. + + items + false + true + java.lang.Object + + java.lang.Object + + + + +If items specified: +Iteration begins at the item located at the +specified index. First item of the collection has +index 0. +If items not specified: +Iteration begins with index set at the value +specified. + + begin + false + true + int + + + +If items specified: +Iteration ends at the item located at the +specified index (inclusive). +If items not specified: +Iteration ends when index reaches the value +specified. + + end + false + true + int + + + +Iteration will only process every step items of +the collection, starting with the first one. + + step + false + true + int + + + +Name of the exported scoped variable for the +current item of the iteration. This scoped +variable has nested visibility. Its type depends +on the object of the underlying collection. + + var + false + false + + + +Name of the exported scoped variable for the +status of the iteration. Object exported is of type +javax.servlet.jsp.jstl.core.LoopTagStatus. This scoped variable has nested +visibility. + + varStatus + false + false + + + + + + Iterates over tokens, separated by the supplied delimeters + + forTokens + org.apache.taglibs.standard.tag.rt.core.ForTokensTag + JSP + + +String of tokens to iterate over. + + items + true + true + java.lang.String + + java.lang.String + + + + +The set of delimiters (the characters that +separate the tokens in the string). + + delims + true + true + java.lang.String + + + +Iteration begins at the token located at the +specified index. First token has index 0. + + begin + false + true + int + + + +Iteration ends at the token located at the +specified index (inclusive). + + end + false + true + int + + + +Iteration will only process every step tokens +of the string, starting with the first one. + + step + false + true + int + + + +Name of the exported scoped variable for the +current item of the iteration. This scoped +variable has nested visibility. + + var + false + false + + + +Name of the exported scoped variable for the +status of the iteration. Object exported is of +type +javax.servlet.jsp.jstl.core.LoopTag +Status. This scoped variable has nested +visibility. + + varStatus + false + false + + + + + + Like <%= ... >, but for expressions. + + out + org.apache.taglibs.standard.tag.rt.core.OutTag + JSP + + +Expression to be evaluated. + + value + true + true + + + +Default value if the resulting value is null. + + default + false + true + + + +Determines whether characters <,>,&,'," in the +resulting string should be converted to their +corresponding character entity codes. Default value is +true. + + escapeXml + false + true + + + + + + + Subtag of <choose> that follows <when> tags + and runs only if all of the prior conditions evaluated to + 'false' + + otherwise + org.apache.taglibs.standard.tag.common.core.OtherwiseTag + JSP + + + + + Adds a parameter to a containing 'import' tag's URL. + + param + org.apache.taglibs.standard.tag.rt.core.ParamTag + JSP + + +Name of the query string parameter. + + name + true + true + + + +Value of the parameter. + + value + false + true + + + + + + Redirects to a new URL. + + redirect + org.apache.taglibs.standard.tag.rt.core.RedirectTag + JSP + + +The URL of the resource to redirect to. + + url + false + true + + + +Name of the context when redirecting to a relative URL +resource that belongs to a foreign context. + + context + false + true + + + + + + Removes a scoped variable (from a particular scope, if specified). + + remove + org.apache.taglibs.standard.tag.common.core.RemoveTag + empty + + +Name of the scoped variable to be removed. + + var + true + false + + + +Scope for var. + + scope + false + false + + + + + + Sets the result of an expression evaluation in a 'scope' + + set + org.apache.taglibs.standard.tag.rt.core.SetTag + JSP + + +Name of the exported scoped variable to hold the value +specified in the action. The type of the scoped variable is +whatever type the value expression evaluates to. + + var + false + false + + + +Expression to be evaluated. + + value + false + true + + java.lang.Object + + + + +Target object whose property will be set. Must evaluate to +a JavaBeans object with setter property property, or to a +java.util.Map object. + + target + false + true + + + +Name of the property to be set in the target object. + + property + false + true + + + +Scope for var. + + scope + false + false + + + + + + Creates a URL with optional query parameters. + + url + org.apache.taglibs.standard.tag.rt.core.UrlTag + JSP + + +Name of the exported scoped variable for the +processed url. The type of the scoped variable is +String. + + var + false + false + + + +Scope for var. + + scope + false + false + + + +URL to be processed. + + value + false + true + + + +Name of the context when specifying a relative URL +resource that belongs to a foreign context. + + context + false + true + + + + + + Subtag of <choose> that includes its body if its + condition evalutes to 'true' + + when + org.apache.taglibs.standard.tag.rt.core.WhenTag + JSP + + +The test condition that determines whether or not the +body content should be processed. + + test + true + true + boolean + + + + diff --git a/cachecontrol-example-jsp/src/main/webapp/WEB-INF/included.jsp b/cachecontrol-example-jsp/src/main/webapp/WEB-INF/included.jsp new file mode 100644 index 00000000..1931d893 --- /dev/null +++ b/cachecontrol-example-jsp/src/main/webapp/WEB-INF/included.jsp @@ -0,0 +1,2 @@ +<%@page contentType="text/html" pageEncoding="UTF-8" session="false"%> +

Hello World, again...

diff --git a/cachecontrol-example-jsp/src/main/webapp/WEB-INF/web.xml b/cachecontrol-example-jsp/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 00000000..0143a84e --- /dev/null +++ b/cachecontrol-example-jsp/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,6 @@ + + + + diff --git a/cachecontrol-example-jsp/src/main/webapp/page-with-forward.jsp b/cachecontrol-example-jsp/src/main/webapp/page-with-forward.jsp new file mode 100644 index 00000000..786dedad --- /dev/null +++ b/cachecontrol-example-jsp/src/main/webapp/page-with-forward.jsp @@ -0,0 +1,14 @@ +<%@page contentType="text/html" pageEncoding="UTF-8" session="false"%> + + + + + + Page with forward + + +

Hello World!

+

This should not be seen, because the page is forwardes to /simple-page.jsp

+ + + diff --git a/cachecontrol-example-jsp/src/main/webapp/page-with-include.jsp b/cachecontrol-example-jsp/src/main/webapp/page-with-include.jsp new file mode 100644 index 00000000..5c3af3e8 --- /dev/null +++ b/cachecontrol-example-jsp/src/main/webapp/page-with-include.jsp @@ -0,0 +1,14 @@ +<%@page contentType="text/html" pageEncoding="UTF-8" session="false"%> +<%@taglib uri="/WEB-INF/c.tld" prefix="c"%> + + + + + + Page with include + + +

Hello World!

+ ${i}: + + diff --git a/cachecontrol-example-jsp/src/main/webapp/simple-page.jsp b/cachecontrol-example-jsp/src/main/webapp/simple-page.jsp new file mode 100644 index 00000000..9010d200 --- /dev/null +++ b/cachecontrol-example-jsp/src/main/webapp/simple-page.jsp @@ -0,0 +1,13 @@ +<%@page contentType="text/html" pageEncoding="UTF-8" session="false"%> + + + + + + Simple Page + + +

Hello World!

+

This is a really simple page...

+ + diff --git a/cachecontrol-example-jsp/src/test/java/de/halbekunst/cachecontrol/examples/jsp/JspTest.java b/cachecontrol-example-jsp/src/test/java/de/halbekunst/cachecontrol/examples/jsp/JspTest.java new file mode 100644 index 00000000..26225ab9 --- /dev/null +++ b/cachecontrol-example-jsp/src/test/java/de/halbekunst/cachecontrol/examples/jsp/JspTest.java @@ -0,0 +1,44 @@ +package de.halbekunst.cachecontrol.examples.jsp; + +import de.halbekunst.juplo.test.HttpTestCase; +import com.meterware.httpunit.WebResponse; +import com.meterware.servletunit.InvocationContext; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * + * @author kai + */ +public class JspTest extends HttpTestCase { + + private static final Logger log = LoggerFactory.getLogger(JspTest.class); + + + public JspTest() { + super("src/main/webapp/WEB-INF/web.xml"); + } + + + @Test + public void testSimplePage() throws Exception { + WebResponse response = executeRequest("http://localhost:8080/simple-page.jsp"); + log.info("Title:\t\t{}", response.getTitle()); + log.debug("Text:\t\t{}", response.getText()); + } + + @Test + public void testPageWithInclude() throws Exception { + WebResponse response = executeRequest("http://localhost:8080/page-with-include.jsp"); + log.info("Title:\t\t{}", response.getTitle()); + log.debug("Text:\t\t{}", response.getText()); + } + + @Test + public void testPageWithForward() throws Exception { + WebResponse response = executeRequest("http://localhost:8080/page-with-forward.jsp"); + log.info("Title:\t\t{}", response.getTitle()); + log.debug("Text:\t\t{}", response.getText()); + } +} diff --git a/cachecontrol-examples/tomcat.sh b/cachecontrol-example-jsp/tomcat.sh similarity index 100% rename from cachecontrol-examples/tomcat.sh rename to cachecontrol-example-jsp/tomcat.sh diff --git a/cachecontrol-examples/pom.xml b/cachecontrol-examples/pom.xml deleted file mode 100644 index 6d057d3e..00000000 --- a/cachecontrol-examples/pom.xml +++ /dev/null @@ -1,158 +0,0 @@ - - - - 4.0.0 - - - de.halbekunst - juplo - 2.0-SNAPSHOT - - - ${pom.parent.artifactId}-cachecontrol-examples - Juplo - CacheControl - Examples - - - - - ${pom.parent.groupId} - ${pom.parent.artifactId}-cachecontrol - ${pom.parent.version} - - - ${pom.parent.groupId} - ${pom.parent.artifactId}-test - ${pom.parent.version} - - - - - org.springframework - spring-context - ${springframework.version} - runtime - - - - commons-logging - commons-logging - - - - - org.springframework - spring-aspects - ${springframework.version} - - - org.aspectj - aspectjrt - ${aspectj.version} - - - - - - - org.slf4j - ${slf4j.binding} - ${slf4j.version} - runtime - - - - - - - - org.mortbay.jetty - jetty-maven-plugin - 8.0.1.v20110908 - - - - 0.0.0.0 - 8080 - 2 - - - 0 - - - ${project.basedir}/src/main/webapp/WEB-INF - - **/*.jsp - - - **/*.properties - **/*.xml - - - - - - - org.codehaus.mojo - tomcat-maven-plugin - 1.1 - - / - UTF-8 - - - - org.codehaus.mojo - aspectj-maven-plugin - - 1.6 - - - org.springframework - spring-aspects - - - - - ${pom.parent.groupId} - ${pom.parent.artifactId}-cachecontrol - - - - - - - compile - - - - - - - - diff --git a/cachecontrol-examples/src/main/resources/config.xml b/cachecontrol-examples/src/main/resources/config.xml deleted file mode 100644 index 33382bd8..00000000 --- a/cachecontrol-examples/src/main/resources/config.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cachecontrol-examples/src/main/webapp/WEB-INF/web.xml b/cachecontrol-examples/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index 21299ff0..00000000 --- a/cachecontrol-examples/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - contextConfigLocation - classpath:/config.xml - - - - org.springframework.web.context.ContextLoaderListener - - - - accelerator - de.halbekunst.juplo.cachecontrol.AcceleratorFilter - - - - accelerator - /* - - - - test-servlet - de.halbekunst.juplo.test.TestServlet - - - - test-servlet - /* - - - diff --git a/pom.xml b/pom.xml index 5e4bba18..624e53dc 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ test cachecontrol - cachecontrol-examples + cachecontrol-example-jsp @@ -37,7 +37,9 @@ 1.6.11 1.7.1 + 6.0.29 1.0 + 1.2 4.8.1 1.2.16 2.5 -- 2.20.1