[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