[jboss-svn-commits] JBL Code SVN: r10803 - in labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse: dsl/editor and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Apr 6 20:05:06 EDT 2007


Author: KrisVerlaenen
Date: 2007-04-06 20:05:06 -0400 (Fri, 06 Apr 2007)
New Revision: 10803

Added:
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/DescrUtil.java
Modified:
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/dsl/editor/DSLEditor.java
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/dsl/editor/DSLMappingSorter.java
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/dsl/editor/MappingEditor.java
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/AbstractRuleEditor.java
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/AbstractCompletionProcessor.java
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/DefaultCompletionProcessor.java
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/LocationDeterminator.java
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/outline/RuleContentOutlinePage.java
   labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/util/ProjectClassLoader.java
Log:
 - Small fixes to get tests working again
 - Fixes in DSL editor to get it more stable and fault tolerant
 - JBRULES-769: Nullpointer in outline view
 - JBRULES-767: autocomplete for static classes fails

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java	2007-04-06 14:48:55 UTC (rev 10802)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java	2007-04-07 00:05:06 UTC (rev 10803)
@@ -31,7 +31,6 @@
 import org.drools.eclipse.builder.DroolsBuilder;
 import org.drools.eclipse.builder.Util;
 import org.drools.eclipse.editors.AbstractRuleEditor;
-import org.drools.eclipse.editors.DRLRuleEditor;
 import org.drools.eclipse.editors.DSLAdapter;
 import org.drools.eclipse.preferences.IDroolsConstants;
 import org.drools.eclipse.util.ProjectClassLoader;

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/dsl/editor/DSLEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/dsl/editor/DSLEditor.java	2007-04-06 14:48:55 UTC (rev 10802)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/dsl/editor/DSLEditor.java	2007-04-07 00:05:06 UTC (rev 10803)
@@ -279,7 +279,7 @@
                 DSLMappingEntry selected = getCurrentSelected();
                 exprText.setText( selected.getMappingKey() );
                 mappingText.setText( selected.getMappingValue() );
-                objText.setText( selected.getMetaData().getMetaData() );
+                objText.setText( selected.getMetaData().getMetaData() == null ? "" : selected.getMetaData().getMetaData() );
             }
 
         } );
@@ -312,7 +312,7 @@
         descriptionText = new Text( parent,
                                     SWT.BORDER );
         descriptionText.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) );
-        descriptionText.setText( "" + model.getDescription() ); //no nulls !
+        descriptionText.setText( model.getDescription() == null ? "" : model.getDescription() );
         descriptionText.addModifyListener( new ModifyListener() {
 
             public void modifyText(ModifyEvent e) {
@@ -391,7 +391,7 @@
                        DSLMappingSorter.OBJECT );
         sortCombo.add( "Language Expression",
                        DSLMappingSorter.EXPRESSION );
-        sortCombo.add( "Rule Language Meaning",
+        sortCombo.add( "Rule Language Mapping",
                        DSLMappingSorter.MAPPING );
         sortCombo.add( "Scope",
                        DSLMappingSorter.SCOPE );
@@ -426,19 +426,22 @@
     }
 
     private void showEditPopup() {
-        MappingEditor editor = new MappingEditor( getSite().getShell() );
-        editor.create();
-        editor.getShell().setText( "Edit language mapping" );
-        editor.setTitle( "Edit an existing language mapping item." );
-        editor.setTitleImage( getTitleImage() );
-
-        editor.setNLMappingItem( getCurrentSelected() );
-
-        editor.open();
-        if ( !editor.isCancelled() ) {
-            refreshModel();
-            makeDirty();
-        }
+    	DSLMappingEntry selected = getCurrentSelected();
+    	if (selected != null) {
+	        MappingEditor editor = new MappingEditor( getSite().getShell() );
+	        editor.create();
+	        editor.getShell().setText( "Edit language mapping" );
+	        editor.setTitle( "Edit an existing language mapping item." );
+	        editor.setTitleImage( getTitleImage() );
+	
+	        editor.setNLMappingItem( selected );
+	
+	        editor.open();
+	        if ( !editor.isCancelled() ) {
+	            refreshModel();
+	            makeDirty();
+	        }
+    	}
     }
 
     private void createDeleteButton(Composite parent) {
@@ -456,8 +459,10 @@
                 model.removeEntry( getCurrentSelected() );
                 refreshModel();
                 makeDirty();
+                exprText.setText( "" );
+                mappingText.setText( "" );
+                objText.setText( "" );
             }
-
         } );
     }
 
