You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by bw...@apache.org on 2003/05/24 02:09:52 UTC

cvs commit: maven-new/fetch/src/test/java/org/apache/maven/fetch/servlets FlawlessRepoServlet.java

bwalding    2003/05/23 17:09:52

  Added:       fetch/src/test/java/org/apache/maven/fetch
                        IOUtilityTest.java DownloadTest.java
               fetch/src/test/java/org/apache/maven/fetch/servlets/data
                        test-data-1.txt
               fetch/src/test/java/org/apache/maven/fetch/jetty
                        JettyTestEngine.java
               fetch/src/test/java/org/apache/maven/fetch/servlets
                        FlawlessRepoServlet.java
  Log:
  
  
  Revision  Changes    Path
  1.1                  maven-new/fetch/src/test/java/org/apache/maven/fetch/IOUtilityTest.java
  
  Index: IOUtilityTest.java
  ===================================================================
  package org.apache.maven.fetch;
  
  import java.io.ByteArrayInputStream;
  import java.io.ByteArrayOutputStream;
  import java.util.Random;
  
  import junit.framework.TestCase;
  
  
  /**
   * @author  Ben Walding
   * @version $Id: IOUtilityTest.java,v 1.1 2003/05/24 00:09:51 bwalding Exp $
   */
  public class IOUtilityTest extends TestCase {
  
  	public void testTransferStream() throws Exception {
  		testTransfer(0);
  		testTransfer(1);
  		testTransfer(500);
  		testTransfer(1024);
  		testTransfer(16385);
  		testTransfer(1000000); //1 MILLLLIION BYTES!
  	}
  
  	public void testTransfer(int length) throws Exception {
  		byte[] bufIn = new byte[length];
  		//Want repeatability, but different datasets depending on length
  		Random r = new Random();
  		r.setSeed(length);
  		r.nextBytes(bufIn);
  		
  		ByteArrayInputStream bais = new ByteArrayInputStream(bufIn);
  		ByteArrayOutputStream baos = new ByteArrayOutputStream();
  		
  		IOUtility.transferStream(bais, baos);
  		
  		byte[] bufOut = baos.toByteArray();
  		
  		assertEquals("input.length == output.length", bufIn.length, bufOut.length);
  		
  		for (int i = 0; i < bufIn.length; i++) {
  			if (bufIn[i] != bufOut[i]) {
  				fail("The input and output streams failed to match at position " + i + " (0 based)");
  			}	
  		}
  		
  	}
      
      
          
  
  }
  
  
  
  1.1                  maven-new/fetch/src/test/java/org/apache/maven/fetch/DownloadTest.java
  
  Index: DownloadTest.java
  ===================================================================
  package org.apache.maven.fetch;
  
  import junit.framework.TestCase;
  
  import org.apache.maven.fetch.jetty.JettyTestEngine;
  import org.mortbay.util.MultiException;
  
  /**
   * @author  Ben Walding
   * @version $Id: DownloadTest.java,v 1.1 2003/05/24 00:09:51 bwalding Exp $
   */
  public class DownloadTest extends TestCase {
      JettyTestEngine testEngine;
      
      public void setUp() throws MultiException {
          testEngine= new JettyTestEngine();
          testEngine.startJetty();    
      }
      
      public void tearDown() throws InterruptedException {
          testEngine.stopServer();
          testEngine = null;
      }
      
      public void testSimple() throws InterruptedException {
          DownloadTool bean = new DownloadTool();
          
          //XXX this should create a jetty install and check files
          DownloadRequest dreq = new DownloadRequest("http://era.health.qld.gov.au/index.html");
          DownloadResponse dresp = bean.performDownload(dreq);
          assertNotNull(dresp);
          Thread.sleep(100000);
          assertNotNull(dresp.getOutputFile());
                  
      }
  }
  
  
  
  1.1                  maven-new/fetch/src/test/java/org/apache/maven/fetch/servlets/data/test-data-1.txt
  
  Index: test-data-1.txt
  ===================================================================
  THIS IS TEST-DATA-1.TXT
  
  
  1.1                  maven-new/fetch/src/test/java/org/apache/maven/fetch/jetty/JettyTestEngine.java
  
  Index: JettyTestEngine.java
  ===================================================================
  package org.apache.maven.fetch.jetty;
  
  import org.apache.maven.fetch.servlets.FlawlessRepoServlet;
  import org.mortbay.http.HttpContext;
  import org.mortbay.http.HttpServer;
  import org.mortbay.http.SocketListener;
  import org.mortbay.jetty.servlet.ServletHandler;
  import org.mortbay.util.MultiException;
  
  /**
   * @author  Ben Walding
   * @version $Id: JettyTestEngine.java,v 1.1 2003/05/24 00:09:52 bwalding Exp $
   */
  public class JettyTestEngine {
      private HttpServer server;
      
      private static final int PORT = 8000;
  
      public void startJetty() throws MultiException {
          // Create the server
          server = new HttpServer();
  
          // Create a port listener
          SocketListener listener = new SocketListener();
          listener.setPort(PORT);
          server.addListener(listener);
  
          // Create a context 
          HttpContext context = new HttpContext();
          context.setContextPath("/repositories/*");
          server.addContext(context);
  
          // Create a servlet container
          ServletHandler servlets = new ServletHandler();
          context.addHandler(servlets);
  
          // Map a servlet onto the container
          servlets.addServlet("/flawless-repo/*", FlawlessRepoServlet.class.getName());
  
          // Serve static content from the context
          //String home = System.getProperty("jetty.home", ".");
          //context.setResourceBase(home + "/demo/webapps/jetty/tut/");
          //context.addHandler(new ResourceHandler());
  
          // Start the http server
          server.start();
      }
  
      public void stopServer() throws InterruptedException {
          server.stop();
      }
      
      public int getPort() {
          return PORT;
      }
      
      public void getServerBase() {
      }
  }
  
  
  
  1.1                  maven-new/fetch/src/test/java/org/apache/maven/fetch/servlets/FlawlessRepoServlet.java
  
  Index: FlawlessRepoServlet.java
  ===================================================================
  package org.apache.maven.fetch.servlets;
  
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.OutputStream;
  
  import javax.servlet.ServletException;
  import javax.servlet.http.HttpServlet;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  
  import org.apache.maven.fetch.IOUtility;
  
  /**
   * @author  Ben Walding
   * @version $Id: FlawlessRepoServlet.java,v 1.1 2003/05/24 00:09:52 bwalding Exp $
   */
  public class FlawlessRepoServlet extends HttpServlet {
      /** log4j logger */
      private static final org.apache.log4j.Logger LOGGER = org.apache.log4j.Logger.getLogger(FlawlessRepoServlet.class);
  
      public void doGet(HttpServletRequest request, HttpServletResponse arg1) throws ServletException, IOException {
          LOGGER.info("request.getPathInfo() = " + request.getPathInfo());
          String resource = "data" + request.getPathInfo();
          InputStream is = getClass().getResourceAsStream(resource);
  
          if (is == null) {
              arg1.sendError(HttpServletResponse.SC_NOT_FOUND);
          } else {
              OutputStream os = arg1.getOutputStream();
              IOUtility.transferStream(is, os);
          }
      }
  
      //    public void doHead(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
      //        LOGGER.info("doHead called");
      //    }
  
      //    public long getLastModified(HttpServletRequest arg0) {
      //        return 0;
      //        //return super.getLastModified(arg0);
      //    }
  
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org