You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by ro...@apache.org on 2006/08/09 00:14:42 UTC
svn commit: r429853 - in /incubator/abdera/java/trunk: build/build.xml
client/src/test/java/org/apache/abdera/test/client/cache/CacheTests.java
dependencies/deps.properties
Author: rooneg
Date: Tue Aug 8 15:14:41 2006
New Revision: 429853
URL: http://svn.apache.org/viewvc?rev=429853&view=rev
Log:
Make the new cache tests use an embedded Jetty server instead of hitting
Mark Nottingham's web site. This defaults to port 8080, but that can be
overridden via a property.
* build/build.xml: Add the new Jetty stuff, and build the client tests.
* dependencies/deps.properties: Add Jetty jars/urls.
* client/src/test/java/org/apache/abdera/test/client/cache/CacheTests.java
Import a bunch of Jetty and Servlet classes.
Update javadoc.
(PORT_PROP, PORT): New fields.
(CHECK_CACHE_INVALIDATE): Remove initial setting.
(static): Initialize PORT and CHECK_CACHE_INVALIDATE.
(setUp): Lazily set up our Jetty server.
(Servlet): A trivial little servlet that handles our server side work.
Modified:
incubator/abdera/java/trunk/build/build.xml
incubator/abdera/java/trunk/client/src/test/java/org/apache/abdera/test/client/cache/CacheTests.java
incubator/abdera/java/trunk/dependencies/deps.properties
Modified: incubator/abdera/java/trunk/build/build.xml
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/build/build.xml?rev=429853&r1=429852&r2=429853&view=diff
==============================================================================
--- incubator/abdera/java/trunk/build/build.xml (original)
+++ incubator/abdera/java/trunk/build/build.xml Tue Aug 8 15:14:41 2006
@@ -66,6 +66,7 @@
<property name="client" value="${basedir}/client" />
<property name="client.src" value="${client}/src/main/java" />
<property name="client.work" value="${work}/client" />
+ <property name="client.test.java" value="${client}/src/test/java" />
<property name="client.jar" value="${dist}/${ant.project.name}.client.${version}.jar" />
<property environment="env" />
@@ -129,6 +130,8 @@
<available file="${dependencies}/${commons.httpclient.jar}" />
<available file="${dependencies}/${junit.jar}" />
<available file="${dependencies}/${wstx.jar}" />
+ <available file="${dependencies}/${jetty.jar}" />
+ <available file="${dependencies}/${jetty-util.jar}" />
</and>
</not>
</condition>
@@ -265,6 +268,10 @@
destdir="${client.work}"
classpathref="jar.dependencies"
classpath="${core.work}" />
+ <javac srcdir="${client.test.java}"
+ destdir="${test}"
+ classpathref="jar.dependencies"
+ classpath="${core.work};${parser.work};${extensions.work};${client.work}" />
<mkdir dir="${client.work}/META-INF" />
<copy todir="${client.work}/META-INF">
<fileset dir="${basedir}">
@@ -451,6 +458,12 @@
usetimestamp="true" />
<get src="${wstx.dir}/${wstx.jar}"
dest="${dependencies}/${wstx.jar}"
+ usetimestamp="true" />
+ <get src="${jetty.dir}/${jetty.jar}"
+ dest="${dependencies}/${jetty.jar}"
+ usetimestamp="true" />
+ <get src="${jetty-util.dir}/${jetty-util.jar}"
+ dest="${dependencies}/${jetty-util.jar}"
usetimestamp="true" />
</parallel>
</target>
Modified: incubator/abdera/java/trunk/client/src/test/java/org/apache/abdera/test/client/cache/CacheTests.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/client/src/test/java/org/apache/abdera/test/client/cache/CacheTests.java?rev=429853&r1=429852&r2=429853&view=diff
==============================================================================
--- incubator/abdera/java/trunk/client/src/test/java/org/apache/abdera/test/client/cache/CacheTests.java (original)
+++ incubator/abdera/java/trunk/client/src/test/java/org/apache/abdera/test/client/cache/CacheTests.java Tue Aug 8 15:14:41 2006
@@ -21,6 +21,11 @@
import java.io.IOException;
import java.io.InputStream;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.Connector;
+import org.mortbay.jetty.bio.SocketConnector;
+import org.mortbay.jetty.servlet.ServletHandler;
+
import org.apache.abdera.protocol.client.Client;
import org.apache.abdera.protocol.client.CommonsClient;
import org.apache.abdera.protocol.client.RequestOptions;
@@ -28,19 +33,79 @@
import junit.framework.TestCase;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.ServletException;
+
/**
- * For now these are hitting Mark Nottingham's set of caching tests. We'll
- * need to set up our own server. The hard part about testing caching is
- * that we need a server endpoint to test against. Also, the test results
- * can be affected by proxies and intermediate caches. If we want to run
- * these tests in an offline configuration, we'll need to provide instructions
- * on how to set up a local server and have a portable suite of tests.
+ * These cache tests were originally based on Mark Nottingham's javascript
+ * cache tests, available at:
+ *
+ * http://www.mnot.net/javascript/xmlhttprequest/cache.html
+ *
+ * They have since been modified to use an embedded Jetty server instead of
+ * going off over the internet to hit Mark's server, since there are too many
+ * things that can get in the way of those sort things (proxies, intermediate
+ * caches, etc) if you try to talk to a remote server.
*/
public class CacheTests extends TestCase {
+
+ private static final String PORT_PROP = "abdera.test.client.cache.port";
+ private static String CHECK_CACHE_INVALIDATE;
+ private static int PORT;
- private final static String CHECK_CACHE_INVALIDATE =
- "http://www.mnot.net/javascript/xmlhttprequest/check_cache_invalidate.s";
-
+ static {
+ if (System.getProperty(PORT_PROP) != null) {
+ PORT = Integer.parseInt(System.getProperty(PORT_PROP));
+ } else {
+ PORT = 8080;
+ }
+
+ CHECK_CACHE_INVALIDATE = "http://localhost:" + PORT + "/";
+ }
+
+ private static Server server;
+
+ protected void setUp() throws Exception {
+ if (server == null) {
+ server = new Server();
+
+ Connector connector = new SocketConnector();
+
+ connector.setPort(PORT);
+
+ server.setConnectors(new Connector[]{connector});
+
+ ServletHandler handler = new ServletHandler();
+
+ server.setHandler(handler);
+
+ handler.addServletWithMapping(
+ "org.apache.abdera.test.client.cache.CacheTests$Servlet",
+ "/"
+ );
+
+ server.start();
+ }
+ }
+
+ public static class Servlet extends HttpServlet {
+ protected void doGet(HttpServletRequest request,
+ HttpServletResponse response)
+ throws ServletException, IOException
+ {
+ String reqnum = request.getHeader("X-Reqnum");
+
+ response.setContentType("text/plain");
+ response.setStatus(HttpServletResponse.SC_OK);
+ response.setHeader("Cache-Control", "max-age=60");
+ response.setDateHeader("Date", System.currentTimeMillis());
+
+ response.getWriter().println(reqnum);
+ }
+ }
+
public static void testRequestNoStore() throws Exception {
Client client = new CommonsClient();
Modified: incubator/abdera/java/trunk/dependencies/deps.properties
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/dependencies/deps.properties?rev=429853&r1=429852&r2=429853&view=diff
==============================================================================
--- incubator/abdera/java/trunk/dependencies/deps.properties (original)
+++ incubator/abdera/java/trunk/dependencies/deps.properties Tue Aug 8 15:14:41 2006
@@ -70,4 +70,10 @@
retroweaver.zip=retroweaver-1.2.3.zip
xmlsecurity.dir=http://www.apache.org/dist/java-repository/xml-security/jars
-xmlsecurity.jar=xmlsec-1.3.0.jar
\ No newline at end of file
+xmlsecurity.jar=xmlsec-1.3.0.jar
+
+jetty.dir=http://www.ibiblio.org/maven2/jetty/jetty/6.0.0rc0
+jetty.jar=jetty-6.0.0rc0.jar
+
+jetty-util.dir=http://www.ibiblio.org/maven2/jetty/jetty-util/6.0.0rc0
+jetty-util.jar=jetty-util-6.0.0rc0.jar