mirror of https://github.com/apache/maven.git
- ensure we only blacklist a repository on resolve, not deploy
- fail if offline when attempting to deploy or retrieve essential metadata git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@307317 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
13b0cf75e6
commit
3a601de20d
|
@ -59,8 +59,8 @@ public class DefaultArtifactDeployer
|
|||
{
|
||||
if ( !wagonManager.isOnline() )
|
||||
{
|
||||
getLogger().warn( "System is offline. Cannot deploy artifact: " + artifact + "." );
|
||||
return;
|
||||
// deployment shouldn't silently fail when offline
|
||||
throw new ArtifactDeploymentException( "System is offline. Cannot deploy artifact: " + artifact + "." );
|
||||
}
|
||||
|
||||
try
|
||||
|
|
|
@ -85,7 +85,7 @@ public class DefaultRepositoryMetadataManager
|
|||
{
|
||||
getLogger().info( metadata.getKey() + ": checking for updates from " + repository.getId() );
|
||||
|
||||
resolveAlways( metadata, repository, file, policy.getChecksumPolicy() );
|
||||
resolveAlways( metadata, repository, file, policy.getChecksumPolicy(), true );
|
||||
}
|
||||
|
||||
// touch file so that this is not checked again until interval has passed
|
||||
|
@ -247,14 +247,15 @@ public class DefaultRepositoryMetadataManager
|
|||
{
|
||||
if ( !wagonManager.isOnline() )
|
||||
{
|
||||
getLogger().debug( "System is offline. Cannot resolve metadata:\n" + metadata.extendedToString() + "\n\n" );
|
||||
return;
|
||||
// metadata is required for deployment, can't be offline
|
||||
throw new ArtifactMetadataRetrievalException(
|
||||
"System is offline. Cannot resolve required metadata:\n" + metadata.extendedToString() );
|
||||
}
|
||||
|
||||
File file = new File( localRepository.getBasedir(),
|
||||
localRepository.pathOfLocalRepositoryMetadata( metadata, remoteRepository ) );
|
||||
|
||||
resolveAlways( metadata, remoteRepository, file, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN );
|
||||
resolveAlways( metadata, remoteRepository, file, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN, false );
|
||||
|
||||
if ( file.exists() )
|
||||
{
|
||||
|
@ -264,13 +265,24 @@ public class DefaultRepositoryMetadataManager
|
|||
}
|
||||
|
||||
private void resolveAlways( ArtifactMetadata metadata, ArtifactRepository repository, File file,
|
||||
String checksumPolicy )
|
||||
String checksumPolicy, boolean allowBlacklisting )
|
||||
throws ArtifactMetadataRetrievalException
|
||||
{
|
||||
if ( !wagonManager.isOnline() )
|
||||
{
|
||||
getLogger().debug( "System is offline. Cannot resolve metadata:\n" + metadata.extendedToString() + "\n\n" );
|
||||
if ( !allowBlacklisting )
|
||||
{
|
||||
getLogger().debug(
|
||||
"System is offline. Cannot resolve metadata:\n" + metadata.extendedToString() + "\n\n" );
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
// metadata is required for deployment, can't be offline
|
||||
throw new ArtifactMetadataRetrievalException(
|
||||
"System is offline. Cannot resolve required metadata:\n" + metadata.extendedToString() );
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -292,7 +304,7 @@ public class DefaultRepositoryMetadataManager
|
|||
" due to an error: " + e.getCause().getMessage() );
|
||||
getLogger().info( "Repository '" + repository.getId() + "' will be blacklisted" );
|
||||
getLogger().debug( "Exception", e );
|
||||
repository.setBlacklisted( true );
|
||||
repository.setBlacklisted( allowBlacklisting );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -307,8 +319,9 @@ public class DefaultRepositoryMetadataManager
|
|||
{
|
||||
if ( !wagonManager.isOnline() )
|
||||
{
|
||||
getLogger().warn( "System is offline. Cannot deploy metadata:\n" + metadata.extendedToString() + "\n\n" );
|
||||
return;
|
||||
// deployment shouldn't silently fail when offline
|
||||
throw new ArtifactMetadataRetrievalException(
|
||||
"System is offline. Cannot deploy metadata:\n" + metadata.extendedToString() );
|
||||
}
|
||||
|
||||
getLogger().info( "Retrieving previous metadata from " + deploymentRepository.getId() );
|
||||
|
@ -316,7 +329,7 @@ public class DefaultRepositoryMetadataManager
|
|||
File file = new File( localRepository.getBasedir(),
|
||||
localRepository.pathOfLocalRepositoryMetadata( metadata, deploymentRepository ) );
|
||||
|
||||
resolveAlways( metadata, deploymentRepository, file, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN );
|
||||
resolveAlways( metadata, deploymentRepository, file, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN, false );
|
||||
|
||||
metadata.storeInLocalRepository( localRepository, deploymentRepository );
|
||||
|
||||
|
|
|
@ -133,12 +133,9 @@ public class SnapshotTransformation
|
|||
|
||||
if ( !wagonManager.isOnline() )
|
||||
{
|
||||
getLogger().debug( "System is offline. Cannot resolve metadata:\n" + metadata.extendedToString() + "\n\n" );
|
||||
|
||||
getLogger().info( "System is offline. Assuming build number of 0 for " + metadata.getGroupId() + ":" +
|
||||
metadata.getArtifactId() + " snapshot." );
|
||||
|
||||
return 0;
|
||||
// build number is a required feature for metadata consistency
|
||||
throw new ArtifactMetadataRetrievalException(
|
||||
"System is offline. Cannot resolve metadata:\n" + metadata.extendedToString() + "\n\n" );
|
||||
}
|
||||
|
||||
getLogger().info( "Retrieving previous build number from " + remoteRepository.getId() );
|
||||
|
|
Loading…
Reference in New Issue