You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by br...@apache.org on 2007/10/29 09:24:13 UTC

svn commit: r589542 - in /maven/archiva/trunk/archiva-base/archiva-repository-layer/src: main/java/org/apache/maven/archiva/repository/scanner/ test/java/org/apache/maven/archiva/repository/scanner/

Author: brett
Date: Mon Oct 29 01:24:12 2007
New Revision: 589542

URL: http://svn.apache.org/viewvc?rev=589542&view=rev
Log:
[MRM-528] must only use the enabled consumers

Modified:
    maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java
    maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.java

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java?rev=589542&r1=589541&r2=589542&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumers.java Mon Oct 29 01:24:12 2007
@@ -65,6 +65,10 @@
      */
     private List<InvalidRepositoryContentConsumer> availableInvalidConsumers;
 
+    private List<KnownRepositoryContentConsumer> selectedKnownConsumers;
+
+    private List<InvalidRepositoryContentConsumer> selectedInvalidConsumers;
+
     /**
      * <p>
      * Get the list of Ids associated with those {@link KnownRepositoryContentConsumer} that have
@@ -113,14 +117,9 @@
     {
         Map<String, KnownRepositoryContentConsumer> consumerMap = new HashMap<String, KnownRepositoryContentConsumer>();
 
-        List<String> knownSelected = getSelectedKnownConsumerIds();
-
-        for ( KnownRepositoryContentConsumer consumer : availableKnownConsumers )
+        for ( KnownRepositoryContentConsumer consumer : getSelectedKnownConsumers() )
         {
-            if ( knownSelected.contains( consumer.getId() ) || consumer.isPermanent() )
-            {
-                consumerMap.put( consumer.getId(), consumer );
-            }
+            consumerMap.put( consumer.getId(), consumer );
         }
 
         return consumerMap;
@@ -136,14 +135,9 @@
     {
         Map<String, InvalidRepositoryContentConsumer> consumerMap = new HashMap<String, InvalidRepositoryContentConsumer>();
 
-        List<String> invalidSelected = getSelectedInvalidConsumerIds();
-
-        for ( InvalidRepositoryContentConsumer consumer : availableInvalidConsumers )
+        for ( InvalidRepositoryContentConsumer consumer : getSelectedInvalidConsumers() )
         {
-            if ( invalidSelected.contains( consumer.getId() ) || consumer.isPermanent() )
-            {
-                consumerMap.put( consumer.getId(), consumer );
-            }
+            consumerMap.put( consumer.getId(), consumer );
         }
 
         return consumerMap;
@@ -156,21 +150,24 @@
      * @return the list of {@link KnownRepositoryContentConsumer} that have been selected
      *         by the active configuration.
      */
