You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Brett Porter <br...@apache.org> on 2007/11/06 11:41:35 UTC

Re: svn commit: r592366 - /maven/artifact/trunk/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java

If I may be a nuisance... :) I think the delete should be in a  
finally block so it doesn't get skipped for exceptions (which I think  
retrieveAvailableVersions can throw from memory). I'm just  
particularly watchful of these guys - I've seen Maven fill up /tmp  
pretty fast recently :)

Also, could the discarded exception be logged at debug level to help  
diagnosis?

Thanks!

On 06/11/2007, at 9:33 PM, jvanzyl@apache.org wrote:

> Author: jvanzyl
> Date: Tue Nov  6 02:33:31 2007
> New Revision: 592366
>
> URL: http://svn.apache.org/viewvc?rev=592366&view=rev
> Log:
> o slightly better local repository fake out
>
> Modified:
>     maven/artifact/trunk/src/main/java/org/apache/maven/artifact/ 
> deployer/DefaultArtifactDeployer.java
>
> Modified: maven/artifact/trunk/src/main/java/org/apache/maven/ 
> artifact/deployer/DefaultArtifactDeployer.java
> URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/ 
> java/org/apache/maven/artifact/deployer/ 
> DefaultArtifactDeployer.java?rev=592366&r1=592365&r2=592366&view=diff
> ====================================================================== 
> ========
> --- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/ 
> deployer/DefaultArtifactDeployer.java (original)
> +++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/ 
> deployer/DefaultArtifactDeployer.java Tue Nov  6 02:33:31 2007
> @@ -125,26 +125,11 @@
>          }
>      }
>
> -    private static int i;
> -
>      private boolean artifactHasBeenDeployed( Artifact artifact,  
> ArtifactRepository remoteRepository  )
>          throws ArtifactDeploymentException
>      {
>          try
>          {
> -            // We have to fake out the tools underneath as they  
> always expect a local repository.
> -            // This makes sure that we are checking for remote  
> deployments not things cached locally
> -            // as we don't care about things cached locally. In an  
> embedded environment we have to
> -            // deal with multiple deployments, and the same  
> deployment by the same project so we
> -            // just need to make sure we have a detached local  
> repository each time as not to
> -            // get contaminated results.
> -
> -            File detachedLocalRepository = new File 
> ( System.getProperty( "java.io.tmpdir" ), "repo" + i++ );
> -
> -            ArtifactRepository localRepository = new  
> DefaultArtifactRepository( "id", "file://" +  
> detachedLocalRepository, defaultLayout );
> -
> -            detachedLocalRepository.deleteOnExit();
> -
>              // We will just let people deploy snapshots over and  
> over again even if they want
>              // to deploy something different with the same name.
>
> @@ -167,9 +152,22 @@
>
>              ArtifactVersion artifactVersion = new  
> DefaultArtifactVersion( artifact.getVersion() );
>
> +            // We have to fake out the tools underneath as they  
> always expect a local repository.
> +            // This makes sure that we are checking for remote  
> deployments not things cached locally
> +            // as we don't care about things cached locally. In an  
> embedded environment we have to
> +            // deal with multiple deployments, and the same  
> deployment by the same project so we
> +            // just need to make sure we have a detached local  
> repository each time as not to
> +            // get contaminated results.
> +
> +            File detachedLocalRepository = File.createTempFile 
> ( "maven", "repo" );
> +
> +            ArtifactRepository localRepository = new  
> DefaultArtifactRepository( "id", "file://" +  
> detachedLocalRepository, defaultLayout );
> +
>              List versions =  
> metadataSource.retrieveAvailableVersions( artifact, localRepository,
>                  Arrays.asList( new ArtifactRepository[] 
> {remoteRepository} ) );
>
> +            detachedLocalRepository.delete();
> +
>              for ( Iterator i = versions.iterator(); i.hasNext(); )
>              {
>                  ArtifactVersion deployedArtifactVersion =  
> (ArtifactVersion) i.next();
> @@ -181,6 +179,12 @@
>                      return true;
>                  }
>              }
> +        }
> +        catch ( IOException e )
> +        {
> +            getLogger().warn( "We cannot retrieve the artifact  
> metadata, or it does not exist. We will assume this artifact needs  
> to be deployed." );
> +
> +            return false;
>          }
>          catch ( ArtifactMetadataRetrievalException e )
>          {
>
>

--
Brett Porter - brett@apache.org
Blog: http://www.devzuz.org/blogs/bporter/


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org