[jboss-svn-commits] JBL Code SVN: r6515 - in labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide: . debug/core editors launching
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Oct 1 18:57:18 EDT 2006
Author: KrisVerlaenen
Date: 2006-10-01 18:57:14 -0400 (Sun, 01 Oct 2006)
New Revision: 6515
Modified:
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DroolsIDEPlugin.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsDebugTarget.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsLineBreakpoint.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsLineBreakpointMarkerUpdater.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DroolsLineBreakpointAdapter.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/launching/DroolsLaunchConfigurationDelegate.java
Log:
JBRULES-342: interactive rule debugger
- additional work to get debugger working
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DroolsIDEPlugin.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DroolsIDEPlugin.java 2006-10-01 22:53:38 UTC (rev 6514)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/DroolsIDEPlugin.java 2006-10-01 22:57:14 UTC (rev 6515)
@@ -271,26 +271,24 @@
}
}
PackageBuilder builder = null;
+ DRLInfo result = null;
// compile parsed rules if necessary
if (compile && !parser.hasErrors()) {
builder = new PackageBuilder(builder_configuration);
builder.addPackage(packageDescr);
- }
- DRLInfo result = null;
- if (compile) {
result = new DRLInfo(
resource.getProjectRelativePath().toString(),
packageDescr, parser.getErrors(),
builder.getPackage(), builder.getErrors());
} else {
result = new DRLInfo(
- resource.getProjectRelativePath().toString(),
- packageDescr, parser.getErrors());
+ resource.getProjectRelativePath().toString(),
+ packageDescr, parser.getErrors());
}
// cache result
if (useCache) {
- if (compile) {
+ if (compile && !parser.hasErrors()) {
compiledRules.put(resource, result);
RuleInfo[] ruleInfos = result.getRuleInfos();
for (int i = 0; i < ruleInfos.length; i++) {
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsDebugTarget.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsDebugTarget.java 2006-10-01 22:53:38 UTC (rev 6514)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsDebugTarget.java 2006-10-01 22:57:14 UTC (rev 6515)
@@ -5,6 +5,7 @@
import java.util.Iterator;
import java.util.List;
+import org.drools.ide.DroolsIDEPlugin;
import org.eclipse.core.resources.IMarkerDelta;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.DebugEvent;
@@ -40,6 +41,23 @@
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) {
+ try {
+ if (breakpoint instanceof DroolsLineBreakpoint) {
+ ((DroolsLineBreakpoint) breakpoint).setJavaBreakpointProperties();
+ // only add breakpoint if setting Java properties of DRL
+ // breakpoint does not generate an error
+ super.breakpointAdded(breakpoint);
+ } else {
+ super.breakpointAdded(breakpoint);
+ }
+ } catch (Throwable t) {
+ // Exception will be thrown when trying to use breakpoint
+ // on drl that is incorrect (cannot be parsed or compiled)
+ DroolsIDEPlugin.log(t);
+ }
+ }
protected synchronized void initialize() {
setThreadList(new ArrayList(5));
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsLineBreakpoint.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsLineBreakpoint.java 2006-10-01 22:53:38 UTC (rev 6514)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsLineBreakpoint.java 2006-10-01 22:57:14 UTC (rev 6515)
@@ -6,6 +6,7 @@
import org.drools.ide.DRLInfo;
import org.drools.ide.DroolsIDEPlugin;
import org.drools.ide.DRLInfo.RuleInfo;
+import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
@@ -33,8 +34,8 @@
*/
public DroolsLineBreakpoint(IResource resource, int lineNumber)
throws CoreException {
- super(resource, getRuleClassName(resource, lineNumber),
- getRuleLineNumber(resource, lineNumber), -1, -1, 0, true,
+ super(resource, "", -1, /*getRuleClassName(resource, lineNumber),
+ getRuleLineNumber(resource, lineNumber), */ -1, -1, 0, true,
createAttributesMap(lineNumber), IDroolsDebugConstants.DROOLS_MARKER_TYPE);
}
@@ -52,7 +53,16 @@
return IDroolsDebugConstants.ID_DROOLS_DEBUG_MODEL;
}
- private static String getRuleClassName(IResource resource, int lineNumber) throws CoreException {
+ public void setJavaBreakpointProperties() throws CoreException {
+ IMarker marker = getMarker();
+ int drlLineNumber = getDRLLineNumber();
+ if (marker.exists()) {
+ marker.setAttribute(TYPE_NAME, getRuleClassName(marker.getResource(), drlLineNumber));
+ marker.setAttribute(IMarker.LINE_NUMBER, getRuleLineNumber(getMarker().getResource(), drlLineNumber));
+ }
+ }
+
+ private String getRuleClassName(IResource resource, int lineNumber) throws CoreException {
try {
DRLInfo drlInfo = DroolsIDEPlugin.getDefault().parseResource(resource, true);
if (drlInfo != null) {
@@ -69,7 +79,7 @@
}
}
- public static int getRuleLineNumber(IResource resource, int lineNumber) throws CoreException {
+ private int getRuleLineNumber(IResource resource, int lineNumber) throws CoreException {
try {
DRLInfo drlInfo = DroolsIDEPlugin.getDefault().parseResource(resource, true);
if (drlInfo != null) {
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsLineBreakpointMarkerUpdater.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsLineBreakpointMarkerUpdater.java 2006-10-01 22:53:38 UTC (rev 6514)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/debug/core/DroolsLineBreakpointMarkerUpdater.java 2006-10-01 22:57:14 UTC (rev 6515)
@@ -50,7 +50,6 @@
if (!offsetsInitialized || (offsetsChanged && MarkerUtilities.getLineNumber(marker) != -1)) {
try {
int drlLineNumber = document.getLineOfOffset(position.getOffset()) + 1;
- MarkerUtilities.setLineNumber(marker, DroolsLineBreakpoint.getRuleLineNumber(marker.getResource(), drlLineNumber));
marker.setAttribute(IDroolsDebugConstants.DRL_LINE_NUMBER, drlLineNumber);
} catch (Throwable t) {
DroolsIDEPlugin.log(t);
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DroolsLineBreakpointAdapter.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DroolsLineBreakpointAdapter.java 2006-10-01 22:53:38 UTC (rev 6514)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DroolsLineBreakpointAdapter.java 2006-10-01 22:57:14 UTC (rev 6515)
@@ -24,7 +24,7 @@
ITextSelection textSelection = (ITextSelection) selection;
int lineNumber = textSelection.getStartLine();
try {
- DRLInfo drlInfo = DroolsIDEPlugin.getDefault().parseResource(resource, true);
+ DRLInfo drlInfo = DroolsIDEPlugin.getDefault().parseResource(resource, false);
if (drlInfo != null) {
RuleInfo ruleInfo = drlInfo.getRuleInfo(lineNumber);
if (ruleInfo != null) {
@@ -34,7 +34,7 @@
}
}
} catch (Throwable t) {
- DroolsIDEPlugin.log(t);
+ DroolsIDEPlugin.log(t);
}
}
return false;
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/launching/DroolsLaunchConfigurationDelegate.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/launching/DroolsLaunchConfigurationDelegate.java 2006-10-01 22:53:38 UTC (rev 6514)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/launching/DroolsLaunchConfigurationDelegate.java 2006-10-01 22:57:14 UTC (rev 6515)
@@ -2,7 +2,6 @@
import java.text.MessageFormat;
-import org.drools.ide.DroolsIDEPlugin;
import org.drools.ide.debug.core.IDroolsDebugConstants;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -30,13 +29,10 @@
// TODO make sure that all DRLs needed during execution are built and cached
super.launch(configuration, mode, launch, monitor);
if (mode.equals(ILaunchManager.DEBUG_MODE)) {
+ // TODO only retrieve breakpoints of this project or any
+ // of its dependent projects
IBreakpoint[] breakpoints = getDroolsBreakpoints();
for (int i = 0; i < breakpoints.length; i++) {
- try {
- DroolsIDEPlugin.getDefault().parseResource(breakpoints[i].getMarker().getResource(), true);
- } catch (Throwable t) {
- DroolsIDEPlugin.log(t);
- }
launch.getDebugTarget().breakpointAdded(breakpoints[i]);
}
}
More information about the jboss-svn-commits
mailing list