Changing dependencies
diff --git a/pom.xml b/pom.xml
index a5e2ab1..ae8094e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@
   <groupId>org.apache.archiva.redback.components.registry</groupId>
   <artifactId>spring-registry</artifactId>
   <version>2.5-SNAPSHOT</version>
-  <name>Redback Spring Registry Component</name>
+  <name>Redback Components :: Spring Registry Component</name>
   <packaging>pom</packaging>
 
   <properties>
@@ -45,6 +45,7 @@
     <module>spring-registry-api</module>
     <module>spring-registry-commons</module>
   </modules>
+
   <dependencyManagement>
     <dependencies>
       <dependency>
@@ -57,56 +58,34 @@
         <artifactId>spring-registry-commons</artifactId>
         <version>${project.version}</version>
       </dependency>
+
       <dependency>
         <groupId>commons-configuration</groupId>
         <artifactId>commons-configuration</artifactId>
-        <version>${commons-configuration.version}</version>
+        <version>${commons.configuration.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-text</artifactId>
+        <version>${commons.text.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>commons-collections</groupId>
+        <artifactId>commons-collections</artifactId>
+        <version>${commons.collections.3.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>commons-beanutils</groupId>
+        <artifactId>commons-beanutils</artifactId>
+        <version>${commons.beanutils.version}</version>
       </dependency>
     </dependencies>
   </dependencyManagement>
   <dependencies>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>javax.annotation</groupId>
-      <artifactId>jsr250-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>javax.inject</groupId>
-      <artifactId>javax.inject</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-core</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-context</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-context-support</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-beans</artifactId>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-test</artifactId>
-      <scope>compile</scope>
-    </dependency>
+
   </dependencies>
 
   <build>
@@ -121,6 +100,17 @@
         </plugin>
       </plugins>
     </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.8.0</version>
+        <configuration>
+          <source>${compiler.source}</source>
+          <target>${compiler.target}</target>
+        </configuration>
+      </plugin>
+    </plugins>
   </build>
 
   <reporting>
diff --git a/spring-registry-api/pom.xml b/spring-registry-api/pom.xml
index 1f6dbc4..60286fc 100644
--- a/spring-registry-api/pom.xml
+++ b/spring-registry-api/pom.xml
@@ -27,8 +27,9 @@
     <version>2.5-SNAPSHOT</version>
   </parent>
 
+  <groupId>org.apache.archiva.redback.components.registry</groupId>
   <artifactId>spring-registry-api</artifactId>
-  <name>Redback Spring Registry Api</name>
+  <name>Redback Components :: Spring Registry Api</name>
 
   <properties>
     <site.staging.base>${project.parent.basedir}/../site</site.staging.base>
@@ -39,10 +40,4 @@
     <url>${scmBrowseUrl};f=${project.artifactId}</url>
   </scm>
 
-  <dependencies>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-utils</artifactId>
-    </dependency>
-  </dependencies>
 </project>
diff --git a/spring-registry-commons/pom.xml b/spring-registry-commons/pom.xml
index 32bb697..516d3d6 100644
--- a/spring-registry-commons/pom.xml
+++ b/spring-registry-commons/pom.xml
@@ -28,7 +28,7 @@
   </parent>
 
   <artifactId>spring-registry-commons</artifactId>
-  <name>Redback Spring Registry commons-configuration</name>
+  <name>Redback Components :: Spring Registry ACC</name>
   <properties>
     <site.staging.base>${project.parent.basedir}/../site</site.staging.base>
   </properties>
@@ -42,21 +42,13 @@
 
   <dependencies>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-utils</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-interpolation</artifactId>
-      <version>1.14</version>
-    </dependency>
-    <dependency>
       <groupId>org.apache.archiva.redback.components.registry</groupId>
       <artifactId>spring-registry-api</artifactId>
     </dependency>
     <dependency>
       <groupId>commons-configuration</groupId>
       <artifactId>commons-configuration</artifactId>
+      <version>${commons.configuration.version}</version>
       <exclusions>
         <exclusion>
           <groupId>commons-beanutils</groupId>
@@ -85,20 +77,61 @@
         </exclusion>
       </exclusions>
     </dependency>
-    <dependency>
-      <groupId>commons-beanutils</groupId>
-      <artifactId>commons-beanutils</artifactId>
-      <version>1.7.0</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-collections</groupId>
-      <artifactId>commons-collections</artifactId>
-      <version>3.2.1</version>
-    </dependency>
+
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
     </dependency>
+
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-core</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-context</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-test</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.springframework</groupId>
+      <artifactId>spring-beans</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>commons-collections</groupId>
+      <artifactId>commons-collections</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>commons-beanutils</groupId>
+      <artifactId>commons-beanutils</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-text</artifactId>
+    </dependency>
+
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-jcl</artifactId>
diff --git a/spring-registry-commons/src/main/java/org/apache/archiva/redback/components/registry/commons/CommonsConfigurationRegistry.java b/spring-registry-commons/src/main/java/org/apache/archiva/redback/components/registry/commons/CommonsConfigurationRegistry.java
index a93935a..f5c25b7 100644
--- a/spring-registry-commons/src/main/java/org/apache/archiva/redback/components/registry/commons/CommonsConfigurationRegistry.java
+++ b/spring-registry-commons/src/main/java/org/apache/archiva/redback/components/registry/commons/CommonsConfigurationRegistry.java
@@ -32,10 +32,10 @@
 import org.apache.commons.configuration.XMLConfiguration;
 import org.apache.commons.configuration.event.EventSource;
 import org.apache.commons.configuration.tree.DefaultExpressionEngine;
-import org.apache.commons.lang.StringUtils;
-import org.codehaus.plexus.interpolation.InterpolationException;
-import org.codehaus.plexus.interpolation.PropertiesBasedValueSource;
-import org.codehaus.plexus.interpolation.StringSearchInterpolator;
+import org.apache.commons.lang3.StringUtils;
+
+import org.apache.commons.text.StringSubstitutor;
+import org.apache.commons.text.lookup.StringLookupFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -70,7 +70,7 @@
      */
     private Configuration configuration;
 
-    private Logger logger = LoggerFactory.getLogger( getClass() );
+    private Logger logger = LoggerFactory.getLogger( getClass( ) );
 
     private String propertyDelimiter = ".";
 
@@ -83,7 +83,7 @@
     private String properties;
 
 
-    public CommonsConfigurationRegistry()
+    public CommonsConfigurationRegistry( )
     {
         // default constructor
         logger.debug( "empty constructor" );
@@ -99,22 +99,22 @@
         this.configuration = configuration;
     }
 
-    public String dump()
+    public String dump( )
     {
-        StringBuilder buffer = new StringBuilder();
+        StringBuilder buffer = new StringBuilder( );
         buffer.append( "Configuration Dump." );
-        for ( Iterator i = configuration.getKeys(); i.hasNext(); )
+        for ( Iterator i = configuration.getKeys( ); i.hasNext( ); )
         {
-            String key = (String) i.next();
+            String key = (String) i.next( );
             Object value = configuration.getProperty( key );
             buffer.append( "\n\"" ).append( key ).append( "\" = \"" ).append( value ).append( "\"" );
         }
-        return buffer.toString();
+        return buffer.toString( );
     }
 
-    public boolean isEmpty()
+    public boolean isEmpty( )
     {
-        return configuration.isEmpty();
+        return configuration.isEmpty( );
     }
 
     public Registry getSubset( String key )
@@ -129,13 +129,13 @@
 
     public List<Registry> getSubsetList( String key )
     {
-        List<Registry> subsets = new ArrayList<>();
+        List<Registry> subsets = new ArrayList<>( );
 
         boolean done = false;
         do
         {
-            Registry registry = getSubset( key + "(" + subsets.size() + ")" );
-            if ( !registry.isEmpty() )
+            Registry registry = getSubset( key + "(" + subsets.size( ) + ")" );
+            if ( !registry.isEmpty( ) )
             {
                 subsets.add( registry );
             }
@@ -153,27 +153,27 @@
     {
         Configuration configuration = this.configuration.subset( key );
 
-        Properties properties = new Properties();
-        for ( Iterator i = configuration.getKeys(); i.hasNext(); )
+        Properties properties = new Properties( );
+        for ( Iterator i = configuration.getKeys( ); i.hasNext( ); )
         {
-            String property = (String) i.next();
+            String property = (String) i.next( );
             List l = configuration.getList( property );
-            StringBuilder sb = new StringBuilder();
+            StringBuilder sb = new StringBuilder( );
             for ( Object element : l )
             {
                 sb.append( (String) element );
                 sb.append( "," );
             }
-            if ( sb.length() > 0 )
+            if ( sb.length( ) > 0 )
             {
-                sb.deleteCharAt( sb.length() - 1 );
+                sb.deleteCharAt( sb.length( ) - 1 );
             }
-            properties.setProperty( property, sb.toString() );
+            properties.setProperty( property, sb.toString( ) );
         }
         return properties;
     }
 
-    public void save()
+    public void save( )
         throws RegistryException
     {
         if ( configuration instanceof FileConfiguration )
@@ -181,11 +181,11 @@
             FileConfiguration fileConfiguration = (FileConfiguration) configuration;
             try
             {
-                fileConfiguration.save();
+                fileConfiguration.save( );
             }
             catch ( ConfigurationException e )
             {
-                throw new RegistryException( e.getMessage(), e );
+                throw new RegistryException( e.getMessage( ), e );
             }
         }
         else
@@ -213,18 +213,18 @@
     }
 
 
-    public int getChangeListenersSize()
+    public int getChangeListenersSize( )
     {
-        return EventSource.class.cast( this.configuration ).getConfigurationListeners().size();
+        return EventSource.class.cast( this.configuration ).getConfigurationListeners( ).size( );
     }
 
-    public Collection<String> getKeys()
+    public Collection<String> getKeys( )
     {
-        Set<String> keys = new HashSet<String>();
+        Set<String> keys = new HashSet<String>( );
 
-        for ( Iterator<String> i = configuration.getKeys(); i.hasNext(); )
+        for ( Iterator<String> i = configuration.getKeys( ); i.hasNext( ); )
         {
-            String key = i.next();
+            String key = i.next( );
 
             int index = key.indexOf( '.' );
             if ( index < 0 )
@@ -240,13 +240,13 @@
         return keys;
     }
 
-    public Collection getFullKeys()
+    public Collection getFullKeys( )
     {
-        Set<String> keys = new HashSet<String>();
+        Set<String> keys = new HashSet<String>( );
 
-        for ( Iterator<String> i = configuration.getKeys(); i.hasNext(); )
+        for ( Iterator<String> i = configuration.getKeys( ); i.hasNext( ); )
         {
-            keys.add( i.next() );
+            keys.add( i.next( ) );
         }
 
         return keys;
@@ -260,15 +260,15 @@
     public void removeSubset( String key )
     {
         // create temporary list since removing a key will modify the iterator from configuration
-        List keys = new ArrayList();
-        for ( Iterator i = configuration.getKeys( key ); i.hasNext(); )
+        List keys = new ArrayList( );
+        for ( Iterator i = configuration.getKeys( key ); i.hasNext( ); )
         {
-            keys.add( i.next() );
+            keys.add( i.next( ) );
         }
 
-        for ( Iterator i = keys.iterator(); i.hasNext(); )
+        for ( Iterator i = keys.iterator( ); i.hasNext( ); )
         {
-            configuration.clearProperty( (String) i.next() );
+            configuration.clearProperty( (String) i.next( ) );
         }
     }
 
@@ -337,7 +337,7 @@
             catch ( ConfigurationException e )
             {
                 throw new RegistryException(
-                    "Unable to add configuration from resource '" + resource + "': " + e.getMessage(), e );
+                    "Unable to add configuration from resource '" + resource + "': " + e.getMessage( ), e );
             }
         }
         else if ( resource.endsWith( ".xml" ) )
@@ -350,7 +350,7 @@
             catch ( ConfigurationException e )
             {
                 throw new RegistryException(
-                    "Unable to add configuration from resource '" + resource + "': " + e.getMessage(), e );
+                    "Unable to add configuration from resource '" + resource + "': " + e.getMessage( ), e );
             }
         }
         else
@@ -370,7 +370,7 @@
         throws RegistryException
     {
         CombinedConfiguration configuration = (CombinedConfiguration) this.configuration;
-        if ( file.getName().endsWith( ".properties" ) )
+        if ( file.getName( ).endsWith( ".properties" ) )
         {
             try
             {
@@ -380,10 +380,10 @@
             catch ( ConfigurationException e )
             {
                 throw new RegistryException(
-                    "Unable to add configuration from file '" + file.getName() + "': " + e.getMessage(), e );
+                    "Unable to add configuration from file '" + file.getName( ) + "': " + e.getMessage( ), e );
             }
         }
-        else if ( file.getName().endsWith( ".xml" ) )
+        else if ( file.getName( ).endsWith( ".xml" ) )
         {
             try
             {
@@ -393,18 +393,18 @@
             catch ( ConfigurationException e )
             {
                 throw new RegistryException(
-                    "Unable to add configuration from file '" + file.getName() + "': " + e.getMessage(), e );
+                    "Unable to add configuration from file '" + file.getName( ) + "': " + e.getMessage( ), e );
             }
         }
         else
         {
             throw new RegistryException(
-                "Unable to add configuration from file '" + file.getName() + "': unrecognised type" );
+                "Unable to add configuration from file '" + file.getName( ) + "': unrecognised type" );
         }
     }
 
     @PostConstruct
-    public void initialize()
+    public void initialize( )
         throws RegistryException
     {
         try
@@ -412,43 +412,34 @@
             CombinedConfiguration configuration;
             if ( StringUtils.isNotBlank( properties ) )
             {
-                try
-                {
-                    DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
-                    DefaultExpressionEngine expressionEngine = new DefaultExpressionEngine();
-                    expressionEngine.setPropertyDelimiter( propertyDelimiter );
-                    builder.setExpressionEngine( expressionEngine );
+                DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder( );
+                DefaultExpressionEngine expressionEngine = new DefaultExpressionEngine( );
+                expressionEngine.setPropertyDelimiter( propertyDelimiter );
+                builder.setExpressionEngine( expressionEngine );
 
-                    StringSearchInterpolator interpolator = new StringSearchInterpolator( "${", "}" );
-                    // interpolation as plexus did it before
-                    interpolator.addValueSource( new PropertiesBasedValueSource( System.getProperties() ) );
+                StringSubstitutor substitutor = new StringSubstitutor( StringLookupFactory.INSTANCE.systemPropertyStringLookup( ) );
 
-                    String interpolatedProps = interpolator.interpolate( properties );
+                String interpolatedProps = substitutor.replace( properties );
 
-                    logger.debug( "Loading configuration into commons-configuration, xml {}", interpolatedProps );
-                    builder.load( new StringReader( interpolatedProps ) );
-                    configuration = builder.getConfiguration( false );
-                    configuration.setExpressionEngine( expressionEngine );
-                    //configuration.set
-                }
-                catch ( InterpolationException e )
-                {
-                    throw new RuntimeException( e.getMessage(), e );
-                }
+                logger.debug( "Loading configuration into commons-configuration, xml {}", interpolatedProps );
+                builder.load( new StringReader( interpolatedProps ) );
+                configuration = builder.getConfiguration( false );
+                configuration.setExpressionEngine( expressionEngine );
+                //configuration.set
             }
             else
             {
                 logger.debug( "Creating a default configuration - no configuration was provided" );
-                configuration = new CombinedConfiguration();
+                configuration = new CombinedConfiguration( );
             }
 
-            configuration.addConfiguration( new SystemConfiguration() );
+            configuration.addConfiguration( new SystemConfiguration( ) );
 
             this.configuration = configuration;
         }
         catch ( ConfigurationException e )
         {
-            throw new RuntimeException( e.getMessage(), e );
+            throw new RuntimeException( e.getMessage( ), e );
         }
     }
 
