diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRemoteRepositoriesService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRemoteRepositoriesService.java index 38afc6758..5e83622a0 100644 --- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRemoteRepositoriesService.java +++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRemoteRepositoriesService.java @@ -1,4 +1,5 @@ package org.apache.archiva.rest.services; + /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -190,6 +191,11 @@ public class DefaultRemoteRepositoriesService return Boolean.TRUE; } + catch ( TransferFailedException e ) + { + log.info( "TransferFailedException :{}", e.getMessage() ); + return Boolean.FALSE; + } catch ( Exception e ) { throw new ArchivaRestServiceException( e.getMessage(), diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/RemoteRepositoryConnectivityCheckTest.java b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/RemoteRepositoryConnectivityCheckTest.java index c882d8816..e53809279 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/RemoteRepositoryConnectivityCheckTest.java +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/remotedownload/RemoteRepositoryConnectivityCheckTest.java @@ -1,4 +1,23 @@ -package org.apache.archiva; +package org.apache.archiva.remotedownload; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ import com.google.common.io.Files; import org.apache.archiva.admin.model.beans.RemoteRepository; @@ -17,6 +36,7 @@ import org.eclipse.jetty.server.handler.ResourceHandler; import org.eclipse.jetty.servlet.DefaultServlet; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; +import org.fest.assertions.api.Assertions; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -73,7 +93,7 @@ public class RemoteRepositoryConnectivityCheckTest service.addRemoteRepository( repo ); - service.checkRemoteConnectivity( repo.getId() ); + Assertions.assertThat( service.checkRemoteConnectivity( repo.getId() ) ).isTrue(); } finally { @@ -106,7 +126,7 @@ public class RemoteRepositoryConnectivityCheckTest service.addRemoteRepository( repo ); - service.checkRemoteConnectivity( repo.getId() ); + Assertions.assertThat( service.checkRemoteConnectivity( repo.getId() ) ).isTrue(); } finally { @@ -116,6 +136,33 @@ public class RemoteRepositoryConnectivityCheckTest } } + @Test + public void checkRemoteConnectivityFail() + throws Exception + { + + RemoteRepositoriesService service = getRemoteRepositoriesService(); + + WebClient.client( service ).header( "Authorization", authorizationHeader ); + + try + { + + RemoteRepository repo = getRemoteRepository(); + + repo.setUrl( "http://localhost:8956" ); + + service.addRemoteRepository( repo ); + + Assertions.assertThat( service.checkRemoteConnectivity( repo.getId() ) ).isFalse(); + } + finally + { + service.deleteRemoteRepository( "id-new" ); + + } + } + protected Server buildStaticServer( File path ) { Server repoServer = new Server( 0 );