[jboss-svn-commits] JBL Code SVN: r20721 - in labs/jbossrules/trunk/drools-guvnor/src: main/java/org/drools/guvnor/server/contenthandler and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jun 24 03:11:13 EDT 2008


Author: michael.neale at jboss.com
Date: 2008-06-24 03:11:12 -0400 (Tue, 24 Jun 2008)
New Revision: 20721

Added:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/factmodel/FactModels.java
Modified:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/FactModelContentHandler.java
   labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/contenthandler/FactModelContentHandlerTest.java
Log:
modelling changes

Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/factmodel/FactModels.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/factmodel/FactModels.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/factmodel/FactModels.java	2008-06-24 07:11:12 UTC (rev 20721)
@@ -0,0 +1,15 @@
+package org.drools.guvnor.client.factmodel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.guvnor.client.modeldriven.brl.PortableObject;
+
+public class FactModels implements PortableObject {
+
+	/**
+	 * @gwt.typeArgs <org.drools.brms.client.factmodel.FactMetaModel>
+	 */
+	public List models = new ArrayList();
+
+}


Property changes on: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/factmodel/FactModels.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/FactModelContentHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/FactModelContentHandler.java	2008-06-24 06:51:36 UTC (rev 20720)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/FactModelContentHandler.java	2008-06-24 07:11:12 UTC (rev 20721)
@@ -8,8 +8,10 @@
 import java.util.Map;
 
 import org.drools.guvnor.client.factmodel.FactMetaModel;
+import org.drools.guvnor.client.factmodel.FactModels;
 import org.drools.guvnor.client.factmodel.FieldMetaModel;
 import org.drools.guvnor.client.rpc.RuleAsset;
+import org.drools.guvnor.client.rpc.RuleContentText;
 import org.drools.guvnor.server.builder.BRMSPackageBuilder;
 import org.drools.guvnor.server.builder.ContentPackageAssembler.ErrorLogger;
 import org.drools.compiler.DrlParser;
@@ -28,14 +30,30 @@
 	@Override
 	public void retrieveAssetContent(RuleAsset asset, PackageItem pkg,
 			AssetItem item) throws SerializableException {
-		// TODO Auto-generated method stub
+		try {
+			List<FactMetaModel> models = toModel(item.getContent());
+			FactModels ms = new FactModels();
+			ms.models = models;
+			asset.content = ms;
+		} catch (DroolsParserException e) {
+			System.err.println("Unable to parser the DRL - falling back to text");
+			RuleContentText text = new RuleContentText();
+			text.content = item.getContent();
+			asset.content = text;
+		}
 
 	}
 
 	@Override
 	public void storeAssetContent(RuleAsset asset, AssetItem repoAsset)
 			throws SerializableException {
-		// TODO Auto-generated method stub
+		if (asset.content instanceof FactModels) {
+			FactModels fm = (FactModels) asset.content;
+			repoAsset.updateContent(toDRL(fm.models));
+		} else {
+			RuleContentText text = (RuleContentText) asset.content;
+			repoAsset.updateContent(text.content);
+		}
 
 	}
 

Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/contenthandler/FactModelContentHandlerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/contenthandler/FactModelContentHandlerTest.java	2008-06-24 06:51:36 UTC (rev 20720)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/contenthandler/FactModelContentHandlerTest.java	2008-06-24 07:11:12 UTC (rev 20721)
@@ -1,12 +1,23 @@
 package org.drools.guvnor.server.contenthandler;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 import junit.framework.TestCase;
 
+import org.apache.derby.diag.ErrorLogReader;
 import org.drools.guvnor.client.factmodel.FactMetaModel;
+import org.drools.guvnor.client.factmodel.FactModels;
 import org.drools.guvnor.client.factmodel.FieldMetaModel;
+import org.drools.guvnor.client.rpc.RuleAsset;
+import org.drools.guvnor.server.builder.BRMSPackageBuilder;
+import org.drools.guvnor.server.builder.ContentPackageAssembler;
+import org.drools.guvnor.server.builder.ContentPackageAssembler.ErrorLogger;
+import org.drools.guvnor.server.util.TestEnvironmentSessionHelper;
+import org.drools.repository.AssetItem;
+import org.drools.repository.PackageItem;
+import org.drools.repository.RulesRepository;
 
 public class FactModelContentHandlerTest extends TestCase {
 
@@ -54,5 +65,70 @@
     	assertEquals("String", fm.type);
 
     }
+
+    public void testSource() throws Exception {
+    	FactModelContentHandler ch = new FactModelContentHandler();
+
+        RulesRepository repo = new RulesRepository( TestEnvironmentSessionHelper.getSession() );
+        PackageItem pkg = repo.loadDefaultPackage();
+        AssetItem asset = pkg.addAsset( "testDeclaredTypeSource", "" );
+        asset.updateFormat("model.drl");
+        asset.updateContent("declare Foo\n end");
+    	asset.checkin("");
+    	StringBuffer buf = new StringBuffer();
+    	ch.assembleDRL(null, asset, buf);
+
+    	assertEquals("declare Foo\n end", buf.toString());
+
+    }
+
+    public void testCompile() throws Exception {
+    	FactModelContentHandler ch = new FactModelContentHandler();
+
+        RulesRepository repo = new RulesRepository( TestEnvironmentSessionHelper.getSession() );
+        PackageItem pkg = repo.loadDefaultPackage();
+        AssetItem asset = pkg.addAsset( "testDeclaredTypeCompile", "" );
+        asset.updateFormat("model.drl");
+        asset.updateContent("declare Foo\n name: String\n end");
+    	asset.checkin("");
+
+    	BRMSPackageBuilder builder = BRMSPackageBuilder.getInstance(Collections.EMPTY_LIST);
+
+    	ch.compile(builder, asset, null);
+    	assertFalse(builder.hasErrors());
+
+    }
+
+    public void testStore() throws Exception {
+    	FactModelContentHandler ch = new FactModelContentHandler();
+
+        RulesRepository repo = new RulesRepository( TestEnvironmentSessionHelper.getSession() );
+        PackageItem pkg = repo.loadDefaultPackage();
+        AssetItem asset = pkg.addAsset( "testDeclaredTypeStore", "" );
+        asset.updateFormat("model.drl");
+        asset.updateContent("declare Foo\n name: String\n end");
+    	asset.checkin("");
+
+    	RuleAsset ass = new RuleAsset();
+    	ch.retrieveAssetContent(ass, pkg, asset);
+    	assertTrue(ass.content instanceof FactModels);
+    	FactModels fm = (FactModels) ass.content;
+
+    	assertEquals(1, fm.models.size());
+    	FactMetaModel mm = (FactMetaModel) fm.models.get(0);
+    	assertEquals(1, mm.fields.size());
+    	assertEquals("Foo", mm.name);
+
+    	FieldMetaModel fmm = (FieldMetaModel) mm.fields.get(0);
+    	assertEquals("name", fmm.name);
+
+    	mm.fields.add(new FieldMetaModel("age", "int"));
+
+    	ch.storeAssetContent(ass, asset);
+
+    	assertTrue(asset.getContent().indexOf("age: int") > -1);
+
+
+    }
 }
 




More information about the jboss-svn-commits mailing list