[jboss-svn-commits] JBL Code SVN: r28928 - in labs/jbossrules/trunk/drools-guvnor/src: main/java/org/drools/guvnor/server/contenthandler and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Aug 14 00:59:58 EDT 2009
Author: michael.neale at jboss.com
Date: 2009-08-14 00:59:57 -0400 (Fri, 14 Aug 2009)
New Revision: 28928
Modified:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/DRLFileContentHandler.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/ClassicDRLImporter.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
Log:
GUVNOR-431 fix for getting lists of rules
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2009-08-13 13:38:47 UTC (rev 28927)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2009-08-14 04:59:57 UTC (rev 28928)
@@ -35,6 +35,7 @@
import java.util.Arrays;
import java.util.Timer;
import java.util.TimerTask;
+import java.util.StringTokenizer;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;
@@ -82,6 +83,8 @@
import org.drools.guvnor.server.util.TableDisplayHandler;
import org.drools.guvnor.server.util.VerifierRunner;
import org.drools.guvnor.server.util.Discussion;
+import org.drools.guvnor.server.util.ClassicDRLImporter;
+import static org.drools.guvnor.server.util.ClassicDRLImporter.*;
import org.drools.lang.descr.PackageDescr;
import org.drools.lang.descr.RuleDescr;
import org.drools.lang.descr.TypeDeclarationDescr;
@@ -1744,24 +1747,33 @@
// load package
PackageItem item = repository.loadPackage( packageName );
- ContentPackageAssembler asm = new ContentPackageAssembler( item,
- false );
+
+ ContentPackageAssembler asm = new ContentPackageAssembler( item, false );
+
List<String> result = new ArrayList<String>();
- DrlParser p = new DrlParser();
try {
- PackageDescr pkg = p.parse( asm.getDRL() );
- int count = 0;
- if ( pkg != null ) {
- for ( Iterator iterator = pkg.getRules().iterator(); iterator.hasNext(); ) {
- RuleDescr r = (RuleDescr) iterator.next();
- result.add( r.getName() );
- count++;
- if ( count == MAX_RULES_TO_SHOW_IN_PACKAGE_LIST ) {
- result.add( "More then " + MAX_RULES_TO_SHOW_IN_PACKAGE_LIST + " rules." );
- break;
+
+ String drl = asm.getDRL();
+ if (drl == null || "".equals(drl)) {
+ return new String[0];
+ } else {
+ int count = 0;
+
+ StringTokenizer st = new StringTokenizer( asm.getDRL(),"\n\r" );
+ while (st.hasMoreTokens()) {
+ String line = st.nextToken().trim();
+ if (line.startsWith("rule ")) {
+ String name = getRuleName(line);
+ result.add( name );
+ count++;
+ if ( count == MAX_RULES_TO_SHOW_IN_PACKAGE_LIST ) {
+ result.add( "More then " + MAX_RULES_TO_SHOW_IN_PACKAGE_LIST + " rules." );
+ break;
+ }
}
}
}
+
return result.toArray( new String[result.size()] );
} catch ( DroolsParserException e ) {
log.error( e );
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/DRLFileContentHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/DRLFileContentHandler.java 2009-08-13 13:38:47 UTC (rev 28927)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/DRLFileContentHandler.java 2009-08-14 04:59:57 UTC (rev 28928)
@@ -113,6 +113,9 @@
public void assembleDRL(BRMSPackageBuilder builder,
AssetItem asset,
StringBuffer buf) {
+ String content = getContent(asset);
+ buf.append(content);
+ /*
String content = asset.getContent();
boolean standAlone = isStandAloneRule( content );
if ( standAlone ) {
@@ -124,5 +127,6 @@
} else {
buf.append( content );
}
+ */
}
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/ClassicDRLImporter.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/ClassicDRLImporter.java 2009-08-13 13:38:47 UTC (rev 28927)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/ClassicDRLImporter.java 2009-08-14 04:59:57 UTC (rev 28928)
@@ -274,7 +274,8 @@
}
}
- private String getRuleName(String line) throws DroolsParserException {
+ /** Get the rule name from a declaration line */
+ public static String getRuleName(String line) throws DroolsParserException {
DrlParser parser = new DrlParser();
line = line + "\n when\n then \n end";
RuleDescr rule = (RuleDescr) parser.parse( line ).getRules().get( 0 );
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2009-08-13 13:38:47 UTC (rev 28927)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2009-08-14 04:59:57 UTC (rev 28928)
@@ -1829,15 +1829,14 @@
ServiceImplementation.updateDroolsHeader("import org.goo.Ber", pkg);
AssetItem rule1 = pkg.addAsset("rule_1", "");
rule1.updateFormat(AssetFormats.DRL);
- rule1
- .updateContent("rule 'rule1' \n when p:Person() \n then p.setAge(42); \n end");
+ rule1.updateContent("package wee.wee \nrule 'rule1' \n when p:Person() \n then p.setAge(42); \n end");
rule1.checkin("");
repo.save();
AssetItem rule2 = pkg.addAsset("rule_2", "");
rule2.updateFormat(AssetFormats.DRL);
rule2
- .updateContent("rule 'rule2' \n when p:Person() \n then p.setAge(42); \n end");
+ .updateContent("rule 'rule2' \n ruleflow-group 'whee' \nwhen p:Person() \n then p.setAge(42); \n end");
rule2.checkin("");
repo.save();
@@ -1851,7 +1850,7 @@
rule2.checkin("");
list = impl.listRulesInPackage(pkg.getName());
- assertEquals(0, list.length);
+ assertEquals(2, list.length);
}
More information about the jboss-svn-commits
mailing list