[jboss-svn-commits] JBL Code SVN: r11423 - in labs/jbossrules/trunk: drools-jbrms/src/main/java/org/drools/brms/server/contenthandler and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Apr 27 15:24:49 EDT 2007
Author: tirelli
Date: 2007-04-27 15:24:49 -0400 (Fri, 27 Apr 2007)
New Revision: 11423
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/BRDRLPersistence.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRXMLContentHandler.java
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
Log:
JBRULES-647: integrating into content handler
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/BRDRLPersistence.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/BRDRLPersistence.java 2007-04-27 18:44:37 UTC (rev 11422)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/server/util/BRDRLPersistence.java 2007-04-27 19:24:49 UTC (rev 11423)
@@ -71,8 +71,7 @@
* @see org.drools.brms.server.util.BRLPersistence#unmarshal(java.lang.String)
*/
public RuleModel unmarshal(String str) {
- // TODO Auto-generated method stub
- return null;
+ throw new UnsupportedOperationException("Still not possible to convert pure DRL to RuleModel");
}
/**
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRXMLContentHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRXMLContentHandler.java 2007-04-27 18:44:37 UTC (rev 11422)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRXMLContentHandler.java 2007-04-27 19:24:49 UTC (rev 11423)
@@ -6,6 +6,7 @@
import org.drools.brms.client.rpc.RuleAsset;
import org.drools.brms.server.builder.BRMSPackageBuilder;
import org.drools.brms.server.builder.ContentPackageAssembler;
+import org.drools.brms.server.util.BRDRLPersistence;
import org.drools.brms.server.util.BRXMLPersistence;
import org.drools.compiler.DroolsParserException;
import org.drools.repository.AssetItem;
@@ -40,11 +41,8 @@
}
public void assembleDRL(BRMSPackageBuilder builder, AssetItem asset, StringBuffer buf) {
- throw new UnsupportedOperationException();
+ RuleModel model = BRXMLPersistence.getInstance().unmarshal( asset.getContent() );
+ String drl = BRDRLPersistence.getInstance().marshal( model );
+ buf.append( drl );
}
-
-
-
-
-
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java 2007-04-27 18:44:37 UTC (rev 11422)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java 2007-04-27 19:24:49 UTC (rev 11423)
@@ -13,6 +13,11 @@
import org.drools.StatelessSession;
import org.drools.brms.client.common.AssetFormats;
import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.brxml.ActionFieldValue;
+import org.drools.brms.client.modeldriven.brxml.ActionSetField;
+import org.drools.brms.client.modeldriven.brxml.FactPattern;
+import org.drools.brms.client.modeldriven.brxml.IAction;
+import org.drools.brms.client.modeldriven.brxml.IPattern;
import org.drools.brms.client.modeldriven.brxml.RuleModel;
import org.drools.brms.client.rpc.BuilderResult;
import org.drools.brms.client.rpc.PackageConfigData;
@@ -25,6 +30,7 @@
import org.drools.brms.client.rpc.TableDataRow;
import org.drools.brms.client.rpc.ValidatedResponse;
import org.drools.brms.client.rulelist.AssetItemListViewer;
+import org.drools.brms.server.util.BRXMLPersistence;
import org.drools.brms.server.util.TableDisplayHandler;
import org.drools.brms.server.util.TestEnvironmentSessionHelper;
import org.drools.repository.AssetItem;
@@ -925,6 +931,80 @@
}
+ /**
+ * This will test creating a package with a BRXML rule, check it compiles, and can exectute rules,
+ * then take a snapshot, and check that it reports errors.
+ */
+ public void STILL_FIXING_testBinaryPackageCompileAndExecuteWithBRXML() throws Exception {
+ ServiceImplementation impl = getService();
+ RulesRepository repo = impl.repository;
+
+ //create our package
+ PackageItem pkg = repo.createPackage( "testBinaryPackageCompileBRXML", "" );
+ pkg.updateHeader( "import org.drools.Person" );
+ AssetItem rule1 = pkg.addAsset( "rule_1", "" );
+ rule1.updateFormat( AssetFormats.BUSINESS_RULE );
+
+ RuleModel model = new RuleModel();
+ model.name = "rule2";
+ FactPattern pattern = new FactPattern("Person");
+ pattern.boundName = "p";
+ ActionSetField action = new ActionSetField("p");
+ ActionFieldValue value = new ActionFieldValue("age", "42");
+ action.addFieldValue( value );
+
+ model.addLhsItem( pattern );
+ model.addRhsItem( action );
+
+ rule1.updateContent( BRXMLPersistence.getInstance().marshal( model ) );
+ rule1.checkin( "" );
+ repo.save();
+
+ BuilderResult[] results = impl.buildPackage( pkg.getUUID() );
+ assertNull(results);
+
+ pkg = repo.loadPackage( "testBinaryPackageCompileBRXML" );
+ byte[] binPackage = pkg.getCompiledPackageBytes();
+
+ assertNotNull(binPackage);
+
+ ByteArrayInputStream bin = new ByteArrayInputStream(binPackage);
+ ObjectInputStream in = new ObjectInputStream(bin);
+ Package binPkg = (Package) in.readObject();
+
+ assertNotNull(binPkg);
+ assertTrue(binPkg.isValid());
+
+ Person p = new Person();
+
+ BinaryRuleBaseLoader loader = new BinaryRuleBaseLoader();
+ loader.addPackage( new ByteArrayInputStream(binPackage) );
+ RuleBase rb = loader.getRuleBase();
+
+ StatelessSession sess = rb.newStatelessSession();
+ sess.execute( p );
+ assertEquals(42, p.getAge());
+
+ impl.createPackageSnapshot( "testBinaryPackageCompileBRXML", "SNAP1", false, "" );
+
+ pattern.factType = "PersonX";
+ rule1.updateContent( BRXMLPersistence.getInstance().marshal( model ) );
+ rule1.checkin( "" );
+
+ results = impl.buildPackage( pkg.getUUID() );
+ assertNotNull(results);
+ assertEquals(1, results.length);
+ assertEquals(rule1.getName(), results[0].assetName);
+ assertEquals(AssetFormats.BUSINESS_RULE, results[0].assetFormat);
+ assertNotNull(results[0].message);
+ assertEquals(rule1.getUUID(), results[0].uuid);
+
+ pkg = repo.loadPackageSnapshot( "testBinaryPackageCompileBRXML", "SNAP1" );
+ results = impl.buildPackage( pkg.getUUID() );
+ assertNull(results);
+
+ }
+
private ServiceImplementation getService() throws Exception {
ServiceImplementation impl = new ServiceImplementation();
impl.repository = new RulesRepository( TestEnvironmentSessionHelper.getSession() );
More information about the jboss-svn-commits
mailing list