Author: brett
Date: Wed Jul 26 21:58:38 2006
New Revision: 425963

URL: http://svn.apache.org/viewvc?rev=425963&view=rev
Log:
[MNG-127] add a blackout on discovery to ensure indexer will work correctly in 
all sensible cases

Modified:
    
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/AbstractDiscoverer.java
    
maven/repository-manager/trunk/maven-repository-discovery/src/test/java/org/apache/maven/repository/discovery/AbstractArtifactDiscovererTest.java

Modified: 
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/AbstractDiscoverer.java
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/AbstractDiscoverer.java?rev=425963&r1=425962&r2=425963&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/AbstractDiscoverer.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/AbstractDiscoverer.java
 Wed Jul 26 21:58:38 2006
@@ -61,6 +61,11 @@
 
     private List excludedPaths = new ArrayList();
 
+    /**
+     * @plexus.configuration default-value="60000"
+     */
+    private int blackoutPeriod;
+
     protected static final String DATE_FMT = "yyyyMMddHHmmss";
 
     /**
@@ -122,9 +127,13 @@
         {
             String path = files.next().toString();
 
-            if ( comparisonTimestamp == 0 || new File( repositoryBase, path 
).lastModified() > comparisonTimestamp )
+            long modTime = new File( repositoryBase, path ).lastModified();
+            if ( modTime < System.currentTimeMillis() - blackoutPeriod )
             {
-                includedPaths.add( path );
+                if ( modTime > comparisonTimestamp )
+                {
+                    includedPaths.add( path );
+                }
             }
         }
 

Modified: 
maven/repository-manager/trunk/maven-repository-discovery/src/test/java/org/apache/maven/repository/discovery/AbstractArtifactDiscovererTest.java
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-discovery/src/test/java/org/apache/maven/repository/discovery/AbstractArtifactDiscovererTest.java?rev=425963&r1=425962&r2=425963&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-discovery/src/test/java/org/apache/maven/repository/discovery/AbstractArtifactDiscovererTest.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-discovery/src/test/java/org/apache/maven/repository/discovery/AbstractArtifactDiscovererTest.java
 Wed Jul 26 21:58:38 2006
@@ -79,7 +79,10 @@
 
     protected Artifact createArtifact( String groupId, String artifactId, 
String version )
     {
-        return factory.createArtifact( groupId, artifactId, version, null, 
"jar" );
+        Artifact artifact = factory.createArtifact( groupId, artifactId, 
version, null, "jar" );
+        artifact.setFile( new File( repository.getBasedir(), 
repository.pathOf( artifact ) ) );
+        artifact.setRepository( repository );
+        return artifact;
     }
 
     protected Artifact createArtifact( String groupId, String artifactId, 
String version, String type )
@@ -144,6 +147,46 @@
 
         assertFalse( "Check not included",
                      artifacts.contains( createArtifact( 
"org.apache.maven.update", "test-not-updated", "1.0" ) ) );
+    }
+
+    public void testUpdatedInRepositoryBlackout()
+        throws ComponentLookupException, DiscovererException, IOException
+    {
+        discoverer.resetLastCheckedTime( repository, "update" );
+
+        Artifact artifact = createArtifact( "org.apache.maven.update", 
"test-not-updated", "1.0" );
+        artifact.getFile().setLastModified( System.currentTimeMillis() );
+
+        List artifacts = discoverer.discoverArtifacts( repository, "update", 
null, true );
+        assertNotNull( "Check artifacts not null", artifacts );
+
+        assertFalse( "Check not included", artifacts.contains( artifact ) );
+
+        // try again with the updated timestamp
+        artifacts = discoverer.discoverArtifacts( repository, "update", null, 
true );
+        assertNotNull( "Check artifacts not null", artifacts );
+
+        assertFalse( "Check not included", artifacts.contains( artifact ) );
+    }
+
+    public void testUpdatedInRepositoryNotBlackout()
+        throws ComponentLookupException, DiscovererException, IOException
+    {
+        discoverer.resetLastCheckedTime( repository, "update" );
+
+        Artifact artifact = createArtifact( "org.apache.maven.update", 
"test-not-updated", "1.0" );
+        artifact.getFile().setLastModified( System.currentTimeMillis() - 61000 
);
+
+        List artifacts = discoverer.discoverArtifacts( repository, "update", 
null, true );
+        assertNotNull( "Check artifacts not null", artifacts );
+
+        assertTrue( "Check included", artifacts.contains( artifact ) );
+
+        // try again with the updated timestamp
+        artifacts = discoverer.discoverArtifacts( repository, "update", null, 
true );
+        assertNotNull( "Check artifacts not null", artifacts );
+
+        assertFalse( "Check not included", artifacts.contains( artifact ) );
     }
 
     public void 
testNotUpdatedInRepositoryForcedDiscoveryMetadataAlreadyExists()


Reply via email to