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


Reply via email to