[jboss-svn-commits] JBL Code SVN: r12966 - in labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools: rule and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Jun 30 17:10:27 EDT 2007
Author: ahtik
Date: 2007-06-30 17:10:27 -0400 (Sat, 30 Jun 2007)
New Revision: 12966
Added:
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/mvel/MVELDebugHandler.java
Modified:
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/rule/PackageCompilationData.java
Log:
work in progress debugger code
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java 2007-06-30 21:10:20 UTC (rev 12965)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java 2007-06-30 21:10:27 UTC (rev 12966)
@@ -5,7 +5,9 @@
import org.drools.WorkingMemory;
import org.drools.spi.Consequence;
import org.drools.spi.KnowledgeHelper;
+import org.mvel.CompiledExpression;
import org.mvel.MVEL;
+import org.mvel.MVELRuntime;
public class MVELConsequence
implements
@@ -28,8 +30,22 @@
knowledgeHelper,
null,
workingMemory );
- MVEL.executeExpression( this.expr,
+
+ System.out.println("Executing expression "+((CompiledExpression)expr).getSourceName());
+
+ CompiledExpression compexpr = (CompiledExpression)this.expr;
+
+ //for testing, we'll have at least one breakpoint
+ MVELRuntime.registerBreakpoint( compexpr.getSourceName(), 1 );
+
+ //Receive breakpoints from debugger
+ MVELDebugHandler.receiveBreakpoints();
+
+ MVEL.executeDebugger( compexpr, null, this.factory);
+
+ /*MVEL.executeExpression( this.expr,
null,
- this.factory );
+ this.factory );*/
}
+
}
Added: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/mvel/MVELDebugHandler.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/mvel/MVELDebugHandler.java (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/mvel/MVELDebugHandler.java 2007-06-30 21:10:27 UTC (rev 12966)
@@ -0,0 +1,44 @@
+package org.drools.base.mvel;
+
+import org.mvel.MVELRuntime;
+import org.mvel.debug.Debugger;
+import org.mvel.debug.Frame;
+
+public class MVELDebugHandler {
+
+ static {
+ MVELRuntime.setThreadDebugger( new MVELDebugger());
+ }
+
+ /**
+ * Notify remote debugger that runtime is ready to get latest breakpoint information
+ *
+ */
+ public static void receiveBreakpoints() {
+ System.out.println("Receiving breakpoints..");
+ // Remote debugger is supposed to suspend thread and set
+ // MVELRuntime.registerBreakpoint( compexpr.getSourceName(), 2 );
+ }
+
+
+ private static class MVELDebugger implements Debugger {
+
+ public int onBreak(Frame frame) {
+ System.out.println("BREAKPOINT RECEIVED FOR:"+frame.getSourceName()+":"+frame.getLineNumber());
+ MVELDebugHandler.onBreak( frame );
+ // This call is supposed to be catched by the remote debugger
+ return 0;
+ }
+
+ }
+
+ /**
+ * This is catched by the remote debugger
+ *
+ * @param frame
+ */
+ private final static void onBreak(Frame frame) {
+
+ }
+
+}
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/rule/PackageCompilationData.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/rule/PackageCompilationData.java 2007-06-30 21:10:20 UTC (rev 12965)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/rule/PackageCompilationData.java 2007-06-30 21:10:27 UTC (rev 12966)
@@ -74,7 +74,7 @@
initClassLoader( parentClassLoader );
this.invokerLookups = new HashMap();
this.store = new HashMap();
- this.lineMappings = Collections.EMPTY_MAP;
+ //this.lineMappings = Collections.EMPTY_MAP;
}
private void initClassLoader(ClassLoader parentClassLoader) {
@@ -260,15 +260,18 @@
}
public Map getLineMappings() {
+ if (this.lineMappings==null) {
+ this.lineMappings = new HashMap();
+ }
return this.lineMappings;
}
-
+/*
public void setLineMappings(final Map lineMappings) {
this.lineMappings = lineMappings;
}
-
+*/
public LineMappings getLineMappings(final String className) {
- return (LineMappings) this.lineMappings.get( className );
+ return (LineMappings) getLineMappings().get( className );
}
public Object getAST() {
More information about the jboss-svn-commits
mailing list