[jboss-svn-commits] JBL Code SVN: r29316 - in labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler: src/main/java/org/drools/guvnor/server/rules and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Sep 11 22:40:58 EDT 2009
Author: ryanzhang
Date: 2009-09-11 22:40:58 -0400 (Fri, 11 Sep 2009)
New Revision: 29316
Added:
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/test/resources/JarWithSourceFiles.jar
Modified:
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/.classpath
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine2Test.java
Log:
BRMS-197 merge fix from trunk (r26919, r26920)
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/.classpath
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/.classpath 2009-09-11 19:59:09 UTC (rev 29315)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/.classpath 2009-09-12 02:40:58 UTC (rev 29316)
@@ -1,31 +1,34 @@
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
- <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
- <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
- <classpathentry kind="output" path="target/classes"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/antlr/antlr/3.1.1/antlr-3.1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
- <classpathentry kind="src" path="/drools-api"/>
- <classpathentry kind="src" path="/drools-core"/>
- <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/mortbay/jetty/jetty/6.1.15/jetty-6.1.15.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/mortbay/jetty/jetty-embedded/6.1.15/jetty-embedded-6.1.15.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/mortbay/jetty/jetty-util/6.1.15/jetty-util-6.1.15.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.6/joda-time-1.6.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.10/mvel2-2.0.10.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.jar"/>
- <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry excluding="**/*.java" including="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/antlr/antlr/3.1.1/antlr-3.1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
+ <classpathentry kind="src" path="/drools-api"/>
+ <classpathentry kind="src" path="/drools-core"/>
+ <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mortbay/jetty/jetty/6.1.15/jetty-6.1.15.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mortbay/jetty/jetty-embedded/6.1.15/jetty-embedded-6.1.15.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mortbay/jetty/jetty-util/6.1.15/jetty-util-6.1.15.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.6/joda-time-1.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.10/mvel2-2.0.10.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
+ <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+ <classpathentry kind="lib" path="/drools-guvnor/target/drools-guvnor/WEB-INF/lib/mvel2-2.0.10.jar"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java 2009-09-11 19:59:09 UTC (rev 29315)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/main/java/org/drools/guvnor/server/rules/SuggestionCompletionLoader.java 2009-09-12 02:40:58 UTC (rev 29316)
@@ -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();
@@ -384,18 +383,31 @@
List jars) {
Class clazz = null;
try {
- clazz = resolver.resolveType(className);
- } catch (ClassNotFoundException e1) {
- try {
- addJars(jars);
- clazz = resolver.resolveType(className);
- } catch (Exception e) {
- this.errors.add("Class not found: " + className);
- }
+ clazz = resolver.resolveType( className );
+ } catch ( ClassFormatError e1 ) {
+ clazz = loadClass( className,
+ jars,
+ clazz );
+ } catch ( ClassNotFoundException e1 ) {
+ clazz = loadClass( className,
+ jars,
+ clazz );
}
return clazz;
}
+ private Class loadClass(String className,
+ List jars,
+ Class clazz) {
+ try {
+ addJars( jars );
+ clazz = resolver.resolveType( className );
+ } catch ( Exception e ) {
+ this.errors.add( "Class not found: " + className );
+ }
+ return clazz;
+ }
+
private void loadClassFields(final Class clazz,
final String shortTypeName) throws IOException {
if (clazz == null) {
@@ -471,7 +483,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/soa_branches/BRMS-5.0.1/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine2Test.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine2Test.java 2009-09-11 19:59:09 UTC (rev 29315)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine2Test.java 2009-09-12 02:40:58 UTC (rev 29316)
@@ -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/soa_branches/BRMS-5.0.1/drools-compiler/src/test/resources/JarWithSourceFiles.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/test/resources/JarWithSourceFiles.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
More information about the jboss-svn-commits
mailing list