[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