You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ma...@apache.org on 2019/12/04 19:36:17 UTC

[archiva-components] 01/01: Migrating to apache commons config 2

This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a commit to branch feature/acc2
in repository https://gitbox.apache.org/repos/asf/archiva-components.git

commit 1670b17a1ca469cd1c72a99caa838a7c6c2f4796
Author: Martin Stockhammer <ma...@apache.org>
AuthorDate: Wed Dec 4 20:35:59 2019 +0100

    Migrating to apache commons config 2
---
 spring-registry/spring-registry-commons/pom.xml    | 31 +------------
 .../commons/CommonsConfigurationRegistry.java      | 51 ++++++++++++----------
 .../commons/ConfigurationListenerDelegate.java     | 39 +++++++++--------
 3 files changed, 52 insertions(+), 69 deletions(-)

diff --git a/spring-registry/spring-registry-commons/pom.xml b/spring-registry/spring-registry-commons/pom.xml
index 3baf2f9..4993a74 100644
--- a/spring-registry/spring-registry-commons/pom.xml
+++ b/spring-registry/spring-registry-commons/pom.xml
@@ -44,36 +44,9 @@
       <artifactId>archiva-components-spring-registry-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>commons-configuration</groupId>
-      <artifactId>commons-configuration</artifactId>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-configuration2</artifactId>
       <version>${commons.configuration.version}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>commons-beanutils</groupId>
-          <artifactId>commons-beanutils-core</artifactId>
-        </exclusion>
-        <!-- targeting JDK 1.4, xml parser/apis not needed -->
-        <exclusion>
-          <groupId>xerces</groupId>
-          <artifactId>xerces</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>xerces</groupId>
-          <artifactId>xercesImpl</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>xalan</groupId>
-          <artifactId>xalan</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>xml-apis</groupId>
-          <artifactId>xml-apis</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>servletapi</groupId>
-          <artifactId>servletapi</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
 
     <dependency>
diff --git a/spring-registry/spring-registry-commons/src/main/java/org/apache/archiva/components/registry/commons/CommonsConfigurationRegistry.java b/spring-registry/spring-registry-commons/src/main/java/org/apache/archiva/components/registry/commons/CommonsConfigurationRegistry.java
index 6602f1d..e90b715 100644
--- a/spring-registry/spring-registry-commons/src/main/java/org/apache/archiva/components/registry/commons/CommonsConfigurationRegistry.java
+++ b/spring-registry/spring-registry-commons/src/main/java/org/apache/archiva/components/registry/commons/CommonsConfigurationRegistry.java
@@ -22,16 +22,18 @@ package org.apache.archiva.components.registry.commons;
 import org.apache.archiva.components.registry.Registry;
 import org.apache.archiva.components.registry.RegistryException;
 import org.apache.archiva.components.registry.RegistryListener;
-import org.apache.commons.configuration.CombinedConfiguration;
-import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.DefaultConfigurationBuilder;
-import org.apache.commons.configuration.FileConfiguration;
-import org.apache.commons.configuration.PropertiesConfiguration;
-import org.apache.commons.configuration.SystemConfiguration;
-import org.apache.commons.configuration.XMLConfiguration;
-import org.apache.commons.configuration.event.EventSource;
-import org.apache.commons.configuration.tree.DefaultExpressionEngine;
+import org.apache.commons.configuration2.CombinedConfiguration;
+import org.apache.commons.configuration2.Configuration;
+import org.apache.commons.configuration2.FileBasedConfiguration;
+import org.apache.commons.configuration2.ImmutableConfiguration;
+import org.apache.commons.configuration2.PropertiesConfiguration;
+import org.apache.commons.configuration2.XMLConfiguration;
+import org.apache.commons.configuration2.builder.ConfigurationBuilder;
+import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
+import org.apache.commons.configuration2.event.Event;
+import org.apache.commons.configuration2.event.EventSource;
+import org.apache.commons.configuration2.event.EventType;
+import org.apache.commons.configuration2.ex.ConfigurationException;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.text.StringSubstitutor;
 import org.apache.commons.text.lookup.StringLookupFactory;
@@ -68,6 +70,7 @@ public class CommonsConfigurationRegistry
      * The combined configuration instance that houses the registry.
      */
     private Configuration configuration;
+    private ConfigurationBuilder<? extends Configuration> configurationBuilder;
 
     private Logger logger = LoggerFactory.getLogger( getClass( ) );
 
@@ -89,14 +92,22 @@ public class CommonsConfigurationRegistry
         this.configuration = new CombinedConfiguration( );
     }
 
