You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2008/03/06 03:32:49 UTC
svn commit: r634129 - in
/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact:
manager/DefaultWagonManager.java manager/WagonManager.java
repository/metadata/DefaultRepositoryMetadataManager.java
Author: brett
Date: Wed Mar 5 18:32:48 2008
New Revision: 634129
URL: http://svn.apache.org/viewvc?rev=634129&view=rev
Log:
[MNG-3341] only look in the original deployment repository for metadata to update
Modified:
maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java
maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
Modified: maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java?rev=634129&r1=634128&r2=634129&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java Wed Mar 5 18:32:48 2008
@@ -346,8 +346,8 @@
else
{
getLogger().debug( "Trying repository " + repository.getId() );
- getRemoteFile( repository, artifact.getFile(), remotePath, downloadMonitor, policy.getChecksumPolicy(),
- false );
+ getRemoteFile( getMirrorRepository( repository ), artifact.getFile(), remotePath, downloadMonitor,
+ policy.getChecksumPolicy(), false );
getLogger().debug( " Artifact resolved" );
artifact.setResolved( true );
@@ -362,6 +362,15 @@
{
String remotePath = repository.pathOfRemoteRepositoryMetadata( metadata );
+ getRemoteFile( getMirrorRepository( repository ), destination, remotePath, null, checksumPolicy, true );
+ }
+
+ public void getArtifactMetadataFromDeploymentRepository( ArtifactMetadata metadata, ArtifactRepository repository,
+ File destination, String checksumPolicy )
+ throws TransferFailedException, ResourceDoesNotExistException
+ {
+ String remotePath = repository.pathOfRemoteRepositoryMetadata( metadata );
+
getRemoteFile( repository, destination, remotePath, null, checksumPolicy, true );
}
@@ -377,14 +386,6 @@
failIfNotOnline();
- ArtifactRepository mirror = getMirror( repository.getId() );
- if ( mirror != null )
- {
- repository = repositoryFactory.createArtifactRepository( mirror.getId(), mirror.getUrl(),
- repository.getLayout(), repository.getSnapshots(),
- repository.getReleases() );
- }
-
String protocol = repository.getProtocol();
Wagon wagon;
try
@@ -583,6 +584,18 @@
}
}
}
+ }
+
+ private ArtifactRepository getMirrorRepository( ArtifactRepository repository )
+ {
+ ArtifactRepository mirror = getMirror( repository.getId() );
+ if ( mirror != null )
+ {
+ repository = repositoryFactory.createArtifactRepository( mirror.getId(), mirror.getUrl(),
+ repository.getLayout(), repository.getSnapshots(),
+ repository.getReleases() );
+ }
+ return repository;
}
private void failIfNotOnline()
Modified: maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java?rev=634129&r1=634128&r2=634129&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java Wed Mar 5 18:32:48 2008
@@ -88,6 +88,10 @@
String checksumPolicy )
throws TransferFailedException, ResourceDoesNotExistException;
+ void getArtifactMetadataFromDeploymentRepository( ArtifactMetadata metadata, ArtifactRepository remoteRepository,
+ File file, String checksumPolicyWarn )
+ throws TransferFailedException, ResourceDoesNotExistException;
+
void setOnline( boolean online );
boolean isOnline();
@@ -120,4 +124,4 @@
void registerWagons( Collection wagons, PlexusContainer extensionContainer );
void setDefaultRepositoryPermissions( RepositoryPermissions permissions );
-}
\ No newline at end of file
+}
Modified: maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java?rev=634129&r1=634128&r2=634129&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java Wed Mar 5 18:32:48 2008
@@ -86,33 +86,44 @@
boolean checkForUpdates =
policy.checkOutOfDate( new Date( file.lastModified() ) ) || !file.exists();
- boolean metadataIsEmpty = true;
-
if ( checkForUpdates )
{
- try
+ if ( wagonManager.isOnline() )
{
- if ( wagonManager.isOnline() )
+ getLogger().info( metadata.getKey() + ": checking for updates from " + repository.getId() );
+ try
{
- getLogger().info(
- metadata.getKey() + ": checking for updates from " + repository.getId() );
- resolveAlways( metadata, repository, file, policy.getChecksumPolicy() );
+ wagonManager.getArtifactMetadata( metadata, repository, file,
+ policy.getChecksumPolicy() );
}
- else
+ catch ( ResourceDoesNotExistException e )
{
- getLogger().debug( "System is offline. Cannot resolve metadata:\n" +
- metadata.extendedToString() + "\n\n" );
+ getLogger().debug(
+ metadata + " could not be found on repository: " + repository.getId() );
+
+ // delete the local copy so the old details aren't used.
+ if ( file.exists() )
+ {
+ file.delete();
+ }
+ }
+ catch ( TransferFailedException e )
+ {
+ getLogger().warn( metadata + " could not be retrieved from repository: " +
+ repository.getId() + " due to an error: " + e.getMessage() );
+ getLogger().debug( "Exception", e );
+
+ getLogger().info( "Repository '" + repository.getId() + "' will be blacklisted" );
+ repository.setBlacklisted( true );
+
+ // TODO: [jc; 08-Nov-2005] revisit this for 2.1
+ // suppressing logging to avoid logging this error twice.
}
- metadataIsEmpty = false;
}
- catch ( TransferFailedException e )
+ else
{
- getLogger().info( "Repository '" + repository.getId() + "' will be blacklisted" );
- repository.setBlacklisted( true );
-
- // TODO: [jc; 08-Nov-2005] revisit this for 2.1
- // suppressing logging to avoid logging this error twice.
- metadataIsEmpty = true;
+ getLogger().debug( "System is offline. Cannot resolve metadata:\n" +
+ metadata.extendedToString() + "\n\n" );
}
}
@@ -321,20 +332,7 @@
"System is offline. Cannot resolve required metadata:\n" + metadata.extendedToString() );
}
- File file = new File( localRepository.getBasedir(),
- localRepository.pathOfLocalRepositoryMetadata( metadata, remoteRepository ) );
-
- try
- {
- resolveAlways( metadata, remoteRepository, file, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN );
- }
- catch ( TransferFailedException e )
- {
- // TODO: [jc; 08-Nov-2005] revisit this for 2.1
- // suppressing logging to avoid logging this error twice.
- // We don't want to interrupt program flow here. Just allow empty metadata instead.
- // rethrowing this would change behavior.
- }
+ File file = getArtifactMetadataFromDeploymentRepository( metadata, localRepository, remoteRepository );
try
{
@@ -350,17 +348,22 @@
}
}
- private void resolveAlways( ArtifactMetadata metadata, ArtifactRepository repository, File file,
- String checksumPolicy )
- throws TransferFailedException
+ private File getArtifactMetadataFromDeploymentRepository( ArtifactMetadata metadata,
+ ArtifactRepository localRepository,
+ ArtifactRepository remoteRepository )
{
+ File file = new File( localRepository.getBasedir(),
+ localRepository.pathOfLocalRepositoryMetadata( metadata, remoteRepository ) );
+
try
{
- wagonManager.getArtifactMetadata( metadata, repository, file, checksumPolicy );
+ wagonManager.getArtifactMetadataFromDeploymentRepository( metadata, remoteRepository, file,
+ ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN );
}
catch ( ResourceDoesNotExistException e )
{
- getLogger().debug( metadata + " could not be found on repository: " + repository.getId() );
+ getLogger().info(
+ metadata + " could not be found on repository: " + remoteRepository.getId() + ", so will be created" );
// delete the local copy so the old details aren't used.
if ( file.exists() )
@@ -370,12 +373,16 @@
}
catch ( TransferFailedException e )
{
- getLogger().warn( metadata + " could not be retrieved from repository: " + repository.getId() +
+ getLogger().warn( metadata + " could not be retrieved from repository: " + remoteRepository.getId() +
" due to an error: " + e.getMessage() );
getLogger().debug( "Exception", e );
- throw e;
+ // TODO: [jc; 08-Nov-2005] revisit this for 2.1
+ // suppressing logging to avoid logging this error twice.
+ // We don't want to interrupt program flow here. Just allow empty metadata instead.
+ // rethrowing this would change behavior.
}
+ return file;
}
private boolean alreadyResolved( ArtifactMetadata metadata )
@@ -394,28 +401,17 @@
"System is offline. Cannot deploy metadata:\n" + metadata.extendedToString() );
}
- getLogger().info( "Retrieving previous metadata from " + deploymentRepository.getId() );
-
- File file = new File( localRepository.getBasedir(),
- localRepository.pathOfLocalRepositoryMetadata( metadata, deploymentRepository ) );
-
- if ( !wagonManager.isOnline() )
+ File file;
+ if ( metadata instanceof RepositoryMetadata )
{
- // metadata is required for deployment, can't be offline
- throw new RepositoryMetadataDeploymentException(
- "System is offline. Unable to get previous metadata to update:\n" + metadata.extendedToString() );
- }
-
- try
- {
- resolveAlways( metadata, deploymentRepository, file, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN );
+ getLogger().info( "Retrieving previous metadata from " + deploymentRepository.getId() );
+ file = getArtifactMetadataFromDeploymentRepository( metadata, localRepository, deploymentRepository );
}
- catch ( TransferFailedException e )
+ else
{
- // TODO: [jc; 08-Nov-2005] revisit this for 2.1
- // suppressing logging to avoid logging this error twice.
- // We don't want to interrupt program flow here. Just allow empty metadata instead.
- // rethrowing this would change behavior.
+ // It's a POM - we don't need to retrieve it first
+ file = new File( localRepository.getBasedir(),
+ localRepository.pathOfLocalRepositoryMetadata( metadata, deploymentRepository ) );
}
try