@@ -540,26 +545,27 @@
             public void widgetSelected(SelectionEvent e) {
 
                 DSLMappingEntry curr = getCurrentSelected();
-                DSLMappingEntry newItem = new DefaultDSLMappingEntry( curr.getSection(),
-                                                                      curr.getMetaData(),
-                                                                      curr.getMappingKey(),
-                                                                      curr.getMappingValue() );
-
-                MappingEditor editor = new MappingEditor( getSite().getShell() );//shell);
-                editor.create();
-                editor.getShell().setText( "New language mapping" );
-                editor.setTitle( "Create a new language element mapping from a copy." );
-                editor.setTitleImage( getTitleImage() );
-
-                editor.setNLMappingItem( newItem );
-
-                editor.open();
-                if ( !editor.isCancelled() ) {
-                    model.addEntry( newItem );
-                    refreshModel();
-                    makeDirty();
+                if (curr != null) {
+	                DSLMappingEntry newItem = new DefaultDSLMappingEntry( curr.getSection(),
+	                                                                      curr.getMetaData(),
+	                                                                      curr.getMappingKey(),
+	                                                                      curr.getMappingValue() );
+	
+	                MappingEditor editor = new MappingEditor( getSite().getShell() );//shell);
+	                editor.create();
+	                editor.getShell().setText( "New language mapping" );
+	                editor.setTitle( "Create a new language element mapping from a copy." );
+	                editor.setTitleImage( getTitleImage() );
+	
+	                editor.setNLMappingItem( newItem );
+	
+	                editor.open();
+	                if ( !editor.isCancelled() ) {
+	                    model.addEntry( newItem );
+	                    refreshModel();
+	                    makeDirty();
+	                }
                 }
-
             }
         } );
     }
@@ -610,7 +616,7 @@
         column = new TableColumn( table,
                                   SWT.LEFT,
                                   1 );
