1 package org.apache.maven.it;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.it.Verifier;
23 import org.apache.maven.it.util.ResourceExtractor;
24
25 import java.io.File;
26 import java.io.IOException;
27 import java.util.ArrayList;
28 import java.util.Collections;
29 import java.util.List;
30 import java.util.Properties;
31
32 import javax.servlet.ServletException;
33 import javax.servlet.http.HttpServletRequest;
34 import javax.servlet.http.HttpServletResponse;
35
36 import org.mortbay.jetty.Server;
37 import org.mortbay.jetty.handler.AbstractHandler;
38 import org.mortbay.jetty.handler.DefaultHandler;
39 import org.mortbay.jetty.handler.HandlerList;
40 import org.mortbay.jetty.handler.ResourceHandler;
41
42
43
44
45
46
47 public class MavenITmng4500NoUpdateOfTimestampedSnapshotsTest
48 extends AbstractMavenIntegrationTestCase
49 {
50
51 public MavenITmng4500NoUpdateOfTimestampedSnapshotsTest()
52 {
53 super( "[2.0.3,3.0-alpha-1),[3.0-alpha-6,)" );
54 }
55
56
57
58
59
60 public void testit()
61 throws Exception
62 {
63 File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-4500" );
64
65 String pomUri = "/repo/org/apache/maven/its/mng4500/dep/0.1-SNAPSHOT/dep-0.1-20091219.230823-1.pom";
66 String jarUri = "/repo/org/apache/maven/its/mng4500/dep/0.1-SNAPSHOT/dep-0.1-20091219.230823-1.jar";
67
68 final List requestedUris = Collections.synchronizedList( new ArrayList() );
69
70 AbstractHandler logHandler = new AbstractHandler()
71 {
72 public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
73 throws IOException, ServletException
74 {
75 requestedUris.add( request.getRequestURI() );
76 }
77 };
78
79 ResourceHandler repoHandler = new ResourceHandler();
80 repoHandler.setResourceBase( testDir.getAbsolutePath() );
81
82 HandlerList handlerList = new HandlerList();
83 handlerList.addHandler( logHandler );
84 handlerList.addHandler( repoHandler );
85 handlerList.addHandler( new DefaultHandler() );
86
87 Server server = new Server( 0 );
88 server.setHandler( handlerList );
89 server.start();
90
91 Verifier verifier = newVerifier( testDir.getAbsolutePath() );
92 try
93 {
94 verifier.setAutoclean( false );
95 verifier.deleteDirectory( "target" );
96 verifier.deleteArtifacts( "org.apache.maven.its.mng4500" );
97 Properties filterProps = verifier.newDefaultFilterProperties();
98 filterProps.setProperty( "@port@", Integer.toString( server.getConnectors()[0].getLocalPort() ) );
99 verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", filterProps );
100 verifier.getCliOptions().add( "-s" );
101 verifier.getCliOptions().add( "settings.xml" );
102
103 verifier.setLogFileName( "log-1.txt" );
104 verifier.executeGoal( "validate" );
105 verifier.verifyErrorFreeLog();
106
107 List classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
108 assertTrue( classpath.toString(), classpath.contains( "dep-0.1-SNAPSHOT.jar" ) );
109 assertTrue( requestedUris.toString(), requestedUris.contains( pomUri ) );
110 assertTrue( requestedUris.toString(), requestedUris.contains( jarUri ) );
111
112 requestedUris.clear();
113
114 verifier.setLogFileName( "log-2.txt" );
115 verifier.executeGoal( "validate" );
116 verifier.verifyErrorFreeLog();
117
118 classpath = verifier.loadLines( "target/classpath.txt", "UTF-8" );
119 assertTrue( classpath.toString(), classpath.contains( "dep-0.1-SNAPSHOT.jar" ) );
120 assertFalse( requestedUris.toString(), requestedUris.contains( pomUri ) );
121 assertFalse( requestedUris.toString(), requestedUris.contains( jarUri ) );
122 }
123 finally
124 {
125 verifier.resetStreams();
126 server.stop();
127 }
128 }
129
130 }