You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2014/05/01 06:30:14 UTC

[1/3] git commit: use a better name

Repository: archiva
Updated Branches:
  refs/heads/master 8cb19c908 -> 10a076176


use a better name


Project: http://git-wip-us.apache.org/repos/asf/archiva/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/9bb8edc5
Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/9bb8edc5
Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/9bb8edc5

Branch: refs/heads/master
Commit: 9bb8edc5c8a7c1ed93443350b7a902d35e7a04c3
Parents: 8cb19c9
Author: Olivier Lamy <ol...@apache.org>
Authored: Wed Apr 30 16:38:19 2014 +1000
Committer: Olivier Lamy <ol...@apache.org>
Committed: Wed Apr 30 16:38:19 2014 +1000

----------------------------------------------------------------------
 .../archiva/repository/scanner/DefaultRepositoryScanner.java   | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/archiva/blob/9bb8edc5/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java
index a38ad47..492845d 100644
--- a/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java
@@ -49,7 +49,7 @@ public class DefaultRepositoryScanner
     private FileTypes filetypes;
 
     @Inject
-    private RepositoryContentConsumers consumerUtil;
+    private RepositoryContentConsumers repositoryContentConsumers;
 
     private Set<RepositoryScannerInstance> inProgressScans = new LinkedHashSet<RepositoryScannerInstance>();
 
