Author: musachy
Date: Tue Aug 4 15:11:37 2009
New Revision: 800838
URL: http://svn.apache.org/viewvc?rev=800838&view=rev
Log:
add support for includes
Added:
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/JSPRuntime.java
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes1.jsp
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes2.jsp
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes3.jsp
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/printParam.jsp
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/sub/
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/sub/simple0.jsp
- copied, changed from r800609,
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/simple0.jsp
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/tag0.jsp
Modified:
struts/sandbox/trunk/struts2-jsp-plugin/pom.xml
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/EmbeddedJSPResult.java
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/JSPLoader.java
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/ServletCache.java
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/jasper/JspCompilationContext.java
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/jasper/compiler/Generator.java
struts/sandbox/trunk/struts2-jsp-plugin/src/main/resources/struts-plugin.xml
struts/sandbox/trunk/struts2-jsp-plugin/src/test/java/org/apache/struts2/EmbeddedJSPResultTest.java
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes0.jsp
Modified: struts/sandbox/trunk/struts2-jsp-plugin/pom.xml
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/pom.xml?rev=800838&r1=800837&r2=800838&view=diff
==============================================================================
--- struts/sandbox/trunk/struts2-jsp-plugin/pom.xml (original)
+++ struts/sandbox/trunk/struts2-jsp-plugin/pom.xml Tue Aug 4 15:11:37 2009
@@ -1,7 +1,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
- <parent>
+ <parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-plugins</artifactId>
<version>2.1.8-SNAPSHOT</version>
@@ -47,15 +47,42 @@
<artifactId>xwork-core</artifactId>
<version>2.1.5-SNAPSHOT</version>
</dependency>
+
<dependency>
- <groupId>tomcat</groupId>
- <artifactId>jasper-runtime</artifactId>
- <version>5.5.23</version>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymock</artifactId>
+ <version>2.4</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.4</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-el</groupId>
+ <artifactId>commons-el</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <forkMode>never</forkMode>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
</project>
Modified:
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/EmbeddedJSPResult.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/EmbeddedJSPResult.java?rev=800838&r1=800837&r2=800838&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/EmbeddedJSPResult.java
(original)
+++
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/EmbeddedJSPResult.java
Tue Aug 4 15:11:37 2009
@@ -4,6 +4,7 @@
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.jasper.JasperException;
import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.util.logging.Logger;
import com.opensymphony.xwork2.util.logging.LoggerFactory;
@@ -15,13 +16,9 @@
public class EmbeddedJSPResult extends StrutsResultSupport {
private static final Logger LOG =
LoggerFactory.getLogger(EmbeddedJSPResult.class);
- //maps from jsp path -> pagelet
- private static final ServletCache servletCache = new
ServletCache(ServletActionContext.getServletContext());
+
protected void doExecute(String finalLocation, ActionInvocation
invocation) throws Exception {
- Servlet servlet = servletCache.get(finalLocation);
- HttpJspPage page = (HttpJspPage) servlet;
- page.jspInit();
- page._jspService(ServletActionContext.getRequest(),
ServletActionContext.getResponse());
+ JSPRuntime.handle(finalLocation);
}
}
Modified:
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/JSPLoader.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/JSPLoader.java?rev=800838&r1=800837&r2=800838&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/JSPLoader.java
(original)
+++
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/JSPLoader.java
Tue Aug 4 15:11:37 2009
@@ -27,15 +27,22 @@
import javax.servlet.Servlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
+import javax.servlet.jsp.JspPage;
import javax.tools.*;
import java.io.*;
import java.net.*;
import java.util.Arrays;
+import java.util.List;
+import java.util.ArrayList;
+import java.security.CodeSource;
+import java.security.ProtectionDomain;
import org.apache.struts2.jasper.JasperException;
import org.apache.struts2.jasper.JspC;
+import org.apache.struts2.jasper.compiler.JspUtil;
import org.apache.struts2.compiler.MemoryClassLoader;
import org.apache.struts2.compiler.MemoryJavaFileObject;
+import org.apache.commons.lang.xwork.StringUtils;
/**
* Uses jasper to extract a JSP from the classpath to a file and compile it
@@ -46,28 +53,33 @@
private static MemoryClassLoader classLoader = new MemoryClassLoader();
private static final String DEFAULT_PACKAGE = "org.apache.struts2.jsp";
- private static final String DEFAULT_PATH = "org/apache/jsp";
- public Servlet load(String location, ServletContext servletContext) throws
Exception {
+ public Servlet load(String location) throws Exception {
+ location = StringUtils.substringBeforeLast(location, "?");
+
String source = compileJSP(location);
+
+// System.out.print(source);
+
String className = toClassName(location);
compileJava(className, source);
Class clazz = Class.forName(className, false, classLoader);
- return createServlet(clazz, servletContext);
+ return createServlet(clazz);
}
private String toClassName(String location) {
- String[] splitted = location.split("\\.|/");
- return DEFAULT_PACKAGE + "." + splitted[splitted.length - 2] + "_jsp";
+ String className = StringUtils.substringBeforeLast(location, ".jsp");
+ className = JspUtil.makeJavaPackage(className);
+ return DEFAULT_PACKAGE + "." + className + "_jsp";
}
/**
* Creates and inits a servlet
*/
- private Servlet createServlet(Class clazz, ServletContext servletContext)
throws IllegalAccessException, InstantiationException, ServletException {
+ private Servlet createServlet(Class clazz) throws IllegalAccessException,
InstantiationException, ServletException {
Servlet servlet = (Servlet) clazz.newInstance();
- JSPServletConfig config = new JSPServletConfig(servletContext);
+ JSPServletConfig config = new
JSPServletConfig(ServletActionContext.getServletContext());
servlet.init(config);
return servlet;
@@ -108,8 +120,23 @@
};
+ //build classpath
+ List<String> optionList = new ArrayList<String>();
+ StringBuilder classPath = new StringBuilder();
+ //this jar
+ classPath.append(getJarUrl(EmbeddedJSPResult.class));
+ classPath.append(";");
+ //servlet api
+ classPath.append(getJarUrl(Servlet.class));
+ classPath.append(";");
+ //jsp api
+ classPath.append(getJarUrl(JspPage.class));
+
+ optionList.addAll(Arrays.asList("-classpath", classPath.toString()));
+
+
JavaCompiler.CompilationTask task = compiler.getTask(
- null, jfm, diagnostics, null, null,
+ null, jfm, diagnostics, optionList, null,
Arrays.asList(sourceCodeObject));
if (!task.call()) {
@@ -117,6 +144,20 @@
}
}
+ protected String getJarUrl(Class clazz) {
+ ProtectionDomain protectionDomain = clazz.getProtectionDomain();
+ CodeSource codeSource = protectionDomain.getCodeSource();
+ URL loc = codeSource.getLocation();
+ try {
+ File file = new File(loc.toURI());
+ return file.getAbsolutePath();
+ } catch (URISyntaxException e) {
+ //can this ever happen?
+ LOG.error("Unable to get the jar file for class", e,
clazz.getName());
+ }
+ return loc.toExternalForm();
+ }
+
private String compileJSP(String location) throws JasperException {
JspC jspC = new JspC();
//TODO: get this from context so OSGI works
Added:
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/JSPRuntime.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/JSPRuntime.java?rev=800838&view=auto
==============================================================================
---
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/JSPRuntime.java
(added)
+++
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/JSPRuntime.java
Tue Aug 4 15:11:37 2009
@@ -0,0 +1,45 @@
+package org.apache.struts2;
+
+import org.apache.struts2.views.util.UrlHelper;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.Servlet;
+import javax.servlet.jsp.HttpJspPage;
+import java.util.Map;
+
+import com.opensymphony.xwork2.ActionContext;
+
+
+public abstract class JSPRuntime {
+ //maps from jsp path -> pagelet
+ private static final ServletCache servletCache = new ServletCache();
+
+ public static void handle(String location) throws Exception {
+ handle(location, false);
+ }
+
+ public static void handle(String location, boolean flush) throws Exception
{
+ final HttpServletResponse response =
ServletActionContext.getResponse();
+ final HttpServletRequest request = ServletActionContext.getRequest();
+
+ int i = location.indexOf("?");
+ if (i > 0) {
+ //extract params from the url and add them to the request
+ Map parameters = ActionContext.getContext().getParameters();
+ String query = location.substring(i + 1);
+ Map queryParams = UrlHelper.parseQueryString(query, true);
+ if (queryParams != null && !queryParams.isEmpty())
+ parameters.putAll(queryParams);
+ location = location.substring(0, i);
+ }
+
+ Servlet servlet = servletCache.get(location);
+ HttpJspPage page = (HttpJspPage) servlet;
+ page.jspInit();
+
+ page._jspService(request, response);
+ if (flush)
+ response.flushBuffer();
+ }
+}
Modified:
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/ServletCache.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/ServletCache.java?rev=800838&r1=800837&r2=800838&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/ServletCache.java
(original)
+++
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/ServletCache.java
Tue Aug 4 15:11:37 2009
@@ -33,19 +33,13 @@
private final JSPLoader jspLoader = new JSPLoader();
- private final ServletContext servletContext;
-
- public ServletCache(ServletContext servletContext) {
- this.servletContext = servletContext;
- }
-
public Servlet get(final String location) throws InterruptedException {
while (true) {
Future<Servlet> future = cache.get(location);
if (future == null) {
Callable<Servlet> loadJSPCallable = new Callable<Servlet>() {
public Servlet call() throws Exception {
- return jspLoader.load(location, servletContext);
+ return jspLoader.load(location);
}
};
FutureTask<Servlet> futureTask = new
FutureTask<Servlet>(loadJSPCallable);
Modified:
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/jasper/JspCompilationContext.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/jasper/JspCompilationContext.java?rev=800838&r1=800837&r2=800838&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/jasper/JspCompilationContext.java
(original)
+++
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/jasper/JspCompilationContext.java
Tue Aug 4 15:11:37 2009
@@ -36,6 +36,7 @@
import org.apache.struts2.jasper.compiler.ServletWriter;
import org.apache.struts2.jasper.servlet.JasperLoader;
import org.apache.struts2.jasper.servlet.JspServletWrapper;
+import org.apache.commons.lang.xwork.StringUtils;
import com.opensymphony.xwork2.util.finder.ClassLoaderInterface;
/**
@@ -360,15 +361,20 @@
}
return pkgName;
} else {
- return basePackageName;
+ String dPackageName = getDerivedPackageName();
+ if (dPackageName.length() == 0) {
+ return basePackageName;
+ }
+ return basePackageName + '.' + getDerivedPackageName();
}
+
}
private String getDerivedPackageName() {
if (derivedPackageName == null) {
int iSep = jspUri.lastIndexOf('/');
derivedPackageName = (iSep > 0) ?
- JspUtil.makeJavaPackage(jspUri.substring(1,iSep)) : "";
+ JspUtil.makeJavaPackage(jspUri.substring(0,iSep)) : "";
}
return derivedPackageName;
}
@@ -529,7 +535,11 @@
}
}
- // ==================== Manipulating the class ====================
+ public String getJspUri() {
+ return jspUri;
+ }
+
+// ==================== Manipulating the class ====================
public Class load()
throws JasperException, FileNotFoundException
@@ -563,7 +573,7 @@
return (c == '/' || c == '\\');
}
- private static final String canonicalURI(String s) {
+ public static final String canonicalURI(String s) {
if (s == null) return null;
StringBuffer result = new StringBuffer();
final int len = s.length();
Modified:
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/jasper/compiler/Generator.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/jasper/compiler/Generator.java?rev=800838&r1=800837&r2=800838&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/jasper/compiler/Generator.java
(original)
+++
struts/sandbox/trunk/struts2-jsp-plugin/src/main/java/org/apache/struts2/jasper/compiler/Generator.java
Tue Aug 4 15:11:37 2009
@@ -42,6 +42,8 @@
import org.apache.struts2.jasper.JasperException;
import org.apache.struts2.jasper.JspCompilationContext;
import org.apache.struts2.jasper.runtime.JspRuntimeLibrary;
+import org.apache.struts2.JSPRuntime;
+import org.apache.commons.lang.xwork.StringUtils;
import org.xml.sax.Attributes;
/**
@@ -896,10 +898,10 @@
}
out.printin(
-
"org.apache.struts2.jasper.runtime.JspRuntimeLibrary.include(request, response,
"
+ JSPRuntime.class.getName() + ".handle("
+ pageParam);
printParams(n, pageParam, page.isLiteral());
- out.println(", out, " + isFlush + ");");
+ out.println(", " + isFlush + ");");
n.setEndJavaLine(out.getJavaLine());
}
Modified:
struts/sandbox/trunk/struts2-jsp-plugin/src/main/resources/struts-plugin.xml
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/src/main/resources/struts-plugin.xml?rev=800838&r1=800837&r2=800838&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-jsp-plugin/src/main/resources/struts-plugin.xml
(original)
+++
struts/sandbox/trunk/struts2-jsp-plugin/src/main/resources/struts-plugin.xml
Tue Aug 4 15:11:37 2009
@@ -29,7 +29,7 @@
<package name="jsp-default" extends="struts-default">
<result-types>
- <result-type name="jsp"
class="org.apache.struts2.EmbeddedJSPResult"/>
+ <result-type name="embeddedJsp"
class="org.apache.struts2.EmbeddedJSPResult"/>
</result-types>
</package>
Modified:
struts/sandbox/trunk/struts2-jsp-plugin/src/test/java/org/apache/struts2/EmbeddedJSPResultTest.java
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/src/test/java/org/apache/struts2/EmbeddedJSPResultTest.java?rev=800838&r1=800837&r2=800838&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-jsp-plugin/src/test/java/org/apache/struts2/EmbeddedJSPResultTest.java
(original)
+++
struts/sandbox/trunk/struts2-jsp-plugin/src/test/java/org/apache/struts2/EmbeddedJSPResultTest.java
Tue Aug 4 15:11:37 2009
@@ -1,18 +1,23 @@
package org.apache.struts2;
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.conversion.impl.XWorkConverter;
+import com.opensymphony.xwork2.inject.Container;
+import com.opensymphony.xwork2.util.ValueStack;
import junit.framework.TestCase;
import org.apache.commons.io.FileUtils;
-import org.apache.struts2.EmbeddedJSPResult;
-import org.apache.struts2.JSPLoader;
-import org.springframework.mock.web.MockHttpServletRequest;
+import org.easymock.EasyMock;
+import org.easymock.IAnswer;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.mock.web.MockServletContext;
-import com.opensymphony.xwork2.ActionContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
import java.util.HashMap;
+import java.util.Map;
public class EmbeddedJSPResultTest extends TestCase {
- private MockHttpServletRequest request;
+ private HttpServletRequest request;
private MockHttpServletResponse response;
private MockServletContext context;
@@ -26,14 +31,47 @@
assertEquals("hello", response.getContentAsString());
}
- public void testInclude() throws Exception {
+ public void testIncludeSimple() throws Exception {
//mock objects
EmbeddedJSPResult result = new EmbeddedJSPResult();
result.setLocation("org/apache/struts2/includes0.jsp");
result.execute(null);
- assertEquals("Test", response.getContentAsString());
+ assertEquals("helloTest", cleanup(response.getContentAsString()));
+ }
+
+ public void testIncludeSimpleWithDirective() throws Exception {
+ //mock objects
+ EmbeddedJSPResult result = new EmbeddedJSPResult();
+
+ result.setLocation("org/apache/struts2/includes3.jsp");
+ result.execute(null);
+
+ assertEquals("helloTest", cleanup(response.getContentAsString()));
+ }
+
+ public void testIncludeWithSubdir() throws Exception {
+ EmbeddedJSPResult result = new EmbeddedJSPResult();
+
+ result.setLocation("org/apache/struts2/includes1.jsp");
+ result.execute(null);
+
+ assertEquals("subTest", cleanup(response.getContentAsString()));
+ }
+
+ public void testIncludeWithParam() throws Exception {
+ //mock objects
+ EmbeddedJSPResult result = new EmbeddedJSPResult();
+
+ result.setLocation("org/apache/struts2/includes2.jsp");
+ result.execute(null);
+
+ assertEquals("JGTest", cleanup(response.getContentAsString()));
+ }
+
+ private String cleanup(String str) {
+ return str.replaceAll("\\s", "");
}
@@ -41,17 +79,59 @@
protected void setUp() throws Exception {
super.setUp();
- request = new MockHttpServletRequest();
+ request = EasyMock.createNiceMock(HttpServletRequest.class);
response = new MockHttpServletResponse();
context = new MockServletContext();
+ final Map params = new HashMap();
+
+ HttpSession session = EasyMock.createNiceMock(HttpSession.class);
+ EasyMock.replay(session);
+
+ EasyMock.expect(request.getSession()).andReturn(session).anyTimes();
+
EasyMock.expect(request.getParameterMap()).andReturn(params).anyTimes();
+ EasyMock.expect(request.getParameter("username")).andAnswer(new
IAnswer<String>() {
+ @Override
+ public String answer() throws Throwable {
+ return ((String[])params.get("username"))[0];
+ }
+ });
+
+ EasyMock.replay(request);
+
ActionContext actionContext = new ActionContext(new HashMap<String,
Object>());
ActionContext.setContext(actionContext);
+ actionContext.setParameters(params);
ServletActionContext.setRequest(request);
ServletActionContext.setResponse(response);
ServletActionContext.setServletContext(context);
+
+ //mock value stack
+ Map stackContext = new HashMap();
+ ValueStack valueStack = EasyMock.createNiceMock(ValueStack.class);
+
EasyMock.expect(valueStack.getContext()).andReturn(stackContext).anyTimes();
+ EasyMock.replay(valueStack);
+
+ //mock converter
+ XWorkConverter converter = new DummyConverter();
+
+ //mock container
+ Container container = EasyMock.createNiceMock(Container.class);
+
EasyMock.expect(container.getInstance(XWorkConverter.class)).andReturn(converter).anyTimes();
+ EasyMock.replay(container);
+ stackContext.put(ActionContext.CONTAINER, container);
+ actionContext.setContainer(container);
+
+ actionContext.setValueStack(valueStack);
+
+ //XWorkConverter conv =
((Container)stack.getContext().get(ActionContext.CONTAINER)).getInstance(XWorkConverter.class);
if (JSPLoader.JSP_DIR.exists())
FileUtils.forceDelete(JSPLoader.JSP_DIR);
}
}
+
+//converter has a protected default constructor...meh
+class DummyConverter extends XWorkConverter {
+
+}
Modified:
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes0.jsp
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes0.jsp?rev=800838&r1=800837&r2=800838&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes0.jsp
(original)
+++
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes0.jsp
Tue Aug 4 15:11:37 2009
@@ -1,2 +1,2 @@
-<jsp:include page="simple0.jsp" />
+<jsp:include page="org/apache/struts2/simple0.jsp" />
Test
\ No newline at end of file
Added:
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes1.jsp
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes1.jsp?rev=800838&view=auto
==============================================================================
---
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes1.jsp
(added)
+++
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes1.jsp
Tue Aug 4 15:11:37 2009
@@ -0,0 +1,2 @@
+<jsp:include page="org/apache/struts2/sub/simple0.jsp" />
+Test
\ No newline at end of file
Added:
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes2.jsp
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes2.jsp?rev=800838&view=auto
==============================================================================
---
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes2.jsp
(added)
+++
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes2.jsp
Tue Aug 4 15:11:37 2009
@@ -0,0 +1,4 @@
+<jsp:include page="org/apache/struts2/printParam.jsp" >
+ <jsp:param name="username" value="JG" />
+</jsp:include>
+Test
\ No newline at end of file
Added:
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes3.jsp
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes3.jsp?rev=800838&view=auto
==============================================================================
---
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes3.jsp
(added)
+++
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/includes3.jsp
Tue Aug 4 15:11:37 2009
@@ -0,0 +1,2 @@
+<%@ include file="org/apache/struts2/simple0.jsp" %>
+Test
Added:
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/printParam.jsp
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/printParam.jsp?rev=800838&view=auto
==============================================================================
---
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/printParam.jsp
(added)
+++
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/printParam.jsp
Tue Aug 4 15:11:37 2009
@@ -0,0 +1 @@
+<%= request.getParameter("username") %>
Copied:
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/sub/simple0.jsp
(from r800609,
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/simple0.jsp)
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/sub/simple0.jsp?p2=struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/sub/simple0.jsp&p1=struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/simple0.jsp&r1=800609&r2=800838&rev=800838&view=diff
==============================================================================
---
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/simple0.jsp
(original)
+++
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/sub/simple0.jsp
Tue Aug 4 15:11:37 2009
@@ -1 +1 @@
-hello
\ No newline at end of file
+sub
\ No newline at end of file
Added:
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/tag0.jsp
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/tag0.jsp?rev=800838&view=auto
==============================================================================
---
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/tag0.jsp
(added)
+++
struts/sandbox/trunk/struts2-jsp-plugin/src/test/resources/org/apache/struts2/tag0.jsp
Tue Aug 4 15:11:37 2009
@@ -0,0 +1,3 @@
+<%@ taglib prefix="dt" uri="http://displaytag.sf.net" %>
+<dt:table />
+OtherText
\ No newline at end of file