You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2014/07/11 22:27:41 UTC
svn commit: r1609809 - in /commons/proper/configuration/trunk/src:
main/java/org/apache/commons/configuration/builder/combined/
test/java/org/apache/commons/configuration/builder/combined/
Author: oheger
Date: Fri Jul 11 20:27:41 2014
New Revision: 1609809
URL: http://svn.apache.org/r1609809
Log:
Reworked handling of event listeners in MultiFileConfigurationBuilder.
The methods for registering event listeners of the new type are now overridden.
Modified:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/combined/MultiFileConfigurationBuilder.java
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestMultiFileConfigurationBuilder.java
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/combined/MultiFileConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/combined/MultiFileConfigurationBuilder.java?rev=1609809&r1=1609808&r2=1609809&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/combined/MultiFileConfigurationBuilder.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/combined/MultiFileConfigurationBuilder.java Fri Jul 11 20:27:41 2014
@@ -29,9 +29,9 @@ import org.apache.commons.configuration.
import org.apache.commons.configuration.builder.BuilderParameters;
import org.apache.commons.configuration.builder.ConfigurationBuilderEvent;
import org.apache.commons.configuration.builder.FileBasedConfigurationBuilder;
-import org.apache.commons.configuration.event.ConfigurationErrorListener;
-import org.apache.commons.configuration.event.ConfigurationListener;
+import org.apache.commons.configuration.event.Event;
import org.apache.commons.configuration.event.EventListener;
+import org.apache.commons.configuration.event.EventType;
import org.apache.commons.configuration.ex.ConfigurationException;
import org.apache.commons.configuration.interpol.ConfigurationInterpolator;
import org.apache.commons.configuration.interpol.InterpolatorSpecification;
@@ -230,13 +230,13 @@ public class MultiFileConfigurationBuild
* at managed configuration builders.
*/
@Override
- public synchronized BasicConfigurationBuilder<T> addConfigurationListener(
- ConfigurationListener l)
+ public synchronized <E extends Event> BasicConfigurationBuilder<T> addConfigurationListener(
+ EventType<E> eventType, EventListener<? super E> l)
{
- super.addConfigurationListener(l);
+ super.addConfigurationListener(eventType, l);
for (FileBasedConfigurationBuilder<T> b : getManagedBuilders().values())
{
- b.addConfigurationListener(l);
+ b.addConfigurationListener(eventType, l);
}
return this;
}
@@ -246,45 +246,13 @@ public class MultiFileConfigurationBuild
* removed from managed configuration builders.
*/
@Override
- public synchronized BasicConfigurationBuilder<T> removeConfigurationListener(
- ConfigurationListener l)
+ public synchronized <E extends Event> BasicConfigurationBuilder<T> removeConfigurationListener(
+ EventType<E> eventType, EventListener<? super E> l)
{
- super.removeConfigurationListener(l);
+ super.removeConfigurationListener(eventType, l);
for (FileBasedConfigurationBuilder<T> b : getManagedBuilders().values())
{
- b.removeConfigurationListener(l);
- }
- return this;
- }
-
- /**
- * {@inheritDoc} This implementation ensures that the listener is also added
- * at managed configuration builders.
- */
- @Override
- public synchronized BasicConfigurationBuilder<T> addErrorListener(
- ConfigurationErrorListener l)
- {
- super.addErrorListener(l);
- for (FileBasedConfigurationBuilder<T> b : getManagedBuilders().values())
- {
- b.addErrorListener(l);
- }
- return this;
- }
-
- /**
- * {@inheritDoc} This implementation ensures that the listener is also
- * removed from managed configuration builders.
- */
- @Override
- public synchronized BasicConfigurationBuilder<T> removeErrorListener(
- ConfigurationErrorListener l)
- {
- super.removeErrorListener(l);
- for (FileBasedConfigurationBuilder<T> b : getManagedBuilders().values())
- {
- b.removeErrorListener(l);
+ b.removeConfigurationListener(eventType, l);
}
return this;
}
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestMultiFileConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestMultiFileConfigurationBuilder.java?rev=1609809&r1=1609808&r2=1609809&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestMultiFileConfigurationBuilder.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestMultiFileConfigurationBuilder.java Fri Jul 11 20:27:41 2014
@@ -40,8 +40,9 @@ import org.apache.commons.configuration.
import org.apache.commons.configuration.builder.FileBasedConfigurationBuilder;
import org.apache.commons.configuration.builder.XMLBuilderParametersImpl;
import org.apache.commons.configuration.convert.DefaultListDelimiterHandler;
-import org.apache.commons.configuration.event.ConfigurationErrorListener;
-import org.apache.commons.configuration.event.ConfigurationListener;
+import org.apache.commons.configuration.event.ConfigurationEvent;
+import org.apache.commons.configuration.event.Event;
+import org.apache.commons.configuration.event.EventListener;
import org.apache.commons.configuration.ex.ConfigurationException;
import org.apache.commons.configuration.interpol.ConfigurationInterpolator;
import org.apache.commons.configuration.interpol.DefaultLookups;
@@ -255,59 +256,31 @@ public class TestMultiFileConfigurationB
@Test
public void testAddConfigurationListener() throws ConfigurationException
{
- ConfigurationListener l1 =
- EasyMock.createMock(ConfigurationListener.class);
- ConfigurationListener l2 =
- EasyMock.createMock(ConfigurationListener.class);
+ @SuppressWarnings("unchecked")
+ EventListener<ConfigurationEvent> l1 =
+ EasyMock.createMock(EventListener.class);
+ @SuppressWarnings("unchecked")
+ EventListener<Event> l2 =
+ EasyMock.createMock(EventListener.class);
EasyMock.replay(l1, l2);
MultiFileConfigurationBuilder<XMLConfiguration> builder =
createTestBuilder(null);
assertSame("Wrong result", builder,
- builder.addConfigurationListener(l1));
+ builder.addConfigurationListener(ConfigurationEvent.ANY, l1));
switchToConfig(1);
XMLConfiguration config = builder.getConfiguration();
- assertTrue("Listener not added", config.getConfigurationListeners()
+ assertTrue("Listener not added", config.getEventListeners(ConfigurationEvent.ANY)
.contains(l1));
- builder.addConfigurationListener(l2);
- assertTrue("Listener 2 not added", config.getConfigurationListeners()
+ builder.addConfigurationListener(Event.ANY, l2);
+ assertTrue("Listener 2 not added", config.getEventListeners(Event.ANY)
.contains(l2));
- builder.removeConfigurationListener(l2);
- assertFalse("Listener not removed", config.getConfigurationListeners()
+ builder.removeConfigurationListener(Event.ANY, l2);
+ assertFalse("Listener not removed", config.getEventListeners(Event.ANY)
.contains(l2));
switchToConfig(2);
XMLConfiguration config2 = builder.getConfiguration();
assertFalse("Listener not globally removed", config2
- .getConfigurationListeners().contains(l2));
- }
-
- /**
- * Tests whether error listeners are handled correctly.
- */
- @Test
- public void testAddErrorListener() throws ConfigurationException
- {
- ConfigurationErrorListener l1 =
- EasyMock.createMock(ConfigurationErrorListener.class);
- ConfigurationErrorListener l2 =
- EasyMock.createMock(ConfigurationErrorListener.class);
- EasyMock.replay(l1, l2);
- MultiFileConfigurationBuilder<XMLConfiguration> builder =
- createTestBuilder(null);
- assertSame("Wrong result", builder, builder.addErrorListener(l1));
- switchToConfig(1);
- XMLConfiguration config = builder.getConfiguration();
- assertTrue("Listener not added", config.getErrorListeners()
- .contains(l1));
- builder.addErrorListener(l2);
- assertTrue("Listener 2 not added",
- config.getErrorListeners().contains(l2));
- builder.removeErrorListener(l2);
- assertFalse("Listener not removed", config.getErrorListeners()
- .contains(l2));
- switchToConfig(2);
- XMLConfiguration config2 = builder.getConfiguration();
- assertFalse("Listener not globally removed", config2
- .getErrorListeners().contains(l2));
+ .getEventListeners(Event.ANY).contains(l2));
}
/**