Author: oheger
Date: Fri Jul 11 20:11:55 2014
New Revision: 1609784

URL: http://svn.apache.org/r1609784
Log:
Adapted ReloadingBuilderSupportListener to changes on ReloadingController.

The new event mechanism is used to register the listener.

Modified:
    
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/ReloadingBuilderSupportListener.java
    
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/TestReloadingBuilderSupportListener.java

Modified: 
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/ReloadingBuilderSupportListener.java
URL: 
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/ReloadingBuilderSupportListener.java?rev=1609784&r1=1609783&r2=1609784&view=diff
==============================================================================
--- 
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/ReloadingBuilderSupportListener.java
 (original)
+++ 
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/ReloadingBuilderSupportListener.java
 Fri Jul 11 20:11:55 2014
@@ -16,10 +16,10 @@
  */
 package org.apache.commons.configuration.builder;
 
+import org.apache.commons.configuration.event.Event;
 import org.apache.commons.configuration.event.EventListener;
 import org.apache.commons.configuration.reloading.ReloadingController;
 import org.apache.commons.configuration.reloading.ReloadingEvent;
-import org.apache.commons.configuration.reloading.ReloadingListener;
 
 /**
  * <p>
@@ -44,8 +44,7 @@ import org.apache.commons.configuration.
  * @version $Id$
  * @since 2.0
  */
-class ReloadingBuilderSupportListener implements ReloadingListener,
-        EventListener<ConfigurationBuilderEvent>
+class ReloadingBuilderSupportListener implements EventListener<Event>
 {
     /** Stores the associated configuration builder. */
     private final BasicConfigurationBuilder<?> builder;
@@ -85,7 +84,7 @@ class ReloadingBuilderSupportListener im
     {
         ReloadingBuilderSupportListener listener =
                 new ReloadingBuilderSupportListener(configBuilder, controller);
-        controller.addReloadingListener(listener);
+        controller.addEventListener(ReloadingEvent.ANY, listener);
         configBuilder
                 .addEventListener(
                         ConfigurationBuilderResultCreatedEvent.RESULT_CREATED,
@@ -94,22 +93,21 @@ class ReloadingBuilderSupportListener im
     }
 
     /**
-     * {@inheritDoc} This implementation resets the builder's managed
-     * configuration.
+     * {@inheritDoc} This implementation resets the controller's reloading 
state
+     * if an event about a newly created result was received. Otherwise, in 
case
+     * of a reloading event, the builder's result object is reset.
      */
     @Override
-    public void reloadingRequired(ReloadingEvent event)
+    public void onEvent(Event event)
     {
-        builder.resetResult();
-    }
-
-    /**
-     * {@inheritDoc} This implementation resets the controller's reloading
-     * state.
-     */
-    @Override
-    public void onEvent(ConfigurationBuilderEvent event)
-    {
-        reloadingController.resetReloadingState();
+        if (ConfigurationBuilderResultCreatedEvent.RESULT_CREATED.equals(event
+                .getEventType()))
+        {
+            reloadingController.resetReloadingState();
+        }
+        else
+        {
+            builder.resetResult();
+        }
     }
 }

Modified: 
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/TestReloadingBuilderSupportListener.java
URL: 
http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/TestReloadingBuilderSupportListener.java?rev=1609784&r1=1609783&r2=1609784&view=diff
==============================================================================
--- 
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/TestReloadingBuilderSupportListener.java
 (original)
+++ 
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/TestReloadingBuilderSupportListener.java
 Fri Jul 11 20:11:55 2014
@@ -20,10 +20,11 @@ import static org.junit.Assert.assertNot
 
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.PropertiesConfiguration;
+import org.apache.commons.configuration.event.EventListener;
 import org.apache.commons.configuration.ex.ConfigurationException;
 import org.apache.commons.configuration.reloading.ReloadingController;
 import org.apache.commons.configuration.reloading.ReloadingDetector;
-import org.apache.commons.configuration.reloading.ReloadingListener;
+import org.apache.commons.configuration.reloading.ReloadingEvent;
 import org.easymock.EasyMock;
 import org.junit.Test;
 
@@ -63,14 +64,15 @@ public class TestReloadingBuilderSupport
      * Tests that the controller's reloading state is reset when a new result
      * object is created.
      */
+    @SuppressWarnings("unchecked")
     @Test
     public void testResetReloadingStateOnResultCreation()
             throws ConfigurationException
     {
         ReloadingController controller =
                 EasyMock.createMock(ReloadingController.class);
-        controller.addReloadingListener(EasyMock
-                .anyObject(ReloadingListener.class));
+        controller.addEventListener(EasyMock.eq(ReloadingEvent.ANY),
+                EasyMock.anyObject(EventListener.class));
         controller.resetReloadingState();
         EasyMock.replay(controller);
         BasicConfigurationBuilder<Configuration> builder =
@@ -79,6 +81,7 @@ public class TestReloadingBuilderSupport
 
         ReloadingBuilderSupportListener listener =
                 ReloadingBuilderSupportListener.connect(builder, controller);
+        assertNotNull("No listener returned", listener);
         builder.getConfiguration();
         EasyMock.verify(controller);
     }


Reply via email to