You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by ro...@apache.org on 2006/12/17 19:43:47 UTC

svn commit: r488022 - in /labs/speedyfeed/servlet/trunk: ./ src/test/ src/test/java/ src/test/java/org/ src/test/java/org/apache/ src/test/java/org/apache/speedyfeed/ src/test/java/org/apache/speedyfeed/test/

Author: rooneg
Date: Sun Dec 17 10:43:46 2006
New Revision: 488022

URL: http://svn.apache.org/viewvc?view=rev&rev=488022
Log:
Lay groundwork for Jetty powered unit tests, infrastructure blatantly copied
from Abdera.  Some real tests will come soon enough, although there will be
some tweaks required to let the Jetty test utils from Abdera handle Filters.

* ivy.xml: Drop geronimo's servlet API, we'll use Jetty's.  Add Jetty and
  JUnit dependencies.

* src/test/java/org/apache/speedyfeed/test/JettyTest.java: New, copied from
  Abdera's version.

* src/test/java/org/apache/speedyfeed/test/JettyUtil.java: Ditto.

* src/test/java/org/apache/speedyfeed/test/TestSuite.java: Basic test suite,
  no actual tests yet.

* build.xml: Rework to build both tests and code, and add a way to run the
  tests.

Added:
    labs/speedyfeed/servlet/trunk/src/test/   (with props)
    labs/speedyfeed/servlet/trunk/src/test/java/
    labs/speedyfeed/servlet/trunk/src/test/java/org/
    labs/speedyfeed/servlet/trunk/src/test/java/org/apache/
    labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/
    labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/
    labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/JettyTest.java
    labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/JettyUtil.java
    labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/TestSuite.java
Modified:
    labs/speedyfeed/servlet/trunk/build.xml
    labs/speedyfeed/servlet/trunk/ivy.xml

Modified: labs/speedyfeed/servlet/trunk/build.xml
URL: http://svn.apache.org/viewvc/labs/speedyfeed/servlet/trunk/build.xml?view=diff&rev=488022&r1=488021&r2=488022
==============================================================================
--- labs/speedyfeed/servlet/trunk/build.xml (original)
+++ labs/speedyfeed/servlet/trunk/build.xml Sun Dec 17 10:43:46 2006
@@ -18,10 +18,13 @@
 <project xmlns:ivy='antlib:fr.jayasoft.ivy.ant'
          name='speedyfeed-servlet'
          default='compile'>
-  <property name='build.base' value='src/main/target'/>
-
   <property name='src' value='src/main/java'/>
-  <property name='bin' value='${build.base}/classes'/>
+  <property name='src.target' value='src/main/target'/>
+  <property name='src.classes' value='${src.target}/classes'/>
+
+  <property name='test.src' value='src/test/java'/>
+  <property name='test.src.target' value='src/test/target'/>
+  <property name='test.src.classes' value='${test.src.target}/classes'/>
 
   <path id='dependencies'>
     <fileset dir='lib' includes="**/*.jar"/>
@@ -64,7 +67,8 @@
 
   <target name='clean'
           description='delete compiled artifacts'>
-    <delete dir='${build.base}'/>
+    <delete dir='${src.target}'/>
+    <delete dir='${test.src.target}'/>
   </target>
 
   <target name='extraclean'
@@ -76,11 +80,28 @@
   <target name='compile'
           depends='resolve'
           description='build the servlet'>
-    <mkdir dir='${bin}'/>
+    <mkdir dir='${src.classes}'/>
 
     <javac srcdir="${src}"
-           destdir="${bin}"
+           destdir="${src.classes}"
+           classpathref="dependencies"
+           />
+
+    <mkdir dir='${test.src.classes}'/>
+
+    <javac srcdir="${test.src}"
+           destdir="${test.src.classes}"
            classpathref="dependencies"
            />
+  </target>
+
+  <target name='test'
+          depends='compile'
+          description='run the tests'>
+    <java classpathref='dependencies'
+          classpath="${src.classes}:${test.src.classes}"
+          classname='org.apache.speedyfeed.test.TestSuite'
+          fork='yes'
+          />
   </target>
 </project>

Modified: labs/speedyfeed/servlet/trunk/ivy.xml
URL: http://svn.apache.org/viewvc/labs/speedyfeed/servlet/trunk/ivy.xml?view=diff&rev=488022&r1=488021&r2=488022
==============================================================================
--- labs/speedyfeed/servlet/trunk/ivy.xml (original)
+++ labs/speedyfeed/servlet/trunk/ivy.xml Sun Dec 17 10:43:46 2006
@@ -24,9 +24,14 @@
                 rev='0.2.0-incubating'
                 />
 
