[jboss-svn-commits] JBL Code SVN: r26919 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/guvnor/client/modeldriven and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jun 11 02:15:03 EDT 2009


Author: Rikkola
Date: 2009-06-11 02:15:03 -0400 (Thu, 11 Jun 2009)
New Revision: 26919

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/resources/JarWithSourceFiles.jar
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/client/modeldriven/SuggestionCompletionEngine2Test.java
Log:
GUVNOR-353 : Error while loading a model jar in Guvnor

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	2009-06-11 02:33:45 UTC (rev 26918)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java	2009-06-11 06:15:03 UTC (rev 26919)
@@ -278,7 +278,6 @@
      */
     private void populateModelInfo(final PackageDescr pkgDescr,
                                    final List jars) {
-    	//FIX nheron
         for (final Iterator it = pkgDescr.getImports().iterator(); it.hasNext();) {
             final ImportDescr imp = (ImportDescr) it.next();
             final String className = imp.getTarget();
@@ -471,7 +470,7 @@
             final byte[] buf = new byte[1024];
             int len  ;
             while ((entry = jis.getNextJarEntry()) != null) {
-                if (!entry.isDirectory()) {
+                if (!entry.isDirectory() && entry.getName().endsWith( ".class" )) {
                     final ByteArrayOutputStream out = new ByteArrayOutputStream();
                     while ((len = jis.read(buf)) >= 0) {
                         out.write(buf,

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine2Test.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine2Test.java	2009-06-11 02:33:45 UTC (rev 26918)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine2Test.java	2009-06-11 06:15:03 UTC (rev 26919)
@@ -1,7 +1,12 @@
 package org.drools.guvnor.client.modeldriven;
 
+import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
+import java.util.jar.JarInputStream;
 
 import junit.framework.TestCase;
 
@@ -34,6 +39,43 @@
 
     }
 
+    public void testJarFileWithSourceFiles() {
+        SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
+
+        // Add jar file
+        String header = "package foo \n import org.test.Person \n import org.test.Banana \n ";
+        List jars = new ArrayList();
+        JarInputStream jis = null;
+        SuggestionCompletionEngine suggestionCompletionEngine = null;
+
+        try {
+            jis = new JarInputStream( this.getClass().getResourceAsStream( "/JarWithSourceFiles.jar" ) );
+            jars.add( jis );
+        } catch ( IOException e ) {
+            fail( "Could not load jar" );
+        }
+
+        try {
+            suggestionCompletionEngine = loader.getSuggestionEngine( header,
+                                                                     jars,
+                                                                     new ArrayList() );
+        } catch ( ClassFormatError e ) {
+            fail( "Can not load suggestions " + e );
+        }
+
+        // Check that it throws no error and has class files inside.
+        assertNotNull( jis );
+        assertNotNull( suggestionCompletionEngine );
+        assertEquals( 2,
+                      suggestionCompletionEngine.getFactTypes().length );
+
+        List<String> list = Arrays.asList( suggestionCompletionEngine.getFactTypes() );
+
+        assertTrue( list.contains( "Person" ) );
+        assertTrue( list.contains( "Banana" ) );
+
+    }
+
     private boolean allowedMethod(String methodName) {
         return ("hashCode".equals( methodName ) || "equals".equals( methodName ) || "listIterator".equals( methodName ) || "lastIndexOf".equals( methodName ) || "indexOf".equals( methodName ) || "subList".equals( methodName )
                 || "get".equals( methodName ) || "isEmpty".equals( methodName ) || "containsKey".equals( methodName ) || "values".equals( methodName ) || "entrySet".equals( methodName ) || "containsValue".equals( methodName )

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/JarWithSourceFiles.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/resources/JarWithSourceFiles.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream




More information about the jboss-svn-commits mailing list