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 java.io.File;
23 import java.io.IOException;
24 import java.util.ArrayList;
25 import java.util.Collections;
26 import java.util.List;
27
28 import javax.servlet.ServletException;
29 import javax.servlet.http.HttpServletRequest;
30 import javax.servlet.http.HttpServletResponse;
31
32 import org.apache.maven.it.Verifier;
33 import org.apache.maven.it.util.ResourceExtractor;
34 import org.mortbay.jetty.Handler;
35 import org.mortbay.jetty.Request;
36 import org.mortbay.jetty.Server;
37 import org.mortbay.jetty.handler.AbstractHandler;
38 import org.mortbay.jetty.handler.HandlerList;
39
40
41
42
43
44
45 public class MavenITmng4781DeploymentToNexusStagingRepoTest
46 extends AbstractMavenIntegrationTestCase
47 {
48
49 private Server server;
50
51 private int port;
52
53 private List requestedUris = Collections.synchronizedList( new ArrayList() );
54
55 private List deployedUris = Collections.synchronizedList( new ArrayList() );
56
57 public MavenITmng4781DeploymentToNexusStagingRepoTest()
58 {
59 super( "[2.0.3,)" );
60 }
61
62 public void setUp()
63 throws Exception
64 {
65 super.setUp();
66
67 Handler repoHandler = new AbstractHandler()
68 {
69
70 private boolean putSeen;
71
72 public void handle( String target, HttpServletRequest request, HttpServletResponse response, int dispatch )
73 throws IOException, ServletException
74 {
75 System.out.println( "Handling " + request.getMethod() + " " + request.getRequestURL() );
76
77 if ( "PUT".equalsIgnoreCase( request.getMethod() ) )
78 {
79 response.setStatus( HttpServletResponse.SC_CREATED );
80 deployedUris.add( request.getRequestURI() );
81 putSeen = true;
82 }
83 else if ( !putSeen )
84 {
85 response.setStatus( HttpServletResponse.SC_BAD_REQUEST );
86 }
87 else
88 {
89 response.setStatus( HttpServletResponse.SC_NOT_FOUND );
90 requestedUris.add( request.getRequestURI() );
91 }
92
93 ( (Request) request ).setHandled( true );
94 }
95 };
96
97 HandlerList handlerList = new HandlerList();
98 handlerList.addHandler( repoHandler );
99
100 server = new Server( 0 );
101 server.setHandler( handlerList );
102 server.start();
103
104 port = server.getConnectors()[0].getLocalPort();
105 }
106
107 protected void tearDown()
108 throws Exception
109 {
110 if ( server != null )
111 {
112 server.stop();
113 server = null;
114 }
115
116 requestedUris.clear();
117 deployedUris.clear();
118
119 super.tearDown();
120 }
121
122
123
124
125
126
127
128 public void testit()
129 throws Exception
130 {
131 File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-4781" );
132
133 Verifier verifier = newVerifier( testDir.getAbsolutePath() );
134 verifier.setAutoclean( false );
135 verifier.getCliOptions().add( "-DdeploymentPort=" + port );
136 verifier.executeGoal( "validate" );
137 verifier.verifyErrorFreeLog();
138 verifier.resetStreams();
139
140 assertTrue( deployedUris.toString(),
141 deployedUris.contains( "/repo/org/apache/maven/its/mng4781/release/1.0/release-1.0.jar" ) );
142 assertTrue( deployedUris.toString(),
143 deployedUris.contains( "/repo/org/apache/maven/its/mng4781/release/1.0/release-1.0.pom" ) );
144 assertTrue( deployedUris.toString(),
145 deployedUris.contains( "/repo/org/apache/maven/its/mng4781/release/maven-metadata.xml" ) );
146
147 assertTrue( requestedUris.toString(),
148 deployedUris.contains( "/repo/org/apache/maven/its/mng4781/release/maven-metadata.xml" ) );
149 }
150
151 }