You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2010/01/26 20:17:22 UTC
svn commit: r903374 - in
/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting:
core/dependencyScan/ClassScanVisitor.java
core/dependencyScan/MethodScanVisitor.java
loaders/java/JavaDependencyScanner.java
Author: werpu
Date: Tue Jan 26 19:17:21 2010
New Revision: 903374
URL: http://svn.apache.org/viewvc?rev=903374&view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-53
Modified:
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanVisitor.java
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/MethodScanVisitor.java
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScanner.java
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanVisitor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanVisitor.java?rev=903374&r1=903373&r2=903374&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanVisitor.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/ClassScanVisitor.java Tue Jan 26 19:17:21 2010
@@ -20,18 +20,19 @@
import org.objectweb.asm.*;
-import java.util.*;
+import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
/**
* @author Werner Punz (latest modification by $Author$)
* @version $Revision$ $Date$
*/
-
class ClassScanVisitor implements ClassVisitor {
Set<String> dependencies;
Set<String> whiteList;
- //static final Logger log = Logger.getLogger("ClassScanVisitor");
+ static final Logger log = Logger.getLogger("ClassScanVisitor");
public ClassScanVisitor() {
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/MethodScanVisitor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/MethodScanVisitor.java?rev=903374&r1=903373&r2=903374&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/MethodScanVisitor.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/dependencyScan/MethodScanVisitor.java Tue Jan 26 19:17:21 2010
@@ -24,6 +24,8 @@
import org.objectweb.asm.Label;
import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
/**
* @author Werner Punz (latest modification by $Author$)
@@ -32,6 +34,9 @@
class MethodScanVisitor implements MethodVisitor {
+ // static final Logger log = Logger.getLogger("ClassScanVisitor");
+
+
final Set<String> dependencies;
final Set<String> whiteList;
@@ -75,19 +80,27 @@
public void visitTypeInsn(int i, String castType) {
//cast
- //log.log(Level.INFO, "TypeInsn: {0} ", new String[]{castType});
+ // log.log(Level.INFO, "TypeInsn: {0} ", new String[]{castType});
ClassScanUtils.logParmList(dependencies, whiteList, castType);
}
public void visitFieldInsn(int i, String s, String s1, String s2) {
- //log.log(Level.INFO, "visitFieldInsn {0} {1} {2}", new Object[]{s, s1, s2});
+ // log.log(Level.INFO, "visitFieldInsn {0} {1} {2}", new Object[]{s, s1, s2});
//ClassScanUtils.logParmList(dependencies, castType);
- ClassScanUtils.logParmList(dependencies, whiteList, s2);
+ //we have to deal with static imports as special case of field insertions
+ if(s1 != null && s1.length() > 6 && s1.startsWith("class$")) {
+ //special fallback for groovy static imports which are added as fields
+ s1 = "L"+s1.substring(6).replaceAll("\\$",".")+";";
+ ClassScanUtils.logParmList(dependencies, whiteList,s1, s2);
+ } else {
+ ClassScanUtils.logParmList(dependencies, whiteList, s2);
+ }
}
public void visitMethodInsn(int i, String s, String s1, String s2) {
- //log.log(Level.INFO, "visitMethodIsn {0} {1} {2}", new Object[]{s, s1, s2});
- ClassScanUtils.logParmList(dependencies, whiteList, s2);
+
+ // log.log(Level.INFO, "visitMethodIsn {0} {1} {2}", new Object[]{s, s1, s2});
+ ClassScanUtils.logParmList(dependencies, whiteList,"L"+s+";", s2);
}
public void visitJumpInsn(int i, Label label) {
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScanner.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScanner.java?rev=903374&r1=903373&r2=903374&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScanner.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/loaders/java/JavaDependencyScanner.java Tue Jan 26 19:17:21 2010
@@ -85,15 +85,13 @@
}
private final void runScan(final Set<String> possibleDynamicClasses, final ClassLoader loader, String dynamicClass) {
-
- Set<String> referrers = _dependecyScanner.fetchDependencies(loader, dynamicClass, possibleDynamicClasses);
+ Set<String> referencedClasses = _dependecyScanner.fetchDependencies(loader, dynamicClass, possibleDynamicClasses);
//we make it in two ops because if we do the self dependency
//removal in the scanner itself the code should not break
- referrers.remove(dynamicClass);
- if (!referrers.isEmpty()) {
- WeavingContext.getFileChangedDaemon().getDependencyMap().addDependencies(dynamicClass, referrers);
+ referencedClasses.remove(dynamicClass);
+ if (!referencedClasses.isEmpty()) {
+ WeavingContext.getFileChangedDaemon().getDependencyMap().addDependencies(dynamicClass, referencedClasses);
}
-
}