You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2008/07/27 18:23:12 UTC
svn commit: r680139 - in
/maven/core-integration-testing/trunk/core-integration-tests: pom.xml
src/test/java/org/apache/maven/integrationtests/MavenITmng3652UserAgentHeader.java
Author: brett
Date: Sun Jul 27 09:23:09 2008
New Revision: 680139
URL: http://svn.apache.org/viewvc?rev=680139&view=rev
Log:
use Jetty instead to simplify code
Modified:
maven/core-integration-testing/trunk/core-integration-tests/pom.xml
maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3652UserAgentHeader.java
Modified: maven/core-integration-testing/trunk/core-integration-tests/pom.xml
URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/pom.xml?rev=680139&r1=680138&r2=680139&view=diff
==============================================================================
--- maven/core-integration-testing/trunk/core-integration-tests/pom.xml (original)
+++ maven/core-integration-testing/trunk/core-integration-tests/pom.xml Sun Jul 27 09:23:09 2008
@@ -95,5 +95,17 @@
<scope>test</scope>
-->
</dependency>
+ <!--
+ Should be fine to introduce this here, even if we use the embedder as it should be using an isolated classloader
+ Used to simplify tests that provide a test HTTP server.
+ -->
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.11</version>
+<!-- TODO: not transitive in tests artifact, so must be left in main scope
+ <scope>test</scope>
+-->
+ </dependency>
</dependencies>
</project>
Modified: maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3652UserAgentHeader.java
URL: http://svn.apache.org/viewvc/maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3652UserAgentHeader.java?rev=680139&r1=680138&r2=680139&view=diff
==============================================================================
--- maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3652UserAgentHeader.java (original)
+++ maven/core-integration-testing/trunk/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3652UserAgentHeader.java Sun Jul 27 09:23:09 2008
@@ -4,22 +4,32 @@
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.net.SocketTimeoutException;
import java.util.ArrayList;
import java.util.List;
-import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.it.Verifier;
import org.apache.maven.it.util.ResourceExtractor;
+import org.mortbay.jetty.Handler;
+import org.mortbay.jetty.Request;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.handler.AbstractHandler;
public class MavenITmng3652UserAgentHeader
extends AbstractMavenIntegrationTestCase
{
+ private Server server;
+
+ private int port;
+
+ private String userAgent;
+
public MavenITmng3652UserAgentHeader()
throws InvalidVersionSpecificationException
{
@@ -29,6 +39,40 @@
super( "(2.0.9,2.1-ALPHA-1-SNAPSHOT)" );
}
+ public void setUp()
+ throws Exception
+ {
+ Handler handler = new AbstractHandler()
+ {
+ public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
+ throws IOException, ServletException
+ {
+ userAgent = request.getHeader( "User-Agent" );
+
+ response.setContentType( "text/plain" );
+ response.setStatus( HttpServletResponse.SC_OK );
+ response.getWriter().println( "some content" );
+ response.getWriter().println();
+
+ ( (Request) request ).setHandled( true );
+ }
+ };
+
+ server = new Server( 0 );
+ server.setHandler( handler );
+ server.start();
+
+ port = server.getConnectors()[0].getLocalPort();
+ }
+
+ protected void tearDown()
+ throws Exception
+ {
+ super.tearDown();
+
+ server.stop();
+ }
+
/**
* Test that the user agent header is configured in the wagon manager.
*/
@@ -44,13 +88,6 @@
verifier.verifyErrorFreeLog();
verifier.resetStreams();
- int port = ( Math.abs( new Random().nextInt() ) % 2048 ) + 1024;
-
- Server s = new Server( port );
- Thread t = new Thread( s );
- t.setDaemon( true );
- t.start();
-
verifier = new Verifier( projectDir.getAbsolutePath() );
List cliOptions = new ArrayList();
@@ -61,7 +98,7 @@
verifier.verifyErrorFreeLog();
verifier.resetStreams();
- String userAgent = s.userAgent;
+ String userAgent = this.userAgent;
assertNotNull( userAgent );
File touchFile = new File( projectDir, "target/touch.txt" );
@@ -89,7 +126,7 @@
verifier.verifyErrorFreeLog();
verifier.resetStreams();
- userAgent = s.userAgent;
+ userAgent = this.userAgent;
assertNotNull( userAgent );
assertEquals( "Comparing User-Agent '" + userAgent + "'", "Apache-Maven/" + mavenVersion + " (Java " + javaVersion + "; " + os + ")" + " maven-artifact/" + artifactVersion, userAgent );
@@ -105,7 +142,7 @@
verifier.verifyErrorFreeLog();
verifier.resetStreams();
- userAgent = s.userAgent;
+ userAgent = this.userAgent;
assertNotNull( userAgent );
assertEquals( "Comparing User-Agent '" + userAgent + "'", "Apache-Maven/" + mavenVersion + " (Java " + javaVersion + "; " + os + ")" + " maven-artifact/" + artifactVersion, userAgent );
@@ -121,115 +158,8 @@
verifier.verifyErrorFreeLog();
verifier.resetStreams();
- userAgent = s.userAgent;
+ userAgent = this.userAgent;
assertNotNull( userAgent );
assertEquals( "Maven Fu", userAgent );
-
- t.interrupt();
- }
-
- private static final class Server
- implements Runnable
- {
-
- private final int port;
-
- private String userAgent;
-
- private Server( int port )
- {
- this.port = port;
- }
-
- public void run()
- {
- ServerSocket ssock = null;
- try
- {
- try
- {
- ssock = new ServerSocket( port );
- ssock.setSoTimeout( 2000 );
- }
- catch ( IOException e )
- {
- Logger.getLogger( Server.class.getName() ).log( Level.SEVERE, "", e );
- return;
- }
-
- while ( !Thread.currentThread().isInterrupted() )
- {
- Socket sock = null;
- BufferedReader r = null;
- try
- {
- try
- {
- sock = ssock.accept();
- }
- catch ( SocketTimeoutException e )
- {
- continue;
- }
-
- r = new BufferedReader( new InputStreamReader( sock.getInputStream() ) );
-
- String line = null;
- int count = 0;
- while ( ( line = r.readLine() ) != null )
- {
- Logger.getLogger( Server.class.getName() ).fine( line );
- if ( line.startsWith( "User-Agent:" ) )
- {
- userAgent = line.replaceAll( "User-Agent:\\s+", "" );
-
- break;
- }
- count++;
- }
- }
- catch ( IOException e )
- {
- Logger.getLogger( Server.class.getName() ).log( Level.SEVERE, "", e );
- }
- finally
- {
- if ( r != null )
- {
- try
- {
- r.close();
- }
- catch ( IOException e )
- {
- }
- }
- if ( sock != null )
- {
- try
- {
- sock.close();
- }
- catch ( IOException e )
- {
- }
- }
- }
- }
- }
- finally
- {
- if ( ssock != null )
- {
- try
- {
- ssock.close();
- }
- catch ( IOException e )
- {
- }
- }
- }
- }
}
}