[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