[jboss-svn-commits] JBL Code SVN: r22799 - in labs/jbossrules/trunk/drools-guvnor/src: test/java/org/drools/guvnor/server/builder and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Sep 16 06:02:02 EDT 2008
Author: Rikkola
Date: 2008-09-16 06:02:02 -0400 (Tue, 16 Sep 2008)
New Revision: 22799
Modified:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/builder/ContentPackageAssemblerTest.java
Log:
JBRULES-1720: Need "disable" toggle button for all assets
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java 2008-09-16 08:23:33 UTC (rev 22798)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java 2008-09-16 10:02:02 UTC (rev 22799)
@@ -125,7 +125,7 @@
"The selector named " + selectorConfigName + " is not available." ) );
return;
}
- Iterator it = pkg.getAssets();
+ Iterator<AssetItem> it = pkg.getAssets();
while ( it.hasNext() ) {
AssetItem asset = (AssetItem) it.next();
@@ -317,13 +317,13 @@
}
//now the rules
- Iterator iter = pkg.getAssets();
+ Iterator<AssetItem> iter = pkg.getAssets();
while ( iter.hasNext() ) {
AssetItem asset = (AssetItem) iter.next();
- if ( !asset.isArchived() ) {
+ if ( !asset.isArchived() && !asset.getDisabled() ) {
ContentHandler h = ContentManager.getHandler( asset.getFormat() );
- if ( h instanceof IRuleAsset && !asset.getDisabled() ) {
+ if ( h instanceof IRuleAsset ) {
IRuleAsset ruleAsset = (IRuleAsset) h;
ruleAsset.assembleDRL( builder,
asset,
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/builder/ContentPackageAssemblerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/builder/ContentPackageAssemblerTest.java 2008-09-16 08:23:33 UTC (rev 22798)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/builder/ContentPackageAssemblerTest.java 2008-09-16 10:02:02 UTC (rev 22799)
@@ -1,4 +1,5 @@
package org.drools.guvnor.server.builder;
+
/*
* Copyright 2005 JBoss Inc
*
@@ -15,8 +16,6 @@
* limitations under the License.
*/
-
-
import java.io.InputStream;
import java.io.StringReader;
import java.util.List;
@@ -50,6 +49,7 @@
import org.drools.repository.PackageItem;
import org.drools.repository.RulesRepository;
import org.drools.rule.Package;
+import org.drools.rule.Rule;
import org.drools.ruleflow.core.RuleFlowProcess;
import org.mvel.MVEL;
@@ -66,118 +66,133 @@
public void testPackageConfigWithErrors() throws Exception {
//test the config, no rule assets yet
RulesRepository repo = getRepo();
- PackageItem pkg = repo.createPackage( "testBuilderPackageConfig", "x" );
- ServiceImplementation.updateDroolsHeader( "import java.util.List", pkg );
- AssetItem func = pkg.addAsset( "func1", "a function" );
+ PackageItem pkg = repo.createPackage( "testBuilderPackageConfig",
+ "x" );
+ ServiceImplementation.updateDroolsHeader( "import java.util.List",
+ pkg );
+ AssetItem func = pkg.addAsset( "func1",
+ "a function" );
func.updateFormat( AssetFormats.FUNCTION );
func.updateContent( "function void doSomething() { \n System.err.println(List.class.toString()); }" );
func.checkin( "yeah" );
- func = pkg.addAsset( "func2", "q" );
+ func = pkg.addAsset( "func2",
+ "q" );
func.updateFormat( AssetFormats.FUNCTION );
- func.updateContent( "function void foo() { \nSystem.err.println(42); \n}");
+ func.updateContent( "function void foo() { \nSystem.err.println(42); \n}" );
func.checkin( "" );
- AssetItem ass = pkg.addAsset( "dsl", "m");
+ AssetItem ass = pkg.addAsset( "dsl",
+ "m" );
ass.updateFormat( AssetFormats.DSL );
ass.updateContent( "[when]Foo bar=String()" );
ass.checkin( "" );
repo.save();
-
//now lets light it up
- ContentPackageAssembler assembler = new ContentPackageAssembler(pkg);
- assertFalse(assembler.hasErrors());
+ ContentPackageAssembler assembler = new ContentPackageAssembler( pkg );
+ assertFalse( assembler.hasErrors() );
Package bin = assembler.getBinaryPackage();
- assertNotNull(bin);
- assertEquals("testBuilderPackageConfig", bin.getName());
- assertEquals(2, bin.getFunctions().size());
+ assertNotNull( bin );
+ assertEquals( "testBuilderPackageConfig",
+ bin.getName() );
+ assertEquals( 2,
+ bin.getFunctions().size() );
- assertTrue(bin.isValid());
- assertEquals(1, assembler.builder.getDSLMappingFiles().size());
+ assertTrue( bin.isValid() );
+ assertEquals( 1,
+ assembler.builder.getDSLMappingFiles().size() );
+ ServiceImplementation.updateDroolsHeader( "koo koo ca choo",
+ pkg );
+ assembler = new ContentPackageAssembler( pkg );
+ assertTrue( assembler.hasErrors() );
+ assertTrue( assembler.isPackageConfigurationInError() );
- ServiceImplementation.updateDroolsHeader( "koo koo ca choo", pkg );
- assembler = new ContentPackageAssembler(pkg);
- assertTrue(assembler.hasErrors());
- assertTrue(assembler.isPackageConfigurationInError());
+ ServiceImplementation.updateDroolsHeader( "import java.util.Date",
+ pkg );
+ assembler = new ContentPackageAssembler( pkg );
+ assertTrue( assembler.hasErrors() );
+ assertTrue( assembler.getErrors().get( 0 ).itemInError instanceof AssetItem );
- ServiceImplementation.updateDroolsHeader( "import java.util.Date", pkg );
- assembler = new ContentPackageAssembler(pkg);
- assertTrue(assembler.hasErrors());
- assertTrue(assembler.getErrors().get(0).itemInError instanceof AssetItem);
-
- assertEquals("func1", assembler.getErrors().get( 0 ).itemInError.getName());
+ assertEquals( "func1",
+ assembler.getErrors().get( 0 ).itemInError.getName() );
try {
assembler.getBinaryPackage();
- fail("should not work as is in error.");
- } catch (IllegalStateException e) {
- assertNotNull(e.getMessage());
+ fail( "should not work as is in error." );
+ } catch ( IllegalStateException e ) {
+ assertNotNull( e.getMessage() );
}
//fix it up
- ServiceImplementation.updateDroolsHeader("import java.util.List", pkg);
- assembler = new ContentPackageAssembler(pkg);
- assertFalse(assembler.hasErrors());
+ ServiceImplementation.updateDroolsHeader( "import java.util.List",
+ pkg );
+ assembler = new ContentPackageAssembler( pkg );
+ assertFalse( assembler.hasErrors() );
//now break a DSL and check the error
ass.updateContent( "rubbish" );
ass.checkin( "" );
- assembler = new ContentPackageAssembler(pkg);
- assertTrue(assembler.hasErrors());
- assertTrue(assembler.getErrors().get( 0 ).itemInError.getName().equals( ass.getName() ));
- assertNotEmpty(assembler.getErrors().get( 0 ).errorReport);
- assertFalse(assembler.isPackageConfigurationInError());
+ assembler = new ContentPackageAssembler( pkg );
+ assertTrue( assembler.hasErrors() );
+ assertTrue( assembler.getErrors().get( 0 ).itemInError.getName().equals( ass.getName() ) );
+ assertNotEmpty( assembler.getErrors().get( 0 ).errorReport );
+ assertFalse( assembler.isPackageConfigurationInError() );
//now fix it up
ass.updateContent( "[when]foo=String()" );
ass.checkin( "" );
- assembler = new ContentPackageAssembler(pkg);
- assertFalse(assembler.hasErrors());
+ assembler = new ContentPackageAssembler( pkg );
+ assertFalse( assembler.hasErrors() );
//break a func, and check for error
func.updateContent( "goo" );
func.checkin( "" );
- assembler = new ContentPackageAssembler(pkg);
- assertTrue(assembler.hasErrors());
- assertFalse(assembler.isPackageConfigurationInError());
- assertTrue(assembler.getErrors().get( 0 ).itemInError.getName().equals( func.getName() ));
- assertNotEmpty(assembler.getErrors().get( 0 ).errorReport);
+ assembler = new ContentPackageAssembler( pkg );
+ assertTrue( assembler.hasErrors() );
+ assertFalse( assembler.isPackageConfigurationInError() );
+ assertTrue( assembler.getErrors().get( 0 ).itemInError.getName().equals( func.getName() ) );
+ assertNotEmpty( assembler.getErrors().get( 0 ).errorReport );
}
-
public void testPackageWithRuleflow() throws Exception {
RulesRepository repo = getRepo();
- PackageItem pkg = repo.createPackage( "testPackageWithRuleFlow", "" );
- AssetItem model = pkg.addAsset( "model", "qed" );
+ PackageItem pkg = repo.createPackage( "testPackageWithRuleFlow",
+ "" );
+ AssetItem model = pkg.addAsset( "model",
+ "qed" );
model.updateFormat( AssetFormats.MODEL );
model.updateBinaryContentAttachment( this.getClass().getResourceAsStream( "/billasurf.jar" ) );
model.checkin( "" );
- ServiceImplementation.updateDroolsHeader("import com.billasurf.Board\n global com.billasurf.Person customer", pkg);
+ ServiceImplementation.updateDroolsHeader( "import com.billasurf.Board\n global com.billasurf.Person customer",
+ pkg );
- AssetItem rule1 = pkg.addAsset( "rule_1", "" );
+ AssetItem rule1 = pkg.addAsset( "rule_1",
+ "" );
rule1.updateFormat( AssetFormats.DRL );
- rule1.updateContent( "rule 'rule1' \n when Board() \n then customer.setAge(42); \n end");
+ rule1.updateContent( "rule 'rule1' \n when Board() \n then customer.setAge(42); \n end" );
rule1.checkin( "" );
- AssetItem ruleFlow = pkg.addAsset( "ruleFlow", "" );
+ AssetItem ruleFlow = pkg.addAsset( "ruleFlow",
+ "" );
ruleFlow.updateFormat( AssetFormats.RULE_FLOW_RF );
ruleFlow.updateBinaryContentAttachment( this.getClass().getResourceAsStream( "/ruleflow.rfm" ) );
ruleFlow.checkin( "" );
- ContentPackageAssembler asm = new ContentPackageAssembler(pkg);
- assertFalse(asm.hasErrors());
+ ContentPackageAssembler asm = new ContentPackageAssembler( pkg );
+ assertFalse( asm.hasErrors() );
Map flows = asm.getBinaryPackage().getRuleFlows();
- assertNotNull(flows);
+ assertNotNull( flows );
- assertEquals(1, flows.size());
+ assertEquals( 1,
+ flows.size() );
Object flow = flows.values().iterator().next();
- assertNotNull(flow);
- assertTrue(flow instanceof RuleFlowProcess);
+ assertNotNull( flow );
+ assertTrue( flow instanceof RuleFlowProcess );
//now check we can do some MVEL stuff from the classloader...
List<JarInputStream> jars = BRMSPackageBuilder.getJars( pkg );
@@ -186,147 +201,162 @@
ClassLoader oldCL = Thread.currentThread().getContextClassLoader();
//set the CL for the current thread so MVEL can find it
- Thread.currentThread().setContextClassLoader(newCL);
+ Thread.currentThread().setContextClassLoader( newCL );
- Object o = MVEL.eval("new com.billasurf.Board()");
- assertEquals("com.billasurf.Board", o.getClass().getName());
- System.err.println(o.toString());
+ Object o = MVEL.eval( "new com.billasurf.Board()" );
+ assertEquals( "com.billasurf.Board",
+ o.getClass().getName() );
+ System.err.println( o.toString() );
- Thread.currentThread().setContextClassLoader(oldCL);
+ Thread.currentThread().setContextClassLoader( oldCL );
-
- builder.addPackageFromDrl(new StringReader("package foo\n import com.billasurf.Board"));
- Object o2 = builder.getPackageRegistry( "foo" ).getTypeResolver().resolveType("Board");
- assertNotNull(o2);
- assertEquals("com.billasurf.Board", ((Class)o2).getName());
+ builder.addPackageFromDrl( new StringReader( "package foo\n import com.billasurf.Board" ) );
+ Object o2 = builder.getPackageRegistry( "foo" ).getTypeResolver().resolveType( "Board" );
+ assertNotNull( o2 );
+ assertEquals( "com.billasurf.Board",
+ ((Class) o2).getName() );
}
public void testSimplePackageWithDeclaredTypes() throws Exception {
RulesRepository repo = getRepo();
- PackageItem pkg = repo.createPackage( "testSimplePackageWithDeclaredTypes", "" );
+ PackageItem pkg = repo.createPackage( "testSimplePackageWithDeclaredTypes",
+ "" );
- AssetItem rule1 = pkg.addAsset( "rule_1", "" );
+ AssetItem rule1 = pkg.addAsset( "rule_1",
+ "" );
rule1.updateFormat( AssetFormats.DRL );
- rule1.updateContent( "rule 'rule1' \n when Album() \n then System.err.println(42); \n end");
+ rule1.updateContent( "rule 'rule1' \n when Album() \n then System.err.println(42); \n end" );
rule1.checkin( "" );
-
- AssetItem model = pkg.addAsset( "model", "qed" );
+ AssetItem model = pkg.addAsset( "model",
+ "qed" );
model.updateFormat( AssetFormats.DRL_MODEL );
- model.updateContent("declare Album\n genre: String \n end");
+ model.updateContent( "declare Album\n genre: String \n end" );
model.checkin( "" );
repo.save();
- ContentPackageAssembler asm = new ContentPackageAssembler(pkg);
- assertFalse(asm.hasErrors());
- assertNotNull(asm.getBinaryPackage());
+ ContentPackageAssembler asm = new ContentPackageAssembler( pkg );
+ assertFalse( asm.hasErrors() );
+ assertNotNull( asm.getBinaryPackage() );
Package bin = asm.getBinaryPackage();
- assertEquals(pkg.getName(), bin.getName());
- assertTrue(bin.isValid());
+ assertEquals( pkg.getName(),
+ bin.getName() );
+ assertTrue( bin.isValid() );
- asm = new ContentPackageAssembler(pkg, false);
+ asm = new ContentPackageAssembler( pkg,
+ false );
String drl = asm.getDRL();
- assertTrue(drl.indexOf("declare Album") > -1);
+ assertTrue( drl.indexOf( "declare Album" ) > -1 );
-
}
public void testSimplePackageBuildNoErrors() throws Exception {
RulesRepository repo = getRepo();
- PackageItem pkg = repo.createPackage( "testSimplePackageBuildNoErrors", "" );
- AssetItem model = pkg.addAsset( "model", "qed" );
+ PackageItem pkg = repo.createPackage( "testSimplePackageBuildNoErrors",
+ "" );
+ AssetItem model = pkg.addAsset( "model",
+ "qed" );
model.updateFormat( AssetFormats.MODEL );
model.updateBinaryContentAttachment( this.getClass().getResourceAsStream( "/billasurf.jar" ) );
model.checkin( "" );
- ServiceImplementation.updateDroolsHeader("import com.billasurf.Board\n global com.billasurf.Person customer", pkg );
+ ServiceImplementation.updateDroolsHeader( "import com.billasurf.Board\n global com.billasurf.Person customer",
+ pkg );
- AssetItem rule1 = pkg.addAsset( "rule_1", "" );
+ AssetItem rule1 = pkg.addAsset( "rule_1",
+ "" );
rule1.updateFormat( AssetFormats.DRL );
- rule1.updateContent( "rule 'rule1' \n when Board() \n then customer.setAge(42); \n end");
+ rule1.updateContent( "rule 'rule1' \n when Board() \n then customer.setAge(42); \n end" );
rule1.checkin( "" );
- AssetItem rule2 = pkg.addAsset( "rule2", "" );
+ AssetItem rule2 = pkg.addAsset( "rule2",
+ "" );
rule2.updateFormat( AssetFormats.DRL );
rule2.updateContent( "agenda-group 'q' \n when \n Board() \n then \n System.err.println(42);" );
rule2.checkin( "" );
- AssetItem rule3 = pkg.addAsset( "A file", "" );
+ AssetItem rule3 = pkg.addAsset( "A file",
+ "" );
rule3.updateFormat( AssetFormats.DRL );
- rule3.updateContent( "package testSimplePackageBuildNoErrors\n rule 'rule3' \n when \n then \n customer.setAge(43); \n end \n" +
- "rule 'rule4' \n when \n then \n System.err.println(44); \n end" );
+ rule3.updateContent( "package testSimplePackageBuildNoErrors\n rule 'rule3' \n when \n then \n customer.setAge(43); \n end \n" + "rule 'rule4' \n when \n then \n System.err.println(44); \n end" );
rule3.checkin( "" );
repo.save();
-
- ContentPackageAssembler asm = new ContentPackageAssembler(pkg);
- assertFalse(asm.hasErrors());
- assertNotNull(asm.getBinaryPackage());
+ ContentPackageAssembler asm = new ContentPackageAssembler( pkg );
+ assertFalse( asm.hasErrors() );
+ assertNotNull( asm.getBinaryPackage() );
Package bin = asm.getBinaryPackage();
- assertEquals(pkg.getName(), bin.getName());
- assertTrue(bin.isValid());
+ assertEquals( pkg.getName(),
+ bin.getName() );
+ assertTrue( bin.isValid() );
- assertEquals(4, bin.getRules().length);
+ assertEquals( 4,
+ bin.getRules().length );
//now create a snapshot
- repo.createPackageSnapshot( pkg.getName(), "SNAP_1" );
+ repo.createPackageSnapshot( pkg.getName(),
+ "SNAP_1" );
//and screw up the the non snapshot one
- ServiceImplementation.updateDroolsHeader("koo koo ca choo", pkg );
- asm = new ContentPackageAssembler(pkg);
- assertTrue(asm.hasErrors());
+ ServiceImplementation.updateDroolsHeader( "koo koo ca choo",
+ pkg );
+ asm = new ContentPackageAssembler( pkg );
+ assertTrue( asm.hasErrors() );
-
//check the snapshot is kosher
- pkg = repo.loadPackageSnapshot( pkg.getName(), "SNAP_1" );
- asm = new ContentPackageAssembler(pkg);
- assertFalse(asm.hasErrors());
+ pkg = repo.loadPackageSnapshot( pkg.getName(),
+ "SNAP_1" );
+ asm = new ContentPackageAssembler( pkg );
+ assertFalse( asm.hasErrors() );
}
public void testIgnoreArchivedItems() throws Exception {
RulesRepository repo = getRepo();
- PackageItem pkg = repo.createPackage( "testIgnoreArchivedItems", "" );
- AssetItem model = pkg.addAsset( "model", "qed" );
+ PackageItem pkg = repo.createPackage( "testIgnoreArchivedItems",
+ "" );
+ AssetItem model = pkg.addAsset( "model",
+ "qed" );
model.updateFormat( AssetFormats.MODEL );
model.updateBinaryContentAttachment( this.getClass().getResourceAsStream( "/billasurf.jar" ) );
model.checkin( "" );
- ServiceImplementation.updateDroolsHeader("import com.billasurf.Board\n global com.billasurf.Person customer", pkg );
+ ServiceImplementation.updateDroolsHeader( "import com.billasurf.Board\n global com.billasurf.Person customer",
+ pkg );
- AssetItem rule1 = pkg.addAsset( "rule_1", "" );
+ AssetItem rule1 = pkg.addAsset( "rule_1",
+ "" );
rule1.updateFormat( AssetFormats.DRL );
- rule1.updateContent( "rule 'rule1' \n when Board() \n then customer.setAge(42); \n end");
+ rule1.updateContent( "rule 'rule1' \n when Board() \n then customer.setAge(42); \n end" );
rule1.checkin( "" );
- AssetItem rule2 = pkg.addAsset( "rule2", "" );
+ AssetItem rule2 = pkg.addAsset( "rule2",
+ "" );
rule2.updateFormat( AssetFormats.DRL );
rule2.updateContent( "agenda-group 'q' \n when \n Boardx() \n then \n System.err.println(42);" );
rule2.checkin( "" );
repo.save();
+ ContentPackageAssembler asm = new ContentPackageAssembler( pkg );
+ assertTrue( asm.hasErrors() );
- ContentPackageAssembler asm = new ContentPackageAssembler(pkg);
- assertTrue(asm.hasErrors());
-
rule2.archiveItem( true );
rule2.checkin( "" );
- assertTrue(rule2.isArchived());
- asm = new ContentPackageAssembler(pkg);
- assertFalse(asm.hasErrors());
+ assertTrue( rule2.isArchived() );
+ asm = new ContentPackageAssembler( pkg );
+ assertFalse( asm.hasErrors() );
-
}
/**
@@ -338,37 +368,40 @@
RulesRepository repo = getRepo();
//first, setup the package correctly:
- PackageItem pkg = repo.createPackage( "testErrorsInRuleAsset", "" );
- AssetItem model = pkg.addAsset( "model", "qed" );
+ PackageItem pkg = repo.createPackage( "testErrorsInRuleAsset",
+ "" );
+ AssetItem model = pkg.addAsset( "model",
+ "qed" );
model.updateFormat( AssetFormats.MODEL );
model.updateBinaryContentAttachment( this.getClass().getResourceAsStream( "/billasurf.jar" ) );
model.checkin( "" );
- ServiceImplementation.updateDroolsHeader("import com.billasurf.Board\n global com.billasurf.Person customer", pkg );
+ ServiceImplementation.updateDroolsHeader( "import com.billasurf.Board\n global com.billasurf.Person customer",
+ pkg );
repo.save();
- AssetItem goodRule = pkg.addAsset( "goodRule", "" );
+ AssetItem goodRule = pkg.addAsset( "goodRule",
+ "" );
goodRule.updateFormat( AssetFormats.DRL );
goodRule.updateContent( "rule 'yeah' \n when \n Board() \n then \n System.out.println(42); end" );
goodRule.checkin( "" );
- AssetItem badRule = pkg.addAsset( "badRule", "xxx" );
+ AssetItem badRule = pkg.addAsset( "badRule",
+ "xxx" );
badRule.updateFormat( AssetFormats.DRL );
badRule.updateContent( "if something then another" );
badRule.checkin( "" );
- ContentPackageAssembler asm = new ContentPackageAssembler(pkg);
- assertTrue(asm.hasErrors());
- assertFalse(asm.isPackageConfigurationInError());
+ ContentPackageAssembler asm = new ContentPackageAssembler( pkg );
+ assertTrue( asm.hasErrors() );
+ assertFalse( asm.isPackageConfigurationInError() );
for ( ContentAssemblyError err : asm.getErrors() ) {
- assertTrue(err.itemInError.getName().equals( badRule.getName() ));
- assertNotEmpty(err.errorReport);
+ assertTrue( err.itemInError.getName().equals( badRule.getName() ) );
+ assertNotEmpty( err.errorReport );
}
}
-
-
/**
* This time, we mix up stuff a bit
*
@@ -377,53 +410,63 @@
RulesRepository repo = getRepo();
//first, setup the package correctly:
- PackageItem pkg = repo.createPackage( "testRuleAndDSLAndFunction", "" );
- AssetItem model = pkg.addAsset( "model", "qed" );
+ PackageItem pkg = repo.createPackage( "testRuleAndDSLAndFunction",
+ "" );
+ AssetItem model = pkg.addAsset( "model",
+ "qed" );
model.updateFormat( AssetFormats.MODEL );
model.updateBinaryContentAttachment( this.getClass().getResourceAsStream( "/billasurf.jar" ) );
model.checkin( "" );
- ServiceImplementation.updateDroolsHeader("import com.billasurf.Board\n global com.billasurf.Person customer", pkg );
+ ServiceImplementation.updateDroolsHeader( "import com.billasurf.Board\n global com.billasurf.Person customer",
+ pkg );
repo.save();
- AssetItem func = pkg.addAsset( "func", "" );
+ AssetItem func = pkg.addAsset( "func",
+ "" );
func.updateFormat( AssetFormats.FUNCTION );
func.updateContent( "function void foo() { System.out.println(42); }" );
func.checkin( "" );
- AssetItem dsl = pkg.addAsset( "myDSL", "" );
+ AssetItem dsl = pkg.addAsset( "myDSL",
+ "" );
dsl.updateFormat( AssetFormats.DSL );
dsl.updateContent( "[then]call a func=foo();" );
dsl.checkin( "" );
- AssetItem dsl2 = pkg.addAsset( "myDSL2", "" );
+ AssetItem dsl2 = pkg.addAsset( "myDSL2",
+ "" );
dsl2.updateFormat( AssetFormats.DSL );
dsl2.updateContent( "[when]There is a board=Board()" );
dsl2.checkin( "" );
-
- AssetItem rule = pkg.addAsset( "myRule", "" );
+ AssetItem rule = pkg.addAsset( "myRule",
+ "" );
rule.updateFormat( AssetFormats.DSL_TEMPLATE_RULE );
rule.updateContent( "when \n There is a board \n then \n call a func" );
rule.checkin( "" );
- AssetItem rule2 = pkg.addAsset( "myRule2", "" );
+ AssetItem rule2 = pkg.addAsset( "myRule2",
+ "" );
rule2.updateFormat( AssetFormats.DSL_TEMPLATE_RULE );
rule2.updateContent( "package testRuleAndDSLAndFunction \n rule 'myRule2222' \n when \n There is a board \n then \n call a func \nend" );
rule2.checkin( "" );
- AssetItem rule3 = pkg.addAsset( "myRule3", "" );
+ AssetItem rule3 = pkg.addAsset( "myRule3",
+ "" );
rule3.updateFormat( AssetFormats.DRL );
- rule3.updateContent( "package testRuleAndDSLAndFunction\n rule 'rule3' \n when \n Board() \n then \n System.err.println(42); end");
+ rule3.updateContent( "package testRuleAndDSLAndFunction\n rule 'rule3' \n when \n Board() \n then \n System.err.println(42); end" );
rule3.checkin( "" );
repo.save();
- ContentPackageAssembler asm = new ContentPackageAssembler(pkg);
- assertFalse(asm.hasErrors());
+ ContentPackageAssembler asm = new ContentPackageAssembler( pkg );
+ assertFalse( asm.hasErrors() );
Package bin = asm.getBinaryPackage();
- assertNotNull(bin);
- assertEquals(3, bin.getRules().length);
- assertEquals(1, bin.getFunctions().size());
+ assertNotNull( bin );
+ assertEquals( 3,
+ bin.getRules().length );
+ assertEquals( 1,
+ bin.getFunctions().size() );
}
@@ -431,44 +474,114 @@
RulesRepository repo = getRepo();
//first, setup the package correctly:
- PackageItem pkg = repo.createPackage( "testShowSource", "" );
+ PackageItem pkg = repo.createPackage( "testShowSource",
+ "" );
- ServiceImplementation.updateDroolsHeader("import com.billasurf.Board\n global com.billasurf.Person customer", pkg );
+ ServiceImplementation.updateDroolsHeader( "import com.billasurf.Board\n global com.billasurf.Person customer",
+ pkg );
repo.save();
- AssetItem func = pkg.addAsset( "func", "" );
+ AssetItem func = pkg.addAsset( "func",
+ "" );
func.updateFormat( AssetFormats.FUNCTION );
func.updateContent( "function void foo() { System.out.println(42); }" );
func.checkin( "" );
- AssetItem dsl = pkg.addAsset( "myDSL", "" );
+ AssetItem dsl = pkg.addAsset( "myDSL",
+ "" );
dsl.updateFormat( AssetFormats.DSL );
dsl.updateContent( "[then]call a func=foo();\n[when]foo=FooBarBaz()" );
dsl.checkin( "" );
- AssetItem rule = pkg.addAsset( "rule1", "" );
+ AssetItem rule = pkg.addAsset( "rule1",
+ "" );
rule.updateFormat( AssetFormats.DRL );
rule.updateContent( "rule 'foo' when Goo() then end" );
rule.checkin( "" );
- AssetItem rule2 = pkg.addAsset( "rule2", "" );
+ AssetItem rule2 = pkg.addAsset( "rule2",
+ "" );
rule2.updateFormat( AssetFormats.DSL_TEMPLATE_RULE );
rule2.updateContent( "when \n foo \n then \n call a func" );
rule2.checkin( "" );
- ContentPackageAssembler asm = new ContentPackageAssembler(pkg, false, null);
+ ContentPackageAssembler asm = new ContentPackageAssembler( pkg,
+ false,
+ null );
String drl = asm.getDRL();
- assertNotNull(drl);
+ assertNotNull( drl );
- assertContains("import com.billasurf.Board\n global com.billasurf.Person customer", drl);
- assertContains("package testShowSource", drl);
- assertContains("function void foo() { System.out.println(42); }", drl);
- assertContains("foo();", drl);
- assertContains("FooBarBaz()", drl);
- assertContains("rule 'foo' when Goo() then end", drl);
+ assertContains( "import com.billasurf.Board\n global com.billasurf.Person customer",
+ drl );
+ assertContains( "package testShowSource",
+ drl );
+ assertContains( "function void foo() { System.out.println(42); }",
+ drl );
+ assertContains( "foo();",
+ drl );
+ assertContains( "FooBarBaz()",
+ drl );
+ assertContains( "rule 'foo' when Goo() then end",
+ drl );
+ }
+ public void testSkipDisabledAssets() throws Exception {
+ RulesRepository repo = getRepo();
+
+ //first, setup the package correctly:
+ PackageItem pkg = repo.createPackage( "testSkipDisabledAssets",
+ "" );
+ repo.save();
+
+ AssetItem assertRule1 = pkg.addAsset( "rule1",
+ "" );
+ assertRule1.updateFormat( AssetFormats.DRL );
+ assertRule1.updateContent( "rule 'foo1' when then end" );
+ assertRule1.checkin( "" );
+ assertRule1.updateDisabled( false );
+
+ AssetItem assertRule2 = pkg.addAsset( "rule2",
+ "" );
+ assertRule2.updateFormat( AssetFormats.DRL );
+ assertRule2.updateContent( "rule 'foo2' when then end" );
+ assertRule2.checkin( "" );
+ assertRule2.updateDisabled( true );
+
+ AssetItem assertRule3 = pkg.addAsset( "rule3",
+ "" );
+ assertRule3.updateFormat( AssetFormats.DRL );
+ assertRule3.updateContent( "rule 'foo3' when then end" );
+ assertRule3.checkin( "" );
+
+ ContentPackageAssembler asm = new ContentPackageAssembler( pkg,
+ true,
+ null );
+ assertFalse( asm.hasErrors() );
+ Package p = asm.builder.getPackage();
+
+ String errors = p.getErrorSummary();
+ assertNull( errors );
+
+ Rule rule1 = p.getRule( "foo1" );
+ assertNotNull( rule1 );
+ Rule rule2 = p.getRule( "foo2" );
+ assertNull( rule2 );
+ Rule rule3 = p.getRule( "foo3" );
+ assertNotNull( rule3 );
+
+ String drl = asm.getDRL();
+
+ assertNotNull( drl );
+
+ assertContains( "rule 'foo1' when then end",
+ drl );
+ assertDoesNotContain( "rule 'foo2' when then end",
+ drl );
+ assertContains( "rule 'foo3' when then end",
+ drl );
+
}
public void testXLSDecisionTable() throws Exception {
@@ -476,32 +589,35 @@
RulesRepository repo = getRepo();
//first, setup the package correctly:
- PackageItem pkg = repo.createPackage( "testXLSDecisionTable", "" );
+ PackageItem pkg = repo.createPackage( "testXLSDecisionTable",
+ "" );
- ServiceImplementation.updateDroolsHeader("import org.acme.insurance.Policy\n import org.acme.insurance.Driver", pkg );
+ ServiceImplementation.updateDroolsHeader( "import org.acme.insurance.Policy\n import org.acme.insurance.Driver",
+ pkg );
repo.save();
InputStream xls = this.getClass().getResourceAsStream( "/SampleDecisionTable.xls" );
- assertNotNull(xls);
+ assertNotNull( xls );
- AssetItem asset = pkg.addAsset( "MyDT", "" );
+ AssetItem asset = pkg.addAsset( "MyDT",
+ "" );
asset.updateFormat( AssetFormats.DECISION_SPREADSHEET_XLS );
asset.updateBinaryContentAttachment( xls );
asset.checkin( "" );
- ContentPackageAssembler asm = new ContentPackageAssembler(pkg);
- if (asm.hasErrors()) {
- System.err.println(asm.getErrors().get( 0 ).errorReport);
- System.err.println(asm.getDRL());
+ ContentPackageAssembler asm = new ContentPackageAssembler( pkg );
+ if ( asm.hasErrors() ) {
+ System.err.println( asm.getErrors().get( 0 ).errorReport );
+ System.err.println( asm.getDRL() );
}
- assertFalse(asm.hasErrors());
+ assertFalse( asm.hasErrors() );
String drl = asm.getDRL();
- System.out.println(drl);
+ System.out.println( drl );
- assertContains( "policy: Policy", drl );
+ assertContains( "policy: Policy",
+ drl );
-
Package bin = asm.getBinaryPackage();
RuleBase rb = RuleBaseFactory.newRuleBase();
@@ -513,71 +629,84 @@
Driver driver = new Driver();
Policy policy = new Policy();
- wm.insert(driver);
- wm.insert(policy);
+ wm.insert( driver );
+ wm.insert( policy );
wm.fireAllRules();
- assertEquals(120, policy.getBasePrice());
+ assertEquals( 120,
+ policy.getBasePrice() );
asset.updateBinaryContentAttachment( this.getClass().getResourceAsStream( "/SampleDecisionTable_WithError.xls" ) );
asset.checkin( "" );
- asm = new ContentPackageAssembler(pkg);
- assertTrue(asm.hasErrors());
- assertEquals(asset.getName(), asm.getErrors().get( 0 ).itemInError.getName());
- asm = new ContentPackageAssembler(pkg, false);
- assertFalse(asm.hasErrors());
+ asm = new ContentPackageAssembler( pkg );
+ assertTrue( asm.hasErrors() );
+ assertEquals( asset.getName(),
+ asm.getErrors().get( 0 ).itemInError.getName() );
+ asm = new ContentPackageAssembler( pkg,
+ false );
+ assertFalse( asm.hasErrors() );
drl = asm.getDRL();
- assertNotNull(drl);
- assertContains( "Driverx", drl);
+ assertNotNull( drl );
+ assertContains( "Driverx",
+ drl );
}
+ public void testSkipDisabledImports() throws Exception {
- public void testXLSDecisionTableIgnoreImports() throws Exception {
-
RulesRepository repo = getRepo();
//first, setup the package correctly:
- PackageItem pkg = repo.createPackage( "testXLSDecisionTableIgnoreImports", "" );
+ PackageItem pkg = repo.createPackage( "testXLSDecisionTableIgnoreImports",
+ "" );
repo.save();
InputStream xls = this.getClass().getResourceAsStream( "/Sample.xls" );
- assertNotNull(xls);
+ assertNotNull( xls );
- AssetItem asset = pkg.addAsset( "MyDT", "" );
+ AssetItem asset = pkg.addAsset( "MyDT",
+ "" );
asset.updateFormat( AssetFormats.DECISION_SPREADSHEET_XLS );
asset.updateBinaryContentAttachment( xls );
asset.checkin( "" );
- ContentPackageAssembler asm = new ContentPackageAssembler(pkg, false);
+ ContentPackageAssembler asm = new ContentPackageAssembler( pkg,
+ true );
String drl = asm.getDRL();
- System.err.println(drl);
+ System.err.println( drl );
- assertTrue(drl.indexOf("package ", 2) == -1); //skip a few, make sure we only have one instance of "package "
+ assertTrue( drl.indexOf( "package ",
+ 2 ) == -1 ); //skip a few, make sure we only have one instance of "package "
}
public void testBRXMLWithDSLMixedIn() throws Exception {
RulesRepository repo = getRepo();
//create our package
- PackageItem pkg = repo.createPackage( "testBRLWithDSLMixedIn", "" );
- ServiceImplementation.updateDroolsHeader( "import org.drools.Person", pkg );
- AssetItem rule1 = pkg.addAsset( "rule2", "" );
+ PackageItem pkg = repo.createPackage( "testBRLWithDSLMixedIn",
+ "" );
+ ServiceImplementation.updateDroolsHeader( "import org.drools.Person",
+ pkg );
+ AssetItem rule1 = pkg.addAsset( "rule2",
+ "" );
rule1.updateFormat( AssetFormats.BUSINESS_RULE );
- AssetItem dsl = pkg.addAsset( "MyDSL", "" );
+ AssetItem dsl = pkg.addAsset( "MyDSL",
+ "" );
dsl.updateFormat( AssetFormats.DSL );
dsl.updateContent( "[when]This is a sentence=Person()\n[then]say {hello}=System.err.println({hello});" );
dsl.checkin( "" );
RuleModel model = new RuleModel();
model.name = "rule2";
- FactPattern pattern = new FactPattern("Person");
+ FactPattern pattern = new FactPattern( "Person" );
pattern.boundName = "p";
- ActionSetField action = new ActionSetField("p");
- ActionFieldValue value = new ActionFieldValue("age", "42", SuggestionCompletionEngine.TYPE_NUMERIC );
+ ActionSetField action = new ActionSetField( "p" );
+ ActionFieldValue value = new ActionFieldValue( "age",
+ "42",
+ SuggestionCompletionEngine.TYPE_NUMERIC );
action.addFieldValue( value );
model.addLhsItem( pattern );
@@ -597,104 +726,120 @@
rule1.checkin( "" );
repo.save();
-
//now add a rule with no DSL
model = new RuleModel();
model.name = "ruleNODSL";
- pattern = new FactPattern("Person");
+ pattern = new FactPattern( "Person" );
pattern.boundName = "p";
- action = new ActionSetField("p");
- value = new ActionFieldValue("age", "42", SuggestionCompletionEngine.TYPE_NUMERIC );
+ action = new ActionSetField( "p" );
+ value = new ActionFieldValue( "age",
+ "42",
+ SuggestionCompletionEngine.TYPE_NUMERIC );
action.addFieldValue( value );
model.addLhsItem( pattern );
model.addRhsItem( action );
-
- AssetItem ruleNODSL = pkg.addAsset( "ruleNoDSL", "" );
+ AssetItem ruleNODSL = pkg.addAsset( "ruleNoDSL",
+ "" );
ruleNODSL.updateFormat( AssetFormats.BUSINESS_RULE );
ruleNODSL.updateContent( BRXMLPersistence.getInstance().marshal( model ) );
ruleNODSL.checkin( "" );
-
pkg = repo.loadPackage( "testBRLWithDSLMixedIn" );
- ContentPackageAssembler asm = new ContentPackageAssembler(pkg);
- assertFalse(asm.hasErrors());
+ ContentPackageAssembler asm = new ContentPackageAssembler( pkg );
+ assertFalse( asm.hasErrors() );
Package bpkg = asm.getBinaryPackage();
- assertEquals(2, bpkg.getRules().length);
+ assertEquals( 2,
+ bpkg.getRules().length );
-
}
public void testCustomSelector() throws Exception {
RulesRepository repo = getRepo();
//create our package
- PackageItem pkg = repo.createPackage( "testCustomSelector", "" );
- ServiceImplementation.updateDroolsHeader("import org.drools.Person", pkg );
- AssetItem rule1 = pkg.addAsset( "rule1", "" );
+ PackageItem pkg = repo.createPackage( "testCustomSelector",
+ "" );
+ ServiceImplementation.updateDroolsHeader( "import org.drools.Person",
+ pkg );
+ AssetItem rule1 = pkg.addAsset( "rule1",
+ "" );
rule1.updateFormat( AssetFormats.DRL );
rule1.updateContent( "when \n Person() \n then \n System.out.println(\"yeah\");\n" );
rule1.checkin( "" );
- AssetItem rule2 = pkg.addAsset( "rule2", "" );
+ AssetItem rule2 = pkg.addAsset( "rule2",
+ "" );
rule2.updateFormat( AssetFormats.DRL );
rule2.updateContent( "when \n Person() \n then \n System.out.println(\"yeah\");\n" );
rule2.checkin( "" );
-
-
SelectorManager sm = SelectorManager.getInstance();
- sm.selectors.put( "testSelect", new AssetSelector() {
- public boolean isAssetAllowed(AssetItem asset) {
- return asset.getName().equals( "rule2" );
- }
- });
+ sm.selectors.put( "testSelect",
+ new AssetSelector() {
+ public boolean isAssetAllowed(AssetItem asset) {
+ return asset.getName().equals( "rule2" );
+ }
+ } );
- ContentPackageAssembler asm = new ContentPackageAssembler(pkg, "testSelect");
+ ContentPackageAssembler asm = new ContentPackageAssembler( pkg,
+ "testSelect" );
Package pk = asm.getBinaryPackage();
- assertEquals(1, pk.getRules().length);
- assertEquals("rule2", pk.getRules()[0 ].getName() );
+ assertEquals( 1,
+ pk.getRules().length );
+ assertEquals( "rule2",
+ pk.getRules()[0].getName() );
-
- asm = new ContentPackageAssembler(pkg, null);
+ asm = new ContentPackageAssembler( pkg,
+ null );
pk = asm.getBinaryPackage();
- assertEquals(2, pk.getRules().length);
+ assertEquals( 2,
+ pk.getRules().length );
- asm = new ContentPackageAssembler(pkg, "nothing valid");
- assertTrue(asm.hasErrors());
- assertEquals(1, asm.getErrors().size());
- assertEquals(pkg, asm.getErrors().get( 0 ).itemInError);
+ asm = new ContentPackageAssembler( pkg,
+ "nothing valid" );
+ assertTrue( asm.hasErrors() );
+ assertEquals( 1,
+ asm.getErrors().size() );
+ assertEquals( pkg,
+ asm.getErrors().get( 0 ).itemInError );
- asm = new ContentPackageAssembler(pkg, "");
+ asm = new ContentPackageAssembler( pkg,
+ "" );
pk = asm.getBinaryPackage();
- assertEquals(2, pk.getRules().length);
+ assertEquals( 2,
+ pk.getRules().length );
+ }
+ private void assertContains(String sub,
+ String text) {
+ if ( text.indexOf( sub ) == -1 ) {
+ fail( "the text: '" + sub + "' was not found." );
+ }
+
}
-
- private void assertContains(String sub, String text) {
- if (text.indexOf( sub ) == -1) {
- fail("the text: '" + sub +"' was not found.");
+ private void assertDoesNotContain(String sub,
+ String text) {
+ if ( text.indexOf( sub ) > -1 ) {
+ fail( "the text: '" + sub + "' was found." );
}
-
}
-
private void assertNotEmpty(String s) {
- if (s == null) fail("should not be null");
- if (s.trim().equals( "" )) fail("should not be empty string");
+ if ( s == null ) fail( "should not be null" );
+ if ( s.trim().equals( "" ) ) fail( "should not be empty string" );
}
private RulesRepository getRepo() throws Exception {
return new RulesRepository( TestEnvironmentSessionHelper.getSession() );
}
-
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list