Author: olamy
Date: Thu Apr 25 12:45:13 2013
New Revision: 1475729

URL: http://svn.apache.org/r1475729
Log:
not used field and try to revert to timestamped snapshot version

Modified:
    
archiva/trunk/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/dependency/tree/maven2/Maven3DependencyTreeBuilder.java

Modified: 
archiva/trunk/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/dependency/tree/maven2/Maven3DependencyTreeBuilder.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/dependency/tree/maven2/Maven3DependencyTreeBuilder.java?rev=1475729&r1=1475728&r2=1475729&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/dependency/tree/maven2/Maven3DependencyTreeBuilder.java
 (original)
+++ 
archiva/trunk/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/dependency/tree/maven2/Maven3DependencyTreeBuilder.java
 Thu Apr 25 12:45:13 2013
@@ -30,9 +30,15 @@ import org.apache.archiva.admin.model.pr
 import org.apache.archiva.admin.model.remote.RemoteRepositoryAdmin;
 import org.apache.archiva.common.plexusbridge.PlexusSisuBridge;
 import org.apache.archiva.common.plexusbridge.PlexusSisuBridgeException;
+import org.apache.archiva.common.utils.VersionUtil;
+import org.apache.archiva.maven2.metadata.MavenMetadataReader;
 import org.apache.archiva.maven2.model.TreeEntry;
 import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator;
+import org.apache.archiva.model.ArchivaRepositoryMetadata;
 import org.apache.archiva.proxy.common.WagonFactory;
+import org.apache.archiva.repository.metadata.MetadataTools;
+import org.apache.archiva.xml.XMLException;
+import org.apache.commons.lang.StringUtils;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.model.building.DefaultModelBuilderFactory;
@@ -76,7 +82,7 @@ import java.util.Map;
  * @author Olivier Lamy
  * @since 1.4-M3
  */
-@Service( "dependencyTreeBuilder#maven3" )
+@Service("dependencyTreeBuilder#maven3")
 public class Maven3DependencyTreeBuilder
     implements DependencyTreeBuilder
 {
@@ -86,7 +92,7 @@ public class Maven3DependencyTreeBuilder
     private PlexusSisuBridge plexusSisuBridge;
 
     @Inject
-    @Named( value = "repositoryPathTranslator#maven2" )
+    @Named(value = "repositoryPathTranslator#maven2")
     private RepositoryPathTranslator pathTranslator;
 
     @Inject
@@ -108,16 +114,12 @@ public class Maven3DependencyTreeBuilder
 
     private ModelBuilder builder;
 
-
-    private RepositorySystem repoSystem;
-
     @PostConstruct
     public void initialize()
         throws PlexusSisuBridgeException
     {
         factory = plexusSisuBridge.lookup( ArtifactFactory.class, "default" );
 
-        repoSystem = plexusSisuBridge.lookup( RepositorySystem.class );
         DefaultModelBuilderFactory defaultModelBuilderFactory = new 
DefaultModelBuilderFactory();
         builder = defaultModelBuilderFactory.newInstance();
     }
@@ -158,7 +160,8 @@ public class Maven3DependencyTreeBuilder
             {
                 for ( ProxyConnector proxyConnector : proxyConnectors )
                 {
-                    remoteRepositories.add( 
remoteRepositoryAdmin.getRemoteRepository( proxyConnector.getTargetRepoId() ) );
+                    remoteRepositories.add(
+                        remoteRepositoryAdmin.getRemoteRepository( 
proxyConnector.getTargetRepoId() ) );
 
                     NetworkProxy networkProxyConfig = 
networkProxyAdmin.getNetworkProxy( proxyConnector.getProxyId() );
 
@@ -279,9 +282,39 @@ public class Maven3DependencyTreeBuilder
             {
                 return managedRepository;
             }
+            // try with snapshot version
+            if ( StringUtils.endsWith( projectArtifact.getBaseVersion(), 
VersionUtil.SNAPSHOT ) )
+            {
+                File metadataFile = new File( file.getParent(), 
MetadataTools.MAVEN_METADATA );
+                if ( metadataFile.exists() )
+                {
+                    try
+                    {
+                        ArchivaRepositoryMetadata archivaRepositoryMetadata = 
MavenMetadataReader.read( metadataFile );
+                        int buildNumber = 
archivaRepositoryMetadata.getSnapshotVersion().getBuildNumber();
+                        String timeStamp = 
archivaRepositoryMetadata.getSnapshotVersion().getTimestamp();
+                        // rebuild file name with timestamped version and 
build number
+                        String timeStampFileName =
+                            new StringBuilder( projectArtifact.getArtifactId() 
).append( '-' ).append(
+                                StringUtils.remove( 
projectArtifact.getBaseVersion(),
+                                                    "-" + VersionUtil.SNAPSHOT 
) ).append( '-' ).append(
+                                timeStamp ).append( '-' ).append( 
Integer.toString( buildNumber ) ).append(
+                                ".pom" ).toString();
+                        File timeStampFile = new File( file.getParent(), 
timeStampFileName );
+                        log.debug( "try to find timestamped snapshot version 
file: {}", timeStampFile.getPath() );
+                        if ( timeStampFile.exists() )
+                        {
+                            return managedRepository;
+                        }
+                    }
+                    catch ( XMLException e )
+                    {
+                        log.warn( "skip fail to find timestamped snapshot pom: 
{}", e.getMessage() );
+                    }
+                }
+            }
         }
         return null;
     }
 
-
 }


Reply via email to