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 <[email protected]> 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( ) ); + } + } }
