[jboss-svn-commits] JBL Code SVN: r11051 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/server/assembler and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Apr 16 21:03:16 EDT 2007


Author: michael.neale at jboss.com
Date: 2007-04-16 21:03:16 -0400 (Mon, 16 Apr 2007)
New Revision: 11051

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/BRMSPackageBuilder.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/package.html
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/
Removed:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/AssetAssembler.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/PackageAssembler.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/package.html
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/package.html
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/assembler/PackageAssemblerTest.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/AssetAssembler.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/PackageAssembler.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/PackageAssemblerTest.java
Log:
JBRULES-773 BRMS assembler

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java	2007-04-17 00:56:01 UTC (rev 11050)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java	2007-04-17 01:03:16 UTC (rev 11051)
@@ -140,7 +140,7 @@
         if (format.equals( AssetFormats.DSL_TEMPLATE_RULE )) {
             asset.updateContent( "when\n\nthen\n" );
         } else if (format.equals( AssetFormats.FUNCTION )) {
-            asset.updateContent( "function " + ruleName + "(<args here>)\n\n\nend" );
+            asset.updateContent( "function " + ruleName + "(<args here>) {\n\n\n}" );
         } else if (format.equals( AssetFormats.DSL )) {
             asset.updateContent( "[when]Condition sentence template {var}=" +
                     "rule language mapping {var}\n" +
@@ -216,7 +216,6 @@
         
         // get package header
         PackageItem pkgItem = repository.loadPackage( asset.metaData.packageName );
-        String header = pkgItem.getHeader();
 
         //load the content
         ContentHandler handler = ContentHandler.getHandler( asset.metaData.format );
@@ -305,7 +304,7 @@
     public TableDataResult loadAssetHistory(String uuid) throws SerializableException {
         
         List<TableDataRow> result = new ArrayList<TableDataRow>();
-        RulesRepository repo = repository;
+
         AssetItem item = repository.loadAssetByUUID( uuid );
         AssetHistoryIterator it = item.getHistory();
 
@@ -339,9 +338,7 @@
     public void restoreVersion(String versionUUID,
                                  String assetUUID,
                                  String comment) {
-        
-        
-        RulesRepository repo = repository;    
+  
         AssetItem old = repository.loadAssetByUUID( versionUUID );
         AssetItem head = repository.loadAssetByUUID( assetUUID );
         log.info( "RESTORE of asset: [" + head.getName() + "] UUID: [" + head.getUUID() + "] with historical version number: [" + old.getVersionNumber() );
@@ -452,7 +449,6 @@
                             String newState,
                             boolean wholePackage) {
         
-        RulesRepository repo = repository;
         if (!wholePackage) {
             
             AssetItem asset = repository.loadAssetByUUID( uuid );
@@ -543,7 +539,6 @@
     @WebRemote
     public TableDataResult quickFindAsset(String searchText, int max, boolean searchArchived) {
         
-        RulesRepository repo = repository;
         String search = Pattern.compile("*", Pattern.LITERAL).matcher(searchText).replaceAll(Matcher.quoteReplacement("%"));
         
         if (!search.endsWith( "%" )) {

Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/AssetAssembler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/AssetAssembler.java	2007-04-17 00:56:01 UTC (rev 11050)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/AssetAssembler.java	2007-04-17 01:03:16 UTC (rev 11051)
@@ -1,12 +0,0 @@
-package org.drools.brms.server.assembler;
-
-import org.drools.repository.AssetItem;
-import org.drools.repository.PackageItem;
-
-public class AssetAssembler {
-
-    public void process(AssetItem item, PackageItem pkg) {
-        
-    }
-    
-}

Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/PackageAssembler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/PackageAssembler.java	2007-04-17 00:56:01 UTC (rev 11050)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/PackageAssembler.java	2007-04-17 01:03:16 UTC (rev 11051)
@@ -1,39 +0,0 @@
-package org.drools.brms.server.assembler;
-
-import org.drools.lang.descr.PackageDescr;
-import org.drools.repository.PackageItem;
-import org.drools.rule.Package;
-
-public class PackageAssembler {
-
-    
-    public void parsePackage(PackageItem pkgSource) {
-
-
-    }
-
-    
-    public String getPackageDRL() {
-        return null;
-    }
-    
-    public PackageDescr getAST() {
-        return null;
-    }
-    
-    public Package getBinaryPackage() {
-        return null;
-    }
-    
-
-    //OK OK, will need error handling...
-    public boolean hasErrors() {
-        return false;
-    }
-    
-    public String[] listErrors() {
-        return null;
-    }
-    
-    
-}

Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/package.html
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/package.html	2007-04-17 00:56:01 UTC (rev 11050)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/package.html	2007-04-17 01:03:16 UTC (rev 11051)
@@ -1,3 +0,0 @@
-<body>
-	This package contains utilities for building and validating rule assets in the BRMS.
-</body>
\ No newline at end of file

Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder (from rev 11047, labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler)

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/AssetAssembler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/AssetAssembler.java	2007-04-16 22:36:09 UTC (rev 11047)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/AssetAssembler.java	2007-04-17 01:03:16 UTC (rev 11051)
@@ -1,4 +1,4 @@
-package org.drools.brms.server.assembler;
+package org.drools.brms.server.builder;
 
 import org.drools.repository.AssetItem;
 import org.drools.repository.PackageItem;

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/BRMSPackageBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/BRMSPackageBuilder.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/BRMSPackageBuilder.java	2007-04-17 01:03:16 UTC (rev 11051)
@@ -0,0 +1,69 @@
+package org.drools.brms.server.builder;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.jar.JarEntry;
+import java.util.jar.JarInputStream;
+
+import org.drools.compiler.PackageBuilder;
+import org.drools.compiler.PackageBuilderConfiguration;
+import org.drools.resource.util.ByteArrayClassLoader;
+
+/**
+ * This decorates the drools-compiler PackageBuilder
+ * with some functionality needed for the BRMS.
+ * This can use the BRMS repo as a classpath.
+ * 
+ * @author Michael Neale
+ */
+public class BRMSPackageBuilder extends PackageBuilder {
+
+    /**
+     * This will give you a fresh new PackageBuilder 
+     * using the given classpath.
+     */
+    public static BRMSPackageBuilder getInstance(JarInputStream[] classpath) throws IOException {
+
+        ByteArrayClassLoader loader = new ByteArrayClassLoader( BRMSPackageBuilder.class.getClassLoader() );
+
+        for ( int i = 0; i < classpath.length; i++ ) {
+
+            JarInputStream jis = classpath[i];
+            JarEntry entry = null;
+            byte[] buf = new byte[1024];
+            int len = 0;
+            while ( (entry = jis.getNextJarEntry()) != null ) {
+                if ( !entry.isDirectory() ) {
+                    ByteArrayOutputStream out = new ByteArrayOutputStream();
+                    while ( (len = jis.read( buf )) >= 0 ) {
+                        out.write( buf, 0, len );
+                    }
+                    loader.addResource( entry.getName(), out.toByteArray() );
+                }
+            }
+
+        }
+        
+        PackageBuilderConfiguration config = new PackageBuilderConfiguration();
+        config.setClassLoader( loader );        
+
+        return new BRMSPackageBuilder(config);
+
+    }
+    
+    /**
+     * In the BRMS you should not need to use this, use the getInstance factory method instead.
+     * @param config
+     */
+    public BRMSPackageBuilder(PackageBuilderConfiguration config) {
+        super(config);
+    }
+
+    /**
+     * This will reset the errors.
+     */
+    public void clearErrors() {
+        super.resetErrors();
+    }
+
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/BRMSPackageBuilder.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/PackageAssembler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/PackageAssembler.java	2007-04-16 22:36:09 UTC (rev 11047)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/PackageAssembler.java	2007-04-17 01:03:16 UTC (rev 11051)
@@ -1,4 +1,4 @@
-package org.drools.brms.server.assembler;
+package org.drools.brms.server.builder;
 
 import org.drools.lang.descr.PackageDescr;
 import org.drools.repository.PackageItem;

Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/package.html
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/package.html	2007-04-16 22:36:09 UTC (rev 11047)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/package.html	2007-04-17 01:03:16 UTC (rev 11051)
@@ -1,3 +0,0 @@
-<body>
-	This package contains utilities for building and validating rule assets in the BRMS.
-</body>
\ No newline at end of file

Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/package.html (from rev 11050, labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/assembler/package.html)
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/package.html	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/package.html	2007-04-17 01:03:16 UTC (rev 11051)
@@ -0,0 +1,3 @@
+<body>
+	This package contains utilities for building and validating rule assets in the BRMS.
+</body>
\ No newline at end of file

Deleted: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/assembler/PackageAssemblerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/assembler/PackageAssemblerTest.java	2007-04-17 00:56:01 UTC (rev 11050)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/assembler/PackageAssemblerTest.java	2007-04-17 01:03:16 UTC (rev 11051)
@@ -1,74 +0,0 @@
-package org.drools.brms.server.assembler;
-
-import java.io.ByteArrayOutputStream;
-import java.io.StringReader;
-import java.util.Iterator;
-import java.util.jar.JarEntry;
-import java.util.jar.JarInputStream;
-
-import org.drools.brms.client.rpc.PackageConfigData;
-import org.drools.compiler.PackageBuilder;
-import org.drools.compiler.PackageBuilderConfiguration;
-import org.drools.resource.util.ByteArrayClassLoader;
-
-import junit.framework.TestCase;
-
-public class PackageAssemblerTest extends TestCase {
-
-    public void testDummy() {}
-    
-    public void testPartialPackage() throws Exception {
-        ByteArrayClassLoader loader = new ByteArrayClassLoader( this.getClass().getClassLoader() );
-
-        JarInputStream jis = new JarInputStream( this.getClass().getResourceAsStream( "/billasurf.jar" ) );
-        JarEntry entry = null;
-        byte[] buf = new byte[1024];
-        int len = 0;
-        while ( (entry = jis.getNextJarEntry()) != null ) {
-            if ( !entry.isDirectory() ) {
-                ByteArrayOutputStream out = new ByteArrayOutputStream();
-                while ( (len = jis.read( buf )) >= 0 ) {
-                    out.write( buf, 0, len );
-                }
-                loader.addResource( entry.getName(), out.toByteArray() );
-            }
-        }
-        
-        //now we have a loader
-        
-        PackageBuilderConfiguration config = new PackageBuilderConfiguration();
-        config.setClassLoader( loader );
-        
-        assertSame(loader, config.getClassLoader());
-        
-        
-        PackageBuilder builder = new PackageBuilder(config);
-        
-        
-        
-        String header = "package foo.bar\n import com.billasurf.Person\n import com.billasurf.Board";
-        builder.addPackageFromDrl( new StringReader(header) );
-        assertFalse(builder.hasErrors());
-        
-
-        
-        String ruleAtom = "package foo.bar rule foo \n when \n Person() \n then \n System.out.println(42); end";
-        builder.addPackageFromDrl( new StringReader(ruleAtom) );
-        if (builder.hasErrors()) {            
-            System.err.println(builder.getErrors()[0].getMessage());
-        }
-        assertFalse(builder.hasErrors());
-
-        ruleAtom = "package foo.bar2 rule foo2 \n when \n Person() \n then \n System.out.println(42); end";
-        builder.addPackageFromDrl( new StringReader(ruleAtom) );
-        if (builder.hasErrors()) {            
-            System.err.println(builder.getErrors()[0].getMessage());
-        }
-        assertFalse(builder.hasErrors());
-        
-        
-        
-        
-    }
-
-}

Copied: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder (from rev 11047, labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/assembler)

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/PackageAssemblerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/assembler/PackageAssemblerTest.java	2007-04-16 22:36:09 UTC (rev 11047)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/builder/PackageAssemblerTest.java	2007-04-17 01:03:16 UTC (rev 11051)
@@ -1,51 +1,21 @@
-package org.drools.brms.server.assembler;
+package org.drools.brms.server.builder;
 
-import java.io.ByteArrayOutputStream;
 import java.io.StringReader;
-import java.util.Iterator;
-import java.util.jar.JarEntry;
 import java.util.jar.JarInputStream;
 
-import org.drools.brms.client.rpc.PackageConfigData;
-import org.drools.compiler.PackageBuilder;
-import org.drools.compiler.PackageBuilderConfiguration;
-import org.drools.resource.util.ByteArrayClassLoader;
-
 import junit.framework.TestCase;
 
+import org.drools.rule.Package;
+
 public class PackageAssemblerTest extends TestCase {
 
     public void testDummy() {}
     
     public void testPartialPackage() throws Exception {
-        ByteArrayClassLoader loader = new ByteArrayClassLoader( this.getClass().getClassLoader() );
 
         JarInputStream jis = new JarInputStream( this.getClass().getResourceAsStream( "/billasurf.jar" ) );
-        JarEntry entry = null;
-        byte[] buf = new byte[1024];
-        int len = 0;
-        while ( (entry = jis.getNextJarEntry()) != null ) {
-            if ( !entry.isDirectory() ) {
-                ByteArrayOutputStream out = new ByteArrayOutputStream();
-                while ( (len = jis.read( buf )) >= 0 ) {
-                    out.write( buf, 0, len );
-                }
-                loader.addResource( entry.getName(), out.toByteArray() );
-            }
-        }
+        BRMSPackageBuilder builder = BRMSPackageBuilder.getInstance(  new JarInputStream[] {jis} );
         
-        //now we have a loader
-        
-        PackageBuilderConfiguration config = new PackageBuilderConfiguration();
-        config.setClassLoader( loader );
-        
-        assertSame(loader, config.getClassLoader());
-        
-        
-        PackageBuilder builder = new PackageBuilder(config);
-        
-        
-        
         String header = "package foo.bar\n import com.billasurf.Person\n import com.billasurf.Board";
         builder.addPackageFromDrl( new StringReader(header) );
         assertFalse(builder.hasErrors());
@@ -59,16 +29,34 @@
         }
         assertFalse(builder.hasErrors());
 
-        ruleAtom = "package foo.bar2 rule foo2 \n when \n Person() \n then \n System.out.println(42); end";
+        ruleAtom = "rule foo2 \n when \n Person() \n then \n System.out.println(42); end";
         builder.addPackageFromDrl( new StringReader(ruleAtom) );
         if (builder.hasErrors()) {            
             System.err.println(builder.getErrors()[0].getMessage());
         }
         assertFalse(builder.hasErrors());
         
+        assertEquals("foo.bar", builder.getPackage().getName());
         
         
+        String functionAtom = "function int fooBar(String x) { return 42; }";
+        builder.addPackageFromDrl( new StringReader(functionAtom) );
+        if (builder.hasErrors()) {            
+            System.err.println(builder.getErrors()[0].getMessage());
+        }
+        assertFalse(builder.hasErrors());
         
+        Package p = builder.getPackage();
+        assertEquals(2, p.getRules().length);
+        assertEquals(1, p.getFunctions().size());
+        
+        
+        functionAtom = "xxx";
+        builder.addPackageFromDrl( new StringReader(functionAtom) );
+        assertTrue(builder.hasErrors());
+        builder.clearErrors();
+        assertFalse(builder.hasErrors());
+        
     }
 
 }




More information about the jboss-svn-commits mailing list