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( ) );
+ }
+ }
}