[jboss-svn-commits] JBL Code SVN: r13406 - in labs/jbossrules/branches/mvel-tooling-2007-06-30: drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Jul 12 12:50:19 EDT 2007
Author: ahtik
Date: 2007-07-12 12:50:19 -0400 (Thu, 12 Jul 2007)
New Revision: 13406
Removed:
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDebugger.java
Modified:
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
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/MVELDebugHandler.java
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsDebugTarget.java
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsThread.java
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/MVELStackFrame.java
Log:
Progress with the MVEL debugger. current commit includes a bug that is causing timeout exception for debugger.
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java 2007-07-12 16:50:11 UTC (rev 13405)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java 2007-07-12 16:50:19 UTC (rev 13406)
@@ -93,7 +93,6 @@
private List generatedClassList;
private MemoryResourceReader src;
private PackageStore packageStoreWrapper;
- private Map lineMappings;
private Map errorHandlers;
private List results;
// the class name for the rule
@@ -173,6 +172,9 @@
public void init(final Package pkg) {
this.pkg = pkg;
+
+ //MVEL Compiler change
+ //TODO Consider lazy init for these as they might have been initialized from the constructor and maybe used meanwhile
this.errorHandlers = new HashMap();
this.results = new ArrayList();
@@ -182,8 +184,9 @@
this.packageStoreWrapper = new PackageStore( pkg.getPackageCompilationData(),
this.results );
-
- this.lineMappings = pkg.getPackageCompilationData().getLineMappings();
+//MVEL: Compiler change
+// this.lineMappings = new HashMap();
+// pkg.getPackageCompilationData().setLineMappings( this.lineMappings );
}
public void init(final RuleDescr ruleDescr) {
@@ -420,8 +423,10 @@
final LineMappings mapping = new LineMappings( name );
mapping.setStartLine( ruleDescr.getConsequenceLine() );
mapping.setOffset( ruleDescr.getConsequenceOffset() );
- this.lineMappings.put( name,
- mapping );
+
+ context.getPkg().getPackageCompilationData().getLineMappings().put( name,
+ mapping );
+
}
public void addFunction(final FunctionDescr functionDescr,
@@ -433,7 +438,7 @@
final String functionSrc = getFunctionBuilder().build( this.pkg,
functionDescr,
typeResolver,
- this.lineMappings,
+ pkg.getPackageCompilationData().getLineMappings(),
this.results );
addClassCompileTask( functionClassName,
@@ -446,7 +451,7 @@
final LineMappings mapping = new LineMappings( functionClassName );
mapping.setStartLine( functionDescr.getLine() );
mapping.setOffset( functionDescr.getOffset() );
- this.lineMappings.put( functionClassName,
+ pkg.getPackageCompilationData().getLineMappings().put( functionClassName,
mapping );
}
Deleted: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDebugger.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDebugger.java 2007-07-12 16:50:11 UTC (rev 13405)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDebugger.java 2007-07-12 16:50:19 UTC (rev 13406)
@@ -1,19 +0,0 @@
-package org.drools.rule.builder.dialect.mvel;
-
-import java.util.HashMap;
-import java.util.Map;
-
-//MVEL: Compiler change: note this cannot work and is never used
-public class MVELDebugger {
-
- public Map frameLocalVars = new HashMap();
-
- public MVELDebugger() {
- frameLocalVars.put( "this", "that" );
- }
-
- public void fireBreakpoint() {
- System.out.println("MVEL: breakpoint catched by the MVELDebugger");
- }
-
-}
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java 2007-07-12 16:50:11 UTC (rev 13405)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java 2007-07-12 16:50:19 UTC (rev 13406)
@@ -81,7 +81,6 @@
private final MVELConsequenceBuilder consequence = new MVELConsequenceBuilder();
//private final JavaRuleClassBuilder rule = new JavaRuleClassBuilder();
private final MVELFromBuilder from = new MVELFromBuilder();
- private Map lineMappings;
private final Map interceptors;
@@ -180,9 +179,6 @@
this.results = new ArrayList();
//MVEL: Compiler change
this.src = new MemoryResourceReader();
- if ( pkg != null ) {
- this.lineMappings = pkg.getPackageCompilationData().getLineMappings();
- }
}
public void init(RuleDescr ruleDescr) {
@@ -210,7 +206,8 @@
mapping.setStartLine( ruleDescr.getConsequenceLine() );
mapping.setOffset( ruleDescr.getConsequenceOffset() );
System.out.println("MVEL: Adding mvel mappings for:" + name + " at line: " + mapping.getStartLine());
- this.lineMappings.put( name, mapping );
+
+ context.getPkg().getPackageCompilationData().getLineMappings().put( name, mapping );
}
@@ -339,11 +336,12 @@
final ParserContext parserContext = new ParserContext( imports,
null,
- null );
+ context.getPkg().getName()+"."+context.getRuleDescr().getClassName() );
//this.configuration.get
parserContext.setStrictTypeEnforcement( strictMode );
+
if ( interceptors != null ) {
parserContext.setInterceptors( interceptors );
}
@@ -385,6 +383,10 @@
KnowledgeHelper.class );
ExpressionCompiler compiler = new ExpressionCompiler( text );
+
+ //MVEL Debugging support
+ compiler.setDebugSymbols( true );
+
Serializable expr = compiler.compile( parserContext );
return expr;
}
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-07-12 16:50:11 UTC (rev 13405)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/mvel/MVELConsequence.java 2007-07-12 16:50:19 UTC (rev 13406)
@@ -36,12 +36,13 @@
CompiledExpression compexpr = (CompiledExpression)this.expr;
//MVEL:for testing, we'll have at least one breakpoint
- MVELRuntime.registerBreakpoint( compexpr.getSourceName(), 1 );
+ //MVELRuntime.registerBreakpoint( compexpr.getSourceName(), 1 );
//MVEL: Receive breakpoints from debugger
MVELDebugHandler.receiveBreakpoints();
-
- //MVEL: we are always debugging for now, but we should either debug or run
+
+ //MVEL: weare always debugging for now, but we should either debug or run
+ System.out.println("MVEL: RUNNING WITH DEBUGGING");
MVEL.executeDebugger( compexpr, null, this.factory);
/*MVEL.executeExpression( this.expr,
Modified: 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 2007-07-12 16:50:11 UTC (rev 13405)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/mvel/MVELDebugHandler.java 2007-07-12 16:50:19 UTC (rev 13406)
@@ -28,14 +28,28 @@
* @param frame
*/
private final static void onBreak(Frame frame) {
- System.out.println("MVEL: MVELDebugger break on frame:"
+ System.out.println("MVEL: HEEEE!!! MVELDebugger break on frame:"
+ frame.getSourceName() + "at line:" + frame.getLineNumber());
}
+ protected final static void registerBreakpoint(String sourceName, int lineNumber) {
+ System.out.println("MVEL: Registering Breakpoint FROM DEBUGGER for "+sourceName+":"+lineNumber);
+ MVELRuntime.registerBreakpoint( sourceName, lineNumber );
+ }
+
+ protected final static void clearAllBreakpoints() {
+ System.out.println("MVEL: CLEARING ALL BREAKPOINTS (request from remote debugger)");
+ MVELRuntime.clearAllBreakpoints();
+ }
+
private static class MVELDebugger implements Debugger {
+ public MVELDebugger() {
+ System.out.println("MVEL: Initializing MVEL debugger for drools.");
+ }
+
public int onBreak(Frame frame) {
- System.out.println("MVEL: MVELDebugger BREAKPOINT RECEIVED FOR:"
+ System.out.println("MVEL: MVELDebugger BREAKPOINT RECEIVED FOR ---- "
+ frame.getSourceName() + ":" + frame.getLineNumber());
MVELDebugHandler.onBreak(frame);
// This call is supposed to be catched by the remote debugger
@@ -43,4 +57,5 @@
}
}
+
}
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsDebugTarget.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsDebugTarget.java 2007-07-12 16:50:11 UTC (rev 13405)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsDebugTarget.java 2007-07-12 16:50:19 UTC (rev 13406)
@@ -9,6 +9,7 @@
import org.drools.rule.builder.dialect.mvel.MVELDialect;
import org.eclipse.core.resources.IMarkerDelta;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.debug.core.DebugEvent;
import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.ILaunch;
@@ -16,13 +17,35 @@
import org.eclipse.debug.core.model.IProcess;
import org.eclipse.debug.core.model.IThread;
import org.eclipse.jdi.TimeoutException;
+import org.eclipse.jdi.internal.IntegerValueImpl;
+import org.eclipse.jdi.internal.ObjectReferenceImpl;
+import org.eclipse.jdi.internal.StringReferenceImpl;
+import org.eclipse.jdi.internal.VirtualMachineImpl;
+import org.eclipse.jdi.internal.jdwp.JdwpStringID;
+import org.eclipse.jdt.debug.core.IEvaluationRunnable;
+import org.eclipse.jdt.debug.core.IJavaBreakpoint;
+import org.eclipse.jdt.debug.core.IJavaThread;
import org.eclipse.jdt.internal.debug.core.IJDIEventListener;
import org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint;
import org.eclipse.jdt.internal.debug.core.model.JDIDebugModelMessages;
import org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget;
+import org.eclipse.jdt.internal.debug.core.model.JDIObjectValue;
+import org.eclipse.jdt.internal.debug.core.model.JDIPrimitiveValue;
import org.eclipse.jdt.internal.debug.core.model.JDIThread;
+import com.sun.jdi.ClassNotLoadedException;
+import com.sun.jdi.ClassType;
+import com.sun.jdi.IncompatibleThreadStateException;
+import com.sun.jdi.IntegerValue;
+import com.sun.jdi.InvalidTypeException;
+import com.sun.jdi.InvocationException;
+import com.sun.jdi.Location;
+import com.sun.jdi.Method;
import com.sun.jdi.ObjectCollectedException;
+import com.sun.jdi.ObjectReference;
+import com.sun.jdi.ReferenceType;
+import com.sun.jdi.StackFrame;
+import com.sun.jdi.StringReference;
import com.sun.jdi.ThreadReference;
import com.sun.jdi.VMDisconnectedException;
import com.sun.jdi.VirtualMachine;
@@ -43,13 +66,12 @@
private ThreadStartHandler fThreadStartHandler = null;
private boolean fSuspended = true;
- private List mvelBreakpoints = new ArrayList();
-
public DroolsDebugTarget(ILaunch launch, VirtualMachine jvm, String name, boolean supportTerminate, boolean supportDisconnect, IProcess process, boolean resume) {
super(launch, jvm, name, supportTerminate, supportDisconnect, process, resume);
}
- public void breakpointAdded(IBreakpoint breakpoint) {
+ public void breakpointAdded(IBreakpoint breakpoint) {
+
System.out.println("MVEL: entering DroolsDebugTarget.breakpointAdded");
try {
if (breakpoint instanceof DroolsLineBreakpoint) {
@@ -64,10 +86,11 @@
+ " getDRLLineNumber:" + d.getDRLLineNumber());
//getBreakpoints().add( breakpoint );
//super.breakpointAdded(breakpoint);
- mvelBreakpoints.add(breakpoint);
System.out.println("MVEL: BREAKPOINT LINE NUMBER: "+d.getLineNumber());
-
+
+ super.breakpointAdded(breakpoint);
+
} else {
System.out.println("MVEL: Adding Java breakpoint");
// only add breakpoint if setting Java properties of DRL
@@ -597,7 +620,7 @@
*/
ClassPrepareRequest req= manager.createClassPrepareRequest();
req.addClassFilter("org.drools.base.mvel.MVELDebugHandler");
- req.setSuspendPolicy(EventRequest.SUSPEND_ALL);
+ req.setSuspendPolicy(EventRequest.SUSPEND_EVENT_THREAD);
req.enable();
addJDIEventListener(MVELTraceHandler.this, req);
@@ -630,7 +653,7 @@
Field field;
EventRequest req= manager.createModificationWatchpointRequest(field);
*/
- req.setSuspendPolicy( EventRequest.SUSPEND_ALL );
+ req.setSuspendPolicy( EventRequest.SUSPEND_EVENT_THREAD );
req.enable();
addJDIEventListener( new IJDIEventListener() {
@@ -643,13 +666,92 @@
System.out.println( "MVEL: Got MVELConsequence call for " + name2 );
if ( !name2.equals("onBreak" ) && !name2.equals( "receiveBreakpoints" )) {
- System.out.println( "MVEL: Wrong method, resuming" );
+ System.out.println( "MVEL: Wrong method, resuming. method: "+name2 );
//event.virtualMachine().resume();
return true;
}
- System.out.println("MVEL: Suspending threads");
+ if (name2.equals( "receiveBreakpoints" )) {
+ Iterator iterator = getBreakpoints().iterator();
+ while ( iterator.hasNext() ) {
+ IJavaBreakpoint element = (IJavaBreakpoint) iterator.next();
+ if (element instanceof DroolsLineBreakpoint) {
+ DroolsLineBreakpoint l = (DroolsLineBreakpoint) element;
+ if (MVELDialect.ID.equals(l.getDialectName())) {
+
+ try {
+
+ int line = l.getLineNumber();
+ String sourceName = l.getTypeName();
+
+ ReferenceType refType = ((MethodEntryEvent) event).method().declaringType();
+
+ Method m = (Method) refType.methodsByName( "registerBreakpoint" ).iterator().next();
+
+ List args = new ArrayList();
+
+ IntegerValue lineVal = getVM().mirrorOf( line );
+ StringReference nameVal = getVM().mirrorOf( sourceName );
+
+ JDIObjectValue val = (JDIObjectValue) newValue( sourceName );
+ ObjectReference realVal = val.getUnderlyingObject();
+
+ args.add(nameVal);
+ args.add( lineVal );
+
+ //args.add(new IntegerValueImpl((VirtualMachineImpl) getVM(), new Integer(line)));
+ //args.add(((JDIPrimitiveValue)newValue(line)).getIntValue());
+
+ try {
+ ThreadReference t = ((MethodEntryEvent) event).thread();
+
+ System.out.println("MVEL: SUSPEND COUNT="+t.suspendCount());
+
+ StackFrame frame = t.frame( 0 );
+
+ ClassType tt = (ClassType) getVM().classesByName(refType.name()).iterator().next();
+
+
+ DroolsThread t2 = (DroolsThread) findThread( t );
+ tt.invokeMethod( t2.getUnderlyingThread(), m, args, ObjectReference.INVOKE_SINGLE_THREADED);
+
+ //refType.classObject().invokeMethod( t, m, args, 0);
+
+ //getVM().classesByName(refType.g);
+ //refType
+
+
+ } catch ( InvalidTypeException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch ( ClassNotLoadedException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch ( IncompatibleThreadStateException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch ( InvocationException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ //MVELRuntime.registerBreakpoint( compexpr.getSourceName(), 1 );
+
+ } catch ( CoreException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }
+
+ }
+ return true;
+
+ }
+
+ System.out.println("MVEL: ONBREAK Called!!! Suspending threads");
+
JDIThread thr = findThread( entryEvent.thread() );
try {
thr.suspend();
@@ -658,7 +760,7 @@
e.printStackTrace();
}
- System.out.println("Thread is "+entryEvent.thread().getClass());
+ System.out.println("MVEL: Thread is "+entryEvent.thread().getClass());
if (thr instanceof DroolsThread) {
System.out.println("MVEL: Drools Thread!!");
((DroolsThread)thr).suspendedByVM();
@@ -731,7 +833,15 @@
}
public Object getFirstDroolsBreakpoint() {
- return mvelBreakpoints.iterator().next();
+ Iterator iterator = getBreakpoints().iterator();
+ while ( iterator.hasNext() ) {
+ IJavaBreakpoint element = (IJavaBreakpoint) iterator.next();
+ if (element instanceof DroolsLineBreakpoint) {
+ DroolsLineBreakpoint l = (DroolsLineBreakpoint) element;
+ return l;
+ }
+ }
+ return null;
}
}
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsThread.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsThread.java 2007-07-12 16:50:11 UTC (rev 13405)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/DroolsThread.java 2007-07-12 16:50:19 UTC (rev 13406)
@@ -61,8 +61,8 @@
//MVEL: this cannot work: org.drools.rule.builder.dialect.mvel.MVELDebugger is never instantiated
Location loc = currentFrame.location();
System.out.println("MVEL: In DroolsThread.computeStackFrames with declaringType:" + loc.declaringType().name());
- if ( loc.declaringType().name().equals( "org.drools.rule.builder.dialect.mvel.MVELDebugger" )
- && loc.method().name().equals( "fireBreakpoint" ) ) {
+ if ( loc.declaringType().name().equals( "org.drools.base.mvel.MVELDebugHandler" )
+ && loc.method().name().equals( "onBreak" ) ) {
System.out.println(" MVEL: creating MVELStackFrame");
fStackFrames.add( 0, new MVELStackFrame( this, currentFrame, depth ) );
} else {
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/MVELStackFrame.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/MVELStackFrame.java 2007-07-12 16:50:11 UTC (rev 13405)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/debug/core/MVELStackFrame.java 2007-07-12 16:50:19 UTC (rev 13406)
@@ -1,17 +1,21 @@
package org.drools.eclipse.debug.core;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import org.drools.eclipse.DroolsEclipsePlugin;
import org.drools.eclipse.DRLInfo.RuleInfo;
import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.model.IVariable;
+import org.eclipse.jdi.internal.LocalVariableImpl;
import org.eclipse.jdi.internal.ObjectReferenceImpl;
import org.eclipse.jdt.internal.debug.core.model.JDIFieldVariable;
import org.eclipse.jdt.internal.debug.core.model.JDIObjectValue;
+import com.sun.jdi.AbsentInformationException;
import com.sun.jdi.Field;
+import com.sun.jdi.LocalVariable;
import com.sun.jdi.Method;
import com.sun.jdi.ObjectReference;
import com.sun.jdi.ReferenceType;
@@ -28,7 +32,7 @@
frame,
depth );
//MVEL:Logging
- System.out.println( "MVELStackFrame created for depth " + depth + " thread=" + thread );
+ System.out.println( "MVEL: MVELStackFrame created for depth " + depth + " thread=" + thread );
}
@@ -45,17 +49,23 @@
List result = new ArrayList( 0 );
- Method method = getUnderlyingMethod();
- //System.out.println("Underlying method is "+method.name());
- ReferenceType type = method.declaringType();
- //System.out.println("Declaring type is "+type.name());
+ Method method = getUnderlyingMethod(); // onBreak
+ ReferenceType declaringType = method.declaringType(); // org.drools.base.mvel.MVELDebugHandler
- ;
+ //ReferenceType declaringType = .location().declaringType();
- /* ReferenceType declaringType = .location().declaringType();
+ try {
+ Object var = method.variables().get( 0 );
+ LocalVariable v2 = (LocalVariable) var;
+ result.add( new DroolsLocalVariable(this,v2));
+
+ } catch ( AbsentInformationException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+/* Field varsField = declaringType.fieldByName("frameLocalVars");
- Field varsField = declaringType.fieldByName("frameLocalVars");
-
System.out.println("field is "+varsField);
Value value = declaringType.getValue(varsField);
@@ -71,7 +81,8 @@
result.add(var);
*/
- JDIFieldVariable vars = (JDIFieldVariable) getThis().getField( "frameLocalVars",
+ //TODO HERE WE START FIXING!!!
+/* JDIFieldVariable vars = (JDIFieldVariable) getThis().getField( "frameLocalVars",
false );
JDIObjectValue val = (JDIObjectValue) vars.getValue();
@@ -108,16 +119,16 @@
new ArrayList(),
0 );
- /* Method m2 = (Method) t.methodsByName( "i" ).iterator().next();
+ Method m2 = (Method) t.methodsByName( "i" ).iterator().next();
Value mapiter = ((JDIObjectValue)mapentries).getUnderlyingObject().invokeMethod( ((DroolsThread)getThread()).getUnderlyingThread(), m3, new ArrayList(), 0);
- */
+
ObjectReferenceImpl valueImpl = (ObjectReferenceImpl) iter;
- //boolean hasNext = hasNext(iter);
+*/ //boolean hasNext = hasNext(iter);
//ObjectReferenceImpl next = getNext(iter);
- Field varsField;
+/* Field varsField;
IVariable var1 = new MVELThisVariable( getJavaDebugTarget(),
valueImpl,
@@ -125,12 +136,12 @@
IVariable var2 = new MVELThisVariable( getJavaDebugTarget(),
valueImpl,
"label2" );
-
+*/
//JDIFieldVariable var = new JDIFieldVariable((JDIDebugTarget)getDebugTarget(), varsField, valueImpl);
//JDILocalVariable var2 = new JDILocalVariable()
- result.add( var1 );
+/* result.add( var1 );
result.add( var2 );
-
+*/
// WatchExpression ex = new WatchExpression("frameLocalVars.entrySet().iterator()");
// WatchExpression ex = new WatchExpression( "ttw12e4" );
// ex.setExpressionContext( this );
@@ -138,13 +149,10 @@
//System.out.println("Got value "+mapentries);
- } catch ( Throwable t ) {
- t.printStackTrace();
- }
-
+
IVariable[] vararr = (IVariable[]) result.toArray( new IVariable[result.size()] );
- System.out.println( "Returning list of visible vars: count " + vararr.length );
+ System.out.println( "MVEL: Returning list of visible vars: count " + vararr.length );
return vararr;
}
@@ -178,7 +186,7 @@
String methodName = getMethodName();
String signature = getSignature();
String type = getDeclaringTypeName();
- System.out.println( "MVELStackFrame.getExecutingRuleInfo: RuleInfo type=" + type
+ System.out.println( "MVEL: MVELStackFrame.getExecutingRuleInfo: RuleInfo type=" + type
+ " methodName=" + methodName + " signature" + signature );
return DroolsEclipsePlugin.getDefault().getRuleInfoByClass( type );
More information about the jboss-svn-commits
mailing list