[exo-jcr-commits] exo-jcr SVN: r3737 - ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Dec 28 03:07:07 EST 2010


Author: aparfonov
Date: 2010-12-28 03:07:06 -0500 (Tue, 28 Dec 2010)
New Revision: 3737

Modified:
   ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/ExtendedGroovyClassLoader.java
Log:
EXOJCR-1105

Modified: ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/ExtendedGroovyClassLoader.java
===================================================================
--- ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/ExtendedGroovyClassLoader.java	2010-12-28 07:20:40 UTC (rev 3736)
+++ ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/ExtendedGroovyClassLoader.java	2010-12-28 08:07:06 UTC (rev 3737)
@@ -42,7 +42,8 @@
 
 /**
  * @author <a href="andrew00x at gmail.com">Andrey Parfonov</a>
- * @version $Id$
+ * @version $Id: ExtendedGroovyClassLoader.java 3731 2010-12-27 13:35:46Z
+ *          aparfonov $
  */
 @SuppressWarnings({"rawtypes", "unchecked"})
 public class ExtendedGroovyClassLoader extends GroovyClassLoader
@@ -66,13 +67,13 @@
       protected Class createClass(byte[] code, ClassNode classNode)
       {
          ExtendedInnerLoader cl = (ExtendedInnerLoader)getDefiningClassLoader();
-         String classname = classNode.getName();
+         /*String classname = classNode.getName();
          int i = classname.lastIndexOf('.');
          if (i != -1)
          {
             String pkgname = classname.substring(0, i);
             cl.definePackage(pkgname);
-         }
+         }*/
          Class clazz = cl.defineClass(classNode.getName(), code, cunit.getAST().getCodeSource());
          getLoadedClasses().add(clazz);
          if (target == null)
@@ -115,13 +116,13 @@
       protected Class createClass(byte[] code, ClassNode classNode)
       {
          ExtendedInnerLoader cl = (ExtendedInnerLoader)getDefiningClassLoader();
-         String classname = classNode.getName();
+         /*String classname = classNode.getName();
          int i = classname.lastIndexOf('.');
          if (i != -1)
          {
             String pkgname = classname.substring(0, i);
             cl.definePackage(pkgname);
-         }
+         }*/
          Class clazz = cl.defineClass(classNode.getName(), code, cunit.getAST().getCodeSource());
          getLoadedClasses().add(clazz);
          ModuleNode module = classNode.getModule();
@@ -195,8 +196,14 @@
             cunit.setClassgenCallback(collector);
             cunit.compile(phase);
 
-            for (Iterator iter = collector.getLoadedClasses().iterator(); iter.hasNext();)
-               setClassCacheEntry((Class)iter.next());
+            for (Iterator iter = collector.getLoadedClasses().iterator(); iter.hasNext();) {
+               Class clazz = (Class)iter.next();
+               String classname = clazz.getName();
+               int i = classname.lastIndexOf('.');
+               if (i != -1)
+                  definePackage(classname.substring(0, i), null, null, null, null, null, null, null);
+               setClassCacheEntry(clazz);
+            }
 
             target = collector.getTarget();
 
@@ -229,6 +236,10 @@
          for (Iterator iter = collector.getLoadedClasses().iterator(); iter.hasNext();)
          {
             Class clazz = (Class)iter.next();
+            String classname = clazz.getName();
+            int i = classname.lastIndexOf('.');
+            if (i != -1)
+               definePackage(classname.substring(0, i), null, null, null, null, null, null, null);
             setClassCacheEntry(clazz);
          }
          List<Class> compiledClasses = collector.getCompiledClasses();



More information about the exo-jcr-commits mailing list