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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jun 24 04:24:25 EDT 2008


Author: michael.neale at jboss.com
Date: 2008-06-24 04:24:24 -0400 (Tue, 24 Jun 2008)
New Revision: 20725

Modified:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/AssetFormats.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/FactModelContentHandler.java
Log:
modelling changes - integrating it with BRMS build

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/AssetFormats.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/AssetFormats.java	2008-06-24 08:24:07 UTC (rev 20724)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/AssetFormats.java	2008-06-24 08:24:24 UTC (rev 20725)
@@ -66,6 +66,9 @@
     /** For test scenarios.  */
     public static final String TEST_SCENARIO = "scenario";
 
+    /** For fact models in drl.     */
+    public static final String DRL_MODEL = "model.drl";
+
     /**
      * The following group the assets together for lists, helpers etc...
      */
@@ -75,7 +78,7 @@
     /**
      * These define assets that are really package level "things". Used to decide when to flush any caches.
      */
-    private static final String[] PACKAGE_DEPENCENCIES = new String[] {AssetFormats.FUNCTION, AssetFormats.DSL, AssetFormats.MODEL, AssetFormats.ENUMERATION};
+    private static final String[] PACKAGE_DEPENCENCIES = new String[] {AssetFormats.FUNCTION, AssetFormats.DSL, AssetFormats.MODEL, AssetFormats.ENUMERATION, AssetFormats.DRL_MODEL};
 
 
     /**

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java	2008-06-24 08:24:07 UTC (rev 20724)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java	2008-06-24 08:24:24 UTC (rev 20725)
@@ -160,6 +160,7 @@
 
         //now we deal with the header (imports, templates, globals).
         addDrl(ServiceImplementation.getDroolsHeader(pkg));
+        loadDeclaredTypes();
         if (builder.hasErrors()) {
             recordBuilderErrors(pkg);
             //if we have any failures, lets drop out now, no point in going
@@ -167,6 +168,8 @@
             return false;
         }
 
+
+
         loadDSLFiles();
 
         //finally, any functions we will load at this point.
@@ -183,7 +186,22 @@
         return errors.size() == 0;
     }
 
-    private void loadDSLFiles() {
+    private void loadDeclaredTypes() {
+		AssetItemIterator it = this.pkg.listAssetsByFormat(new String[]{AssetFormats.DRL_MODEL} );
+		while (it.hasNext()) {
+			AssetItem as = it.next();
+			try {
+				builder.addPackageFromDrl(new StringReader(as.getContent()));
+			} catch (DroolsParserException e) {
+				this.errors.add(new ContentAssemblyError(as, "Parser exception: " + e.getMessage() ));
+			} catch (IOException e) {
+				this.errors.add(new ContentAssemblyError(as, "IOException: " + e.getMessage()));
+			}
+		}
+
+	}
+
+	private void loadDSLFiles() {
         //now we load up the DSL files
         builder.setDSLFiles( BRMSPackageBuilder.getDSLMappingFiles( pkg, new BRMSPackageBuilder.DSLErrorEvent() {
             public void recordError(AssetItem asset, String message) {
@@ -277,8 +295,8 @@
         }));
 
 
-        //do the functions.
-        AssetItemIterator it = this.pkg.listAssetsByFormat( new String[] {AssetFormats.FUNCTION} );
+        //do the functions and declared types.
+        AssetItemIterator it = this.pkg.listAssetsByFormat( new String[] {AssetFormats.FUNCTION, AssetFormats.DRL_MODEL} );
         while(it.hasNext()) {
             AssetItem func = (AssetItem) it.next();
             if (!func.isArchived()) {

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 08:24:07 UTC (rev 20724)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/contenthandler/FactModelContentHandler.java	2008-06-24 08:24:24 UTC (rev 20725)
@@ -7,6 +7,8 @@
 import java.util.List;
 import java.util.Map;
 
+import org.drools.compiler.DrlParser;
+import org.drools.compiler.DroolsParserException;
 import org.drools.guvnor.client.factmodel.FactMetaModel;
 import org.drools.guvnor.client.factmodel.FactModels;
 import org.drools.guvnor.client.factmodel.FieldMetaModel;
@@ -14,18 +16,15 @@
 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;
-import org.drools.compiler.DroolsParserException;
 import org.drools.lang.descr.PackageDescr;
 import org.drools.lang.descr.TypeDeclarationDescr;
 import org.drools.lang.descr.TypeFieldDescr;
 import org.drools.repository.AssetItem;
 import org.drools.repository.PackageItem;
-import org.drools.repository.RulesRepositoryException;
 
 import com.google.gwt.user.client.rpc.SerializableException;
 
-public class FactModelContentHandler extends ContentHandler implements IRuleAsset {
+public class FactModelContentHandler extends ContentHandler {
 
 	@Override
 	public void retrieveAssetContent(RuleAsset asset, PackageItem pkg,
@@ -36,7 +35,7 @@
 			ms.models = models;
 			asset.content = ms;
 		} catch (DroolsParserException e) {
-			System.err.println("Unable to parser the DRL - falling back to text");
+			System.err.println("Unable to parse the DRL for the model - falling back to text (" + e.getMessage() + ")");
 			RuleContentText text = new RuleContentText();
 			text.content = item.getContent();
 			asset.content = text;
@@ -74,7 +73,7 @@
     	DrlParser parser = new DrlParser();
     	PackageDescr pkg = parser.parse(drl);
     	if (parser.hasErrors()) {
-    		throw new RulesRepositoryException("The model drl " + drl + " is not valid");
+    		throw new DroolsParserException("The model drl " + drl + " is not valid");
     	}
     	List<TypeDeclarationDescr> types = pkg.getTypeDeclarations();
     	List<FactMetaModel> list = new ArrayList<FactMetaModel>(types.size());
@@ -102,12 +101,5 @@
 		return sb.toString().trim();
 	}
 
-	public void assembleDRL(BRMSPackageBuilder builder, AssetItem asset, StringBuffer buf) {
-		buf.append(asset.getContent());
-	}
 
-	public void compile(BRMSPackageBuilder builder, AssetItem asset, ErrorLogger logger) throws DroolsParserException, IOException {
-		builder.addPackageFromDrl( new StringReader(asset.getContent()) );
-	}
-
 }




More information about the jboss-svn-commits mailing list