[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