[jboss-svn-commits] JBL Code SVN: r15125 - in labs/jbossrules/trunk/drools-ant/src: test/java/org/drools/contrib and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Sep 14 13:35:49 EDT 2007


Author: fmeyer
Date: 2007-09-14 13:35:49 -0400 (Fri, 14 Sep 2007)
New Revision: 15125

Added:
   labs/jbossrules/trunk/drools-ant/src/test/resources/rules/cheese.dsl
   labs/jbossrules/trunk/drools-ant/src/test/resources/rules/cheese.dslr
Modified:
   labs/jbossrules/trunk/drools-ant/src/main/java/org/drools/contrib/DroolsAntTask.java
   labs/jbossrules/trunk/drools-ant/src/test/java/org/drools/contrib/DroolsAntTaskTest.java
   labs/jbossrules/trunk/drools-ant/src/test/resources/DroolsAntTask.xml
Log:
JBRULES-1118 Added support for dsl files

Modified: labs/jbossrules/trunk/drools-ant/src/main/java/org/drools/contrib/DroolsAntTask.java
===================================================================
--- labs/jbossrules/trunk/drools-ant/src/main/java/org/drools/contrib/DroolsAntTask.java	2007-09-14 17:12:36 UTC (rev 15124)
+++ labs/jbossrules/trunk/drools-ant/src/main/java/org/drools/contrib/DroolsAntTask.java	2007-09-14 17:35:49 UTC (rev 15125)
@@ -55,12 +55,22 @@
     public static String BRLFILEEXTENSION = ".brl";
     public static String XMLFILEEXTENSION = ".xml";
     public static String RULEFLOWFILEEXTENSION = ".rfm";
+    public static String DSLFILEEXTENSION = ".dslr";
     
     private File srcdir;
     private File toFile;
     private Path classpath;
+    private String dslfile;
+    
+    public String getDslfile() {
+		return dslfile;
+	}
 