-    <dependency org='org.apache.geronimo.specs'
-                name='geronimo-servlet_2.4_spec'
-                rev='1.0.1'
+    <dependency org='junit'
+                name='junit'
+                rev='3.8.2'
+                />
+
+    <dependency org='org.mortbay.jetty'
+                name='jetty'
+                rev='6.0.0rc0'
                 />
   </dependencies>
 </ivy-module>

Propchange: labs/speedyfeed/servlet/trunk/src/test/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Dec 17 10:43:46 2006
@@ -0,0 +1 @@
+target

Added: labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/JettyTest.java
URL: http://svn.apache.org/viewvc/labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/JettyTest.java?view=auto&rev=488022
==============================================================================
--- labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/JettyTest.java (added)
+++ labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/JettyTest.java Sun Dec 17 10:43:46 2006
@@ -0,0 +1,49 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.  For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+package org.apache.speedyfeed.test;
+
+import junit.framework.TestCase;
+
+public abstract class JettyTest extends TestCase {
+  
+  protected JettyTest() {}
+  
+  protected static void getServletHandler(String... servletMappings) {
+    for (int n = 0; n < servletMappings.length; n = n + 2) {
+      String name = servletMappings[n];
+      String root = servletMappings[n+1];
+      JettyUtil.addServlet(name, root);
+    }
+  }
+    
+  protected abstract void getServletHandler();
+  
+  protected String getBase() {
+    return "http://localhost:" + JettyUtil.getPort();
+  }
+  
+  @Override
+  protected void setUp() throws Exception {
+    getServletHandler();
+    JettyUtil.start();
+  }
+
+  public void tearDown() throws Exception {
+    //JettyUtil.stop();
+  }
+}

Added: labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/JettyUtil.java
URL: http://svn.apache.org/viewvc/labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/JettyUtil.java?view=auto&rev=488022
==============================================================================
--- labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/JettyUtil.java (added)
+++ labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/JettyUtil.java Sun Dec 17 10:43:46 2006
@@ -0,0 +1,72 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.  For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+package org.apache.speedyfeed.test;
+
+import org.mortbay.jetty.Connector;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.bio.SocketConnector;
+import org.mortbay.jetty.servlet.ServletHandler;
+
+public class JettyUtil {
+
+  private static final String PORT_PROP = "speedyfeed.test.port";
+  
+  private static int PORT = 8080;
+  private static Server server = null;
+  private static ServletHandler handler = null;
+  
+  public static int getPort() {
+    if (System.getProperty(PORT_PROP) != null) {
+      PORT = Integer.parseInt(System.getProperty(PORT_PROP));  
+    }
+    return PORT;
+  }
+  
+  private static void initServer() throws Exception {
+    server = new Server();
+    Connector connector = new SocketConnector();
+    connector.setPort(getPort());
+    server.setConnectors(new Connector[]{connector});
+    handler = new ServletHandler();
+    server.setHandler(handler);
+  }
+  
+  public static void addServlet(String path, String _class) {
+    try {
+      if (server == null) initServer();
+    } catch (Exception e) {}
+    handler.addServletWithMapping(path, _class);
+  }
+  
+  public static void start() throws Exception {
+    if (server == null) initServer();
+    if (server.isRunning()) return;
+    server.start();
+  }
+  
+  public static void stop() throws Exception {
+    if (server == null) return;
+    server.stop();
+    server = null;
+  }
+  
+  public static boolean isRunning() {
+    return (server != null);
+  }
+  
+}

Added: labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/TestSuite.java
URL: http://svn.apache.org/viewvc/labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/TestSuite.java?view=auto&rev=488022
==============================================================================
--- labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/TestSuite.java (added)
+++ labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/TestSuite.java Sun Dec 17 10:43:46 2006
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+
+package org.apache.speedyfeed.test;
+
+public class TestSuite extends junit.framework.TestSuite {
+  public static void main(String[] args)
+  {
+    junit.textui.TestRunner.run(new TestSuite());
+    try {
+      JettyUtil.stop();
+    } catch (Exception e) {}
+  }
+
+  public TestSuite()
+  {
+  }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org