[jboss-svn-commits] JBL Code SVN: r36458 - in labs/jbossrules: branches/5.2.0.36439-M1/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/process/order and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Dec 17 15:58:28 EST 2010


Author: mark.proctor at jboss.com
Date: 2010-12-17 15:58:27 -0500 (Fri, 17 Dec 2010)
New Revision: 36458

Added:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/DialectError.java
Removed:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/commons/jci/stores/RuleBuildError.java
Modified:
   labs/jbossrules/branches/5.2.0.36439-M1/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/PetStore.java
   labs/jbossrules/branches/5.2.0.36439-M1/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/process/order/OrderExample.java
   labs/jbossrules/branches/5.2.0.36439-M1/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/process/order/workflow_rules.drl
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
Log:
-Compilation errors are handled more gracefully, instead of a failed classloader exception that is not caught.

Modified: labs/jbossrules/branches/5.2.0.36439-M1/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/PetStore.java
===================================================================
--- labs/jbossrules/branches/5.2.0.36439-M1/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/PetStore.java	2010-12-17 20:33:58 UTC (rev 36457)
+++ labs/jbossrules/branches/5.2.0.36439-M1/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/PetStore.java	2010-12-17 20:58:27 UTC (rev 36458)
@@ -59,12 +59,18 @@
     public static void main(String[] args) {
         try {
         	KnowledgeBuilderConfiguration conf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
-        	conf.setOption( DumpDirOption.get(new File("/home/kverlaen/NotBackedUp/development/drools/drools-examples/drools-examples-drl/dump")) );
+        	// example dump
+        	// conf.setOption( DumpDirOption.get(new File("/home/kverlaen/NotBackedUp/development/drools/drools-examples/drools-examples-drl/dump")) );
             KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(conf);
 
             kbuilder.add( ResourceFactory.newClassPathResource( "PetStore.drl",
-                                                                        PetStore.class ),
+                                                                 PetStore.class ),
                                   ResourceType.DRL );
+            
+            if ( kbuilder.hasErrors() ) {
+            	throw new RuntimeException ( kbuilder.getErrors().toString() );
+            }
+            
             KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
             kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
 

Modified: labs/jbossrules/branches/5.2.0.36439-M1/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/process/order/OrderExample.java
===================================================================
--- labs/jbossrules/branches/5.2.0.36439-M1/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/process/order/OrderExample.java	2010-12-17 20:33:58 UTC (rev 36457)
+++ labs/jbossrules/branches/5.2.0.36439-M1/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/process/order/OrderExample.java	2010-12-17 20:58:27 UTC (rev 36458)
@@ -267,7 +267,7 @@
         kbuilder.add(ResourceFactory.newClassPathResource(
     		"RuleSetExample.rf", OrderExample.class), ResourceType.DRF );
         kbuilder.add(ResourceFactory.newClassPathResource(
-    		"workflow_rules.drl", OrderExample.class), ResourceType.DRL );
+        			 "workflow_rules.drl", OrderExample.class), ResourceType.DRL );
         kbuilder.add(ResourceFactory.newClassPathResource(
     		"validation.drl", OrderExample.class), ResourceType.DRL );
         kbuilder.add(ResourceFactory.newClassPathResource(
@@ -276,6 +276,11 @@
     		"assignment.dslr", OrderExample.class), ResourceType.DSLR );
         kbuilder.add(ResourceFactory.newClassPathResource(
     		"discount.drl", OrderExample.class), ResourceType.DRL );
+        
+        if ( kbuilder.hasErrors() ) {
+        	throw new RuntimeException ( kbuilder.getErrors().toString() );
+        }
+        
         KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
         kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
 		return kbase;

Modified: labs/jbossrules/branches/5.2.0.36439-M1/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/process/order/workflow_rules.drl
===================================================================
--- labs/jbossrules/branches/5.2.0.36439-M1/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/process/order/workflow_rules.drl	2010-12-17 20:33:58 UTC (rev 36457)
+++ labs/jbossrules/branches/5.2.0.36439-M1/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/process/order/workflow_rules.drl	2010-12-17 20:58:27 UTC (rev 36458)
@@ -33,8 +33,7 @@
 	    workItemNodeInstance: WorkItemNodeInstance( workItemId <= 0 )
 	    workItem: WorkItemImpl( state == WorkItemImpl.PENDING ) from workItemNodeInstance.getWorkItem()
 	then 
-		workItemNodeInstance.getProcessInstance().getWorkingMemory()
-			.getWorkItemManager().internalExecuteWorkItem(workItem);
+		workItemNodeInstance.getProcessInstance().getWorkingMemory().getWorkItemManager().internalExecuteWorkItem(workItem);
 		workItemNodeInstance.internalSetWorkItemId(workItem.getId());
 		updateIfExists(drools.getWorkingMemory(), workItemNodeInstance);
 end

Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/commons/jci/stores/RuleBuildError.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/commons/jci/stores/RuleBuildError.java	2010-12-17 20:33:58 UTC (rev 36457)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/commons/jci/stores/RuleBuildError.java	2010-12-17 20:58:27 UTC (rev 36458)
@@ -1,20 +0,0 @@
-package org.drools.commons.jci.stores;
-
-import org.drools.compiler.DescrBuildError;
-import org.drools.lang.descr.BaseDescr;
-import org.drools.rule.Rule;
-
-public class RuleBuildError extends DescrBuildError {
-    private final Rule rule;
-    public RuleBuildError(final Rule rule,
-                           final BaseDescr descr,
-                           final Object object,
-                           final String message) {
-              super(descr, descr, object, message);
-              this.rule = rule;
-          }
-    
-    public Rule getRule() {
-        return this.rule;
-    }
-}

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2010-12-17 20:33:58 UTC (rev 36457)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2010-12-17 20:58:27 UTC (rev 36458)
@@ -78,6 +78,7 @@
 import org.drools.rule.TypeDeclaration;
 import org.drools.rule.builder.RuleBuildContext;
 import org.drools.rule.builder.RuleBuilder;
+import org.drools.rule.builder.dialect.DialectError;
 import org.drools.runtime.pipeline.impl.DroolsJaxbHelperProviderImpl;
 import org.drools.runtime.process.InternalProcessRuntime;
 import org.drools.runtime.process.ProcessRuntimeFactory;
@@ -628,7 +629,11 @@
         }
 
         compileAll();
-        reloadAll();
+        try {
+        	reloadAll();
+        } catch ( Exception e) {
+        	this.results.add( new DialectError( "Unable to wire compiled classes, probably related to compilation failures:" + e.getMessage() ) );
+        }
         updateResults();
 
         // iterate and compile

Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/DialectError.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/DialectError.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/DialectError.java	2010-12-17 20:58:27 UTC (rev 36458)
@@ -0,0 +1,26 @@
+package org.drools.rule.builder.dialect;
+
+import org.drools.compiler.DroolsError;
+
+public class DialectError extends DroolsError {
+    private String message;
+    private static final int[] line = new int[0];
+
+    public DialectError(final String message) {
+        super();
+        this.message = message;
+    }
+
+    public int[] getErrorLines() {
+        return line;
+    }
+    
+    public String getMessage() {
+        return this.message;
+    }
+
+    public String toString() {
+        return "[DialectError message='" + this.message + "']";
+    }
+
+}



More information about the jboss-svn-commits mailing list