-    public List<KnownRepositoryContentConsumer> getSelectedKnownConsumers()
+    public synchronized List<KnownRepositoryContentConsumer> getSelectedKnownConsumers()
     {
-        List<KnownRepositoryContentConsumer> ret = new ArrayList<KnownRepositoryContentConsumer>();
+        if ( selectedKnownConsumers == null )
+        {
+            List<KnownRepositoryContentConsumer> ret = new ArrayList<KnownRepositoryContentConsumer>();
 
-        List<String> knownSelected = getSelectedKnownConsumerIds();
+            List<String> knownSelected = getSelectedKnownConsumerIds();
 
-        for ( KnownRepositoryContentConsumer consumer : availableKnownConsumers )
-        {
-            if ( knownSelected.contains( consumer.getId() ) || consumer.isPermanent() )
+            for ( KnownRepositoryContentConsumer consumer : availableKnownConsumers )
             {
-                ret.add( consumer );
+                if ( knownSelected.contains( consumer.getId() ) || consumer.isPermanent() )
+                {
+                    ret.add( consumer );
+                }
             }
+            this.selectedKnownConsumers = ret;
         }
-
-        return ret;
+        return selectedKnownConsumers;
     }
 
     /**
@@ -180,21 +177,24 @@
      * @return the list of {@link InvalidRepositoryContentConsumer} that have been selected
      *         by the active configuration.
      */
-    public List<InvalidRepositoryContentConsumer> getSelectedInvalidConsumers()
+    public synchronized List<InvalidRepositoryContentConsumer> getSelectedInvalidConsumers()
     {
-        List<InvalidRepositoryContentConsumer> ret = new ArrayList<InvalidRepositoryContentConsumer>();
+        if ( selectedInvalidConsumers == null )
+        {
+            List<InvalidRepositoryContentConsumer> ret = new ArrayList<InvalidRepositoryContentConsumer>();
 
-        List<String> invalidSelected = getSelectedInvalidConsumerIds();
+            List<String> invalidSelected = getSelectedInvalidConsumerIds();
 
-        for ( InvalidRepositoryContentConsumer consumer : availableInvalidConsumers )
-        {
-            if ( invalidSelected.contains( consumer.getId() ) || consumer.isPermanent() )
+            for ( InvalidRepositoryContentConsumer consumer : availableInvalidConsumers )
             {
-                ret.add( consumer );
+                if ( invalidSelected.contains( consumer.getId() ) || consumer.isPermanent() )
+                {
+                    ret.add( consumer );
+                }
             }
+            selectedInvalidConsumers = ret;
         }
-
-        return ret;
+        return selectedInvalidConsumers;
     }
 
     /**
@@ -263,8 +263,10 @@
         {
             Closure triggerBeginScan = new TriggerBeginScanClosure( repository, getLogger() );
 
-            CollectionUtils.forAllDo( availableKnownConsumers, triggerBeginScan );
-            CollectionUtils.forAllDo( availableInvalidConsumers, triggerBeginScan );
+            List<KnownRepositoryContentConsumer> selectedKnownConsumers = getSelectedKnownConsumers();
+            List<InvalidRepositoryContentConsumer> selectedInvalidConsumers = getSelectedInvalidConsumers();
+            CollectionUtils.forAllDo( selectedKnownConsumers, triggerBeginScan );
+            CollectionUtils.forAllDo( selectedInvalidConsumers, triggerBeginScan );
 
             // yuck. In case you can't read this, it says
             // "process the file if the consumer has it in the includes list, and not in the excludes list"
@@ -276,12 +278,12 @@
             predicate.setCaseSensitive( false );
             Closure processIfWanted = IfClosure.getInstance( predicate, closure );
 
-            CollectionUtils.forAllDo( availableKnownConsumers, processIfWanted );
+            CollectionUtils.forAllDo( selectedKnownConsumers, processIfWanted );
 
             if ( predicate.getWantedFileCount() <= 0 )
             {
                 // Nothing known processed this file.  It is invalid!
-                CollectionUtils.forAllDo( availableInvalidConsumers, closure );
+                CollectionUtils.forAllDo( selectedInvalidConsumers, closure );
             }
         }
         finally
@@ -293,4 +295,13 @@
         }
     }
 
+    public void setSelectedKnownConsumers( List<KnownRepositoryContentConsumer> selectedKnownConsumers )
+    {
+        this.selectedKnownConsumers = selectedKnownConsumers;
+    }
+
+    public void setSelectedInvalidConsumers( List<InvalidRepositoryContentConsumer> selectedInvalidConsumers )
+    {
+        this.selectedInvalidConsumers = selectedInvalidConsumers;
+    }
 }

Modified: maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.java?rev=589542&r1=589541&r2=589542&view=diff
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.java (original)
+++ maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/RepositoryContentConsumersTest.java Mon Oct 29 01:24:12 2007
@@ -190,26 +190,35 @@
     {
         MockControl knownControl = MockControl.createNiceControl( KnownRepositoryContentConsumer.class );
         RepositoryContentConsumers consumers = lookupRepositoryConsumers();
-        KnownRepositoryContentConsumer knownConsumer = (KnownRepositoryContentConsumer) knownControl.getMock();
-        consumers.setAvailableKnownConsumers( Collections.singletonList( knownConsumer ) );
+        KnownRepositoryContentConsumer selectedKnownConsumer = (KnownRepositoryContentConsumer) knownControl.getMock();
+        KnownRepositoryContentConsumer unselectedKnownConsumer =
+            (KnownRepositoryContentConsumer) MockControl.createNiceControl(
+                KnownRepositoryContentConsumer.class ).getMock();
+        consumers.setAvailableKnownConsumers( Arrays.asList( selectedKnownConsumer, unselectedKnownConsumer ) );
+        consumers.setSelectedKnownConsumers( Collections.singletonList( selectedKnownConsumer ) );
 
         MockControl invalidControl = MockControl.createControl( InvalidRepositoryContentConsumer.class );
-        InvalidRepositoryContentConsumer invalidConsumer = (InvalidRepositoryContentConsumer) invalidControl.getMock();
-        consumers.setAvailableInvalidConsumers( Collections.singletonList( invalidConsumer ) );
+        InvalidRepositoryContentConsumer selectedInvalidConsumer =
+            (InvalidRepositoryContentConsumer) invalidControl.getMock();
+        InvalidRepositoryContentConsumer unselectedInvalidConsumer =
+            (InvalidRepositoryContentConsumer) MockControl.createControl(
+                InvalidRepositoryContentConsumer.class ).getMock();
+        consumers.setAvailableInvalidConsumers( Arrays.asList( selectedInvalidConsumer, unselectedInvalidConsumer ) );
+        consumers.setSelectedInvalidConsumers( Collections.singletonList( selectedInvalidConsumer ) );
 
         ManagedRepositoryConfiguration repo = createRepository( "id", "name", getTestFile( "target/test-repo" ) );
         File testFile = getTestFile( "target/test-repo/path/to/test-file.txt" );
 
-        knownConsumer.beginScan( repo );
-        knownConsumer.getExcludes();
+        selectedKnownConsumer.beginScan( repo );
+        selectedKnownConsumer.getExcludes();
         knownControl.setReturnValue( Collections.EMPTY_LIST );
-        knownConsumer.getIncludes();
+        selectedKnownConsumer.getIncludes();
         knownControl.setReturnValue( Collections.singletonList( "**/*.txt" ) );
-        knownConsumer.processFile( _OS( "path/to/test-file.txt" ) );
+        selectedKnownConsumer.processFile( _OS( "path/to/test-file.txt" ) );
         //        knownConsumer.completeScan();
         knownControl.replay();
 
-        invalidConsumer.beginScan( repo );
+        selectedInvalidConsumer.beginScan( repo );
         //        invalidConsumer.completeScan();
         invalidControl.replay();
 
@@ -223,17 +232,17 @@
 
         File notIncludedTestFile = getTestFile( "target/test-repo/path/to/test-file.xml" );
 
-        knownConsumer.beginScan( repo );
-        knownConsumer.getExcludes();
+        selectedKnownConsumer.beginScan( repo );
+        selectedKnownConsumer.getExcludes();
         knownControl.setReturnValue( Collections.EMPTY_LIST );
-        knownConsumer.getIncludes();
+        selectedKnownConsumer.getIncludes();
         knownControl.setReturnValue( Collections.singletonList( "**/*.txt" ) );
         //        knownConsumer.completeScan();
         knownControl.replay();
 
-        invalidConsumer.beginScan( repo );
-        invalidConsumer.processFile( _OS( "path/to/test-file.xml" ) );
-        invalidConsumer.getId();
+        selectedInvalidConsumer.beginScan( repo );
+        selectedInvalidConsumer.processFile( _OS( "path/to/test-file.xml" ) );
+        selectedInvalidConsumer.getId();
         invalidControl.setReturnValue( "invalid" );
         //        invalidConsumer.completeScan();
         invalidControl.replay();
@@ -248,15 +257,15 @@
 
         File excludedTestFile = getTestFile( "target/test-repo/path/to/test-file.txt" );
 
-        knownConsumer.beginScan( repo );
-        knownConsumer.getExcludes();
+        selectedKnownConsumer.beginScan( repo );
+        selectedKnownConsumer.getExcludes();
         knownControl.setReturnValue( Collections.singletonList( "**/test-file.txt" ) );
         //        knownConsumer.completeScan();
         knownControl.replay();
 
-        invalidConsumer.beginScan( repo );
-        invalidConsumer.processFile( _OS( "path/to/test-file.txt" ) );
-        invalidConsumer.getId();
+        selectedInvalidConsumer.beginScan( repo );
+        selectedInvalidConsumer.processFile( _OS( "path/to/test-file.txt" ) );
+        selectedInvalidConsumer.getId();
         invalidControl.setReturnValue( "invalid" );
         //        invalidConsumer.completeScan();
         invalidControl.replay();