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 2012/12/31 19:56:22 UTC

svn commit: r1427221 - in /commons/proper/configuration/trunk/src: main/java/org/apache/commons/configuration/reloading/CombinedReloadingController.java test/java/org/apache/commons/configuration/reloading/TestCombinedReloadingController.java

Author: oheger
Date: Mon Dec 31 18:56:21 2012
New Revision: 1427221

URL: http://svn.apache.org/viewvc?rev=1427221&view=rev
Log:
Allowed access to a combined reloading controller's sub controllers.

Modified:
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/reloading/CombinedReloadingController.java
    commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/reloading/TestCombinedReloadingController.java

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/reloading/CombinedReloadingController.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/reloading/CombinedReloadingController.java?rev=1427221&r1=1427220&r2=1427221&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/reloading/CombinedReloadingController.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/reloading/CombinedReloadingController.java Mon Dec 31 18:56:21 2012
@@ -18,6 +18,7 @@ package org.apache.commons.configuration
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 
 /**
  * <p>
@@ -62,6 +63,18 @@ public class CombinedReloadingController
     }
 
     /**
+     * Returns a (unmodifiable) collection with the sub controllers managed by
+     * this combined controller.
+     *
+     * @return a collection with sub controllers
+     */
+    public Collection<ReloadingController> getSubControllers()
+    {
+        return ((MultiReloadingControllerDetector) getDetector())
+                .getControllers();
+    }
+
+    /**
      * Creates a specialized detector object which manages the passed in sub
      * controllers. The collection with controllers is also checked for
      * validity.
@@ -91,7 +104,8 @@ public class CombinedReloadingController
             }
         }
 
-        return new MultiReloadingControllerDetector(ctrls);
+        return new MultiReloadingControllerDetector(
+                Collections.unmodifiableCollection(ctrls));
     }
 
     /**
@@ -125,7 +139,7 @@ public class CombinedReloadingController
          */
         public boolean isReloadingRequired()
         {
-            for (ReloadingController rc : controllers)
+            for (ReloadingController rc : getControllers())
             {
                 if (rc.checkForReloading(null) || rc.isInReloadingState())
                 {
@@ -141,10 +155,20 @@ public class CombinedReloadingController
          */
         public void reloadingPerformed()
         {
-            for (ReloadingController rc : controllers)
+            for (ReloadingController rc : getControllers())
             {
                 rc.resetReloadingState();
             }
         }
+
+        /**
+         * Returns the collection with managed sub controllers.
+         *
+         * @return the controllers the sub controllers
+         */
+        Collection<ReloadingController> getControllers()
+        {
+            return controllers;
+        }
     }
 }

Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/reloading/TestCombinedReloadingController.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/reloading/TestCombinedReloadingController.java?rev=1427221&r1=1427220&r2=1427221&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/reloading/TestCombinedReloadingController.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/reloading/TestCombinedReloadingController.java Mon Dec 31 18:56:21 2012
@@ -16,6 +16,7 @@
  */
 package org.apache.commons.configuration.reloading;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
@@ -177,4 +178,30 @@ public class TestCombinedReloadingContro
         ctrl.resetReloadingState();
         verifySubSontrollers();
     }
+
+    /**
+     * Tests whether the sub controllers can be accessed.
+     */
+    @Test
+    public void testGetSubControllers()
+    {
+        CombinedReloadingController ctrl = setUpController();
+        replaySubControllers();
+        Collection<ReloadingController> subs = ctrl.getSubControllers();
+        assertEquals("Wrong number of sub controllers", subControllers.length,
+                subs.size());
+        assertTrue("Wrong sub controllers",
+                subs.containsAll(Arrays.asList(subControllers)));
+    }
+
+    /**
+     * Tests that the list of sub controllers cannot be manipulated.
+     */
+    @Test(expected = UnsupportedOperationException.class)
+    public void testGetSubControllersModify()
+    {
+        Collection<ReloadingController> subs =
+                setUpController().getSubControllers();
+        subs.clear();
+    }
 }