[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