[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