[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