-    /**
+	public void setDslfile(String dslfile) {
+		this.dslfile = dslfile;
+	}
+
+	/**
      * Source directory to read DRL files from
      * 
      * @param directory
@@ -179,7 +189,6 @@
                 outstream.close();
             }
         }
-
     }
 
     /**
@@ -199,18 +208,15 @@
         try {
 
             if ( fileName.endsWith( DroolsAntTask.BRLFILEEXTENSION ) ) {
+            	
                 RuleModel model = BRXMLPersistence.getInstance().unmarshal( loadResource( fileName ) );
-                String packagefile = loadResource( getPackageFile( this.srcdir.getAbsolutePath() ) );
-                
-                model.name = fileName.replace( DroolsAntTask.BRLFILEEXTENSION,
-                                               "" );
-                
+                String packagefile = loadResource( resolvePackageFile( this.srcdir.getAbsolutePath() ) );
+                model.name = fileName.replace( DroolsAntTask.BRLFILEEXTENSION, "" );
                 ByteArrayInputStream istream = new ByteArrayInputStream( (packagefile + BRDRLPersistence.getInstance().marshal( model )).getBytes() );
                 instream = new InputStreamReader( istream );
+                
             } else {
-                File file = new File( this.srcdir,
-                                      fileName );
-                
+                File file = new File( this.srcdir, fileName );
                 instream = new InputStreamReader( new FileInputStream( file ) );
             }
 
@@ -218,19 +224,22 @@
                 builder.addRuleFlow( instream );
             } else if ( fileName.endsWith( DroolsAntTask.XMLFILEEXTENSION ) ) {
                 builder.addPackageFromXml( instream );
+            } else if (fileName.endsWith(DroolsAntTask.DSLFILEEXTENSION)) {
+                File dslFile = new File( this.srcdir, dslfile );
+                InputStreamReader instreamDsl = new InputStreamReader( new FileInputStream( dslFile ) );
+            	builder.addPackageFromDrl(instream, instreamDsl);
             } else {
                 builder.addPackageFromDrl( instream );
             }
-
         } finally {
             if ( instream != null ) {
                 instream.close();
             }
         }
     }
+    
+    private String resolvePackageFile(String dirname) {
 
-    private String getPackageFile(String dirname) {
-
         File dir = new File( dirname );
 
         FilenameFilter filter = new FilenameFilter() {
@@ -241,7 +250,6 @@
         };
 
         String[] children = dir.list( filter );
-
         if ( children.length > 1 ) {
             throw new BuildException( "There are more than one package configuration file for this directory :" + dirname );
         }

Modified: labs/jbossrules/trunk/drools-ant/src/test/java/org/drools/contrib/DroolsAntTaskTest.java
===================================================================
--- labs/jbossrules/trunk/drools-ant/src/test/java/org/drools/contrib/DroolsAntTaskTest.java	2007-09-14 17:12:36 UTC (rev 15124)
+++ labs/jbossrules/trunk/drools-ant/src/test/java/org/drools/contrib/DroolsAntTaskTest.java	2007-09-14 17:35:49 UTC (rev 15125)
@@ -31,6 +31,17 @@
         configureProject( "src/test/resources/DroolsAntTask.xml" );
     }
 
+    
+    public void testDslRules() {
+        try {
+            executeTarget( "dslRules" );
+        } catch ( Exception e ) {
+            e.printStackTrace();
+            Assert.fail( "Should not throw any exception: " + e.getMessage() );
+        }
+    }
+    
+    
     public void testRules() {
         try {
             executeTarget( "rules" );

Modified: labs/jbossrules/trunk/drools-ant/src/test/resources/DroolsAntTask.xml
===================================================================
--- labs/jbossrules/trunk/drools-ant/src/test/resources/DroolsAntTask.xml	2007-09-14 17:12:36 UTC (rev 15124)
+++ labs/jbossrules/trunk/drools-ant/src/test/resources/DroolsAntTask.xml	2007-09-14 17:35:49 UTC (rev 15125)
@@ -1,7 +1,10 @@
 <project default="rules">
 	
-	<property name="eclipsepath"  value=""/>
+	<!-- <property name="eclipsepath"  value=""/> Uncomment this for Maven Runner --> 
+	<!-- <property name="eclipsepath"  value="../../../"/> Uncomment this for Eclipse Runner  -->
 	
+	<property name="eclipsepath"  value="../../../"/>
+	
 	<path id="cheese.classpath">
 		<pathelement location="${eclipsepath}lib/cheese.jar"/>
 	</path>	
@@ -13,7 +16,19 @@
 		<pathelement location="target"/>
 	</path>	
 	
-	<taskdef name="rulebase" classname="org.drools.contrib.DroolsAntTask" classpathref="drools.classpath" />  
+	<taskdef name="rulebase" 
+		classname="org.drools.contrib.DroolsAntTask" 
+		classpathref="drools.classpath" />
+	
+	<target name="dslRules" >
+		<rulebase 
+			srcdir="${eclipsepath}src/test/resources/rules" 		
+			tofile="${eclipsepath}target/cheese.rules"
+			classpathref="cheese.classpath"
+			dslfile="cheese.dsl"> 
+			<include name="*.dslr" />
+		</rulebase>
+	</target>
 
 	<target name="rules" >
 		<rulebase 
@@ -22,7 +37,7 @@
 			classpathref="cheese.classpath" > 
 			<include name="*.drl" />
 			<include name="*.brl" />
-			<include name="*.xml" />			
+			<include name="*.xml" />
 		</rulebase>
 	</target>
 	
@@ -45,5 +60,4 @@
 			<include name="*.brl" />
 		</rulebase>
 	</target>
-
 </project>
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-ant/src/test/resources/rules/cheese.dsl
===================================================================
--- labs/jbossrules/trunk/drools-ant/src/test/resources/rules/cheese.dsl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-ant/src/test/resources/rules/cheese.dsl	2007-09-14 17:35:49 UTC (rev 15125)
@@ -0,0 +1,2 @@
+[condition][]There is a stilton cheese=$cheese : Cheese( type == "stilton" )
+[consequence][]Print the cheese type=System.out.println("STILTON");
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-ant/src/test/resources/rules/cheese.dslr
===================================================================
--- labs/jbossrules/trunk/drools-ant/src/test/resources/rules/cheese.dslr	                        (rev 0)
+++ labs/jbossrules/trunk/drools-ant/src/test/resources/rules/cheese.dslr	2007-09-14 17:35:49 UTC (rev 15125)
@@ -0,0 +1,13 @@
+package org.drools.test;
+
+import org.drools.contrib.Cheese;
+
+expander chesse.dsl
+
+rule "Your DSL cheese rule"
+	
+	when
+		There is a stilton cheese
+	then 
+		Print the cheese type		
+end




More information about the jboss-svn-commits mailing list