Make JspMatchingTest work with jsp 2.1 using maven command line build

This commit is contained in:
Jan Bartel 2013-01-07 19:18:53 +11:00
parent fc9cbbf876
commit a4c547d61f
2 changed files with 12 additions and 14 deletions

View File

@ -82,6 +82,8 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>always</forkMode>
<useSystemClassLoader>true</useSystemClassLoader>
<useManifestOnlyJar>false</useManifestOnlyJar>
</configuration>
</plugin>
</plugins>
@ -112,16 +114,6 @@
<artifactId>jetty-monitor</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.toolchain</groupId>
<artifactId>jetty-test-helper</artifactId>

View File

@ -25,6 +25,8 @@ import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URL;
import java.net.URLClassLoader;
import org.apache.jasper.servlet.JspServlet;
import org.eclipse.jetty.security.HashLoginService;
@ -35,6 +37,7 @@ import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
import org.eclipse.jetty.util.IO;
import org.eclipse.jetty.util.Loader;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
@ -66,7 +69,9 @@ public class JspMatchingTest
context.setContextPath("/");
File webappBase = MavenTestingUtils.getTestResourceDir("docroots/jsp");
context.setResourceBase(webappBase.getAbsolutePath());
context.setClassLoader(Thread.currentThread().getContextClassLoader());
URLClassLoader contextLoader = new URLClassLoader(new URL[]{}, Server.class.getClassLoader());
context.setClassLoader(contextLoader);
// add default servlet
ServletHolder defaultServHolder = context.addServlet(DefaultServlet.class,"/");
@ -74,7 +79,8 @@ public class JspMatchingTest
// add jsp
ServletHolder jsp = context.addServlet(JspServlet.class,"*.jsp");
jsp.setInitParameter("classpath",context.getClassPath());
context.setAttribute("org.apache.catalina.jsp_classpath", context.getClassPath());
jsp.setInitParameter("com.sun.appserv.jsp.classpath", Loader.getClassPath(Server.class.getClassLoader()));
// add context
server.setHandler(context);
@ -101,8 +107,8 @@ public class JspMatchingTest
try
{
conn = (HttpURLConnection)uri.toURL().openConnection();
conn.setConnectTimeout(1000);
conn.setReadTimeout(1000);
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
Assert.assertThat(conn.getResponseCode(),is(200));
// make sure that jsp actually ran, and didn't just get passed onto