-    public CommonsConfigurationRegistry( Configuration configuration )
+    public CommonsConfigurationRegistry( ConfigurationBuilder<? extends Configuration> configurationBuilder )
     {
-        if ( configuration == null )
+        if ( configurationBuilder == null )
         {
             throw new NullPointerException( "configuration can not be null" );
         }
 
-        this.configuration = configuration;
+        this.configurationBuilder = configurationBuilder;
+        try
+        {
+            this.configuration = configurationBuilder.getConfiguration( );
+        }
+        catch ( ConfigurationException e )
+        {
+            logger.error( "Could not retrieve configuration" );
+        }
     }
 
     public String dump( )
@@ -176,12 +187,12 @@ public class CommonsConfigurationRegistry
     public void save( )
         throws RegistryException
     {
-        if ( configuration instanceof FileConfiguration )
+        if ( configurationBuilder instanceof FileBasedConfigurationBuilder )
         {
-            FileConfiguration fileConfiguration = (FileConfiguration) configuration;
+            FileBasedConfigurationBuilder fileConfigurationBuilder = (FileBasedConfigurationBuilder) configurationBuilder;
             try
             {
-                fileConfiguration.save( );
+                fileConfigurationBuilder.save( );
             }
             catch ( ConfigurationException e )
             {
@@ -198,7 +209,7 @@ public class CommonsConfigurationRegistry
     {
         EventSource eventSource = EventSource.class.cast( this.configuration );
 
-        eventSource.addConfigurationListener( new ConfigurationListenerDelegate( listener, this ) );
+        eventSource.addEventListener( Event.ANY, new ConfigurationListenerDelegate( listener, this ) );
     }
 
     @Override
@@ -207,16 +218,12 @@ public class CommonsConfigurationRegistry
         EventSource eventSource = EventSource.class.cast( this.configuration );
 
         boolean removed =
-            eventSource.removeConfigurationListener( new ConfigurationListenerDelegate( listener, this ) );
+            eventSource.removeEventListener( Event.ANY, new ConfigurationListenerDelegate( listener, this ) );
 
         return removed;
     }
 
 
-    public int getChangeListenersSize( )
-    {
-        return EventSource.class.cast( this.configuration ).getConfigurationListeners( ).size( );
-    }
 
     public Collection<String> getKeys( )
     {
diff --git a/spring-registry/spring-registry-commons/src/main/java/org/apache/archiva/components/registry/commons/ConfigurationListenerDelegate.java b/spring-registry/spring-registry-commons/src/main/java/org/apache/archiva/components/registry/commons/ConfigurationListenerDelegate.java
index 4320eab..4352b6c 100644
--- a/spring-registry/spring-registry-commons/src/main/java/org/apache/archiva/components/registry/commons/ConfigurationListenerDelegate.java
+++ b/spring-registry/spring-registry-commons/src/main/java/org/apache/archiva/components/registry/commons/ConfigurationListenerDelegate.java
@@ -21,14 +21,15 @@ package org.apache.archiva.components.registry.commons;
 
 import org.apache.archiva.components.registry.Registry;
 import org.apache.archiva.components.registry.RegistryListener;
-import org.apache.commons.configuration.event.ConfigurationEvent;
-import org.apache.commons.configuration.event.ConfigurationListener;
+import org.apache.commons.configuration2.event.ConfigurationEvent;
+import org.apache.commons.configuration2.event.Event;
+import org.apache.commons.configuration2.event.EventListener;
 
 /**
  * Commons configuration listener that delegates to the given registry listener.
  */
 public class ConfigurationListenerDelegate
-    implements ConfigurationListener
+    implements EventListener
 {
     /**
      * Delegate listener.
@@ -47,21 +48,6 @@ public class ConfigurationListenerDelegate
         this.registry = registry;
     }
 
-    public void configurationChanged( ConfigurationEvent event )
-    {
-        if ( event.getPropertyName( ) != null )
-        {
-            if ( event.isBeforeUpdate( ) )
-            {
-                listener.beforeConfigurationChange( registry, event.getPropertyName( ), event.getPropertyValue( ) );
-            }
-            else
-            {
-                listener.afterConfigurationChange( registry, event.getPropertyName( ), event.getPropertyValue( ) );
-            }
-        }
-    }
-
     // needed to be sure elements are properly removed from the listeners list
     @Override
     public int hashCode( )
@@ -79,4 +65,21 @@ public class ConfigurationListenerDelegate
         }
         return super.equals( obj );
     }
+
+    @Override
+    public void onEvent( Event event ) {
+        // Do nothing
+    }
+
+    public void onEvent( ConfigurationEvent event )
+    {
+        if ( event.isBeforeUpdate())
+        {
+            listener.beforeConfigurationChange( registry, event.getPropertyName( ), event.getPropertyValue( ) );
+        }
+        else
+        {
+            listener.afterConfigurationChange( registry, event.getPropertyName( ), event.getPropertyValue( ) );
+        }
+    }
 }