[jboss-svn-commits] JBL Code SVN: r33494 - in labs/jbossrules/trunk/drools-core/src: test/java/org/drools and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jun 14 14:29:30 EDT 2010
Author: eaa
Date: 2010-06-14 14:29:30 -0400 (Mon, 14 Jun 2010)
New Revision: 33494
Added:
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/io/
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/io/ResourceChangeScannerTest.java
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/io/impl/ResourceChangeScannerConfigurationImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/io/impl/ResourceChangeScannerImpl.java
Log:
JBRULES-2549: ResourceChangeScanner should fail when scanning interval is set to a negative value or 0
- ResourceChangeScannerImpl: an IllegalArgumentException is thrown when trying to configure the scanner with a negative or 0 interval
- ResourceChangeScannerConfiguratioinImpl: The default value for "interval" was changed from 0 to 60
- Added a test
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/io/impl/ResourceChangeScannerConfigurationImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/io/impl/ResourceChangeScannerConfigurationImpl.java 2010-06-14 14:35:16 UTC (rev 33493)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/io/impl/ResourceChangeScannerConfigurationImpl.java 2010-06-14 18:29:30 UTC (rev 33494)
@@ -10,7 +10,7 @@
private int interval;
public ResourceChangeScannerConfigurationImpl() {
-
+ interval = 60;
}
public ResourceChangeScannerConfigurationImpl(Properties properties) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/io/impl/ResourceChangeScannerImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/io/impl/ResourceChangeScannerImpl.java 2010-06-14 14:35:16 UTC (rev 33493)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/io/impl/ResourceChangeScannerImpl.java 2010-06-14 18:29:30 UTC (rev 33494)
@@ -29,7 +29,7 @@
this.listener = SystemEventListenerFactory.getSystemEventListener();
this.resources = new HashMap<Resource, Set<ResourceChangeNotifier>>();
this.directories = new HashSet<Resource>();
- this.interval = 60;
+ this.setInterval(60);
this.listener.info( "ResourceChangeScanner created with default interval=60" );
}
@@ -38,7 +38,7 @@
}
public void configure(ResourceChangeScannerConfiguration configuration) {
- this.interval = ((ResourceChangeScannerConfigurationImpl) configuration).getInterval();
+ this.setInterval(((ResourceChangeScannerConfigurationImpl) configuration).getInterval());
this.listener.info( "ResourceChangeScanner reconfigured with interval=" + getInterval() );
// restart it if it's already running.
@@ -225,6 +225,10 @@
}
public void setInterval(int interval) {
+ if (interval <= 0 ){
+ throw new IllegalArgumentException("Invalid interval time: "+interval+". It should be a positive number bigger than 0");
+ }
+
this.interval = interval;
this.listener.info("ResourceChangeScanner reconfigured with interval="
+ getInterval());
Added: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/io/ResourceChangeScannerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/io/ResourceChangeScannerTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/io/ResourceChangeScannerTest.java 2010-06-14 18:29:30 UTC (rev 33494)
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2010 esteban.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * under the License.
+ */
+
+package org.drools.io;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+/**
+ *
+ * @author esteban
+ */
+public class ResourceChangeScannerTest {
+
+ public ResourceChangeScannerTest() {
+ }
+
+ @BeforeClass
+ public static void setUpClass() throws Exception {
+ }
+
+ @AfterClass
+ public static void tearDownClass() throws Exception {
+ }
+
+ @Before
+ public void setUp() {
+ }
+
+ @After
+ public void tearDown() {
+ }
+
+ @Test
+ public void testValidPollIntervals(){
+ //the default configuration should be valid!!
+ ResourceFactory.getResourceChangeScannerService();
+
+ //using a default configuration object should also work
+ ResourceChangeScannerConfiguration conf = ResourceFactory.getResourceChangeScannerService().newResourceChangeScannerConfiguration();
+ ResourceFactory.getResourceChangeScannerService().configure(conf);
+
+ //a positive value should be valid
+ conf = ResourceFactory.getResourceChangeScannerService().newResourceChangeScannerConfiguration();
+ conf.setProperty("drools.resource.scanner.interval", "10");
+ ResourceFactory.getResourceChangeScannerService().configure(conf);
+
+ ResourceFactory.getResourceChangeScannerService().setInterval(5);
+
+ }
+
+ @Test
+ public void testInvalidPollIntervals(){
+
+ //0 is not allowed because of performance reasons
+ try{
+ ResourceChangeScannerConfiguration conf = ResourceFactory.getResourceChangeScannerService().newResourceChangeScannerConfiguration();
+ conf.setProperty("drools.resource.scanner.interval", "0");
+ ResourceFactory.getResourceChangeScannerService().configure(conf);
+ fail("0 should not be allowed because of performance reasons.");
+ } catch (IllegalArgumentException ex){
+
+ }
+
+ //a negative interval value is not allowed
+ try{
+ ResourceChangeScannerConfiguration conf = ResourceFactory.getResourceChangeScannerService().newResourceChangeScannerConfiguration();
+ conf.setProperty("drools.resource.scanner.interval", "-10");
+ ResourceFactory.getResourceChangeScannerService().configure(conf);
+ fail("Negative values should not be allowed.");
+ } catch (IllegalArgumentException ex){
+
+ }
+
+ //0 is not allowed even when setting after Scanner configuration
+ try{
+ ResourceChangeScannerConfiguration conf = ResourceFactory.getResourceChangeScannerService().newResourceChangeScannerConfiguration();
+ conf.setProperty("drools.resource.scanner.interval", "60");
+ ResourceFactory.getResourceChangeScannerService().configure(conf);
+
+ ResourceFactory.getResourceChangeScannerService().setInterval(0);
+
+ fail("0 should not be allowed because of performance reasons.");
+ } catch (IllegalArgumentException ex){
+
+ }
+
+
+ //a negative interval value is not allowed even when setting after
+ //Scanner configuration
+ try{
+ ResourceChangeScannerConfiguration conf = ResourceFactory.getResourceChangeScannerService().newResourceChangeScannerConfiguration();
+ conf.setProperty("drools.resource.scanner.interval", "60");
+ ResourceFactory.getResourceChangeScannerService().configure(conf);
+
+ ResourceFactory.getResourceChangeScannerService().setInterval(-10);
+
+ fail("Negative values should not be allowed.");
+ } catch (IllegalArgumentException ex){
+
+ }
+
+ }
+
+}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list