Author: joakime
Date: Tue Oct 23 17:39:14 2007
New Revision: 587719
URL: http://svn.apache.org/viewvc?rev=587719&view=rev
Log:
[MRM-567] Unable to download plugin SNAPSHOT's from proxy.
Adding tests for non-proxy downloads of SNAPSHOT first (gotta test the basics)
Modified:
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/codehaus/plexus/webdav/util/mime-types.txt
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletTest.java
Modified:
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/codehaus/plexus/webdav/util/mime-types.txt
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/codehaus/plexus/webdav/util/mime-types.txt?rev=587719&r1=587718&r2=587719&view=diff
==============================================================================
---
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/codehaus/plexus/webdav/util/mime-types.txt
(original)
+++
maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/org/codehaus/plexus/webdav/util/mime-types.txt
Tue Oct 23 17:39:14 2007
@@ -12,6 +12,7 @@
application/andrew-inset ez
application/atom+xml atom
+application/java-archive jar
application/mac-binhex40 hqx
application/mac-compactpro cpt
application/mathml+xml mathml
@@ -45,7 +46,6 @@
application/x-futuresplash spl
application/x-gtar gtar
application/x-hdf hdf
-application/x-jar jar
application/x-java-jnlp-file jnlp
application/x-javascript js
application/x-koan skp skd skt skm
Modified:
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletTest.java
URL:
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletTest.java?rev=587719&r1=587718&r2=587719&view=diff
==============================================================================
---
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletTest.java
(original)
+++
maven/archiva/trunk/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/repository/RepositoryServletTest.java
Tue Oct 23 17:39:14 2007
@@ -315,6 +315,96 @@
assertEquals( "Expected file contents", expectedArtifactContents,
response.getText() );
}
+ public void testGetNoProxySnapshotArtifactDefaultLayout()
+ throws Exception
+ {
+ RepositoryServlet servlet = (RepositoryServlet) sc.newInvocation(
REQUEST_PATH ).getServlet();
+ assertNotNull( servlet );
+ assertRepositoryValid( servlet, REPOSITORY_ID );
+
+ String commonsLangJar =
"commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-SNAPSHOT.jar";
+ String expectedArtifactContents =
"dummy-commons-lang-snapshot-artifact";
+
+ File artifactFile = new File( repositoryLocation, commonsLangJar );
+ artifactFile.getParentFile().mkdirs();
+
+ FileUtils.writeStringToFile( artifactFile, expectedArtifactContents,
null );
+
+ WebRequest request = new GetMethodWebRequest(
"http://machine.com/repository/internal/" + commonsLangJar );
+ WebResponse response = sc.getResponse( request );
+ assertEquals( "Response OK", HttpServletResponse.SC_OK,
response.getResponseCode() );
+
+ assertEquals( "Expected file contents", expectedArtifactContents,
response.getText() );
+ }
+
+ public void testGetNoProxySnapshotArtifactLegacyLayout()
+ throws Exception
+ {
+ RepositoryServlet servlet = (RepositoryServlet) sc.newInvocation(
REQUEST_PATH ).getServlet();
+ assertNotNull( servlet );
+ assertRepositoryValid( servlet, REPOSITORY_ID );
+
+ String commonsLangJar =
"commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-SNAPSHOT.jar";
+ String expectedArtifactContents =
"dummy-commons-lang-snapshot-artifact";
+
+ File artifactFile = new File( repositoryLocation, commonsLangJar );
+ artifactFile.getParentFile().mkdirs();
+
+ FileUtils.writeStringToFile( artifactFile, expectedArtifactContents,
null );
+
+ WebRequest request = new GetMethodWebRequest(
"http://machine.com/repository/internal/" +
+
"commons-lang/jars/commons-lang-2.1-SNAPSHOT.jar" );
+ WebResponse response = sc.getResponse( request );
+ assertEquals( "Response OK", HttpServletResponse.SC_OK,
response.getResponseCode() );
+
+ assertEquals( "Expected file contents", expectedArtifactContents,
response.getText() );
+ }
+
+ public void testGetNoProxyTimestampedSnapshotArtifactDefaultLayout()
+ throws Exception
+ {
+ RepositoryServlet servlet = (RepositoryServlet) sc.newInvocation(
REQUEST_PATH ).getServlet();
+ assertNotNull( servlet );
+ assertRepositoryValid( servlet, REPOSITORY_ID );
+
+ String commonsLangJar =
"commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-20050821.023400-1.jar";
+ String expectedArtifactContents =
"dummy-commons-lang-snapshot-artifact";
+
+ File artifactFile = new File( repositoryLocation, commonsLangJar );
+ artifactFile.getParentFile().mkdirs();
+
+ FileUtils.writeStringToFile( artifactFile, expectedArtifactContents,
null );
+
+ WebRequest request = new GetMethodWebRequest(
"http://machine.com/repository/internal/" + commonsLangJar );
+ WebResponse response = sc.getResponse( request );
+ assertEquals( "Response OK", HttpServletResponse.SC_OK,
response.getResponseCode() );
+
+ assertEquals( "Expected file contents", expectedArtifactContents,
response.getText() );
+ }
+
+ public void testGetNoProxyTimestampedSnapshotArtifactLegacyLayout()
+ throws Exception
+ {
+ RepositoryServlet servlet = (RepositoryServlet) sc.newInvocation(
REQUEST_PATH ).getServlet();
+ assertNotNull( servlet );
+ assertRepositoryValid( servlet, REPOSITORY_ID );
+
+ String commonsLangJar =
"commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-20050821.023400-1.jar";
+ String expectedArtifactContents =
"dummy-commons-lang-snapshot-artifact";
+
+ File artifactFile = new File( repositoryLocation, commonsLangJar );
+ artifactFile.getParentFile().mkdirs();
+
+ FileUtils.writeStringToFile( artifactFile, expectedArtifactContents,
null );
+
+ WebRequest request = new GetMethodWebRequest(
"http://machine.com/repository/internal/"
+ + "commons-lang/jars/commons-lang-2.1-20050821.023400-1.jar" );
+ WebResponse response = sc.getResponse( request );
+ assertEquals( "Response OK", HttpServletResponse.SC_OK,
response.getResponseCode() );
+
+ assertEquals( "Expected file contents", expectedArtifactContents,
response.getText() );
+ }
+
public void testMimeTypesAvailable()
throws Exception
{
@@ -325,9 +415,10 @@
assertEquals( "sha1", "text/plain", mimeTypes.getMimeType( "foo.sha1"
) );
assertEquals( "md5", "text/plain", mimeTypes.getMimeType( "foo.md5" )
);
assertEquals( "pgp", "application/pgp-encrypted",
mimeTypes.getMimeType( "foo.pgp" ) );
+ assertEquals( "jar", "application/java-archive",
mimeTypes.getMimeType( "foo.jar" ) );
}
- private void dumpResponse( WebResponse response )
+ public static void dumpResponse( WebResponse response )
{
System.out.println( "---(response)---" );
System.out.println( "" + response.getResponseCode() + " " +
response.getResponseMessage() );
@@ -355,18 +446,14 @@
ManagedRepositoryConfiguration repository = servlet.getRepository(
repoId );
assertNotNull( "Archiva Managed Repository id:<" + repoId + "> should
exist.", repository );
File repoRoot = new File( repository.getLocation() );
- assertTrue( "Archiva Managed Repository id:<" + repoId + "> should
have a valid location on disk.", repoRoot
- .exists()
- && repoRoot.isDirectory() );
+ assertTrue( "Archiva Managed Repository id:<" + repoId + "> should
have a valid location on disk.",
+ repoRoot.exists() && repoRoot.isDirectory() );
}
private void saveConfiguration()
throws Exception
{
configuration.save( configuration.getConfiguration() );
- // TODO it would be better to use a mock configuration and "save" to
more accurately reflect the calls made
- // RepositoryServlet servlet
- // servlet.configurationEvent( new ConfigurationEvent(
ConfigurationEvent.SAVED ) );
}
private ManagedRepositoryConfiguration createManagedRepository( String id,
String name, File location )