[jboss-svn-commits] JBL Code SVN: r23604 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/guvnor/server/rules and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 28 06:49:10 EDT 2008


Author: michael.neale at jboss.com
Date: 2008-10-28 06:49:10 -0400 (Tue, 28 Oct 2008)
New Revision: 23604

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/SuggestionCompletionLoaderTest.java
Log:
JBRULES-1630 import .* not working correctly

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java	2008-10-28 03:41:49 UTC (rev 23603)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java	2008-10-28 10:49:10 UTC (rev 23604)
@@ -61,7 +61,7 @@
 
     private final MapBackedClassLoader              loader;
 
-    protected List                                  errors  = new ArrayList();
+    protected List<String>                                  errors  = new ArrayList<String>();
 
     // iterating over the import list
     final ClassTypeResolver                         resolver;
@@ -285,20 +285,22 @@
         for ( final Iterator it = pkgDescr.getImports().iterator(); it.hasNext(); ) {
             final ImportDescr imp = (ImportDescr) it.next();
             final String className = imp.getTarget();
-            resolver.addImport( className );
-
-            final Class clazz = loadClass( className, jars );
-
-            if ( clazz != null ) {
-                try {
-                    final String shortTypeName = getShortNameOfClass( clazz.getName() );
-                    loadClassFields( clazz, shortTypeName );
-                    this.builder.addFactType( shortTypeName );
-                } catch ( final IOException e ) {
-                    this.errors.add( "Error while inspecting the class: " + className + ". The error was: " + e.getMessage() );
-                } catch (NoClassDefFoundError e) {
-                	this.errors.add( "Unable to find the class: " + e.getMessage().replace('/', '.') + " which is required by: " + className + ". You may need to add more classes to the model.");
-                }
+            if (className.endsWith("*")) {
+            	this.errors.add("Unable to introspect model for wild card imports (" + className + "). Please explicitly import each fact type you require.");
+            } else {
+	            resolver.addImport( className );
+	            final Class clazz = loadClass( className, jars );
+	            if ( clazz != null ) {
+	                try {
+	                    final String shortTypeName = getShortNameOfClass( clazz.getName() );
+	                    loadClassFields( clazz, shortTypeName );
+	                    this.builder.addFactType( shortTypeName );
+	                } catch ( final IOException e ) {
+	                    this.errors.add( "Error while inspecting the class: " + className + ". The error was: " + e.getMessage() );
+	                } catch (NoClassDefFoundError e) {
+	                	this.errors.add( "Unable to find the class: " + e.getMessage().replace('/', '.') + " which is required by: " + className + ". You may need to add more classes to the model.");
+	                }
+	            }
             }
         }
 
@@ -525,7 +527,7 @@
     /**
      * Returns a list of String errors.
      */
-    public List getErrors() {
+    public List<String> getErrors() {
         return this.errors;
     }
 

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/SuggestionCompletionLoaderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/SuggestionCompletionLoaderTest.java	2008-10-28 03:41:49 UTC (rev 23603)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/server/rules/SuggestionCompletionLoaderTest.java	2008-10-28 10:49:10 UTC (rev 23604)
@@ -17,6 +17,18 @@
     }
 
 
+    public void testSuggestionCompLoaderWildcards() throws Exception {
+        SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
+        loader.getSuggestionEngine( "package foo \n import org.drools.*", new ArrayList(), new ArrayList() );
+        assertEquals(1, loader.getErrors().size());
+        String err = loader.getErrors().get(0);
+        assertTrue(err.startsWith("Unable"));
+
+
+    }
+
+
+
     public void testLoadDifferentFieldTypes() throws Exception {
         SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
         SuggestionCompletionEngine eng = loader.getSuggestionEngine( "package foo \n import org.drools.guvnor.server.rules.SomeFact", new ArrayList(), new ArrayList() );




More information about the jboss-svn-commits mailing list