You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2017/05/16 19:54:23 UTC
[1/2] maven-resolver git commit: [MRESOLVER-23] Avoid implicit
primitive type casts
Repository: maven-resolver
Updated Branches:
refs/heads/MRESOLVER-23 [created] f75953000
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java b/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
index 6af7b16..7ca6bb0 100644
--- a/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
+++ b/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
@@ -74,6 +74,8 @@ public class HttpTransporterTest
System.setProperty( "javax.net.ssl.keyStorePassword", "client-pwd" );
}
+ private static final String REPO_ID = "test";
+
@Rule
public TestName testName = new TestName();
@@ -93,7 +95,7 @@ public class HttpTransporterTest
private RemoteRepository newRepo( String url )
{
- return new RemoteRepository.Builder( "test", "default", url ).setAuthentication( auth ).setProxy( proxy ).build();
+ return new RemoteRepository.Builder( REPO_ID, "default", url ).setAuthentication( auth ).setProxy( proxy ).build();
}
private void newTransporter( String url )
@@ -274,8 +276,8 @@ public class HttpTransporterTest
GetTask task = new GetTask( URI.create( "repo/file.txt" ) ).setListener( listener );
transporter.get( task );
assertEquals( "test", task.getDataString() );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -290,8 +292,8 @@ public class HttpTransporterTest
GetTask task = new GetTask( URI.create( "repo/file.txt" ) ).setDataFile( file ).setListener( listener );
transporter.get( task );
assertEquals( "test", TestFileUtils.readString( file ) );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "test", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -306,8 +308,8 @@ public class HttpTransporterTest
GetTask task = new GetTask( URI.create( "repo/empty.txt" ) ).setDataFile( file ).setListener( listener );
transporter.get( task );
assertEquals( "", TestFileUtils.readString( file ) );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 0, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 0L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 0, listener.progressedCount );
assertEquals( "", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -333,8 +335,8 @@ public class HttpTransporterTest
GetTask task = new GetTask( URI.create( "repo/file.txt" ) ).setListener( listener );
transporter.get( task );
assertEquals( "test", task.getDataString() );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -369,8 +371,8 @@ public class HttpTransporterTest
GetTask task = new GetTask( URI.create( "repo/file.txt" ) ).setListener( listener );
transporter.get( task );
assertEquals( "test", task.getDataString() );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -405,8 +407,8 @@ public class HttpTransporterTest
GetTask task = new GetTask( URI.create( "repo/file.txt" ) ).setListener( listener );
transporter.get( task );
assertEquals( "test", task.getDataString() );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -416,14 +418,14 @@ public class HttpTransporterTest
public void testGet_WebDav()
throws Exception
{
- httpServer.setWebDav( true );
+ httpServer.setWebDav( HttpServer.WebDav.REQUIRED );
RecordingTransportListener listener = new RecordingTransportListener();
GetTask task = new GetTask( URI.create( "repo/dir/file.txt" ) ).setListener( listener );
( (HttpTransporter) transporter ).getState().setWebDav( true );
transporter.get( task );
assertEquals( "test", task.getDataString() );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -439,8 +441,8 @@ public class HttpTransporterTest
GetTask task = new GetTask( URI.create( "redirect/file.txt?scheme=https" ) ).setListener( listener );
transporter.get( task );
assertEquals( "test", task.getDataString() );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -455,8 +457,8 @@ public class HttpTransporterTest
GetTask task = new GetTask( URI.create( "repo/resume.txt" ) ).setDataFile( file, true ).setListener( listener );
transporter.get( task );
assertEquals( "resumable", TestFileUtils.readString( file ) );
- assertEquals( 1, listener.startedCount );
- assertEquals( 2, listener.dataOffset );
+ assertEquals( 1L, listener.startedCount );
+ assertEquals( 2L, listener.dataOffset );
assertEquals( 9, listener.dataLength );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "sumable", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -472,8 +474,8 @@ public class HttpTransporterTest
GetTask task = new GetTask( URI.create( "repo/resume.txt" ) ).setDataFile( file, true ).setListener( listener );
transporter.get( task );
assertEquals( "resumable", TestFileUtils.readString( file ) );
- assertEquals( 1, listener.startedCount );
- assertEquals( 0, listener.dataOffset );
+ assertEquals( 1L, listener.startedCount );
+ assertEquals( 0L, listener.dataOffset );
assertEquals( 9, listener.dataLength );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "resumable", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -489,8 +491,8 @@ public class HttpTransporterTest
GetTask task = new GetTask( URI.create( "repo/resume.txt" ) ).setDataFile( file, true ).setListener( listener );
transporter.get( task );
assertEquals( "resumable", TestFileUtils.readString( file ) );
- assertEquals( 1, listener.startedCount );
- assertEquals( 0, listener.dataOffset );
+ assertEquals( 1L, listener.startedCount );
+ assertEquals( 0L, listener.dataOffset );
assertEquals( 9, listener.dataLength );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "resumable", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -567,8 +569,8 @@ public class HttpTransporterTest
{
assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
}
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 0, listener.progressedCount );
}
@@ -589,8 +591,8 @@ public class HttpTransporterTest
{
assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
}
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 1, listener.progressedCount );
}
@@ -602,8 +604,8 @@ public class HttpTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "repo/file.txt" ) ).setListener( listener ).setDataString( "upload" );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "file.txt" ) ) );
@@ -617,8 +619,8 @@ public class HttpTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "repo/file.txt" ) ).setListener( listener ).setDataFile( file );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "file.txt" ) ) );
@@ -631,8 +633,8 @@ public class HttpTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "repo/file.txt" ) ).setListener( listener );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 0, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 0L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 0, listener.progressedCount );
assertEquals( "", TestFileUtils.readString( new File( repoDir, "file.txt" ) ) );
@@ -646,8 +648,8 @@ public class HttpTransporterTest
PutTask task =
new PutTask( URI.create( "repo/some%20space.txt" ) ).setListener( listener ).setDataString( "OK" );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 2, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 2L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "OK", TestFileUtils.readString( new File( repoDir, "some space.txt" ) ) );
@@ -663,8 +665,8 @@ public class HttpTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "repo/file.txt" ) ).setListener( listener ).setDataString( "upload" );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "file.txt" ) ) );
@@ -681,8 +683,8 @@ public class HttpTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "repo/file.txt" ) ).setListener( listener ).setDataString( "upload" );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "file.txt" ) ) );
@@ -699,8 +701,8 @@ public class HttpTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "repo/file.txt" ) ).setListener( listener ).setDataString( "upload" );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "file.txt" ) ) );
@@ -720,8 +722,8 @@ public class HttpTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "repo/file.txt" ) ).setListener( listener ).setDataString( "upload" );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "file.txt" ) ) );
@@ -759,8 +761,8 @@ public class HttpTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "repo/file.txt" ) ).setListener( listener ).setDataString( "upload" );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "file.txt" ) ) );
@@ -800,8 +802,8 @@ public class HttpTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "repo/file.txt" ) ).setListener( listener ).setDataString( "upload" );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "file.txt" ) ) );
@@ -811,13 +813,13 @@ public class HttpTransporterTest
public void testPut_WebDav()
throws Exception
{
- httpServer.setWebDav( true );
+ httpServer.setWebDav( HttpServer.WebDav.REQUIRED );
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task =
new PutTask( URI.create( "repo/dir1/dir2/file.txt" ) ).setListener( listener ).setDataString( "upload" );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "dir1/dir2/file.txt" ) ) );
@@ -834,6 +836,62 @@ public class HttpTransporterTest
}
@Test
+ public void testPut_WebDavOptional_ManuallyDisabled()
+ throws Exception
+ {
+ session.setConfigProperty( "aether.connector.http.webDav." + REPO_ID, "false" );
+ httpServer.setWebDav( HttpServer.WebDav.OPTIONAL );
+ newTransporter( httpServer.getHttpUrl() );
+ RecordingTransportListener listener = new RecordingTransportListener();
+ PutTask task =
+ new PutTask( URI.create( "repo/dir1/dir2/file.txt" ) ).setListener( listener ).setDataString( "upload" );
+ transporter.put( task );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
+ assertEquals( 1, listener.startedCount );
+ assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
+ assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "dir1/dir2/file.txt" ) ) );
+
+ assertEquals( httpServer.getLogEntries().toString(), 2, httpServer.getLogEntries().size() );
+ assertEquals( "OPTIONS", httpServer.getLogEntries().get( 0 ).method );
+ assertEquals( "PUT", httpServer.getLogEntries().get( 1 ).method );
+ }
+
+ @Test
+ public void testPut_WebDavOptional_AutomaticallyDisabled_Artifactory()
+ throws Exception
+ {
+ testPut_WebDavOptional_AutomaticallyDisabled( "Artifactory/3.3.0" );
+ }
+
+ @Test
+ public void testPut_WebDavOptional_AutomaticallyDisabled_Nexus()
+ throws Exception
+ {
+ testPut_WebDavOptional_AutomaticallyDisabled( "Nexus/2.9.0-02" );
+ }
+
+ private void testPut_WebDavOptional_AutomaticallyDisabled( String server )
+ throws Exception
+ {
+ httpServer.setServer( server );
+ httpServer.setWebDav( HttpServer.WebDav.OPTIONAL );
+ RecordingTransportListener listener = new RecordingTransportListener();
+ PutTask task =
+ new PutTask( URI.create( "repo/dir1/dir2/file.txt" ) ).setListener( listener ).setDataString( "upload" );
+ transporter.put( task );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
+ assertEquals( 1, listener.startedCount );
+ assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
+ assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "dir1/dir2/file.txt" ) ) );
+
+ assertEquals( httpServer.getLogEntries().toString(), 2, httpServer.getLogEntries().size() );
+ assertEquals( "OPTIONS", httpServer.getLogEntries().get( 0 ).method );
+ assertEquals( "PUT", httpServer.getLogEntries().get( 1 ).method );
+ }
+
+ @Test
public void testPut_FileHandleLeak()
throws Exception
{
@@ -879,8 +937,8 @@ public class HttpTransporterTest
{
assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
}
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 0, listener.progressedCount );
}
@@ -901,8 +959,8 @@ public class HttpTransporterTest
{
assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
}
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 1, listener.progressedCount );
}
@@ -922,7 +980,7 @@ public class HttpTransporterTest
assertEquals( 1, listener.startedCount );
}
- @Test( timeout = 10000 )
+ @Test( timeout = 20000L )
public void testConcurrency()
throws Exception
{
@@ -969,7 +1027,7 @@ public class HttpTransporterTest
assertNull( String.valueOf( error.get() ), error.get() );
}
- @Test( timeout = 1000 )
+ @Test( timeout = 1000L )
public void testConnectTimeout()
throws Exception
{
@@ -991,7 +1049,7 @@ public class HttpTransporterTest
}
}
- @Test( timeout = 1000 )
+ @Test( timeout = 1000L )
public void testRequestTimeout()
throws Exception
{
@@ -1052,6 +1110,95 @@ public class HttpTransporterTest
}
@Test
+ public void testCredentialEncoding_Default()
+ throws Exception
+ {
+ testCredentialEncoding( null );
+ }
+
+ @Test
+ public void testCredentialEncoding_Utf8()
+ throws Exception
+ {
+ testCredentialEncoding( StandardCharsets.UTF_8.name() );
+ }
+
+ private void testCredentialEncoding( String encoding )
+ throws Exception
+ {
+ session.setConfigProperty( ConfigurationProperties.HTTP_CREDENTIAL_ENCODING, encoding );
+ String username = "testuser", password = "\u00e4\u00f6\u00fc";
+ httpServer.setAuthentication( username, password );
+ httpServer.setCredentialEncoding( encoding );
+ auth = new AuthenticationBuilder().addUsername( username ).addPassword( password ).build();
+ newTransporter( httpServer.getHttpUrl() );
+ transporter.get( new GetTask( URI.create( "repo/file.txt" ) ) );
+ }
+
+ @Test
+ public void testServerAuthScope_FollowsSslRedirect()
+ throws Exception
+ {
+ String username = "testuser", password = "testpass";
+ httpServer.setAuthentication( username, password );
+ httpServer.addSslConnector();
+ auth = new AuthenticationBuilder().addUsername( username ).addPassword( password ).build();
+ newTransporter( httpServer.getHttpUrl() );
+ transporter.get( new GetTask( URI.create( "redirect/file.txt?scheme=https" ) ) );
+ }
+
+ @Test
+ public void testServerAuthScope_FollowsRedirectToDifferentHost_EnabledByRepoId()
+ throws Exception
+ {
+ session.setConfigProperty( ConfigurationProperties.HTTP_REDIRECTED_AUTHENTICATION + "." + REPO_ID, "true" );
+ String username = "testuser", password = "testpass";
+ httpServer.setAuthentication( username, password );
+ auth = new AuthenticationBuilder().addUsername( username ).addPassword( password ).build();
+ proxy = new Proxy( Proxy.TYPE_HTTP, httpServer.getHost(), httpServer.getHttpPort() );
+ newTransporter( "http://redirect.localhost:1/" );
+ GetTask task = new GetTask( URI.create( "redirect/file.txt?host=" + httpServer.getHost() ) );
+ transporter.get( task );
+ assertEquals( "test", task.getDataString() );
+ }
+
+ @Test
+ public void testServerAuthScope_FollowsRedirectToDifferentHost_EnabledByHostName()
+ throws Exception
+ {
+ session.setConfigProperty( ConfigurationProperties.HTTP_REDIRECTED_AUTHENTICATION, " REDIRECT.localhost , foo" );
+ String username = "testuser", password = "testpass";
+ httpServer.setAuthentication( username, password );
+ auth = new AuthenticationBuilder().addUsername( username ).addPassword( password ).build();
+ proxy = new Proxy( Proxy.TYPE_HTTP, httpServer.getHost(), httpServer.getHttpPort() );
+ newTransporter( "http://redirect.localhost:1/" );
+ GetTask task = new GetTask( URI.create( "redirect/file.txt?host=" + httpServer.getHost() ) );
+ transporter.get( task );
+ assertEquals( "test", task.getDataString() );
+ }
+
+ @Test
+ public void testServerAuthScope_FollowsRedirectToDifferentHost_DisabledByDefault()
+ throws Exception
+ {
+ String username = "testuser", password = "testpass";
+ httpServer.setAuthentication( username, password );
+ auth = new AuthenticationBuilder().addUsername( username ).addPassword( password ).build();
+ proxy = new Proxy( Proxy.TYPE_HTTP, httpServer.getHost(), httpServer.getHttpPort() );
+ newTransporter( "http://redirect.localhost:1/" );
+ GetTask task = new GetTask( URI.create( "redirect/file.txt?host=" + httpServer.getHost() ) );
+ try
+ {
+ transporter.get( task );
+ fail( "Server auth must not be used for redirect destination" );
+ }
+ catch ( HttpResponseException e )
+ {
+ assertEquals( 401, e.getStatusCode() );
+ }
+ }
+
+ @Test
public void testServerAuthScope_NotUsedForProxy()
throws Exception
{
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java b/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java
index 490acac..bff3406 100644
--- a/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java
+++ b/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java
@@ -49,7 +49,7 @@ public final class WagonTransporterFactory
private WagonConfigurator wagonConfigurator;
- private float priority = -1;
+ private float priority = -1.0f;
/**
* Creates an (uninitialized) instance of this transporter factory. <em>Note:</em> In case of manual instantiation
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/AbstractWagonTransporterTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/AbstractWagonTransporterTest.java b/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/AbstractWagonTransporterTest.java
index 5a168d1..2a58de3 100644
--- a/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/AbstractWagonTransporterTest.java
+++ b/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/AbstractWagonTransporterTest.java
@@ -192,8 +192,8 @@ public abstract class AbstractWagonTransporterTest
GetTask task = new GetTask( URI.create( "file.txt" ) ).setListener( listener );
transporter.get( task );
assertEquals( "test", task.getDataString() );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -208,8 +208,8 @@ public abstract class AbstractWagonTransporterTest
GetTask task = new GetTask( URI.create( "file.txt" ) ).setDataFile( file ).setListener( listener );
transporter.get( task );
assertEquals( "test", TestFileUtils.readString( file ) );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "test", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -225,8 +225,8 @@ public abstract class AbstractWagonTransporterTest
GetTask task = new GetTask( URI.create( "empty.txt" ) ).setDataFile( file ).setListener( listener );
transporter.get( task );
assertEquals( "", TestFileUtils.readString( file ) );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 0, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 0L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 0, listener.progressedCount );
assertEquals( "", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -311,8 +311,8 @@ public abstract class AbstractWagonTransporterTest
{
assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
}
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 1, listener.progressedCount );
}
@@ -324,8 +324,8 @@ public abstract class AbstractWagonTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "file.txt" ) ).setListener( listener ).setDataString( "upload" );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "upload", fs.get( "file.txt" ) );
@@ -339,8 +339,8 @@ public abstract class AbstractWagonTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "file.txt" ) ).setListener( listener ).setDataFile( file );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "upload", fs.get( "file.txt" ) );
@@ -353,8 +353,8 @@ public abstract class AbstractWagonTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "file.txt" ) ).setListener( listener );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 0, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 0L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 0, listener.progressedCount );
assertEquals( "", fs.get( "file.txt" ) );
@@ -368,8 +368,8 @@ public abstract class AbstractWagonTransporterTest
PutTask task =
new PutTask( URI.create( "dir/sub/dir/file.txt" ) ).setListener( listener ).setDataString( "upload" );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "upload", fs.get( "dir/sub/dir/file.txt" ) );
@@ -382,8 +382,8 @@ public abstract class AbstractWagonTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "some%20space.txt" ) ).setListener( listener ).setDataString( "OK" );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 2, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 2L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "OK", fs.get( "some space.txt" ) );
@@ -444,8 +444,8 @@ public abstract class AbstractWagonTransporterTest
{
assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
}
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 1, listener.progressedCount );
}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-util/src/test/java/org/eclipse/aether/util/ConfigUtilsTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/ConfigUtilsTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/ConfigUtilsTest.java
index 442d501..683c8e0 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/ConfigUtilsTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/ConfigUtilsTest.java
@@ -168,16 +168,16 @@ public class ConfigUtilsTest
public void testGetLong_Default()
{
config.put( "no-long", new Object() );
- assertEquals( -17, ConfigUtils.getLong( config, -17L, "no-value" ) );
- assertEquals( 43, ConfigUtils.getLong( config, 43L, "no-long" ) );
+ assertEquals( -17L, ConfigUtils.getLong( config, -17L, "no-value" ) );
+ assertEquals( 43L, ConfigUtils.getLong( config, 43L, "no-long" ) );
}
@Test
public void testGetLong_AlternativeKeys()
{
config.put( "no-long", "text" );
- config.put( "some-long", 23 );
- assertEquals( 23, ConfigUtils.getLong( config, 0, "no-long", "some-long" ) );
+ config.put( "some-long", 23L );
+ assertEquals( 23L, ConfigUtils.getLong( config, 0, "no-long", "some-long" ) );
}
@Test
@@ -222,7 +222,7 @@ public class ConfigUtilsTest
@Test
public void testGetFloat_NumberConversion()
{
- config.put( "some-number", -1234 );
+ config.put( "some-number", -1234f );
assertEquals( -1234f, ConfigUtils.getFloat( config, 0, "some-number" ), 0.1f );
}
[2/2] maven-resolver git commit: [MRESOLVER-23] Avoid implicit
primitive type casts
Posted by mi...@apache.org.
[MRESOLVER-23] Avoid implicit primitive type casts
Project: http://git-wip-us.apache.org/repos/asf/maven-resolver/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-resolver/commit/f7595300
Tree: http://git-wip-us.apache.org/repos/asf/maven-resolver/tree/f7595300
Diff: http://git-wip-us.apache.org/repos/asf/maven-resolver/diff/f7595300
Branch: refs/heads/MRESOLVER-23
Commit: f759530008a8b830dcea4bcb37ff4cc315681eaf
Parents: 7ff028b
Author: Michael Osipov <mi...@apache.org>
Authored: Tue Nov 1 00:35:27 2016 +0100
Committer: Michael Osipov <mi...@apache.org>
Committed: Tue May 16 21:53:38 2017 +0200
----------------------------------------------------------------------
.../eclipse/aether/transfer/TransferEvent.java | 8 +-
.../aether/transfer/TransferResource.java | 4 +-
.../aether/DefaultRepositoryCacheTest.java | 2 +-
.../eclipse/aether/DefaultSessionDataTest.java | 2 +-
.../basic/BasicRepositoryConnector.java | 2 +-
.../connector/basic/ChecksumCalculator.java | 73 +++--
.../aether/connector/basic/PartialFile.java | 97 ++-----
.../aether/connector/basic/PartialFileTest.java | 112 +++-----
.../internal/impl/DefaultFileProcessor.java | 4 +-
.../impl/DefaultUpdateCheckManager.java | 8 +-
.../impl/DefaultVersionFilterContext.java | 8 +-
.../EnhancedLocalRepositoryManagerFactory.java | 2 +-
.../internal/impl/TrackingFileManager.java | 2 +-
.../internal/impl/DefaultFileProcessorTest.java | 4 +-
.../impl/DefaultUpdateCheckManagerTest.java | 8 +-
.../EnhancedLocalRepositoryManagerTest.java | 6 +-
.../internal/impl/StaticUpdateCheckManager.java | 4 +-
.../transport/AbstractTransporter.java | 36 +--
.../internal/test/util/TestFileProcessor.java | 2 +-
.../internal/test/util/TestFileUtils.java | 102 ++-----
.../classpath/ClasspathTransporterTest.java | 20 +-
.../transport/file/FileTransporterTest.java | 48 ++--
.../aether/transport/http/HttpTransporter.java | 12 +-
.../transport/http/HttpTransporterFactory.java | 2 +-
.../aether/transport/http/HttpServer.java | 138 ++++++----
.../transport/http/HttpTransporterTest.java | 263 +++++++++++++++----
.../wagon/WagonTransporterFactory.java | 2 +-
.../wagon/AbstractWagonTransporterTest.java | 40 +--
.../eclipse/aether/util/ConfigUtilsTest.java | 10 +-
29 files changed, 525 insertions(+), 496 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferEvent.java
----------------------------------------------------------------------
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferEvent.java b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferEvent.java
index 901f317..7d33d50 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferEvent.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferEvent.java
@@ -289,7 +289,7 @@ public final class TransferEvent
{
case INITIATED:
case STARTED:
- transferredBytes = 0;
+ transferredBytes = 0L;
default:
}
return this;
@@ -333,7 +333,7 @@ public final class TransferEvent
*/
public Builder setTransferredBytes( long transferredBytes )
{
- if ( transferredBytes < 0 )
+ if ( transferredBytes < 0L )
{
throw new IllegalArgumentException( "number of transferred bytes cannot be negative" );
}
@@ -343,14 +343,14 @@ public final class TransferEvent
/**
* Increments the total number of bytes that have been transferred so far during the download/upload.
- *
+ *
* @param transferredBytes The number of bytes that have been transferred since the last event, must not be
* negative.
* @return This event builder for chaining, never {@code null}.
*/
public Builder addTransferredBytes( long transferredBytes )
{
- if ( transferredBytes < 0 )
+ if ( transferredBytes < 0L )
{
throw new IllegalArgumentException( "number of transferred bytes cannot be negative" );
}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferResource.java
----------------------------------------------------------------------
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferResource.java b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferResource.java
index 1fecdad..26b6c77 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferResource.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferResource.java
@@ -41,7 +41,7 @@ public final class TransferResource
private final RequestTrace trace;
- private long contentLength = -1;
+ private long contentLength = -1L;
private long resumeOffset;
@@ -209,7 +209,7 @@ public final class TransferResource
*/
public TransferResource setResumeOffset( long resumeOffset )
{
- if ( resumeOffset < 0 )
+ if ( resumeOffset < 0L )
{
throw new IllegalArgumentException( "resume offset cannot be negative" );
}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositoryCacheTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositoryCacheTest.java b/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositoryCacheTest.java
index ad5dfc5..067320e 100644
--- a/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositoryCacheTest.java
+++ b/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositoryCacheTest.java
@@ -68,7 +68,7 @@ public class DefaultRepositoryCacheTest
assertNull( get( key ) );
}
- @Test( timeout = 10000 )
+ @Test( timeout = 10000L )
public void testConcurrency()
throws Exception
{
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultSessionDataTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultSessionDataTest.java b/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultSessionDataTest.java
index 58f3649..3b886e5 100644
--- a/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultSessionDataTest.java
+++ b/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultSessionDataTest.java
@@ -94,7 +94,7 @@ public class DefaultSessionDataTest
assertNull( get( key ) );
}
- @Test( timeout = 10000 )
+ @Test( timeout = 10000L )
public void testConcurrency()
throws Exception
{
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
----------------------------------------------------------------------
diff --git a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
index d96b5ad..a3cce25 100644
--- a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
+++ b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
@@ -167,7 +167,7 @@ final class BasicRepositoryConnector
if ( executor == null )
{
executor =
- new ThreadPoolExecutor( maxThreads, maxThreads, 3, TimeUnit.SECONDS,
+ new ThreadPoolExecutor( maxThreads, maxThreads, 3L, TimeUnit.SECONDS,
new LinkedBlockingQueue<Runnable>(),
new WorkerThreadFactory( getClass().getSimpleName() + '-'
+ repository.getHost() + '-' ) );
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java
----------------------------------------------------------------------
diff --git a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java
index 3d05ff0..03868d3 100644
--- a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java
+++ b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java
@@ -22,7 +22,6 @@ package org.eclipse.aether.connector.basic;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
-import java.io.InputStream;
import java.nio.ByteBuffer;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@@ -136,41 +135,55 @@ final class ChecksumCalculator
{
checksum.reset();
}
- if ( dataOffset <= 0 )
+ if ( dataOffset <= 0L )
{
return;
}
-
- InputStream in = null;
try
{
- in = new FileInputStream( targetFile );
- long total = 0;
- ByteBuffer buffer = ByteBuffer.allocate( 1024 * 32 );
- for ( byte[] array = buffer.array(); total < dataOffset; )
+ FileInputStream fis = new FileInputStream( targetFile );
+ try
+ {
+ long total = 0L;
+ ByteBuffer buffer = ByteBuffer.allocate( 1024 * 32 );
+ for ( byte[] array = buffer.array(); total < dataOffset; )
+ {
+ int read = fis.read( array );
+ if ( read < 0 )
+ {
+ if ( total < dataOffset )
+ {
+ throw new IOException( targetFile + " contains only " + total
+ + " bytes, cannot resume download from offset " + dataOffset );
+ }
+ break;
+ }
+ total += read;
+ if ( total > dataOffset )
+ {
+ read -= total - dataOffset;
+ }
+ buffer.rewind();
+ buffer.limit( read );
+ update( buffer );
+ }
+ fis.close();
+ fis = null;
+ }
+ finally
{
- int read = in.read( array );
- if ( read < 0 )
+ try
{
- if ( total < dataOffset )
+ if ( fis != null )
{
- throw new IOException( targetFile + " contains only " + total
- + " bytes, cannot resume download from offset " + dataOffset );
+ fis.close();
}
- break;
}
- total += read;
- if ( total > dataOffset )
+ catch ( IOException e )
{
- read -= total - dataOffset;
+ // Suppressed
}
- buffer.rewind();
- buffer.limit( read );
- update( buffer );
}
-
- in.close();
- in = null;
}
catch ( IOException e )
{
@@ -179,20 +192,6 @@ final class ChecksumCalculator
checksum.error( e );
}
}
- finally
- {
- try
- {
- if ( in != null )
- {
- in.close();
- }
- }
- catch ( IOException e )
- {
- // Suppressed due to an exception already thrown in the try block.
- }
- }
}
public void update( ByteBuffer data )
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/PartialFile.java
----------------------------------------------------------------------
diff --git a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/PartialFile.java b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/PartialFile.java
index d360658..c222457 100644
--- a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/PartialFile.java
+++ b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/PartialFile.java
@@ -23,11 +23,9 @@ import java.io.Closeable;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
-import java.nio.channels.Channel;
import java.nio.channels.FileLock;
import java.nio.channels.OverlappingFileLockException;
import java.util.UUID;
-import java.util.concurrent.atomic.AtomicBoolean;
import org.eclipse.aether.spi.log.Logger;
@@ -59,24 +57,25 @@ final class PartialFile
private final FileLock lock;
- private final AtomicBoolean concurrent;
+ private final boolean concurrent;
public LockFile( File partFile, int requestTimeout, RemoteAccessChecker checker, Logger logger )
throws Exception
{
lockFile = new File( partFile.getPath() + EXT_LOCK );
- concurrent = new AtomicBoolean( false );
+ boolean[] concurrent = { false };
lock = lock( lockFile, partFile, requestTimeout, checker, logger, concurrent );
+ this.concurrent = concurrent[0];
}
private static FileLock lock( File lockFile, File partFile, int requestTimeout, RemoteAccessChecker checker,
- Logger logger, AtomicBoolean concurrent )
+ Logger logger, boolean[] concurrent )
throws Exception
{
boolean interrupted = false;
try
{
- for ( long lastLength = -1, lastTime = 0;; )
+ for ( long lastLength = -1L, lastTime = 0L;; )
{
FileLock lock = tryLock( lockFile );
if ( lock != null )
@@ -88,9 +87,9 @@ final class PartialFile
long currentTime = System.currentTimeMillis();
if ( currentLength != lastLength )
{
- if ( lastLength < 0 )
+ if ( lastLength < 0L )
{
- concurrent.set( true );
+ concurrent[0] = true;
/*
* NOTE: We're going with the optimistic assumption that the other thread is downloading the
* file from an equivalent repository. As a bare minimum, ensure the repository we are given
@@ -105,12 +104,12 @@ final class PartialFile
else if ( requestTimeout > 0 && currentTime - lastTime > Math.max( requestTimeout, 3 * 1000 ) )
{
throw new IOException( "Timeout while waiting for concurrent download of " + partFile
- + " to progress" );
+ + " to progress" );
}
try
{
- Thread.sleep( Math.max( requestTimeout / 2, 100 ) );
+ Thread.sleep( 100L );
}
catch ( InterruptedException e )
{
@@ -136,37 +135,27 @@ final class PartialFile
{
raf = new RandomAccessFile( lockFile, "rw" );
lock = raf.getChannel().tryLock( 0, 1, false );
-
if ( lock == null )
{
raf.close();
raf = null;
}
+ return lock;
}
catch ( OverlappingFileLockException e )
{
- close( raf );
- raf = null;
- lock = null;
+ return null;
}
catch ( RuntimeException e )
{
- close( raf );
- raf = null;
- if ( !lockFile.delete() )
- {
- lockFile.deleteOnExit();
- }
+ lockFile.delete();
+ lock = null;
throw e;
}
catch ( IOException e )
{
- close( raf );
- raf = null;
- if ( !lockFile.delete() )
- {
- lockFile.deleteOnExit();
- }
+ lockFile.delete();
+ lock = null;
throw e;
}
finally
@@ -180,64 +169,20 @@ final class PartialFile
}
catch ( final IOException e )
{
- // Suppressed due to an exception already thrown in the try block.
+ // Suppressed
}
}
-
- return lock;
- }
-
- private static void close( Closeable file )
- {
- try
- {
- if ( file != null )
- {
- file.close();
- }
- }
- catch ( IOException e )
- {
- // Suppressed.
- }
}
public boolean isConcurrent()
{
- return concurrent.get();
+ return concurrent;
}
public void close() throws IOException
{
- Channel channel = null;
- try
- {
- channel = lock.channel();
- lock.release();
- channel.close();
- channel = null;
- }
- finally
- {
- try
- {
- if ( channel != null )
- {
- channel.close();
- }
- }
- catch ( final IOException e )
- {
- // Suppressed due to an exception already thrown in the try block.
- }
- finally
- {
- if ( !lockFile.delete() )
- {
- lockFile.deleteOnExit();
- }
- }
- }
+ lock.channel().close();
+ lockFile.delete();
}
@Override
@@ -276,7 +221,7 @@ final class PartialFile
long reqTimestamp = System.currentTimeMillis();
LockFile lockFile = new LockFile( partFile, requestTimeout, checker, logger );
- if ( lockFile.isConcurrent() && dstFile.lastModified() >= reqTimestamp - 100 )
+ if ( lockFile.isConcurrent() && dstFile.lastModified() >= reqTimestamp - 100L )
{
lockFile.close();
return null;
@@ -315,7 +260,7 @@ final class PartialFile
private PartialFile( File partFile, Logger logger )
{
- this( partFile, null, 0, logger );
+ this( partFile, null, 0L, logger );
}
private PartialFile( File partFile, LockFile lockFile, long threshold, Logger logger )
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PartialFileTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PartialFileTest.java b/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PartialFileTest.java
index b6fd701..104c6c3 100644
--- a/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PartialFileTest.java
+++ b/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PartialFileTest.java
@@ -26,7 +26,6 @@ import java.io.Closeable;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.OutputStream;
import java.io.RandomAccessFile;
import java.nio.channels.FileLock;
import java.util.ArrayList;
@@ -98,91 +97,48 @@ public class PartialFileTest
@Override
public void run()
{
- RandomAccessFile raf = null;
- FileLock lock = null;
- OutputStream out = null;
try
{
- raf = new RandomAccessFile( lockFile, "rw" );
- lock = raf.getChannel().lock( 0, 1, false );
- locked.countDown();
- out = new FileOutputStream( partFile );
- for ( int i = 0, n = Math.abs( length ); i < n; i++ )
- {
- for ( long start = System.currentTimeMillis(); System.currentTimeMillis() - start < sleep; )
- {
- Thread.sleep( 10 );
- }
- out.write( 65 );
- out.flush();
- System.out.println( " " + System.currentTimeMillis() + " Wrote byte " + ( i + 1 ) + "/"
- + n );
- }
- if ( length >= 0 && !dstFile.setLastModified( System.currentTimeMillis() ) )
- {
- throw new IOException( "Could not update destination file" );
- }
-
- out.close();
- out = null;
- lock.release();
- lock = null;
- raf.close();
- raf = null;
- }
- catch ( Exception e )
- {
- error = e;
- }
- finally
- {
+ RandomAccessFile raf = new RandomAccessFile( lockFile, "rw" );
try
{
- if ( out != null )
- {
- out.close();
- }
- }
- catch ( final IOException e )
- {
- // Suppressed due to an exception already thrown in the try block.
- }
- finally
- {
+ FileLock lock = raf.getChannel().lock( 0, 1, false );
+ locked.countDown();
+ FileOutputStream fos = new FileOutputStream( partFile );
try
{
- if ( lock != null )
+ for ( int i = 0, n = Math.abs( length ); i < n; i++ )
{
- lock.release();
- }
- }
- catch ( final IOException e )
- {
- // Suppressed due to an exception already thrown in the try block.
- }
- finally
- {
- try
- {
- if ( raf != null )
+ for ( long start = System.currentTimeMillis(); System.currentTimeMillis() - start < sleep; )
{
- raf.close();
+ Thread.sleep( 10L );
}
+ fos.write( 65 );
+ fos.flush();
+ System.out.println( " " + System.currentTimeMillis() + " Wrote byte " + ( i + 1 ) + "/"
+ + n );
}
- catch ( final IOException e )
- {
- // Suppressed due to an exception already thrown in the try block.
- }
- finally
+ if ( length >= 0 && !dstFile.setLastModified( System.currentTimeMillis() ) )
{
- if ( !lockFile.delete() )
- {
- lockFile.deleteOnExit();
- }
+ throw new IOException( "Could not update destination file" );
}
}
+ finally
+ {
+ fos.close();
+ }
+ lock.release();
+ }
+ finally
+ {
+ raf.close();
+ lockFile.delete();
}
}
+ catch ( Exception e )
+ {
+ error = e;
+ }
}
}
@@ -212,7 +168,7 @@ public class PartialFileTest
throws Exception
{
PartialFile.Factory factory =
- new PartialFile.Factory( resumeThreshold >= 0, resumeThreshold, requestTimeout,
+ new PartialFile.Factory( resumeThreshold >= 0L, resumeThreshold, requestTimeout,
new TestLoggerFactory().getLogger( "" ) );
PartialFile partFile = factory.newInstance( dstFile, remoteAccessChecker );
if ( partFile != null )
@@ -301,7 +257,7 @@ public class PartialFileTest
partialFile.close();
}
- @Test( timeout = 10000 )
+ @Test( timeout = 10000L )
public void testResumeConcurrently_RequestTimeout()
throws Exception
{
@@ -320,12 +276,12 @@ public class PartialFileTest
writer.join();
}
- @Test( timeout = 10000 )
+ @Test( timeout = 10000L )
public void testResumeConcurrently_AwaitCompletion_ConcurrentWriterSucceeds()
throws Exception
{
assumeTrue( PROPER_LOCK_SUPPORT );
- assertTrue( dstFile.setLastModified( System.currentTimeMillis() - 60 * 1000 ) );
+ assertTrue( dstFile.setLastModified( System.currentTimeMillis() - 60L * 1000L ) );
ConcurrentWriter writer = new ConcurrentWriter( dstFile, 100, 10 );
assertNull( newPartialFile( 0, 500 ) );
writer.join();
@@ -333,12 +289,12 @@ public class PartialFileTest
assertEquals( 1, remoteAccessChecker.invocations );
}
- @Test( timeout = 10000 )
+ @Test( timeout = 10000L )
public void testResumeConcurrently_AwaitCompletion_ConcurrentWriterFails()
throws Exception
{
assumeTrue( PROPER_LOCK_SUPPORT );
- assertTrue( dstFile.setLastModified( System.currentTimeMillis() - 60 * 1000 ) );
+ assertTrue( dstFile.setLastModified( System.currentTimeMillis() - 60L * 1000L ) );
ConcurrentWriter writer = new ConcurrentWriter( dstFile, 100, -10 );
PartialFile partialFile = newPartialFile( 0, 500 );
assertNotNull( partialFile );
@@ -348,7 +304,7 @@ public class PartialFileTest
assertEquals( 1, remoteAccessChecker.invocations );
}
- @Test( timeout = 10000 )
+ @Test( timeout = 10000L )
public void testResumeConcurrently_CheckRemoteAccess()
throws Exception
{
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java
index eb2226d..6ba2915 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java
@@ -153,7 +153,7 @@ public class DefaultFileProcessor
public long copy( File source, File target, ProgressListener listener )
throws IOException
{
- long total = 0;
+ long total = 0L;
InputStream in = null;
OutputStream out = null;
@@ -208,7 +208,7 @@ public class DefaultFileProcessor
private long copy( OutputStream os, InputStream is, ProgressListener listener )
throws IOException
{
- long total = 0;
+ long total = 0L;
ByteBuffer buffer = ByteBuffer.allocate( 1024 * 32 );
byte[] array = buffer.array();
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java
index 07dfb9e..f7827a1 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java
@@ -152,7 +152,7 @@ public class DefaultUpdateCheckManager
else
{
// this is the first attempt ever
- lastUpdated = 0;
+ lastUpdated = 0L;
}
}
else if ( error.length() <= 0 )
@@ -167,7 +167,7 @@ public class DefaultUpdateCheckManager
lastUpdated = getLastUpdated( props, transferKey );
}
- if ( lastUpdated == 0 )
+ if ( lastUpdated == 0L )
{
check.setRequired( true );
}
@@ -285,7 +285,7 @@ public class DefaultUpdateCheckManager
else
{
// this is the first attempt ever
- lastUpdated = 0;
+ lastUpdated = 0L;
}
}
else if ( error.length() <= 0 )
@@ -300,7 +300,7 @@ public class DefaultUpdateCheckManager
lastUpdated = getLastUpdated( props, transferKey );
}
- if ( lastUpdated == 0 )
+ if ( lastUpdated == 0L )
{
check.setRequired( true );
}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultVersionFilterContext.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultVersionFilterContext.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultVersionFilterContext.java
index 2007368..1ce4437 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultVersionFilterContext.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultVersionFilterContext.java
@@ -72,7 +72,7 @@ final class DefaultVersionFilterContext
{
for ( int i = count - 1; i >= 0; i-- )
{
- deleted[i] = 0;
+ deleted[i] = (byte) 0;
}
}
}
@@ -166,7 +166,7 @@ final class DefaultVersionFilterContext
private void advance()
{
- for ( next = index + 1; next < size && deleted[next] != 0; next++ )
+ for ( next = index + 1; next < size && deleted[next] != (byte) 0; next++ )
{
// just advancing index
}
@@ -198,11 +198,11 @@ final class DefaultVersionFilterContext
{
throw new ConcurrentModificationException();
}
- if ( index < 0 || deleted[index] == 1 )
+ if ( index < 0 || deleted[index] == (byte) 1 )
{
throw new IllegalStateException();
}
- deleted[index] = 1;
+ deleted[index] = (byte) 1;
count = --DefaultVersionFilterContext.this.count;
}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java
index cfd2013..904c840 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java
@@ -47,7 +47,7 @@ public class EnhancedLocalRepositoryManagerFactory
private Logger logger = NullLoggerFactory.LOGGER;
- private float priority = 10;
+ private float priority = 10.0f;
public EnhancedLocalRepositoryManagerFactory()
{
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java
index 9d75606..0e4a18e 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java
@@ -220,7 +220,7 @@ class TrackingFileManager
}
try
{
- Thread.sleep( 50 );
+ Thread.sleep( 50L );
}
catch ( InterruptedException e1 )
{
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultFileProcessorTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultFileProcessorTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultFileProcessorTest.java
index 3f8ab5e..7b48230 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultFileProcessorTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultFileProcessorTest.java
@@ -98,7 +98,7 @@ public class DefaultFileProcessorTest
File target = new File( targetDir, "testCopyEmptyFile" );
target.delete();
fileProcessor.copy( file, target );
- assertTrue( "empty file was not copied", target.exists() && target.length() == 0 );
+ assertTrue( "empty file was not copied", target.exists() && target.length() == 0L );
target.delete();
}
@@ -120,7 +120,7 @@ public class DefaultFileProcessorTest
};
fileProcessor.copy( file, target, listener );
assertTrue( "file was not created", target.isFile() );
- assertEquals( "file was not fully copied", 4, target.length() );
+ assertEquals( "file was not fully copied", 4L, target.length() );
assertEquals( "listener not called", 4, progressed.intValue() );
target.delete();
}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManagerTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManagerTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManagerTest.java
index 8686ee8..9cb299c 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManagerTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManagerTest.java
@@ -53,7 +53,7 @@ import org.junit.Test;
public class DefaultUpdateCheckManagerTest
{
- private static final int HOUR = 60 * 60 * 1000;
+ private static final long HOUR = 60L * 60L * 1000L;
private DefaultUpdateCheckManager manager;
@@ -543,7 +543,7 @@ public class DefaultUpdateCheckManagerTest
throws Exception
{
UpdateCheck<Artifact, ArtifactTransferException> check = newArtifactCheck();
- long fifteenMinutes = new Date().getTime() - ( 15 * 60 * 1000 );
+ long fifteenMinutes = new Date().getTime() - ( 15L * 60L * 1000L );
check.getFile().setLastModified( fifteenMinutes );
// time is truncated on setLastModfied
fifteenMinutes = check.getFile().lastModified();
@@ -553,7 +553,7 @@ public class DefaultUpdateCheckManagerTest
assertEquals( true, check.isRequired() );
// just checked
- check.setLocalLastUpdated( 0 );
+ check.setLocalLastUpdated( 0L );
long lastUpdate = new Date().getTime();
check.getFile().setLastModified( lastUpdate );
lastUpdate = check.getFile().lastModified();
@@ -562,7 +562,7 @@ public class DefaultUpdateCheckManagerTest
assertEquals( false, check.isRequired() );
// no local file, no repo timestamp
- check.setLocalLastUpdated( 0 );
+ check.setLocalLastUpdated( 0L );
check.getFile().delete();
manager.checkArtifact( session, check );
assertEquals( true, check.isRequired() );
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerTest.java
index 41bf542..32a4222 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerTest.java
@@ -131,13 +131,13 @@ public class EnhancedLocalRepositoryManagerTest
String path = manager.getPathForRemoteArtifact( artifact, repository, testContext );
return copy( artifact, path );
}
-
+
private long copy( Metadata metadata, String path )
throws IOException
{
if ( metadata.getFile() == null )
{
- return -1;
+ return -1L;
}
return TestFileUtils.copyFile( metadata.getFile(), new File( basedir, path ) );
}
@@ -147,7 +147,7 @@ public class EnhancedLocalRepositoryManagerTest
{
if ( artifact.getFile() == null )
{
- return -1;
+ return -1L;
}
File artifactFile = new File( basedir, path );
return TestFileUtils.copyFile( artifact.getFile(), artifactFile );
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StaticUpdateCheckManager.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StaticUpdateCheckManager.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StaticUpdateCheckManager.java
index 7810089..334d544 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StaticUpdateCheckManager.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StaticUpdateCheckManager.java
@@ -60,7 +60,7 @@ class StaticUpdateCheckManager
{
check.setRequired( checkRequired );
- if ( check.getLocalLastUpdated() != 0 && localUpToDate )
+ if ( check.getLocalLastUpdated() != 0L && localUpToDate )
{
check.setRequired( false );
}
@@ -74,7 +74,7 @@ class StaticUpdateCheckManager
{
check.setRequired( checkRequired );
- if ( check.getLocalLastUpdated() != 0 && localUpToDate )
+ if ( check.getLocalLastUpdated() != 0L && localUpToDate )
{
check.setRequired( false );
}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java
----------------------------------------------------------------------
diff --git a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java
index 03864d3..21488a1 100644
--- a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java
+++ b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java
@@ -98,8 +98,8 @@ public abstract class AbstractTransporter
OutputStream os = null;
try
{
- task.getListener().transportStarted( resume ? task.getResumeOffset() : 0, length );
os = task.newOutputStream( resume );
+ task.getListener().transportStarted( resume ? task.getResumeOffset() : 0L, length );
copy( os, is, task.getListener() );
os.close();
os = null;
@@ -121,7 +121,7 @@ public abstract class AbstractTransporter
}
catch ( final IOException e )
{
- // Suppressed due to an exception already thrown in the try block.
+ // Suppressed
}
finally
{
@@ -134,7 +134,7 @@ public abstract class AbstractTransporter
}
catch ( final IOException e )
{
- // Suppressed due to an exception already thrown in the try block.
+ // Suppressed
}
}
}
@@ -168,55 +168,55 @@ public abstract class AbstractTransporter
* @throws IOException If the transfer encountered an I/O error.
* @throws TransferCancelledException If the transfer was cancelled.
*/
- protected void utilPut( PutTask task, OutputStream os, boolean close )
+ protected void utilPut( PutTask task, OutputStream out, boolean close )
throws IOException, TransferCancelledException
{
- InputStream is = null;
+ InputStream in = null;
try
{
+ in = task.newInputStream();
task.getListener().transportStarted( 0, task.getDataLength() );
- is = task.newInputStream();
- copy( os, is, task.getListener() );
+ copy( out, in, task.getListener() );
if ( close )
{
- os.close();
+ out.close();
}
else
{
- os.flush();
+ out.flush();
}
- os = null;
+ out = null;
- is.close();
- is = null;
+ in.close();
+ in = null;
}
finally
{
try
{
- if ( close && os != null )
+ if ( close && out != null )
{
- os.close();
+ out.close();
}
}
catch ( final IOException e )
{
- // Suppressed due to an exception already thrown in the try block.
+ // Suppressed
}
finally
{
try
{
- if ( is != null )
+ if ( in != null )
{
- is.close();
+ in.close();
}
}
catch ( final IOException e )
{
- // Suppressed due to an exception already thrown in the try block.
+ // Suppressed
}
}
}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java
----------------------------------------------------------------------
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java
index 0277442..118ef13 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java
@@ -197,7 +197,7 @@ public class TestFileProcessor
private long copy( OutputStream os, InputStream is, ProgressListener listener )
throws IOException
{
- long total = 0;
+ long total = 0L;
ByteBuffer buffer = ByteBuffer.allocate( 1024 * 32 );
byte[] array = buffer.array();
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileUtils.java
----------------------------------------------------------------------
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileUtils.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileUtils.java
index f59199f..a1715b5 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileUtils.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileUtils.java
@@ -20,6 +20,7 @@ package org.eclipse.aether.internal.test.util;
*/
import java.io.BufferedOutputStream;
+import java.io.Closeable;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -179,11 +180,25 @@ public class TestFileUtils
return tmpFile;
}
- public static long copyFile( File source, File target )
+ private static void close( Closeable c )
throws IOException
{
- long total = 0;
+ if ( c != null )
+ {
+ try
+ {
+ c.close();
+ }
+ catch ( IOException e )
+ {
+ // ignore
+ }
+ }
+ }
+ public static long copyFile( File source, File target )
+ throws IOException
+ {
FileInputStream fis = null;
OutputStream fos = null;
try
@@ -194,6 +209,8 @@ public class TestFileUtils
fos = new BufferedOutputStream( new FileOutputStream( target ) );
+ long total = 0L;
+
for ( byte[] buffer = new byte[ 1024 * 32 ];; )
{
int bytes = fis.read( buffer );
@@ -212,37 +229,14 @@ public class TestFileUtils
fis.close();
fis = null;
+
+ return total;
}
finally
{
- try
- {
- if ( fos != null )
- {
- fos.close();
- }
- }
- catch ( final IOException e )
- {
- // Suppressed due to an exception already thrown in the try block.
- }
- finally
- {
- try
- {
- if ( fis != null )
- {
- fis.close();
- }
- }
- catch ( final IOException e )
- {
- // Suppressed due to an exception already thrown in the try block.
- }
- }
+ close( fis );
+ close( fos );
}
-
- return total;
}
public static byte[] readBytes( File file )
@@ -252,7 +246,7 @@ public class TestFileUtils
try
{
in = new RandomAccessFile( file, "r" );
- byte[] actual = new byte[ (int) in.length() ];
+ byte[] actual = new byte[(int) in.length()];
in.readFully( actual );
in.close();
in = null;
@@ -260,17 +254,7 @@ public class TestFileUtils
}
finally
{
- try
- {
- if ( in != null )
- {
- in.close();
- }
- }
- catch ( final IOException e )
- {
- // Suppressed due to an exception already thrown in the try block.
- }
+ close( in );
}
}
@@ -292,17 +276,7 @@ public class TestFileUtils
}
finally
{
- try
- {
- if ( out != null )
- {
- out.close();
- }
- }
- catch ( final IOException e )
- {
- // Suppressed due to an exception already thrown in the try block.
- }
+ close( out );
}
}
@@ -332,17 +306,7 @@ public class TestFileUtils
}
finally
{
- try
- {
- if ( fis != null )
- {
- fis.close();
- }
- }
- catch ( final IOException e )
- {
- // Suppressed due to an exception already thrown in the try block.
- }
+ close( fis );
}
}
@@ -361,17 +325,7 @@ public class TestFileUtils
}
finally
{
- try
- {
- if ( fos != null )
- {
- fos.close();
- }
- }
- catch ( final IOException e )
- {
- // Suppressed due to an exception already thrown in the try block.
- }
+ close( fos );
}
}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/ClasspathTransporterTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/ClasspathTransporterTest.java b/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/ClasspathTransporterTest.java
index 6022cb2..0f7647c 100644
--- a/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/ClasspathTransporterTest.java
+++ b/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/ClasspathTransporterTest.java
@@ -144,8 +144,8 @@ public class ClasspathTransporterTest
GetTask task = new GetTask( URI.create( "file.txt" ) ).setListener( listener );
transporter.get( task );
assertEquals( "test", task.getDataString() );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -160,8 +160,8 @@ public class ClasspathTransporterTest
GetTask task = new GetTask( URI.create( "file.txt" ) ).setDataFile( file ).setListener( listener );
transporter.get( task );
assertEquals( "test", TestFileUtils.readString( file ) );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "test", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -176,8 +176,8 @@ public class ClasspathTransporterTest
GetTask task = new GetTask( URI.create( "empty.txt" ) ).setDataFile( file ).setListener( listener );
transporter.get( task );
assertEquals( "", TestFileUtils.readString( file ) );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 0, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 0L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 0, listener.progressedCount );
assertEquals( "", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -269,8 +269,8 @@ public class ClasspathTransporterTest
{
assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
}
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 0, listener.progressedCount );
}
@@ -291,8 +291,8 @@ public class ClasspathTransporterTest
{
assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
}
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 1, listener.progressedCount );
}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/FileTransporterTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/FileTransporterTest.java b/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/FileTransporterTest.java
index b4bf066..dd65bf0 100644
--- a/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/FileTransporterTest.java
+++ b/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/FileTransporterTest.java
@@ -150,8 +150,8 @@ public class FileTransporterTest
GetTask task = new GetTask( URI.create( "file.txt" ) ).setListener( listener );
transporter.get( task );
assertEquals( "test", task.getDataString() );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -166,8 +166,8 @@ public class FileTransporterTest
GetTask task = new GetTask( URI.create( "file.txt" ) ).setDataFile( file ).setListener( listener );
transporter.get( task );
assertEquals( "test", TestFileUtils.readString( file ) );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "test", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -182,8 +182,8 @@ public class FileTransporterTest
GetTask task = new GetTask( URI.create( "empty.txt" ) ).setDataFile( file ).setListener( listener );
transporter.get( task );
assertEquals( "", TestFileUtils.readString( file ) );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 0, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 0L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 0, listener.progressedCount );
assertEquals( "", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
@@ -275,8 +275,8 @@ public class FileTransporterTest
{
assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
}
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 0, listener.progressedCount );
}
@@ -297,8 +297,8 @@ public class FileTransporterTest
{
assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
}
- assertEquals( 0, listener.dataOffset );
- assertEquals( 4, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 4L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 1, listener.progressedCount );
}
@@ -310,8 +310,8 @@ public class FileTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "file.txt" ) ).setListener( listener ).setDataString( "upload" );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "file.txt" ) ) );
@@ -325,8 +325,8 @@ public class FileTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "file.txt" ) ).setListener( listener ).setDataFile( file );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "file.txt" ) ) );
@@ -339,8 +339,8 @@ public class FileTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "file.txt" ) ).setListener( listener );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 0, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 0L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 0, listener.progressedCount );
assertEquals( "", TestFileUtils.readString( new File( repoDir, "file.txt" ) ) );
@@ -354,8 +354,8 @@ public class FileTransporterTest
PutTask task =
new PutTask( URI.create( "dir/sub/dir/file.txt" ) ).setListener( listener ).setDataString( "upload" );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "upload", TestFileUtils.readString( new File( repoDir, "dir/sub/dir/file.txt" ) ) );
@@ -368,8 +368,8 @@ public class FileTransporterTest
RecordingTransportListener listener = new RecordingTransportListener();
PutTask task = new PutTask( URI.create( "some%20space.txt" ) ).setListener( listener ).setDataString( "OK" );
transporter.put( task );
- assertEquals( 0, listener.dataOffset );
- assertEquals( 2, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 2L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
assertEquals( "OK", TestFileUtils.readString( new File( repoDir, "some space.txt" ) ) );
@@ -421,8 +421,8 @@ public class FileTransporterTest
{
assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
}
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 0, listener.progressedCount );
assertFalse( new File( repoDir, "file.txt" ).exists() );
@@ -444,8 +444,8 @@ public class FileTransporterTest
{
assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
}
- assertEquals( 0, listener.dataOffset );
- assertEquals( 6, listener.dataLength );
+ assertEquals( 0L, listener.dataOffset );
+ assertEquals( 6L, listener.dataLength );
assertEquals( 1, listener.startedCount );
assertEquals( 1, listener.progressedCount );
assertFalse( new File( repoDir, "file.txt" ).exists() );
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
index f0b0a6f..1217279 100644
--- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
+++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
@@ -456,11 +456,11 @@ final class HttpTransporter
private <T extends HttpUriRequest> T resume( T request, GetTask task )
{
long resumeOffset = task.getResumeOffset();
- if ( resumeOffset > 0 && task.getDataFile() != null )
+ if ( resumeOffset > 0L && task.getDataFile() != null )
{
request.setHeader( HttpHeaders.RANGE, "bytes=" + Long.toString( resumeOffset ) + '-' );
request.setHeader( HttpHeaders.IF_UNMODIFIED_SINCE,
- DateUtils.formatDate( new Date( task.getDataFile().lastModified() - 60 * 1000 ) ) );
+ DateUtils.formatDate( new Date( task.getDataFile().lastModified() - 60L * 1000L ) ) );
request.setHeader( HttpHeaders.ACCEPT_ENCODING, "identity" );
}
return request;
@@ -503,7 +503,7 @@ final class HttpTransporter
entity = new ByteArrayEntity( new byte[0] );
}
- long offset = 0, length = entity.getContentLength();
+ long offset = 0L, length = entity.getContentLength();
String range = getHeader( response, HttpHeaders.CONTENT_RANGE );
if ( range != null )
{
@@ -513,8 +513,8 @@ final class HttpTransporter
throw new IOException( "Invalid Content-Range header for partial download: " + range );
}
offset = Long.parseLong( m.group( 1 ) );
- length = Long.parseLong( m.group( 2 ) ) + 1;
- if ( offset < 0 || offset >= length || ( offset > 0 && offset != task.getResumeOffset() ) )
+ length = Long.parseLong( m.group( 2 ) ) + 1L;
+ if ( offset < 0L || offset >= length || ( offset > 0L && offset != task.getResumeOffset() ) )
{
throw new IOException( "Invalid Content-Range header for partial download from offset "
+ task.getResumeOffset() + ": " + range );
@@ -522,7 +522,7 @@ final class HttpTransporter
}
InputStream is = entity.getContent();
- utilGet( task, is, true, length, offset > 0 );
+ utilGet( task, is, true, length, offset > 0L );
extractChecksums( response );
}
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java
index e9a9bfd..77d2141 100644
--- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java
+++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java
@@ -44,7 +44,7 @@ public final class HttpTransporterFactory
private Logger logger = NullLoggerFactory.LOGGER;
- private float priority = 5;
+ private float priority = 5.0f;
/**
* Creates an (uninitialized) instance of this transporter factory. <em>Note:</em> In case of manual instantiation
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/f7595300/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java b/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
index 0a7349f..02438e5 100644
--- a/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
+++ b/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
@@ -49,7 +49,6 @@ import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.server.ssl.SslSelectChannelConnector;
import org.eclipse.jetty.util.B64Code;
import org.eclipse.jetty.util.IO;
-import org.eclipse.jetty.util.StringUtil;
import org.eclipse.jetty.util.URIUtil;
import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.slf4j.Logger;
@@ -82,9 +81,22 @@ public class HttpServer
}
+ public enum WebDav
+ {
+ /** DAV header advertised, MKCOL required for missing parent directories */
+ REQUIRED,
+ /** DAV header advertised, MKCOL supported but not required */
+ OPTIONAL
+ }
+
public enum ExpectContinue
{
- FAIL, PROPER, BROKEN
+ /** reject request with "Expectation Failed" */
+ FAIL,
+ /** send "Continue" only if request made it past authentication */
+ PROPER,
+ /** send "Continue" before authentication has been checked */
+ BROKEN
}
public enum ChecksumHeader
@@ -94,11 +106,13 @@ public class HttpServer
private static final Logger log = LoggerFactory.getLogger( HttpServer.class );
+ private String serverHeader = "Dummy";
+
private File repoDir;
private boolean rangeSupport = true;
- private boolean webDav;
+ private WebDav webDav;
private ExpectContinue expectContinue = ExpectContinue.PROPER;
@@ -110,6 +124,8 @@ public class HttpServer
private Connector httpsConnector;
+ private String credentialEncoding = StandardCharsets.ISO_8859_1.name();
+
private String username;
private String password;
@@ -156,14 +172,17 @@ public class HttpServer
ssl.setTrustStorePassword( "client-pwd" );
ssl.setNeedClientAuth( true );
httpsConnector = new SslSelectChannelConnector( ssl );
- server.addConnector( httpsConnector );
- try
+ if ( server != null )
{
- httpsConnector.start();
- }
- catch ( Exception e )
- {
- throw new IllegalStateException( e );
+ server.addConnector( httpsConnector );
+ try
+ {
+ httpsConnector.start();
+ }
+ catch ( Exception e )
+ {
+ throw new IllegalStateException( e );
+ }
}
}
return this;
@@ -174,6 +193,12 @@ public class HttpServer
return logEntries;
}
+ public HttpServer setServer( String server )
+ {
+ this.serverHeader = server;
+ return this;
+ }
+
public HttpServer setRepoDir( File repoDir )
{
this.repoDir = repoDir;
@@ -186,7 +211,7 @@ public class HttpServer
return this;
}
- public HttpServer setWebDav( boolean webDav )
+ public HttpServer setWebDav( WebDav webDav )
{
this.webDav = webDav;
return this;
@@ -204,6 +229,12 @@ public class HttpServer
return this;
}
+ public HttpServer setCredentialEncoding( String credentialEncoding )
+ {
+ this.credentialEncoding = ( credentialEncoding != null ) ? credentialEncoding : StandardCharsets.ISO_8859_1.name();
+ return this;
+ }
+
public HttpServer setAuthentication( String username, String password )
{
this.username = username;
@@ -229,6 +260,7 @@ public class HttpServer
httpConnector = new SelectChannelConnector();
HandlerList handlers = new HandlerList();
+ handlers.addHandler( new CommonHandler() );
handlers.addHandler( new LogHandler() );
handlers.addHandler( new ProxyAuthHandler() );
handlers.addHandler( new AuthHandler() );
@@ -237,6 +269,10 @@ public class HttpServer
server = new Server();
server.addConnector( httpConnector );
+ if ( httpsConnector != null )
+ {
+ server.addConnector( httpsConnector );
+ }
server.setHandler( handlers );
server.start();
@@ -255,6 +291,18 @@ public class HttpServer
}
}
+ private class CommonHandler
+ extends AbstractHandler
+ {
+
+ public void handle( String target, Request req, HttpServletRequest request, HttpServletResponse response )
+ throws IOException
+ {
+ response.setHeader( HttpHeaders.SERVER, serverHeader );
+ }
+
+ }
+
private class LogHandler
extends AbstractHandler
{
@@ -318,12 +366,12 @@ public class HttpServer
return;
}
long ifUnmodifiedSince = request.getDateHeader( HttpHeaders.IF_UNMODIFIED_SINCE );
- if ( ifUnmodifiedSince != -1 && file.lastModified() > ifUnmodifiedSince )
+ if ( ifUnmodifiedSince != -1L && file.lastModified() > ifUnmodifiedSince )
{
response.setStatus( HttpServletResponse.SC_PRECONDITION_FAILED );
return;
}
- long offset = 0;
+ long offset = 0L;
String range = request.getHeader( HttpHeaders.RANGE );
if ( range != null && rangeSupport )
{
@@ -338,18 +386,18 @@ public class HttpServer
}
}
String encoding = request.getHeader( HttpHeaders.ACCEPT_ENCODING );
- if ( ( encoding != null && !"identity".equals( encoding ) ) || ifUnmodifiedSince == -1 )
+ if ( ( encoding != null && !"identity".equals( encoding ) ) || ifUnmodifiedSince == -1L )
{
response.setStatus( HttpServletResponse.SC_BAD_REQUEST );
return;
}
}
- response.setStatus( ( offset > 0 ) ? HttpServletResponse.SC_PARTIAL_CONTENT : HttpServletResponse.SC_OK );
+ response.setStatus( ( offset > 0L ) ? HttpServletResponse.SC_PARTIAL_CONTENT : HttpServletResponse.SC_OK );
response.setDateHeader( HttpHeaders.LAST_MODIFIED, file.lastModified() );
response.setHeader( HttpHeaders.CONTENT_LENGTH, Long.toString( file.length() - offset ) );
- if ( offset > 0 )
+ if ( offset > 0L )
{
- response.setHeader( HttpHeaders.CONTENT_RANGE, "bytes " + offset + "-" + ( file.length() - 1 )
+ response.setHeader( HttpHeaders.CONTENT_RANGE, "bytes " + offset + "-" + ( file.length() - 1L )
+ "/" + file.length() );
}
if ( checksumHeader != null )
@@ -366,11 +414,10 @@ public class HttpServer
{
return;
}
- FileInputStream is = null;
+ FileInputStream is = new FileInputStream( file );
try
{
- is = new FileInputStream( file );
- if ( offset > 0 )
+ if ( offset > 0L )
{
long skipped = is.skip( offset );
while ( skipped < offset && is.read() >= 0 )
@@ -379,27 +426,15 @@ public class HttpServer
}
}
IO.copy( is, response.getOutputStream() );
- is.close();
- is = null;
}
finally
{
- try
- {
- if ( is != null )
- {
- is.close();
- }
- }
- catch ( final IOException e )
- {
- // Suppressed due to an exception already thrown in the try block.
- }
+ IO.close( is );
}
}
else if ( HttpMethods.PUT.equals( req.getMethod() ) )
{
- if ( !webDav )
+ if ( !WebDav.REQUIRED.equals( webDav ) )
{
file.getParentFile().mkdirs();
}
@@ -407,27 +442,14 @@ public class HttpServer
{
try
{
- FileOutputStream os = null;
+ FileOutputStream os = new FileOutputStream( file );
try
{
- os = new FileOutputStream( file );
IO.copy( request.getInputStream(), os );
- os.close();
- os = null;
}
finally
{
- try
- {
- if ( os != null )
- {
- os.close();
- }
- }
- catch ( final IOException e )
- {
- // Suppressed due to an exception already thrown in the try block.
- }
+ os.close();
}
}
catch ( IOException e )
@@ -444,14 +466,14 @@ public class HttpServer
}
else if ( HttpMethods.OPTIONS.equals( req.getMethod() ) )
{
- if ( webDav )
+ if ( webDav != null )
{
response.setHeader( "DAV", "1,2" );
}
response.setHeader( HttpHeaders.ALLOW, "GET, PUT, HEAD, OPTIONS" );
response.setStatus( HttpServletResponse.SC_OK );
}
- else if ( webDav && "MKCOL".equals( req.getMethod() ) )
+ else if ( webDav != null && "MKCOL".equals( req.getMethod() ) )
{
if ( file.exists() )
{
@@ -489,11 +511,17 @@ public class HttpServer
req.setHandled( true );
StringBuilder location = new StringBuilder( 128 );
String scheme = req.getParameter( "scheme" );
+ String host = req.getParameter( "host" );
+ String port = req.getParameter( "port" );
location.append( scheme != null ? scheme : req.getScheme() );
location.append( "://" );
- location.append( req.getServerName() );
+ location.append( host != null ? host : req.getServerName() );
location.append( ":" );
- if ( "http".equalsIgnoreCase( scheme ) )
+ if ( port != null )
+ {
+ location.append( port );
+ }
+ else if ( "http".equalsIgnoreCase( scheme ) )
{
location.append( getHttpPort() );
}
@@ -560,7 +588,7 @@ public class HttpServer
}
- static boolean checkBasicAuth( String credentials, String username, String password )
+ boolean checkBasicAuth( String credentials, String username, String password )
{
if ( credentials != null )
{
@@ -573,7 +601,7 @@ public class HttpServer
credentials = credentials.substring( space + 1 );
try
{
- credentials = B64Code.decode( credentials, StringUtil.__ISO_8859_1 );
+ credentials = B64Code.decode( credentials, credentialEncoding );
}
catch ( UnsupportedEncodingException e )
{