[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