@@ -464,7 +455,7 @@
         return configuration == null ? null : new CommonsConfigurationRegistry( configuration );
     }
 
-    public String getPropertyDelimiter()
+    public String getPropertyDelimiter( )
     {
         return propertyDelimiter;
     }
diff --git a/spring-registry-commons/src/test/java/org/apache/archiva/redback/components/registry/CommonsConfigurationRegistryTest.java b/spring-registry-commons/src/test/java/org/apache/archiva/redback/components/registry/CommonsConfigurationRegistryTest.java
index 8a5e473..d096c89 100644
--- a/spring-registry-commons/src/test/java/org/apache/archiva/redback/components/registry/CommonsConfigurationRegistryTest.java
+++ b/spring-registry-commons/src/test/java/org/apache/archiva/redback/components/registry/CommonsConfigurationRegistryTest.java
@@ -21,10 +21,10 @@
 
 import org.apache.archiva.redback.components.registry.commons.CommonsConfigurationRegistry;
 import org.apache.commons.configuration.XMLConfiguration;
-import org.codehaus.plexus.util.FileUtils;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.util.FileCopyUtils;
 
 import java.io.File;
 import java.util.Arrays;
@@ -346,7 +346,7 @@
     {
         File src = new File( "./src/test/resources/test-save.xml" );
         File dest = new File( "./target/test-classes/test-save.xml" );
-        FileUtils.copyFile( src, dest );
+        FileCopyUtils.copy( src, dest );
 
         registry = getRegistry( "test-save" );