-        column.setText( "Rule language mapping" );
+        column.setText( "Rule Language Mapping" );
         column.setWidth( 200 );
         // Add listener to column so sorted when clicked
         column.addSelectionListener( new SelectionAdapter() {

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/dsl/editor/DSLMappingSorter.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/dsl/editor/DSLMappingSorter.java	2007-04-06 14:48:55 UTC (rev 10802)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/dsl/editor/DSLMappingSorter.java	2007-04-07 00:05:06 UTC (rev 10803)
@@ -60,7 +60,7 @@
 
     private int compareMappings(DSLMappingEntry item1,
                                 DSLMappingEntry item2) {
-        return item1.getSection().compareTo( item2.getSection() );
+        return item1.getMappingValue().compareTo( item2.getMappingValue() );
     }
 
     private int compareExpressions(DSLMappingEntry item1,

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/dsl/editor/MappingEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/dsl/editor/MappingEditor.java	2007-04-06 14:48:55 UTC (rev 10802)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/dsl/editor/MappingEditor.java	2007-04-07 00:05:06 UTC (rev 10803)
@@ -1,7 +1,6 @@
 package org.drools.eclipse.dsl.editor;
 
 import org.drools.lang.dsl.DSLMappingEntry;
-import org.drools.lang.dsl.DefaultDSLMappingEntry;
 import org.drools.lang.dsl.DSLMappingEntry.Section;
 import org.eclipse.jface.dialogs.TitleAreaDialog;
 import org.eclipse.swt.SWT;
@@ -31,8 +30,8 @@
     private static final int       SCOPE_ALL     = 3;
     
     private static final String    SCOPE_STR_KEYWORD = "keyword"; 
-    private static final String    SCOPE_STR_WHEN = "when"; 
-    private static final String    SCOPE_STR_THEN = "then"; 
+    private static final String    SCOPE_STR_WHEN = "condition"; 
+    private static final String    SCOPE_STR_THEN = "consequence"; 
     private static final String    SCOPE_STR_ALL  = "*"; 
 
     private Text                   exprText;
@@ -54,9 +53,9 @@
     public void setNLMappingItem(DSLMappingEntry item) {
         model = item;
         setSection( model.getSection() );
-        exprText.setText( model.getMappingKey() );
-        mappingText.setText( model.getMappingValue() );
-        objText.setText( model.getMetaData().getMetaData() );
+        exprText.setText( model.getMappingKey() == null ? "" : model.getMappingKey() );
+        mappingText.setText( model.getMappingValue() == null ? "" : model.getMappingValue() );
+        objText.setText( model.getMetaData().getMetaData() == null ? "" : model.getMetaData().getMetaData() );
     }
 
     private void setSection(Section section) {

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/AbstractRuleEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/AbstractRuleEditor.java	2007-04-06 14:48:55 UTC (rev 10802)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/AbstractRuleEditor.java	2007-04-07 00:05:06 UTC (rev 10803)
@@ -2,7 +2,6 @@
 
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -14,11 +13,8 @@
 import org.drools.eclipse.editors.outline.RuleContentOutlinePage;
 import org.drools.eclipse.editors.scanners.RuleEditorMessages;
 import org.drools.eclipse.preferences.IDroolsConstants;
+import org.drools.lang.descr.BaseDescr;
 import org.drools.lang.descr.FactTemplateDescr;
-import org.drools.lang.descr.FunctionDescr;
-import org.drools.lang.descr.FunctionImportDescr;
-import org.drools.lang.descr.ImportDescr;
-import org.drools.lang.descr.PackageDescr;
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
@@ -30,7 +26,6 @@
 import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.preference.PreferenceConverter;
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.source.Annotation;
@@ -40,7 +35,6 @@
 import org.eclipse.jface.text.source.projection.ProjectionAnnotationModel;
 import org.eclipse.jface.text.source.projection.ProjectionSupport;
 import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IFileEditorInput;
@@ -321,4 +315,13 @@
 			bracketMatcher = null;
 		}
 	}
+	
+	public BaseDescr getDescr(int offset) {
+		try {
+			DRLInfo info = DroolsEclipsePlugin.getDefault().parseResource(this, true, false);
+			return DescrUtil.getDescr(info.getPackageDescr(), offset);
+		} catch (DroolsParserException exc) {
+			return null;
+		}
+	}
 }

Added: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/DescrUtil.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/DescrUtil.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/DescrUtil.java	2007-04-07 00:05:06 UTC (rev 10803)
@@ -0,0 +1,104 @@
+package org.drools.eclipse.editors;
+
+import java.util.Iterator;
+
+import org.drools.lang.descr.AttributeDescr;
+import org.drools.lang.descr.BaseDescr;
+import org.drools.lang.descr.FactTemplateDescr;
+import org.drools.lang.descr.FunctionDescr;
+import org.drools.lang.descr.FunctionImportDescr;
+import org.drools.lang.descr.GlobalDescr;
+import org.drools.lang.descr.ImportDescr;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.lang.descr.RuleDescr;
+
+public final class DescrUtil {
+	
+	private DescrUtil() {
+	}
+
+	public static BaseDescr getDescr(BaseDescr descr, int offset) {
+		if (descr instanceof PackageDescr) {
+			PackageDescr packageDescr = (PackageDescr) descr;
+			System.out.println(packageDescr.getName());
+			// rules
+			for (Iterator iterator = packageDescr.getRules().iterator(); iterator.hasNext(); ) {
+				RuleDescr ruleDescr = (RuleDescr) iterator.next();
+				if (ruleDescr != null) {
+					BaseDescr result = getDescr(ruleDescr, offset);
+					if (result != null) {
+						return result;
+					}
+				}
+			}
+			// imports
+			for (Iterator iterator = packageDescr.getImports().iterator(); iterator.hasNext(); ) {
+				ImportDescr importDescr = (ImportDescr) iterator.next();
+				if (importDescr != null) {
+					BaseDescr result = getDescr(importDescr, offset);
+					if (result != null) {
+						return result;
+					}
+				}
+			}
+			// function imports
+			for (Iterator iterator = packageDescr.getFunctionImports().iterator(); iterator.hasNext(); ) {
+				FunctionImportDescr functionImportDescr = (FunctionImportDescr) iterator.next();
+				if (functionImportDescr != null) {
+					BaseDescr result = getDescr(functionImportDescr, offset);
+					if (result != null) {
+						return result;
+					}
+				}
+			}
+			// functions
+			for (Iterator iterator = packageDescr.getFunctions().iterator(); iterator.hasNext(); ) {
+				FunctionDescr functionDescr = (FunctionDescr) iterator.next();
+				if (functionDescr != null) {
+					BaseDescr result = getDescr(functionDescr, offset);
+					if (result != null) {
+						return result;
+					}
+				}
+			}
+			// attributes
+			for (Iterator iterator = packageDescr.getAttributes().iterator(); iterator.hasNext(); ) {
+				AttributeDescr attributeDescr = (AttributeDescr) iterator.next();
+				if (attributeDescr != null) {
+					BaseDescr result = getDescr(attributeDescr, offset);
+					if (result != null) {
+						return result;
+					}
+				}
+			}
+			// globals
+			for (Iterator iterator = packageDescr.getGlobals().iterator(); iterator.hasNext(); ) {
+				GlobalDescr globalDescr = (GlobalDescr) iterator.next();
+				if (globalDescr != null) {
+					BaseDescr result = getDescr(globalDescr, offset);
+					if (result != null) {
+						return result;
+					}
+				}
+			}
+			// fact templates
+			for (Iterator iterator = packageDescr.getFactTemplates().iterator(); iterator.hasNext(); ) {
+				FactTemplateDescr factTemplDescr = (FactTemplateDescr) iterator.next();
+				if (factTemplDescr != null) {
+					BaseDescr result = getDescr(factTemplDescr, offset);
+					if (result != null) {
+						return result;
+					}
+				}
+			}
+			return null;
+		} else {
+			if (offset < descr.getStartCharacter() || offset > descr.getEndCharacter()) {
+				return null;
+			}
+			// TODO: select subDescr if possible
+			return descr;
+		}
+	}
+	
+}

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/AbstractCompletionProcessor.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/AbstractCompletionProcessor.java	2007-04-06 14:48:55 UTC (rev 10802)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/AbstractCompletionProcessor.java	2007-04-07 00:05:06 UTC (rev 10803)
@@ -64,7 +64,7 @@
     /**
      *  Filter out the proposals whose content does not start with the given prefix.
      */
-    protected void filterProposalsOnPrefix(String prefix, List props) {
+    protected static void filterProposalsOnPrefix(String prefix, List props) {
     	if (prefix != null) {
     		Iterator iterator = props.iterator();
     		while ( iterator.hasNext() ) {

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/DefaultCompletionProcessor.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/DefaultCompletionProcessor.java	2007-04-06 14:48:55 UTC (rev 10802)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/DefaultCompletionProcessor.java	2007-04-07 00:05:06 UTC (rev 10803)
@@ -11,7 +11,6 @@
 import org.drools.eclipse.DroolsEclipsePlugin;
 import org.drools.eclipse.DroolsPluginImages;
 import org.drools.eclipse.editors.AbstractRuleEditor;
-import org.drools.eclipse.editors.DRLRuleEditor;
 import org.drools.util.StringUtils;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.jdt.core.CompletionProposal;
@@ -116,7 +115,7 @@
 						prop.setImage(DroolsPluginImages.getImage(DroolsPluginImages.PACKAGE));
 						list.add(prop);
 					} else if (proposal.getKind() == org.eclipse.jdt.core.CompletionProposal.TYPE_REF) {
-						RuleCompletionProposal prop = new RuleCompletionProposal(classNameStart.length(), className, className + ";"); 
+						RuleCompletionProposal prop = new RuleCompletionProposal(classNameStart.length() - proposal.getReplaceStart(), className, className + ";"); 
 						prop.setImage(DroolsPluginImages.getImage(DroolsPluginImages.CLASS));
 						list.add(prop);
 					}

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/LocationDeterminator.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/LocationDeterminator.java	2007-04-06 14:48:55 UTC (rev 10802)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/completion/LocationDeterminator.java	2007-04-07 00:05:06 UTC (rev 10803)
@@ -101,6 +101,10 @@
     	public Object getProperty(String name) {
     		return properties.get(name);
     	}
+    	
+    	void setType(int type) {
+    		this.type = type;
+    	}
     }
     
 	public static Location getLocationInCondition(String backText) {
@@ -235,7 +239,11 @@
 				if (subDescr == null) {
 					return new Location(LOCATION_BEGIN_OF_CONDITION_EXISTS);
 				}
-				return determineLocationForDescr(subDescr, backText);
+				Location result = determineLocationForDescr(subDescr, backText);
+				if (result.getType() == LOCATION_BEGIN_OF_CONDITION) {
+					result.setType(LOCATION_BEGIN_OF_CONDITION_EXISTS);
+				}
+				return result;
 			}
 			return determineLocationForDescr(descr, backText);
 		} else if (descr instanceof NotDescr) {

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/outline/RuleContentOutlinePage.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/outline/RuleContentOutlinePage.java	2007-04-06 14:48:55 UTC (rev 10802)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/editors/outline/RuleContentOutlinePage.java	2007-04-07 00:05:06 UTC (rev 10803)
@@ -18,7 +18,6 @@
 import org.drools.eclipse.core.ui.DroolsTreeSorter;
 import org.drools.eclipse.core.ui.FilterActionGroup;
 import org.drools.eclipse.editors.AbstractRuleEditor;
-import org.drools.eclipse.editors.DRLRuleEditor;
 import org.drools.lang.descr.AttributeDescr;
 import org.drools.lang.descr.PackageDescr;
 import org.drools.lang.descr.RuleDescr;
@@ -133,8 +132,12 @@
      * @param packageTreeNode the node to populate
      */
     public void populatePackageTreeNode() {
+    	String ruleFileContents = editor.getContent();
+    	populatePackageTreeNode(ruleFileContents);
+    }
+    
+    void populatePackageTreeNode(String ruleFileContents) {
     	DroolsModelBuilder.clearRuleSet(ruleSet);
-    	String ruleFileContents = editor.getContent();
     	Matcher matcher = PACKAGE_PATTERN.matcher(ruleFileContents);
     	String packageName = null;
     	int startChar = 0;
@@ -207,13 +210,17 @@
 		}
     }
     
+    RuleSet getRuleSet() {
+    	return ruleSet;
+    }
+    
     private Map extractAttributes(RuleDescr ruleDescr) {
         Map attributes = null;
         if (ruleDescr != null) {
         	attributes = new HashMap();
         	for (Iterator iterator = ruleDescr.getAttributes().iterator(); iterator.hasNext();) {
         		AttributeDescr attribute = (AttributeDescr) iterator.next();
-        		if (attribute.getName() != null) {
+        		if (attribute != null && attribute.getName() != null) {
         			attributes.put(attribute.getName(), attribute.getValue());
         		}
         	}

Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/util/ProjectClassLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/util/ProjectClassLoader.java	2007-04-06 14:48:55 UTC (rev 10802)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/util/ProjectClassLoader.java	2007-04-07 00:05:06 UTC (rev 10803)
@@ -41,7 +41,7 @@
     private static URL getRawLocationURL(IPath simplePath)
             throws MalformedURLException {
         File file = getRawLocationFile(simplePath);
-        return file.toURL();
+        return file.toURI().toURL();
     }
 
     private static File getRawLocationFile(IPath simplePath) {
@@ -73,7 +73,7 @@
             IPath location = getProjectLocation(project.getProject());
             IPath outputPath = location.append(project.getOutputLocation()
                     .removeFirstSegments(1));
-            pathElements.add(outputPath.toFile().toURL());
+            pathElements.add(outputPath.toFile().toURI().toURL());
             
             // also add classpath of required projects
             String[] names = project.getRequiredProjectNames();




More information about the jboss-svn-commits mailing list