[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