[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