[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385850
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
+
+fi

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385010
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
 
 Review comment:
   space missing


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385807
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
+
+fi

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385251
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
+
+fi

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385725
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
+
+fi

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211384950
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
 
 Review comment:
   space missing


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385080
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
 
 Review comment

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385140
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
+
+fi

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385831
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
+
+fi

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211384415
 
 

 ##
 File path: wagon-providers/wagon-http/src/site/apt/index.apt
 ##
 @@ -57,3 +57,22 @@ Features
  * <<>> = true/false (default 
false), ignore issues with certificate dates.
 
  * <<>> = time in ms (default 180), read time out.
+
+ []
+
+ Since version 3.2, the retry handler can be configured as well with system 
properties:
+
+ * <<>> supports this set of values:
+ 
+* which implementation to use. `auto` will use 
`DefaultHttpRequestRetryHandler.INSTANCE`.
 
 Review comment:
   We agreed to drop auto.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385288
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
+
+fi

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211383488
 
 

 ##
 File path: 
wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
 ##
 @@ -354,6 +360,92 @@ private static PoolingHttpClientConnectionManager 
createConnManager()
 return connManager;
 }
 
+/**
+ * The type of the retry handler, default to 
DefaultHttpRequestRetryHandler.
+ * Values can be default, standard (StandardHttpRequestRetryHandler), or a 
fully qualified name class.
+ *
+ * @since 3.2
+ */
+private static final String RETRY_HANDLER_CLASS =
+System.getProperty( "maven.wagon.http.retryhandler.class", 
"standard" );
+
+/**
+ * true if it's OK to retry non-idempotent requests that have been sent.
 
 Review comment:
   This statement is not true. The original documentation does not say this. 
Even the default implementation will stop before this value is read if the 
request ist not idempotent.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211383797
 
 

 ##
 File path: 
wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
 ##
 @@ -354,6 +360,92 @@ private static PoolingHttpClientConnectionManager 
createConnManager()
 return connManager;
 }
 
+/**
+ * The type of the retry handler, default to 
DefaultHttpRequestRetryHandler.
+ * Values can be default, standard (StandardHttpRequestRetryHandler), or a 
fully qualified name class.
+ *
+ * @since 3.2
+ */
+private static final String RETRY_HANDLER_CLASS =
+System.getProperty( "maven.wagon.http.retryhandler.class", 
"standard" );
+
+/**
+ * true if it's OK to retry non-idempotent requests that have been sent.
+ * Note: only used for default and standard retry handlers.
+ *
+ * @since 3.2
+ */
+private static final boolean RETRY_HANDLER_REQUEST_SENT_ENABLED =
+Boolean.getBoolean( 
"maven.wagon.http.retryhandler.requestSentEnabled" );
+
+/**
+ * Number of retries for the retry handler.
+ * Note: only used for default and standard retry handlers.
+ *
+ * @since 3.2
+ */
+private static final int RETRY_HANDLER_COUNT =
+Integer.getInteger( "maven.wagon.http.retryhandler.count", 3 );
+
+/**
+ * Comma separated list of non retryable classes.
+ * Note: only used for default retry handler.
+ *
+ * @since 3.0.1
+ */
+private static final String RETRY_HANDLER_EXCEPTIONS =
+System.getProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses" );
+
+private static HttpRequestRetryHandler createRetryHandler()
+{
+switch ( RETRY_HANDLER_CLASS )
+{
+case "default":
+if ( RETRY_HANDLER_EXCEPTIONS == null )
 
 Review comment:
   I'd rather rely on `StringUtils#isEmpty()`.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385033
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
 
 Review comment:
   space missing


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385757
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
+
+fi

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211380849
 
 

 ##
 File path: 
wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
 ##
 @@ -354,6 +360,92 @@ private static PoolingHttpClientConnectionManager 
createConnManager()
 return connManager;
 }
 
+/**
+ * The type of the retry handler, default to 
DefaultHttpRequestRetryHandler.
+ * Values can be default, standard (StandardHttpRequestRetryHandler), or a 
fully qualified name class.
+ *
+ * @since 3.2
+ */
+private static final String RETRY_HANDLER_CLASS =
+System.getProperty( "maven.wagon.http.retryhandler.class", 
"standard" );
+
+/**
+ * true if it's OK to retry non-idempotent requests that have been sent.
+ * Note: only used for default and standard retry handlers.
+ *
+ * @since 3.2
+ */
+private static final boolean RETRY_HANDLER_REQUEST_SENT_ENABLED =
+Boolean.getBoolean( 
"maven.wagon.http.retryhandler.requestSentEnabled" );
+
+/**
+ * Number of retries for the retry handler.
+ * Note: only used for default and standard retry handlers.
+ *
+ * @since 3.2
+ */
+private static final int RETRY_HANDLER_COUNT =
+Integer.getInteger( "maven.wagon.http.retryhandler.count", 3 );
+
+/**
+ * Comma separated list of non retryable classes.
+ * Note: only used for default retry handler.
+ *
+ * @since 3.0.1
 
 Review comment:
   Still wrong.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211380988
 
 

 ##
 File path: 
wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
 ##
 @@ -354,6 +366,97 @@ private static PoolingHttpClientConnectionManager 
createConnManager()
 return connManager;
 }
 
+/**
+ * The type of the retry handler, default to 
DefaultHttpRequestRetryHandler.
+ * Values can be default, standard (StandardHttpRequestRetryHandler), or a 
fully qualified name class.
+ *
+ * @since 3.0.1
+ */
+private static final String RETRY_HANDLER_CLASS =
+System.getProperty( "maven.wagon.http.retryhandler.class", "auto" 
);
+
+/**
+ * true if it's OK to retry non-idempotent requests that have been sent.
+ * Note: only used for default and standard retry handlers.
+ *
+ * @since 3.0.1
+ */
+private static final boolean RETRY_HANDLER_REQUEST_SENT_ENABLED =
+Boolean.getBoolean( 
"maven.wagon.http.retryhandler.requestSentEnabled" );
+
+/**
+ * Number of retries for the retry handler.
+ * Note: only used for default and standard retry handlers.
+ *
+ * @since 3.0.1
+ */
+private static final int RETRY_HANDLER_COUNT =
+Integer.getInteger( "maven.wagon.http.retryhandler.count", 3 );
+
+private static final String DEFAULT_NON_RETRYABLE_CLASSES =
+InterruptedIOException.class.getName() + ","
++ UnknownHostException.class.getName() + ","
++ ConnectException.class.getName() + ","
++ SSLException.class.getName();
+/**
+ * Comma separated list of non retryable classes.
+ * Note: only used for default retry handler.
+ *
+ * @since 3.0.1
+ */
+private static final String RETRY_HANDLER_EXCEPTIONS =
+System.getProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
DEFAULT_NON_RETRYABLE_CLASSES );
+
+private static HttpRequestRetryHandler createRetryHandler()
+{
+switch ( RETRY_HANDLER_CLASS )
+{
+case "default":
+if ( DEFAULT_NON_RETRYABLE_CLASSES.equals( 
RETRY_HANDLER_EXCEPTIONS ) )
+{
+return new DefaultHttpRequestRetryHandler(
+RETRY_HANDLER_COUNT, 
RETRY_HANDLER_REQUEST_SENT_ENABLED );
+}
+return new DefaultHttpRequestRetryHandler(
+RETRY_HANDLER_COUNT, 
RETRY_HANDLER_REQUEST_SENT_ENABLED, getNonRetryableExceptions() )
+{
+};
+case "standard":
+return new StandardHttpRequestRetryHandler( 
RETRY_HANDLER_COUNT, RETRY_HANDLER_REQUEST_SENT_ENABLED );
+case "auto":
 
 Review comment:
   This needs to be dropped completely.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385112
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
+
+fi

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385162
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
+
+fi

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211384576
 
 

 ##
 File path: wagon-providers/wagon-http/src/site/apt/index.apt
 ##
 @@ -57,3 +57,22 @@ Features
  * <<>> = true/false (default 
false), ignore issues with certificate dates.
 
  * <<>> = time in ms (default 180), read time out.
+
+ []
+
+ Since version 3.2, the retry handler can be configured as well with system 
properties:
+
+ * <<>> supports this set of values:
+ 
+* which implementation to use. `auto` will use 
`DefaultHttpRequestRetryHandler.INSTANCE`.
+* `default` will use a new instance of `DefaultHttpRequestRetryHandler` 
respecting `requestSentEnabled`, `count` and `nonRetryableClasses`.
 
 Review comment:
   Please link to it.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211384615
 
 

 ##
 File path: wagon-providers/wagon-http/src/site/apt/index.apt
 ##
 @@ -57,3 +57,22 @@ Features
  * <<>> = true/false (default 
false), ignore issues with certificate dates.
 
  * <<>> = time in ms (default 180), read time out.
+
+ []
+
+ Since version 3.2, the retry handler can be configured as well with system 
properties:
+
+ * <<>> supports this set of values:
+ 
+* which implementation to use. `auto` will use 
`DefaultHttpRequestRetryHandler.INSTANCE`.
+* `default` will use a new instance of `DefaultHttpRequestRetryHandler` 
respecting `requestSentEnabled`, `count` and `nonRetryableClasses`.
+* `standard` will use an instance of `StandardHttpRequestRetryHandler` 
(see 
https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/impl/client/StandardHttpRequestRetryHandler.html).
 
 Review comment:
   Make the class name a link itself.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385200
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
+
+fi

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211384332
 
 

 ##
 File path: wagon-providers/wagon-http/src/site/apt/index.apt
 ##
 @@ -57,3 +57,22 @@ Features
  * <<>> = true/false (default 
false), ignore issues with certificate dates.
 
  * <<>> = time in ms (default 180), read time out.
+
+ []
+
+ Since version 3.2, the retry handler can be configured as well with system 
properties:
 
 Review comment:
   ~~as well~~


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211383035
 
 

 ##
 File path: 
wagon-providers/wagon-http-shared/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java
 ##
 @@ -354,6 +360,92 @@ private static PoolingHttpClientConnectionManager 
createConnManager()
 return connManager;
 }
 
+/**
+ * The type of the retry handler, default to 
DefaultHttpRequestRetryHandler.
+ * Values can be default, standard (StandardHttpRequestRetryHandler), or a 
fully qualified name class.
 
 Review comment:
   This is inconsistent in style. Please use: `label` (`class name`), or a 
fully qualified class name.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385327
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
+
+fi

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385369
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
+
+fi

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385270
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
+
+fi

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211385912
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
+{
+nonRetriableClasses.setAccessible(true);
+}
+final Set exceptions = Set.class.cast( 
nonRetriableClasses.get(handler) );
+assertEquals( 1, exceptions.size() );
+assertTrue( exceptions.contains( IOException.class ) );
+}
+catch ( final Exception e )
+{
+fail( e.getMessage() );
+}
+}
+});
+}
+
+private HttpRequestRetryHandler getCurrentHandler()
+{
+try
+{
+final Class impl = 
Thread.currentThread().getContextClassLoader().loadClass(
+
"org.apache.maven.wagon.shared.http.AbstractHttpClientWagon" );
+
+final CloseableHttpClient httpClient = 
CloseableHttpClient.class.cast(
+impl.getMethod("getHttpClient").invoke(null) );
+
+fi

[GitHub] michael-o commented on a change in pull request #37: [WAGON-526] making the retry handle of http client configurable

2018-08-20 Thread GitBox
michael-o commented on a change in pull request #37: [WAGON-526] making the 
retry handle of http client configurable
URL: https://github.com/apache/maven-wagon/pull/37#discussion_r211384992
 
 

 ##
 File path: 
wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/AbstractHttpClientWagonTest.java
 ##
 @@ -51,4 +79,197 @@ public void test()
 
 wagon.disconnect();
 }
+
+@Test
+public void retryableConfigurationDefaultTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationCountTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( "maven.wagon.http.retryhandler.count", "5" 
);
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 5, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationSentTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.requestSentEnabled", "true" );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertTrue( impl.isRequestSentRetryEnabled() );
+}
+});
+}
+
+@Test
+public void retryableConfigurationExceptionsTest() throws Exception
+{
+doTestHttpClient(new Runnable()
+{
+@Override
+public void run()
+{
+System.setProperty( "maven.wagon.http.retryhandler.class", 
"default" );
+System.setProperty( 
"maven.wagon.http.retryhandler.nonRetryableClasses", 
IOException.class.getName() );
+
+final HttpRequestRetryHandler handler = getCurrentHandler();
+assertNotNull( handler );
+assertThat( handler, instanceOf( 
DefaultHttpRequestRetryHandler.class ) );
+final DefaultHttpRequestRetryHandler impl = 
DefaultHttpRequestRetryHandler.class.cast(handler);
+assertEquals( 3, impl.getRetryCount() );
+assertFalse( impl.isRequestSentRetryEnabled() );
+
+try
+{
+final Field nonRetriableClasses = 
handler.getClass().getSuperclass()
+.getDeclaredField( "nonRetriableClasses" );
+if (!nonRetriableClasses.isAccessible())
 
 Review comment:
   spaces missing


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services