@@ -59,8 +59,8 @@ public class DefaultRepositoryScanner
     {
         try
         {
-            List<KnownRepositoryContentConsumer> knownContentConsumers = consumerUtil.getSelectedKnownConsumers();
-            List<InvalidRepositoryContentConsumer> invalidContentConsumers = consumerUtil.getSelectedInvalidConsumers();
+            List<KnownRepositoryContentConsumer> knownContentConsumers = repositoryContentConsumers.getSelectedKnownConsumers();
+            List<InvalidRepositoryContentConsumer> invalidContentConsumers = repositoryContentConsumers.getSelectedInvalidConsumers();
             List<String> ignoredPatterns = filetypes.getFileTypePatterns( FileTypes.IGNORED );
 
             return scan( repository, knownContentConsumers, invalidContentConsumers, ignoredPatterns, changesSince );


[2/3] git commit: [MRM-1837] cleanup registry listeners from Archiva Configuration

Posted by ol...@apache.org.
[MRM-1837] cleanup registry listeners from Archiva Configuration


Project: http://git-wip-us.apache.org/repos/asf/archiva/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/7808ee5f
Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/7808ee5f
Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/7808ee5f

Branch: refs/heads/master
Commit: 7808ee5fafdb02b7d9e0b104fc4a8642bce4f8ac
Parents: 9bb8edc
Author: Olivier Lamy <ol...@apache.org>
Authored: Wed Apr 30 17:22:41 2014 +1000
Committer: Olivier Lamy <ol...@apache.org>
Committed: Wed Apr 30 17:22:41 2014 +1000

----------------------------------------------------------------------
 .../configuration/ArchivaConfiguration.java     |  4 ++-
 .../DefaultArchivaConfiguration.java            |  9 ++++++
 .../KnownRepositoryContentConsumer.java         |  2 --
 .../consumers/core/MetadataUpdaterConsumer.java | 15 ----------
 .../apache/archiva/proxy/MockConfiguration.java |  6 ++++
 .../scanner/DefaultRepositoryScanner.java       |  8 +++++-
 .../scanner/RepositoryContentConsumers.java     | 29 ++++++++++++++++++--
 .../configuration/TestConfiguration.java        |  6 ++++
 .../storage/maven2/conf/MockConfiguration.java  |  6 ++++
 .../configuration/StubConfiguration.java        |  6 ++++
 10 files changed, 69 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/archiva/blob/7808ee5f/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/ArchivaConfiguration.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/ArchivaConfiguration.java b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/ArchivaConfiguration.java
index 3a259da..4f6798c 100644
--- a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/ArchivaConfiguration.java
+++ b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/ArchivaConfiguration.java
@@ -70,13 +70,15 @@ public interface ArchivaConfiguration
     void removeListener( ConfigurationListener listener );
 
     /**
-     * Add a registry listener to notify of events in plexus-registry.
+     * Add a registry listener to notify of events in spring-registry.
      *
      * @param listener the listener
      *                 TODO: Remove in future.
      */
     void addChangeListener( RegistryListener listener );
 
+    void removeChangeListener( RegistryListener listener );
+
     /**
      * reload configuration from file included registry
      *

http://git-wip-us.apache.org/repos/asf/archiva/blob/7808ee5f/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java
index 6373a50..9b403d1 100644
--- a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java
+++ b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java
@@ -650,6 +650,8 @@ public class DefaultArchivaConfiguration
         listeners.remove( listener );
     }
 
+
+
     @Override
     public void addChangeListener( RegistryListener listener )
     {
@@ -673,6 +675,13 @@ public class DefaultArchivaConfiguration
         }
     }
 
+    @Override
+    public void removeChangeListener( RegistryListener listener )
+    {
+        boolean removed = registryListeners.remove( listener );
+        log.debug( "RegistryListener: '{}' removed {}", listener, removed );
+    }
+
     @PostConstruct
     public void initialize()
     {

http://git-wip-us.apache.org/repos/asf/archiva/blob/7808ee5f/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/archiva/consumers/KnownRepositoryContentConsumer.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/archiva/consumers/KnownRepositoryContentConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/archiva/consumers/KnownRepositoryContentConsumer.java
index 41c4bca..4a884a6 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/archiva/consumers/KnownRepositoryContentConsumer.java
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-consumer-api/src/main/java/org/apache/archiva/consumers/KnownRepositoryContentConsumer.java
@@ -21,8 +21,6 @@ package org.apache.archiva.consumers;
 
 /**
  * Consumer for Known Repository Content.
- *
- *
  */
 public interface KnownRepositoryContentConsumer
     extends RepositoryContentConsumer

http://git-wip-us.apache.org/repos/asf/archiva/blob/7808ee5f/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/MetadataUpdaterConsumer.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/MetadataUpdaterConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/MetadataUpdaterConsumer.java
index e1b6009..cb1f78f 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/MetadataUpdaterConsumer.java
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/MetadataUpdaterConsumer.java
@@ -70,32 +70,17 @@ public class MetadataUpdaterConsumer
      */
     private String id = "metadata-updater";
 
-    /**
-     * default-value="Update / Create maven-metadata.xml files"
-     */
     private String description = "Update / Create maven-metadata.xml files";
 
-    /**
-     *
-     */
     @Inject
     private RepositoryContentFactory repositoryFactory;
 
-    /**
-     *
-     */
     @Inject
     private MetadataTools metadataTools;
 
-    /**
-     *
-     */
     @Inject
     private ArchivaConfiguration configuration;
 
-    /**
-     *
-     */
     @Inject
     private FileTypes filetypes;
 

http://git-wip-us.apache.org/repos/asf/archiva/blob/7808ee5f/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/MockConfiguration.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/MockConfiguration.java b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/MockConfiguration.java
index 7cd49a6..935f2a6 100644
--- a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/MockConfiguration.java
+++ b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/proxy/MockConfiguration.java
@@ -89,6 +89,12 @@ public class MockConfiguration
     }
 
     @Override
+    public void removeChangeListener( RegistryListener listener )
+    {
+        registryListeners.remove( listener );
+    }
+
+    @Override
     public Configuration getConfiguration()
     {
         return configuration;

http://git-wip-us.apache.org/repos/asf/archiva/blob/7808ee5f/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java
index 492845d..56ef2fd 100644
--- a/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java
@@ -21,6 +21,7 @@ package org.apache.archiva.repository.scanner;
 
 import org.apache.archiva.admin.model.RepositoryAdminException;
 import org.apache.archiva.admin.model.beans.ManagedRepository;
+import org.apache.archiva.configuration.ArchivaConfiguration;
 import org.apache.archiva.configuration.FileTypes;
 import org.apache.archiva.consumers.InvalidRepositoryContentConsumer;
 import org.apache.archiva.consumers.KnownRepositoryContentConsumer;
@@ -32,6 +33,7 @@ import org.springframework.stereotype.Service;
 import javax.inject.Inject;
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
@@ -57,9 +59,10 @@ public class DefaultRepositoryScanner
     public RepositoryScanStatistics scan( ManagedRepository repository, long changesSince )
         throws RepositoryScannerException
     {
+        List<KnownRepositoryContentConsumer> knownContentConsumers = null;
         try
         {
-            List<KnownRepositoryContentConsumer> knownContentConsumers = repositoryContentConsumers.getSelectedKnownConsumers();
+            knownContentConsumers = repositoryContentConsumers.getSelectedKnownConsumers();
             List<InvalidRepositoryContentConsumer> invalidContentConsumers = repositoryContentConsumers.getSelectedInvalidConsumers();
             List<String> ignoredPatterns = filetypes.getFileTypePatterns( FileTypes.IGNORED );
 
@@ -68,6 +71,9 @@ public class DefaultRepositoryScanner
         catch ( RepositoryAdminException e )
         {
             throw new RepositoryScannerException( e.getMessage(), e );
+        } finally
+        {
+            repositoryContentConsumers.releaseSelectedKnownConsumers( knownContentConsumers );
         }
     }
 

http://git-wip-us.apache.org/repos/asf/archiva/blob/7808ee5f/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryContentConsumers.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryContentConsumers.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryContentConsumers.java
index 4ce22d2..4c6077a 100644
--- a/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryContentConsumers.java
+++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryContentConsumers.java
@@ -23,9 +23,11 @@ import org.apache.archiva.admin.model.RepositoryAdminException;
 import org.apache.archiva.admin.model.admin.ArchivaAdministration;
 import org.apache.archiva.admin.model.beans.ManagedRepository;
 import org.apache.archiva.common.utils.BaseFile;
+import org.apache.archiva.configuration.ArchivaConfiguration;
 import org.apache.archiva.consumers.InvalidRepositoryContentConsumer;
 import org.apache.archiva.consumers.KnownRepositoryContentConsumer;
 import org.apache.archiva.consumers.functors.ConsumerWantsFilePredicate;
+import org.apache.archiva.redback.components.registry.RegistryListener;
 import org.apache.archiva.repository.scanner.functors.ConsumerProcessFileClosure;
 import org.apache.archiva.repository.scanner.functors.TriggerBeginScanClosure;
 import org.apache.archiva.repository.scanner.functors.TriggerScanCompletedClosure;
@@ -48,7 +50,7 @@ import java.util.Map;
 /**
  * RepositoryContentConsumerUtil
  */
-@Service( "repositoryContentConsumers" )
+@Service("repositoryContentConsumers")
 public class RepositoryContentConsumers
     implements ApplicationContextAware
 {
@@ -63,6 +65,9 @@ public class RepositoryContentConsumers
     private List<InvalidRepositoryContentConsumer> selectedInvalidConsumers;
 
     @Inject
+    private ArchivaConfiguration archivaConfiguration;
+
+    @Inject
     public RepositoryContentConsumers( ArchivaAdministration archivaAdministration )
     {
         this.archivaAdministration = archivaAdministration;
@@ -156,7 +161,7 @@ public class RepositoryContentConsumers
      * @return the list of {@link KnownRepositoryContentConsumer} that have been selected
      * by the active configuration.
      */
-    public synchronized List<KnownRepositoryContentConsumer> getSelectedKnownConsumers()
+    public List<KnownRepositoryContentConsumer> getSelectedKnownConsumers()
         throws RepositoryAdminException
     {
         // FIXME only for testing
@@ -178,6 +183,22 @@ public class RepositoryContentConsumers
         return ret;
     }
 
+    public void releaseSelectedKnownConsumers( List<KnownRepositoryContentConsumer> repositoryContentConsumers )
+    {
+        if ( repositoryContentConsumers == null )
+        {
+            return;
+        }
+        for ( KnownRepositoryContentConsumer knownRepositoryContentConsumer : repositoryContentConsumers )
+        {
+            if ( RegistryListener.class.isAssignableFrom( knownRepositoryContentConsumer.getClass() ) )
+            {
+                archivaConfiguration.removeChangeListener(
+                    RegistryListener.class.cast( knownRepositoryContentConsumer ) );
+            }
+        }
+    }
+
     /**
      * Get the list of {@link InvalidRepositoryContentConsumer} objects that are
      * selected according to the active configuration.
@@ -248,12 +269,13 @@ public class RepositoryContentConsumers
     public void executeConsumers( ManagedRepository repository, File localFile, boolean updateRelatedArtifacts )
         throws RepositoryAdminException
     {
+        List<KnownRepositoryContentConsumer> selectedKnownConsumers = null;
         // Run the repository consumers
         try
         {
             Closure triggerBeginScan = new TriggerBeginScanClosure( repository, getStartTime(), false );
 
-            List<KnownRepositoryContentConsumer> selectedKnownConsumers = getSelectedKnownConsumers();
+            selectedKnownConsumers = getSelectedKnownConsumers();
 
             // MRM-1212/MRM-1197 
             // - do not create missing/fix invalid checksums and update metadata when deploying from webdav since these are uploaded by maven
@@ -307,6 +329,7 @@ public class RepositoryContentConsumers
                         CollectionUtils.forAllDo( availableKnownConsumers, triggerCompleteScan );
                         CollectionUtils.forAllDo( availableInvalidConsumers, triggerCompleteScan );
             */
+            releaseSelectedKnownConsumers( selectedKnownConsumers );
         }
     }
 

http://git-wip-us.apache.org/repos/asf/archiva/blob/7808ee5f/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/configuration/TestConfiguration.java
----------------------------------------------------------------------
diff --git a/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/configuration/TestConfiguration.java b/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/configuration/TestConfiguration.java
index 12ab3b9..2056299 100644
--- a/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/configuration/TestConfiguration.java
+++ b/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/configuration/TestConfiguration.java
@@ -67,6 +67,12 @@ public class TestConfiguration
     }
 
     @Override
+    public void removeChangeListener( RegistryListener listener )
+    {
+        // no op
+    }
+
+    @Override
     public void reload()
     {
         // no op

http://git-wip-us.apache.org/repos/asf/archiva/blob/7808ee5f/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/conf/MockConfiguration.java
----------------------------------------------------------------------
diff --git a/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/conf/MockConfiguration.java b/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/conf/MockConfiguration.java
index 09ef495..51479bb 100644
--- a/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/conf/MockConfiguration.java
+++ b/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/conf/MockConfiguration.java
@@ -65,6 +65,12 @@ public class MockConfiguration
     }
 
     @Override
+    public void removeChangeListener( RegistryListener listener )
+    {
+        registryListeners.remove( listener );
+    }
+
+    @Override
     public Configuration getConfiguration()
     {
         return configuration;

http://git-wip-us.apache.org/repos/asf/archiva/blob/7808ee5f/archiva-modules/plugins/stage-repository-merge/src/test/java/org/apache/archiva/configuration/StubConfiguration.java
----------------------------------------------------------------------
diff --git a/archiva-modules/plugins/stage-repository-merge/src/test/java/org/apache/archiva/configuration/StubConfiguration.java b/archiva-modules/plugins/stage-repository-merge/src/test/java/org/apache/archiva/configuration/StubConfiguration.java
index 642e523..b4659ac 100644
--- a/archiva-modules/plugins/stage-repository-merge/src/test/java/org/apache/archiva/configuration/StubConfiguration.java
+++ b/archiva-modules/plugins/stage-repository-merge/src/test/java/org/apache/archiva/configuration/StubConfiguration.java
@@ -67,6 +67,12 @@ public class StubConfiguration
     }
 
     @Override
+    public void removeChangeListener( RegistryListener listener )
+    {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
     public void reload()
     {
         // no op


[3/3] git commit: [MRM-1837] DefaultArchivaConfiguration holds references to classes

Posted by ol...@apache.org.
[MRM-1837] DefaultArchivaConfiguration holds references to classes


Project: http://git-wip-us.apache.org/repos/asf/archiva/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/10a07617
Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/10a07617
Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/10a07617

Branch: refs/heads/master
Commit: 10a0761768c8704497aefe730677bfd38a39a0a1
Parents: 7808ee5
Author: Olivier Lamy <ol...@apache.org>
Authored: Thu May 1 14:29:28 2014 +1000
Committer: Olivier Lamy <ol...@apache.org>
Committed: Thu May 1 14:29:28 2014 +1000

----------------------------------------------------------------------
 .../DefaultArchivaConfiguration.java            | 38 +++++++++++++-------
 .../consumers/core/AutoRemoveConsumer.java      |  2 +-
 .../repository/RepositoryPurgeConsumer.java     |  2 +-
 .../consumers/lucene/NexusIndexerConsumer.java  |  2 +-
 .../legacy/LegacyConverterArtifactConsumer.java |  6 ----
 pom.xml                                         |  4 +--
 6 files changed, 30 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/archiva/blob/10a07617/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java
index 9b403d1..c6cc953 100644
--- a/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java
+++ b/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/archiva/configuration/DefaultArchivaConfiguration.java
@@ -89,7 +89,7 @@ import java.util.Set;
  * before reading it from the registry.
  * </p>
  */
-@Service ( "archivaConfiguration#default" )
+@Service( "archivaConfiguration#default" )
 public class DefaultArchivaConfiguration
     implements ArchivaConfiguration, RegistryListener
 {
@@ -99,7 +99,7 @@ public class DefaultArchivaConfiguration
      * Plexus registry to read the configuration from.
      */
     @Inject
-    @Named ( value = "commons-configuration" )
+    @Named( value = "commons-configuration" )
     private Registry registry;
 
     @Inject
@@ -183,7 +183,7 @@ public class DefaultArchivaConfiguration
         return configuration;
     }
 
-    @SuppressWarnings ( "unchecked" )
+    @SuppressWarnings( "unchecked" )
     private Configuration load()
     {
         // TODO: should this be the same as section? make sure unnamed sections still work (eg, sys properties)
@@ -204,7 +204,7 @@ public class DefaultArchivaConfiguration
         config.getRepositoryGroupsAsMap();
         if ( !config.getRepositories().isEmpty() )
         {
-            for ( V1RepositoryConfiguration r : config.getRepositories() ) 
+            for ( V1RepositoryConfiguration r : config.getRepositories() )
             {
                 r.setScanned( r.isIndexed() );
 
@@ -269,8 +269,7 @@ public class DefaultArchivaConfiguration
             // Fix Proxy Connector Settings.
 
             // Create a copy of the list to read from (to prevent concurrent modification exceptions)
-            List<ProxyConnectorConfiguration> proxyConnectorList =
-                new ArrayList<>( config.getProxyConnectors() );
+            List<ProxyConnectorConfiguration> proxyConnectorList = new ArrayList<>( config.getProxyConnectors() );
             // Remove the old connector list.
             config.getProxyConnectors().clear();
 
@@ -440,7 +439,7 @@ public class DefaultArchivaConfiguration
         return registry.getSubset( KEY );
     }
 
-    @SuppressWarnings ( "unchecked" )
+    @SuppressWarnings( "unchecked" )
     @Override
     public synchronized void save( Configuration configuration )
         throws IndeterminateConfigurationException, RegistryException
@@ -559,7 +558,8 @@ public class DefaultArchivaConfiguration
                 throw new RegistryException(
                     "Unable to create configuration file in either user [" + userConfigFilename + "] or alternative ["
                         + altConfigFilename
-                        + "] locations on disk, usually happens when not allowed to write to those locations." );
+                        + "] locations on disk, usually happens when not allowed to write to those locations."
+                );
             }
         }
 
@@ -584,7 +584,7 @@ public class DefaultArchivaConfiguration
 
     /**
      * Attempts to write the contents to a file, if an IOException occurs, return false.
-     * <p>
+     * <p/>
      * The file will be created if the directory to the file exists, otherwise this will return false.
      *
      * @param filetype the filetype (freeform text) to use in logging messages when failure to write.
@@ -602,7 +602,7 @@ public class DefaultArchivaConfiguration
             if ( file.getParentFile() != null )
             {
                 // Check that directory exists
-                if ( ! file.getParentFile().isDirectory() )
+                if ( !file.getParentFile().isDirectory() )
                 {
                     // Directory to file must exist for file to be created
                     return false;
@@ -651,7 +651,6 @@ public class DefaultArchivaConfiguration
     }
 
 
-
     @Override
     public void addChangeListener( RegistryListener listener )
     {
@@ -680,6 +679,18 @@ public class DefaultArchivaConfiguration
     {
         boolean removed = registryListeners.remove( listener );
         log.debug( "RegistryListener: '{}' removed {}", listener, removed );
+
+        Registry section = registry.getSection( KEY + ".user" );
+        if ( section != null )
+        {
+            section.removeChangeListener( listener );
+        }
+        section = registry.getSection( KEY + ".base" );
+        if ( section != null )
+        {
+            section.removeChangeListener( listener );
+        }
+
     }
 
     @PostConstruct
@@ -714,7 +725,7 @@ public class DefaultArchivaConfiguration
         catch ( EvaluatorException e )
         {
             throw new RuntimeException(
-                "Unable to evaluate expressions found in " + "userConfigFilename or altConfigFilename.", e);
+                "Unable to evaluate expressions found in " + "userConfigFilename or altConfigFilename.", e );
         }
         registry.addChangeListener( this );
     }
@@ -818,7 +829,8 @@ public class DefaultArchivaConfiguration
     private Configuration unescapeExpressions( Configuration config )
     {
         // TODO: for commons-configuration 1.3 only
-        for ( ManagedRepositoryConfiguration c : config.getManagedRepositories() ) {
+        for ( ManagedRepositoryConfiguration c : config.getManagedRepositories() )
+        {
             c.setLocation( removeExpressions( c.getLocation() ) );
             c.setRefreshCronExpression( unescapeCronExpression( c.getRefreshCronExpression() ) );
         }

http://git-wip-us.apache.org/repos/asf/archiva/blob/10a07617/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/AutoRemoveConsumer.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/AutoRemoveConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/AutoRemoveConsumer.java
index 75654c6..d6e9297 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/AutoRemoveConsumer.java
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/AutoRemoveConsumer.java
@@ -167,7 +167,7 @@ public class AutoRemoveConsumer
 
     private void initIncludes()
     {
-        includes = new ArrayList<String>( filetypes.getFileTypePatterns( FileTypes.AUTO_REMOVE ) );
+        includes = new ArrayList<>( filetypes.getFileTypePatterns( FileTypes.AUTO_REMOVE ) );
     }
 
     @PostConstruct

http://git-wip-us.apache.org/repos/asf/archiva/blob/10a07617/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/RepositoryPurgeConsumer.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/RepositoryPurgeConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/RepositoryPurgeConsumer.java
index 5cc20c4..5b6be2e 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/RepositoryPurgeConsumer.java
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/RepositoryPurgeConsumer.java
@@ -238,7 +238,7 @@ public class RepositoryPurgeConsumer
 
     private void initIncludes()
     {
-        includes = new ArrayList<String>( filetypes.getFileTypePatterns( FileTypes.ARTIFACTS ) );
+        includes = new ArrayList<>( filetypes.getFileTypePatterns( FileTypes.ARTIFACTS ) );
     }
 
     @PostConstruct

http://git-wip-us.apache.org/repos/asf/archiva/blob/10a07617/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
index 487af91..4e6df8c 100644
--- a/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
+++ b/archiva-modules/archiva-base/archiva-consumers/archiva-lucene-consumers/src/main/java/org/apache/archiva/consumers/lucene/NexusIndexerConsumer.java
@@ -266,7 +266,7 @@ public class NexusIndexerConsumer
         List<String> indexable = filetypes.getFileTypePatterns( FileTypes.INDEXABLE_CONTENT );
         List<String> artifacts = filetypes.getFileTypePatterns( FileTypes.ARTIFACTS );
 
-        includes = new ArrayList<String>( indexable.size() + artifacts.size() );
+        includes = new ArrayList<>( indexable.size() + artifacts.size() );
 
         includes.addAll( indexable );
 

http://git-wip-us.apache.org/repos/asf/archiva/blob/10a07617/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/archiva/converter/legacy/LegacyConverterArtifactConsumer.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/archiva/converter/legacy/LegacyConverterArtifactConsumer.java b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/archiva/converter/legacy/LegacyConverterArtifactConsumer.java
index b17a74a..ff15d3b 100644
--- a/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/archiva/converter/legacy/LegacyConverterArtifactConsumer.java
+++ b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/archiva/converter/legacy/LegacyConverterArtifactConsumer.java
@@ -58,15 +58,9 @@ public class LegacyConverterArtifactConsumer
 {
     private Logger log = LoggerFactory.getLogger( LegacyConverterArtifactConsumer.class );
 
-    /**
-     *
-     */
     @Inject
     private ArtifactConverter artifactConverter;
 
-    /**
-     *
-     */
     private ArtifactFactory artifactFactory;
 
     private ManagedRepositoryContent managedRepository;

http://git-wip-us.apache.org/repos/asf/archiva/blob/10a07617/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index f758398..e947718 100644
--- a/pom.xml
+++ b/pom.xml
@@ -67,7 +67,7 @@
     <redback.version>2.2</redback.version>
     <redback.cache.version>2.2</redback.cache.version>
     <redback.quartz.version>2.1</redback.quartz.version>
-    <redback.registry.version>2.2</redback.registry.version>
+    <redback.registry.version>2.3-SNAPSHOT</redback.registry.version>
     <redback.spring-utils.version>2.1</redback.spring-utils.version>
     <redback.taskqueue.version>2.1</redback.taskqueue.version>
     <slf4j.version>1.7.7</slf4j.version>
@@ -614,7 +614,7 @@
       <dependency>
         <groupId>commons-configuration</groupId>
         <artifactId>commons-configuration</artifactId>
-        <version>1.9</version>
+        <version>1.10</version>
         <exclusions>
           <exclusion>
             <groupId>commons-beanutils</groupId>