[jboss-svn-commits] JBL Code SVN: r25328 - in labs/jbossrules/trunk/drools-compiler: src/test/java/org/drools/agent and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Feb 18 19:13:49 EST 2009
Author: mark.proctor at jboss.com
Date: 2009-02-18 19:13:49 -0500 (Wed, 18 Feb 2009)
New Revision: 25328
Modified:
labs/jbossrules/trunk/drools-compiler/pom.xml
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/agent/KnowledgeAgentTest.java
Log:
-updated agent test to also check against urls
Modified: labs/jbossrules/trunk/drools-compiler/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-compiler/pom.xml 2009-02-18 22:43:27 UTC (rev 25327)
+++ labs/jbossrules/trunk/drools-compiler/pom.xml 2009-02-19 00:13:49 UTC (rev 25328)
@@ -48,6 +48,12 @@
<groupId>org.mvel</groupId>
<artifactId>mvel2</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-embedded</artifactId>
+ <version>6.1.9</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<profiles>
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/agent/KnowledgeAgentTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/agent/KnowledgeAgentTest.java 2009-02-18 22:43:27 UTC (rev 25327)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/agent/KnowledgeAgentTest.java 2009-02-19 00:13:49 UTC (rev 25328)
@@ -17,26 +17,153 @@
import org.drools.io.impl.ResourceChangeScannerImpl;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.util.FileManager;
+import org.mortbay.jetty.Handler;
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.handler.AbstractHandler;
+import org.mortbay.jetty.handler.ResourceHandler;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
public class KnowledgeAgentTest extends TestCase {
- FileManager fileManager;
-
- protected void setUp() throws Exception {
+ FileManager fileManager;
+
+ private Server server;
+ private String returnUrl;
+
+ protected void setUp() throws Exception {
fileManager = new FileManager();
fileManager.setUp();
- ((ResourceChangeScannerImpl)ResourceFactory.getResourceChangeScannerService()).reset();
+ ((ResourceChangeScannerImpl) ResourceFactory.getResourceChangeScannerService()).reset();
ResourceFactory.getResourceChangeNotifierService().start();
ResourceFactory.getResourceChangeScannerService().start();
+
+ this.server = new Server( 9000 );
+ ResourceHandler resourceHandler = new ResourceHandler();
+ resourceHandler.setResourceBase( fileManager.getRootDirectory().getPath() );
+
+ server.setHandler( resourceHandler );
+
+ server.start();
}
-
protected void tearDown() throws Exception {
fileManager.tearDown();
ResourceFactory.getResourceChangeNotifierService().stop();
ResourceFactory.getResourceChangeScannerService().stop();
- ((ResourceChangeScannerImpl)ResourceFactory.getResourceChangeScannerService()).reset();
+ ((ResourceChangeScannerImpl) ResourceFactory.getResourceChangeScannerService()).reset();
}
+ public void testModifyUrl() throws Exception {
+ String rule1 = "";
+ rule1 += "package org.drools.test\n";
+ rule1 += "global java.util.List list\n";
+ rule1 += "rule rule1\n";
+ rule1 += "when\n";
+ rule1 += "then\n";
+ rule1 += "list.add( drools.getRule().getName() );\n";
+ rule1 += "end\n";
+ File f1 = fileManager.newFile( "rule1.drl" );
+ f1.deleteOnExit();
+ Writer output = new BufferedWriter( new FileWriter( f1 ) );
+ output.write( rule1 );
+ output.close();
+
+ String rule2 = "";
+ rule2 += "package org.drools.test\n";
+ rule2 += "global java.util.List list\n";
+ rule2 += "rule rule2\n";
+ rule2 += "when\n";
+ rule2 += "then\n";
+ rule2 += "list.add( drools.getRule().getName() );\n";
+ rule2 += "end\n";
+ File f2 = fileManager.newFile( "rule2.drl" );
+ f2.deleteOnExit();
+ output = new BufferedWriter( new FileWriter( f2 ) );
+ output.write( rule2 );
+ output.close();
+
+ String xml = "";
+ xml += "<change-set xmlns='http://drools.org/drools-5.0/change-set'";
+ xml += " xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'";
+ xml += " xs:schemaLocation='http://drools.org/drools-5.0/change-set drools-change-set-5.0.xsd' >";
+ xml += " <add> ";
+ xml += " <resource source='http://localhost:9000/rule1.drl' type='DRL' />";
+ xml += " <resource source='http://localhost:9000/rule2.drl' type='DRL' />";
+ xml += " </add> ";
+ xml += "</change-set>";
+ File fxml = fileManager.newFile( "changeset.xml" );
+ fxml.deleteOnExit();
+ output = new BufferedWriter( new FileWriter( fxml ) );
+ output.write( xml );
+ output.close();
+
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+
+ ResourceChangeScannerConfiguration sconf = ResourceFactory.getResourceChangeScannerService().newResourceChangeScannerConfiguration();
+ sconf.setProperty( "drools.resource.scanner.interval",
+ "2" );
+ ResourceFactory.getResourceChangeScannerService().configure( sconf );
+
+ KnowledgeAgentConfiguration aconf = KnowledgeAgentFactory.newKnowledgeAgentConfiguration();
+ aconf.setProperty( "drools.agent.scanDirectories",
+ "true" );
+ aconf.setProperty( "drools.agent.scanResources",
+ "true" );
+ aconf.setProperty( "drools.agent.newInstance",
+ "true" );
+ KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent( "test agent",
+ kbase,
+ aconf );
+
+ kagent.applyChangeSet( ResourceFactory.newUrlResource( fxml.toURI().toURL() ) );
+
+ StatefulKnowledgeSession ksession = kagent.getKnowledgeBase().newStatefulKnowledgeSession();
+ List list = new ArrayList();
+ ksession.setGlobal( "list",
+ list );
+ ksession.fireAllRules();
+ ksession.dispose();
+
+ assertEquals( 2,
+ list.size() );
+ assertTrue( list.contains( "rule1" ) );
+ assertTrue( list.contains( "rule2" ) );
+
+ list.clear();
+
+ // have to sleep here as linux lastModified does not do milliseconds http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=1&t=019789
+ Thread.sleep( 2000 );
+
+ rule1 = "";
+ rule1 += "package org.drools.test\n";
+ rule1 += "global java.util.List list\n";
+ rule1 += "rule rule3\n";
+ rule1 += "when\n";
+ rule1 += "then\n";
+ rule1 += "list.add( drools.getRule().getName() );\n";
+ rule1 += "end\n";
+ output = new BufferedWriter( new FileWriter( f1 ) );
+ output.write( rule1 );
+ output.close();
+ Thread.sleep( 3000 );
+
+ ksession = kagent.getKnowledgeBase().newStatefulKnowledgeSession();
+ list = new ArrayList();
+ ksession.setGlobal( "list",
+ list );
+ ksession.fireAllRules();
+ ksession.dispose();
+
+ assertEquals( 2,
+ list.size() );
+
+ assertTrue( list.contains( "rule3" ) );
+ assertTrue( list.contains( "rule2" ) );
+ kagent.monitorResourceChangeEvents( false );
+ }
+
public void testModifyFile() throws IOException,
InterruptedException {
String rule1 = "";
@@ -61,7 +188,7 @@
rule2 += "then\n";
rule2 += "list.add( drools.getRule().getName() );\n";
rule2 += "end\n";
- File f2 = fileManager.newFile( "rule2.drl" );
+ File f2 = fileManager.newFile( "rule2.drl" );
f2.deleteOnExit();
output = new BufferedWriter( new FileWriter( f2 ) );
output.write( rule2 );
@@ -93,13 +220,13 @@
aconf.setProperty( "drools.agent.scanDirectories",
"true" );
aconf.setProperty( "drools.agent.scanResources",
- "true" );
+ "true" );
aconf.setProperty( "drools.agent.newInstance",
"true" );
KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent( "test agent",
kbase,
aconf );
-
+
kagent.applyChangeSet( ResourceFactory.newUrlResource( fxml.toURI().toURL() ) );
StatefulKnowledgeSession ksession = kagent.getKnowledgeBase().newStatefulKnowledgeSession();
@@ -115,10 +242,10 @@
assertTrue( list.contains( "rule2" ) );
list.clear();
-
+
// have to sleep here as linux lastModified does not do milliseconds http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=1&t=019789
Thread.sleep( 2000 );
-
+
rule1 = "";
rule1 += "package org.drools.test\n";
rule1 += "global java.util.List list\n";
@@ -148,7 +275,7 @@
}
public void testModifyDirectory() throws IOException,
- InterruptedException {
+ InterruptedException {
String rule1 = "";
rule1 += "package org.drools.test\n";
rule1 += "global java.util.List list\n";
@@ -157,7 +284,7 @@
rule1 += "then\n";
rule1 += "list.add( drools.getRule().getName() );\n";
rule1 += "end\n";
- File f1 = fileManager.newFile( "rule1.drl" );
+ File f1 = fileManager.newFile( "rule1.drl" );
Writer output = new BufferedWriter( new FileWriter( f1 ) );
output.write( rule1 );
@@ -180,21 +307,22 @@
xml += "<change-set xmlns='http://drools.org/drools-5.0/change-set'";
xml += " xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'";
xml += " xs:schemaLocation='http://drools.org/drools-5.0/change-set drools-change-set-5.0.xsd' >";
- xml += " <add> ";
+ xml += " <add> ";
xml += " <resource source='" + f1.getParentFile().toURI().toURL() + "' type='DRL' />";
- xml += " </add> ";
+ xml += " </add> ";
xml += "</change-set>";
File newDir = fileManager.newFile( "changeset" );
newDir.mkdir();
- File fxml = fileManager.newFile( newDir, "changeset.xml" );
+ File fxml = fileManager.newFile( newDir,
+ "changeset.xml" );
output = new BufferedWriter( new FileWriter( fxml ) );
output.write( xml );
output.close();
-// KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
-// kbuilder.add( ResourceFactory.newUrlResource( fxml.toURI().toURL() ),
-// ResourceType.ChangeSet );
-// assertFalse( kbuilder.hasErrors() );
+ // KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ // kbuilder.add( ResourceFactory.newUrlResource( fxml.toURI().toURL() ),
+ // ResourceType.ChangeSet );
+ // assertFalse( kbuilder.hasErrors() );
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
//kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
@@ -209,7 +337,7 @@
"true" );
aconf.setProperty( "drools.agent.newInstance",
"true" );
-
+
KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent( "test agent",
kbase,
aconf );
@@ -241,10 +369,9 @@
output = new BufferedWriter( new FileWriter( f3 ) );
output.write( rule3 );
output.close();
-
+
assertTrue( f1.delete() );
-
-
+
Thread.sleep( 3000 );
ksession = kagent.getKnowledgeBase().newStatefulKnowledgeSession();
@@ -258,7 +385,7 @@
list.size() );
assertTrue( list.contains( "rule2" ) );
assertTrue( list.contains( "rule3" ) );
-
+
kagent.monitorResourceChangeEvents( false );
}
More information about the jboss-svn-commits
mailing list