diff --git a/.idea/libraries/asm4.xml b/.idea/libraries/asm4.xml new file mode 100644 index 000000000000..c6676c49b88e --- /dev/null +++ b/.idea/libraries/asm4.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/build/scripts/libLicenses.gant b/build/scripts/libLicenses.gant index e2b5afc23595..d03bc5586bc6 100644 --- a/build/scripts/libLicenses.gant +++ b/build/scripts/libLicenses.gant @@ -153,6 +153,7 @@ binding.setVariable("generateLicensesTable", {String filePath, Set usedM libraryLicense(name: "Alloy L&F", libraryName: "alloy.jar", version: "1.4.4", license: "link (company license)", url: "http://www.incors.com/lookandfeel/", licenseUrl: "http://lookandfeel.incors.com/display_licence.php?back=purchase.php&selMenu=Purchase") libraryLicense(name: "Ant", version: "1.7", license: "Apache 2.0", url: "http://ant.apache.org/", licenseUrl: "http://ant.apache.org/license.html") libraryLicense(name: "ASM Bytecode Manipulation Framework", libraryName: "asm", version: "3.3", license: "BSD", url: "http://asm.objectweb.org/", licenseUrl: "http://asm.objectweb.org/license.html") +libraryLicense(name: "ASM Bytecode Manipulation Framework", libraryName: "asm4", version: "4.0", license: "BSD", url: "http://asm.objectweb.org/", licenseUrl: "http://asm.objectweb.org/license.html") libraryLicense(name: "Axis", libraryName: "axis-1.4", version: "1.4", license: "Apache 2.0", url: "http://ws.apache.org/axis/", licenseUrl: "http://svn.jetbrains.org/idea/Trunk/bundled/WebServices/resources/lib/axis-1.4.0/axis.LICENSE") libraryLicense(name: "CGLib", libraryName: "CGLIB", version: "2.2.2", license: "Apache", url: "http://cglib.sourceforge.net/", licenseUrl: "http://www.apache.org/foundation/licence-FAQ.html") libraryLicense(name: "classworlds", libraryName: "classworlds-1.1.jar", version: "1.1", license: "codehaus", url: "http://classworlds.codehaus.org/", licenseUrl: "http://classworlds.codehaus.org/license.html") diff --git a/java/compiler/forms-compiler/forms-compiler.iml b/java/compiler/forms-compiler/forms-compiler.iml index 39ba1446f119..1a851bf7859f 100644 --- a/java/compiler/forms-compiler/forms-compiler.iml +++ b/java/compiler/forms-compiler/forms-compiler.iml @@ -10,7 +10,7 @@ - + diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/AsmCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/AsmCodeGenerator.java index b838594d8f6f..473bb38d6f5f 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/AsmCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/AsmCodeGenerator.java @@ -19,11 +19,10 @@ import com.intellij.compiler.instrumentation.InstrumentationClassFinder; import com.intellij.uiDesigner.UIFormXmlConstants; import com.intellij.uiDesigner.lw.*; import com.intellij.uiDesigner.shared.BorderType; -import org.objectweb.asm.*; -import org.objectweb.asm.Label; -import org.objectweb.asm.commons.EmptyVisitor; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.*; +import org.jetbrains.asm4.Label; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; import javax.swing.*; import javax.swing.border.Border; @@ -229,7 +228,7 @@ public class AsmCodeGenerator { return Type.getType("L" + className.replace('.', '/') + ";"); } - class FormClassVisitor extends ClassAdapter { + class FormClassVisitor extends ClassVisitor { private String myClassName; private String mySuperName; private final Map myFieldDescMap = new HashMap(); @@ -239,7 +238,7 @@ public class AsmCodeGenerator { private final boolean myExplicitSetupCall; public FormClassVisitor(final ClassVisitor cv, final boolean explicitSetupCall) { - super(cv); + super(Opcodes.ASM4, cv); myExplicitSetupCall = explicitSetupCall; } @@ -893,7 +892,7 @@ public class AsmCodeGenerator { } } - private class FormConstructorVisitor extends MethodAdapter { + private class FormConstructorVisitor extends MethodVisitor { private final String myClassName; private final String mySuperName; private boolean callsSelfConstructor = false; @@ -901,7 +900,7 @@ public class AsmCodeGenerator { private boolean mySuperCalled = false; public FormConstructorVisitor(final MethodVisitor mv, final String className, final String superName) { - super(mv); + super(Opcodes.ASM4, mv); myClassName = className; mySuperName = superName; } @@ -954,11 +953,11 @@ public class AsmCodeGenerator { } } - private static class FirstPassClassVisitor extends ClassAdapter { + private static class FirstPassClassVisitor extends ClassVisitor { private boolean myExplicitSetupCall = false; public FirstPassClassVisitor() { - super(new EmptyVisitor()); + super(Opcodes.ASM4, new ClassVisitor(Opcodes.ASM4){}); } public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { @@ -972,9 +971,9 @@ public class AsmCodeGenerator { return myExplicitSetupCall; } - private class FirstPassConstructorVisitor extends MethodAdapter { + private class FirstPassConstructorVisitor extends MethodVisitor { public FirstPassConstructorVisitor() { - super(new EmptyVisitor()); + super(Opcodes.ASM4, new MethodVisitor(Opcodes.ASM4){}); } public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc) { diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/CardLayoutCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/CardLayoutCodeGenerator.java index 8db3a8b89eca..86b6e42c09b2 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/CardLayoutCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/CardLayoutCodeGenerator.java @@ -17,9 +17,9 @@ package com.intellij.uiDesigner.compiler; import com.intellij.uiDesigner.UIFormXmlConstants; import com.intellij.uiDesigner.lw.LwComponent; -import org.objectweb.asm.Type; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; import java.awt.*; diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ColorPropertyCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ColorPropertyCodeGenerator.java index 542587fb862b..8443020bfc37 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ColorPropertyCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ColorPropertyCodeGenerator.java @@ -16,9 +16,9 @@ package com.intellij.uiDesigner.compiler; import com.intellij.uiDesigner.lw.ColorDescriptor; -import org.objectweb.asm.Type; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; import java.awt.*; diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/DimensionPropertyCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/DimensionPropertyCodeGenerator.java index d4cc81d36772..7a0fd4f9ec86 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/DimensionPropertyCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/DimensionPropertyCodeGenerator.java @@ -15,9 +15,9 @@ */ package com.intellij.uiDesigner.compiler; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; -import org.objectweb.asm.Type; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; import java.awt.*; diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/EnumPropertyCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/EnumPropertyCodeGenerator.java index e1900b4cc490..720d4c01582b 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/EnumPropertyCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/EnumPropertyCodeGenerator.java @@ -16,8 +16,8 @@ package com.intellij.uiDesigner.compiler; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.Type; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; /** * @author yole diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/FlowLayoutCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/FlowLayoutCodeGenerator.java index f5e117610a7e..34a41d89eb22 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/FlowLayoutCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/FlowLayoutCodeGenerator.java @@ -18,11 +18,11 @@ package com.intellij.uiDesigner.compiler; import com.intellij.uiDesigner.lw.LwComponent; import com.intellij.uiDesigner.lw.LwContainer; -import org.objectweb.asm.Type; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; -import java.awt.FlowLayout; +import java.awt.*; /** * @author yole diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/FontPropertyCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/FontPropertyCodeGenerator.java index 2df623db060d..f15a8d4c314f 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/FontPropertyCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/FontPropertyCodeGenerator.java @@ -19,9 +19,9 @@ import com.intellij.compiler.instrumentation.InstrumentationClassFinder; import com.intellij.uiDesigner.lw.FontDescriptor; import com.intellij.uiDesigner.lw.LwComponent; import com.intellij.uiDesigner.lw.LwIntrospectedProperty; -import org.objectweb.asm.Type; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; import java.awt.*; diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/FormLayoutCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/FormLayoutCodeGenerator.java index 4eb9b2324952..a30061f0c784 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/FormLayoutCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/FormLayoutCodeGenerator.java @@ -16,17 +16,17 @@ package com.intellij.uiDesigner.compiler; +import com.intellij.uiDesigner.core.GridConstraints; import com.intellij.uiDesigner.lw.LwComponent; import com.intellij.uiDesigner.lw.LwContainer; -import com.intellij.uiDesigner.core.GridConstraints; -import com.jgoodies.forms.layout.FormLayout; import com.jgoodies.forms.layout.CellConstraints; -import org.objectweb.asm.Type; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import com.jgoodies.forms.layout.FormLayout; +import org.jetbrains.asm4.Opcodes; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; -import java.awt.Insets; +import java.awt.*; /** * @author yole diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/GridBagLayoutCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/GridBagLayoutCodeGenerator.java index ad01a3713f93..711d2c44726e 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/GridBagLayoutCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/GridBagLayoutCodeGenerator.java @@ -18,9 +18,9 @@ package com.intellij.uiDesigner.compiler; import com.intellij.uiDesigner.core.Spacer; import com.intellij.uiDesigner.lw.LwComponent; import com.intellij.uiDesigner.lw.LwContainer; -import org.objectweb.asm.Type; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; import javax.swing.*; import java.awt.*; diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/GridLayoutCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/GridLayoutCodeGenerator.java index 1f6d3d0c7d33..954f166bb42e 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/GridLayoutCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/GridLayoutCodeGenerator.java @@ -15,13 +15,13 @@ */ package com.intellij.uiDesigner.compiler; -import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.GridConstraints; +import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.lw.LwComponent; import com.intellij.uiDesigner.lw.LwContainer; -import org.objectweb.asm.Type; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; /** * @author yole diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/IconPropertyCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/IconPropertyCodeGenerator.java index da722ddc9e4f..c435704a0144 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/IconPropertyCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/IconPropertyCodeGenerator.java @@ -15,10 +15,10 @@ */ package com.intellij.uiDesigner.compiler; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; -import org.objectweb.asm.Type; import com.intellij.uiDesigner.lw.IconDescriptor; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; import javax.swing.*; diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/InsetsPropertyCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/InsetsPropertyCodeGenerator.java index 3ecabe8118fe..fb516ca430b3 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/InsetsPropertyCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/InsetsPropertyCodeGenerator.java @@ -15,9 +15,9 @@ */ package com.intellij.uiDesigner.compiler; -import org.objectweb.asm.Type; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; import java.awt.*; diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/LayoutCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/LayoutCodeGenerator.java index a89141c27d4c..f5d2594c3b99 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/LayoutCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/LayoutCodeGenerator.java @@ -17,10 +17,10 @@ package com.intellij.uiDesigner.compiler; import com.intellij.uiDesigner.lw.LwComponent; import com.intellij.uiDesigner.lw.LwContainer; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.Type; +import org.jetbrains.asm4.Opcodes; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; import java.awt.*; diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ListModelPropertyCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ListModelPropertyCodeGenerator.java index c8b7583a8877..93ed130f6fbb 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ListModelPropertyCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ListModelPropertyCodeGenerator.java @@ -16,9 +16,9 @@ package com.intellij.uiDesigner.compiler; -import org.objectweb.asm.Type; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; /** * @author yole diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/PropertyCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/PropertyCodeGenerator.java index 1f423a704df3..b3c1aeb94d87 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/PropertyCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/PropertyCodeGenerator.java @@ -18,7 +18,7 @@ package com.intellij.uiDesigner.compiler; import com.intellij.compiler.instrumentation.InstrumentationClassFinder; import com.intellij.uiDesigner.lw.LwComponent; import com.intellij.uiDesigner.lw.LwIntrospectedProperty; -import org.objectweb.asm.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.GeneratorAdapter; import java.io.IOException; diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/RectanglePropertyCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/RectanglePropertyCodeGenerator.java index be71f100ea27..fb86b0833ddf 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/RectanglePropertyCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/RectanglePropertyCodeGenerator.java @@ -15,9 +15,9 @@ */ package com.intellij.uiDesigner.compiler; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; -import org.objectweb.asm.Type; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; import java.awt.*; diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ScrollPaneLayoutCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ScrollPaneLayoutCodeGenerator.java index 5608c7a53ec3..68725007cf43 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ScrollPaneLayoutCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ScrollPaneLayoutCodeGenerator.java @@ -17,9 +17,9 @@ package com.intellij.uiDesigner.compiler; import com.intellij.uiDesigner.lw.LwComponent; -import org.objectweb.asm.Type; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; import javax.swing.*; diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/SimpleLayoutCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/SimpleLayoutCodeGenerator.java index c1456e668b91..5836b6ca29d7 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/SimpleLayoutCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/SimpleLayoutCodeGenerator.java @@ -18,9 +18,9 @@ package com.intellij.uiDesigner.compiler; import com.intellij.uiDesigner.lw.LwComponent; import com.intellij.uiDesigner.lw.LwContainer; -import org.objectweb.asm.Type; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; /** * Layout code generator shared between BorderLayout and CardLayout. diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/SplitPaneLayoutCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/SplitPaneLayoutCodeGenerator.java index f0e19a64b696..28533f4776b4 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/SplitPaneLayoutCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/SplitPaneLayoutCodeGenerator.java @@ -17,9 +17,9 @@ package com.intellij.uiDesigner.compiler; import com.intellij.uiDesigner.lw.LwComponent; import com.intellij.uiDesigner.lw.LwSplitPane; -import org.objectweb.asm.Type; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; import javax.swing.*; diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/StringPropertyCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/StringPropertyCodeGenerator.java index 992774e52551..4438fd0c4f76 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/StringPropertyCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/StringPropertyCodeGenerator.java @@ -20,12 +20,12 @@ import com.intellij.uiDesigner.core.SupportCode; import com.intellij.uiDesigner.lw.LwComponent; import com.intellij.uiDesigner.lw.LwIntrospectedProperty; import com.intellij.uiDesigner.lw.StringDescriptor; -import org.objectweb.asm.Label; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.Type; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.Label; +import org.jetbrains.asm4.MethodVisitor; +import org.jetbrains.asm4.Opcodes; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; import javax.swing.*; import java.io.IOException; diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/TabbedPaneLayoutCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/TabbedPaneLayoutCodeGenerator.java index 59be36dca5fe..ee867bf21a56 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/TabbedPaneLayoutCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/TabbedPaneLayoutCodeGenerator.java @@ -17,9 +17,9 @@ package com.intellij.uiDesigner.compiler; import com.intellij.uiDesigner.lw.LwComponent; import com.intellij.uiDesigner.lw.LwTabbedPane; -import org.objectweb.asm.Type; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.Type; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; import javax.swing.*; diff --git a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ToolBarLayoutCodeGenerator.java b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ToolBarLayoutCodeGenerator.java index 239cec71eba7..b90a778cbed9 100644 --- a/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ToolBarLayoutCodeGenerator.java +++ b/java/compiler/forms-compiler/src/com/intellij/uiDesigner/compiler/ToolBarLayoutCodeGenerator.java @@ -17,8 +17,8 @@ package com.intellij.uiDesigner.compiler; import com.intellij.uiDesigner.lw.LwComponent; -import org.objectweb.asm.commons.GeneratorAdapter; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.commons.GeneratorAdapter; +import org.jetbrains.asm4.commons.Method; /** * @author yole diff --git a/java/compiler/impl/compiler-impl.iml b/java/compiler/impl/compiler-impl.iml index d9d39953f177..57d6c410b0b2 100644 --- a/java/compiler/impl/compiler-impl.iml +++ b/java/compiler/impl/compiler-impl.iml @@ -15,7 +15,7 @@ - + diff --git a/java/compiler/impl/src/com/intellij/compiler/CompileServerManager.java b/java/compiler/impl/src/com/intellij/compiler/CompileServerManager.java index 23078ac750b3..d43279eed9c6 100644 --- a/java/compiler/impl/src/com/intellij/compiler/CompileServerManager.java +++ b/java/compiler/impl/src/com/intellij/compiler/CompileServerManager.java @@ -291,7 +291,7 @@ public class CompileServerManager implements ApplicationComponent{ if (openProjects.length > 0) { final List futures = new ArrayList(); for (final Project project : openProjects) { - if (project.isDefault()) { + if (project.isDefault() || project.isDisposed()) { continue; } final CompilerWorkspaceConfiguration config = CompilerWorkspaceConfiguration.getInstance(project); diff --git a/java/compiler/impl/src/com/intellij/compiler/PsiClassWriter.java b/java/compiler/impl/src/com/intellij/compiler/PsiClassWriter.java index af32fffb67bb..61d1e05e6663 100644 --- a/java/compiler/impl/src/com/intellij/compiler/PsiClassWriter.java +++ b/java/compiler/impl/src/com/intellij/compiler/PsiClassWriter.java @@ -27,7 +27,7 @@ import com.intellij.psi.PsiClass; import com.intellij.psi.PsiManager; import com.intellij.psi.util.ClassUtil; import org.jetbrains.annotations.NonNls; -import org.objectweb.asm.ClassWriter; +import org.jetbrains.asm4.ClassWriter; /** * @author yole diff --git a/java/compiler/impl/src/com/intellij/compiler/ant/BuildPropertiesImpl.java b/java/compiler/impl/src/com/intellij/compiler/ant/BuildPropertiesImpl.java index 5b77864f6e1a..ce38e67262f3 100644 --- a/java/compiler/impl/src/com/intellij/compiler/ant/BuildPropertiesImpl.java +++ b/java/compiler/impl/src/com/intellij/compiler/ant/BuildPropertiesImpl.java @@ -108,8 +108,7 @@ public class BuildPropertiesImpl extends BuildProperties { Path javac2 = new Path(PROPERTY_JAVAC2_CLASSPATH_ID); javac2.add(new PathElement(propertyRelativePath(PROPERTY_JAVAC2_HOME, "javac2.jar"))); javac2.add(new PathElement(propertyRelativePath(PROPERTY_JAVAC2_HOME, "jdom.jar"))); - javac2.add(new PathElement(propertyRelativePath(PROPERTY_JAVAC2_HOME, "asm.jar"))); - javac2.add(new PathElement(propertyRelativePath(PROPERTY_JAVAC2_HOME, "asm-commons.jar"))); + javac2.add(new PathElement(propertyRelativePath(PROPERTY_JAVAC2_HOME, "asm4-all.jar"))); javac2.add(new PathElement(propertyRelativePath(PROPERTY_JAVAC2_HOME, "jgoodies-forms.jar"))); add(javac2); //noinspection HardCodedStringLiteral diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/javaCompiler/BackendCompilerWrapper.java b/java/compiler/impl/src/com/intellij/compiler/impl/javaCompiler/BackendCompilerWrapper.java index 6ada45f6853f..213f5736c2ab 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/javaCompiler/BackendCompilerWrapper.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/javaCompiler/BackendCompilerWrapper.java @@ -64,8 +64,8 @@ import gnu.trove.THashMap; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassWriter; +import org.jetbrains.asm4.ClassReader; +import org.jetbrains.asm4.ClassWriter; import java.io.File; import java.io.IOException; diff --git a/java/compiler/instrumentation-util/instrumentation-util.iml b/java/compiler/instrumentation-util/instrumentation-util.iml index 1b09002e2fff..60d62d325d23 100644 --- a/java/compiler/instrumentation-util/instrumentation-util.iml +++ b/java/compiler/instrumentation-util/instrumentation-util.iml @@ -7,7 +7,7 @@ - + diff --git a/java/compiler/instrumentation-util/src/com/intellij/compiler/instrumentation/InstrumentationClassFinder.java b/java/compiler/instrumentation-util/src/com/intellij/compiler/instrumentation/InstrumentationClassFinder.java index de009b37c9bf..78898be2bb23 100644 --- a/java/compiler/instrumentation-util/src/com/intellij/compiler/instrumentation/InstrumentationClassFinder.java +++ b/java/compiler/instrumentation-util/src/com/intellij/compiler/instrumentation/InstrumentationClassFinder.java @@ -1,9 +1,9 @@ package com.intellij.compiler.instrumentation; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.commons.EmptyVisitor; +import org.jetbrains.asm4.ClassReader; +import org.jetbrains.asm4.ClassVisitor; +import org.jetbrains.asm4.MethodVisitor; +import org.jetbrains.asm4.Opcodes; import sun.misc.Resource; import java.io.*; @@ -331,13 +331,17 @@ public class InstrumentationClassFinder { } } - private static class V extends EmptyVisitor { + private static class V extends ClassVisitor { public String mySuperclassName = null; public String[] myInterfaces = null; public String myName = null; public int myModifiers; private final List myMethods = new ArrayList(); + private V() { + super(Opcodes.ASM4); + } + public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { if ((access & Opcodes.ACC_PUBLIC) > 0) { myMethods.add(new PseudoMethod(access, name, desc)); diff --git a/java/compiler/instrumentation-util/src/com/intellij/compiler/instrumentation/InstrumenterClassWriter.java b/java/compiler/instrumentation-util/src/com/intellij/compiler/instrumentation/InstrumenterClassWriter.java index ffdf058a2fbf..b2f93c5e4603 100644 --- a/java/compiler/instrumentation-util/src/com/intellij/compiler/instrumentation/InstrumenterClassWriter.java +++ b/java/compiler/instrumentation-util/src/com/intellij/compiler/instrumentation/InstrumenterClassWriter.java @@ -1,6 +1,6 @@ package com.intellij.compiler.instrumentation; -import org.objectweb.asm.ClassWriter; +import org.jetbrains.asm4.ClassWriter; /** * @author Eugene Zhuravlev diff --git a/java/compiler/instrumentation-util/src/com/intellij/compiler/notNullVerification/NotNullVerifyingInstrumenter.java b/java/compiler/instrumentation-util/src/com/intellij/compiler/notNullVerification/NotNullVerifyingInstrumenter.java index 02abbc67e238..45dd56aa60b1 100644 --- a/java/compiler/instrumentation-util/src/com/intellij/compiler/notNullVerification/NotNullVerifyingInstrumenter.java +++ b/java/compiler/instrumentation-util/src/com/intellij/compiler/notNullVerification/NotNullVerifyingInstrumenter.java @@ -15,7 +15,7 @@ */ package com.intellij.compiler.notNullVerification; -import org.objectweb.asm.*; +import org.jetbrains.asm4.*; import java.util.ArrayList; @@ -23,7 +23,7 @@ import java.util.ArrayList; * @author ven * @noinspection HardCodedStringLiteral */ -public class NotNullVerifyingInstrumenter extends ClassAdapter implements Opcodes { +public class NotNullVerifyingInstrumenter extends ClassVisitor implements Opcodes { private boolean myIsModification = false; private String myClassName; public static final String NOT_NULL = "org/jetbrains/annotations/NotNull"; @@ -33,7 +33,7 @@ public class NotNullVerifyingInstrumenter extends ClassAdapter implements Opcode private static final String CONSTRUCTOR_NAME = ""; public NotNullVerifyingInstrumenter(final ClassVisitor classVisitor) { - super(classVisitor); + super(Opcodes.ASM4, classVisitor); } public boolean isModification() { @@ -63,7 +63,7 @@ public class NotNullVerifyingInstrumenter extends ClassAdapter implements Opcode desc, signature, exceptions); - return new MethodAdapter(v) { + return new MethodVisitor(Opcodes.ASM4, v) { private final ArrayList myNotNullParams = new ArrayList(); private int mySyntheticCount = 0; diff --git a/java/compiler/javac2/javac2.iml b/java/compiler/javac2/javac2.iml index a8680af11500..bdf5f5d4cd98 100644 --- a/java/compiler/javac2/javac2.iml +++ b/java/compiler/javac2/javac2.iml @@ -10,7 +10,7 @@ - + diff --git a/java/compiler/javac2/src/com/intellij/ant/InstrumentationUtil.java b/java/compiler/javac2/src/com/intellij/ant/InstrumentationUtil.java index eb423ae59820..7497c5b5a327 100644 --- a/java/compiler/javac2/src/com/intellij/ant/InstrumentationUtil.java +++ b/java/compiler/javac2/src/com/intellij/ant/InstrumentationUtil.java @@ -22,10 +22,10 @@ import com.intellij.uiDesigner.compiler.*; import com.intellij.uiDesigner.lw.CompiledClassPropertiesProvider; import com.intellij.uiDesigner.lw.LwRootContainer; import org.apache.tools.ant.Project; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.commons.EmptyVisitor; +import org.jetbrains.asm4.ClassReader; +import org.jetbrains.asm4.ClassVisitor; +import org.jetbrains.asm4.ClassWriter; +import org.jetbrains.asm4.Opcodes; import java.io.*; import java.net.MalformedURLException; @@ -53,7 +53,7 @@ public class InstrumentationUtil { public static int getClassFileVersion(ClassReader reader) { final int[] classfileVersion = new int[1]; - reader.accept(new EmptyVisitor() { + reader.accept(new ClassVisitor(Opcodes.ASM4) { public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { classfileVersion[0] = version; } diff --git a/java/compiler/javac2/src/com/intellij/ant/Javac2.java b/java/compiler/javac2/src/com/intellij/ant/Javac2.java index 5c3035534b44..a56640e0e1ad 100644 --- a/java/compiler/javac2/src/com/intellij/ant/Javac2.java +++ b/java/compiler/javac2/src/com/intellij/ant/Javac2.java @@ -25,10 +25,10 @@ import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.Javac; import org.apache.tools.ant.types.Path; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.commons.EmptyVisitor; +import org.jetbrains.asm4.ClassReader; +import org.jetbrains.asm4.ClassVisitor; +import org.jetbrains.asm4.ClassWriter; +import org.jetbrains.asm4.Opcodes; import java.io.*; import java.net.MalformedURLException; @@ -440,7 +440,7 @@ public class Javac2 extends Javac { private static int getClassFileVersion(ClassReader reader) { final int[] classfileVersion = new int[1]; - reader.accept(new EmptyVisitor() { + reader.accept(new ClassVisitor(Opcodes.ASM4) { public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { classfileVersion[0] = version; } diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java index 68783d708616..e732b5591b1f 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java @@ -770,6 +770,7 @@ public abstract class DebugProcessImpl implements DebugProcess { finally { myVirtualMachineProxy = null; myPositionManager = null; + myReturnValueWatcher = null; myState.set(STATE_DETACHED); try { myDebugProcessDispatcher.getMulticaster().processDetached(this, closedByUser); diff --git a/java/java-psi-impl/java-psi-impl.iml b/java/java-psi-impl/java-psi-impl.iml index ccd2d51410f9..0bceb7e7613e 100644 --- a/java/java-psi-impl/java-psi-impl.iml +++ b/java/java-psi-impl/java-psi-impl.iml @@ -11,7 +11,7 @@ - + diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/DefaultClsStubBuilderFactory.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/DefaultClsStubBuilderFactory.java index d7164e97d879..d2e031a64e9c 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/DefaultClsStubBuilderFactory.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/DefaultClsStubBuilderFactory.java @@ -24,7 +24,7 @@ import com.intellij.psi.impl.java.stubs.impl.PsiJavaFileStubImpl; import com.intellij.psi.stubs.PsiFileStub; import com.intellij.util.cls.ClsFormatException; import org.jetbrains.annotations.Nullable; -import org.objectweb.asm.ClassReader; +import org.jetbrains.asm4.ClassReader; import java.io.IOException; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/InnerClassSourceStrategy.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/InnerClassSourceStrategy.java index 89abfdff1b75..936269905957 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/InnerClassSourceStrategy.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/InnerClassSourceStrategy.java @@ -20,7 +20,7 @@ package com.intellij.psi.impl.compiled; import org.jetbrains.annotations.Nullable; -import org.objectweb.asm.ClassReader; +import org.jetbrains.asm4.ClassReader; public interface InnerClassSourceStrategy { @Nullable diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java index 2d86e1b3b576..8ba604ac0ba6 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/compiled/StubBuildingVisitor.java @@ -38,8 +38,7 @@ import com.intellij.util.io.StringRef; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.objectweb.asm.*; -import org.objectweb.asm.commons.EmptyVisitor; +import org.jetbrains.asm4.*; import java.text.CharacterIterator; import java.text.StringCharacterIterator; @@ -48,7 +47,7 @@ import java.util.Collections; import java.util.List; import java.util.regex.Pattern; -public class StubBuildingVisitor implements ClassVisitor { +public class StubBuildingVisitor extends ClassVisitor { private static final Pattern REGEX_PATTERN = Pattern.compile("(?<=[^\\$])\\${1}(?=[^\\$])"); public static final String DOUBLE_POSITIVE_INF = "1.0 / 0.0"; @@ -71,6 +70,7 @@ public class StubBuildingVisitor implements ClassVisitor { private JavaLexer myLexer; public StubBuildingVisitor(final T classSource, InnerClassSourceStrategy innersStrategy, final StubElement parent, final int access) { + super(Opcodes.ASM4); mySource = classSource; myInnersStrategy = innersStrategy; myParent = parent; @@ -316,7 +316,7 @@ public class StubBuildingVisitor implements ClassVisitor { final byte flags = PsiFieldStubImpl.packFlags((access & Opcodes.ACC_ENUM) != 0, (access & Opcodes.ACC_DEPRECATED) != 0, false); PsiFieldStub stub = new PsiFieldStubImpl(myResult, name, fieldType(desc, signature), constToString(value), flags); final PsiModifierListStub modList = new PsiModifierListStubImpl(stub, packFieldFlags(access)); - return new AnnotationCollectingVisitor(stub, modList); + return new AnnotationCollectingVisitor(modList); } @NotNull @@ -493,13 +493,14 @@ public class StubBuildingVisitor implements ClassVisitor { public void visitEnd() { } - private static class AnnotationTextCollector implements AnnotationVisitor { + private static class AnnotationTextCollector extends AnnotationVisitor { private final StringBuilder myBuilder = new StringBuilder(); private final AnnotationResultCallback myCallback; private boolean hasParams = false; private final String myDesc; public AnnotationTextCollector(@Nullable String desc, AnnotationResultCallback callback) { + super(Opcodes.ASM4); myCallback = callback; myDesc = desc; @@ -567,25 +568,14 @@ public class StubBuildingVisitor implements ClassVisitor { } } - private static class AnnotationCollectingVisitor extends EmptyVisitor { - private final StubElement myOwner; + private static class AnnotationCollectingVisitor extends FieldVisitor { private final PsiModifierListStub myModList; - private AnnotationCollectingVisitor(final StubElement owner, final PsiModifierListStub modList) { - myOwner = owner; + private AnnotationCollectingVisitor(final PsiModifierListStub modList) { + super(Opcodes.ASM4); myModList = modList; } - @Override - public AnnotationVisitor visitAnnotationDefault() { - return new AnnotationTextCollector(null, new AnnotationResultCallback() { - @Override - public void callback(final String text) { - ((PsiMethodStubImpl)myOwner).setDefaultValueText(text); - } - }); - } - @Override public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) { return new AnnotationTextCollector(desc, new AnnotationResultCallback() { @@ -595,20 +585,11 @@ public class StubBuildingVisitor implements ClassVisitor { } }); } - - @Override - @Nullable - public AnnotationVisitor visitParameterAnnotation(final int parameter, final String desc, final boolean visible) { - return new AnnotationTextCollector(desc, new AnnotationResultCallback() { - @Override - public void callback(final String text) { - new PsiAnnotationStubImpl(((PsiMethodStub)myOwner).findParameter(parameter).getModList(), text); - } - }); - } } - private static class AnnotationParamCollectingVisitor extends AnnotationCollectingVisitor { + private static class AnnotationParamCollectingVisitor extends MethodVisitor { + private final PsiMethodStub myOwner; + private final PsiModifierListStub myModList; private final int myIgnoreCount; private final int myParamIgnoreCount; private final int myParamCount; @@ -622,13 +603,35 @@ public class StubBuildingVisitor implements ClassVisitor { int paramIgnoreCount, int paramCount, PsiParameterStubImpl[] paramStubs) { - super(owner, modList); + super(Opcodes.ASM4); + myOwner = owner; + myModList = modList; myIgnoreCount = ignoreCount; myParamIgnoreCount = paramIgnoreCount; myParamCount = paramCount; myParamStubs = paramStubs; } + @Override + public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) { + return new AnnotationTextCollector(desc, new AnnotationResultCallback() { + @Override + public void callback(final String text) { + new PsiAnnotationStubImpl(myModList, text); + } + }); + } + + @Override + public AnnotationVisitor visitAnnotationDefault() { + return new AnnotationTextCollector(null, new AnnotationResultCallback() { + @Override + public void callback(final String text) { + ((PsiMethodStubImpl)myOwner).setDefaultValueText(text); + } + }); + } + @Override public void visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index) { if (index >= myIgnoreCount) { @@ -652,7 +655,15 @@ public class StubBuildingVisitor implements ClassVisitor { @Override @Nullable public AnnotationVisitor visitParameterAnnotation(final int parameter, String desc, boolean visible) { - return (parameter < myParamIgnoreCount) ? null : super.visitParameterAnnotation(parameter - myParamIgnoreCount, desc, visible); + if (parameter < myParamIgnoreCount) { + return null; + } + return new AnnotationTextCollector(desc, new AnnotationResultCallback() { + @Override + public void callback(final String text) { + new PsiAnnotationStubImpl(myOwner.findParameter(parameter - myParamIgnoreCount).getModList(), text); + } + }); } } diff --git a/java/java-tests/java-tests.iml b/java/java-tests/java-tests.iml index 38e0eb6d4c3d..a60c94412b23 100644 --- a/java/java-tests/java-tests.iml +++ b/java/java-tests/java-tests.iml @@ -16,7 +16,7 @@ - + diff --git a/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4.log b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4.log new file mode 100644 index 000000000000..1271cf07c7f9 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4.log @@ -0,0 +1,6 @@ +Cleaning output files: +out/production/nonIncremental4/A.class +End of files +Compiling files: +src/A.java +End of files diff --git a/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/.name b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/.name new file mode 100644 index 000000000000..9058bc55024a --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/.name @@ -0,0 +1 @@ +nonIncremental4 \ No newline at end of file diff --git a/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/compiler.xml b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/compiler.xml new file mode 100644 index 000000000000..a1b41c52c724 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/compiler.xml @@ -0,0 +1,21 @@ + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/copyright/profiles_settings.xml b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/copyright/profiles_settings.xml new file mode 100644 index 000000000000..3572571ad83c --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/copyright/profiles_settings.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/encodings.xml b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/encodings.xml new file mode 100644 index 000000000000..e206d70d8595 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/encodings.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/misc.xml b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/misc.xml new file mode 100644 index 000000000000..492d8ee45ce4 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/misc.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + IDEA jdk + + + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/modules.xml b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/modules.xml new file mode 100644 index 000000000000..5b72606625e5 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/scopes/scope_settings.xml b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/scopes/scope_settings.xml new file mode 100644 index 000000000000..922003b8433b --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/scopes/scope_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/uiDesigner.xml b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/uiDesigner.xml new file mode 100644 index 000000000000..3b0002030884 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/uiDesigner.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/vcs.xml b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/vcs.xml new file mode 100644 index 000000000000..def6a6a18457 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/workspace.xml b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/workspace.xml new file mode 100644 index 000000000000..5c69be76afd6 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/.idea/workspace.xml @@ -0,0 +1,399 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + localhost + 5050 + + + + + + 1333201752849 + 1333201752849 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/A.java.new b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/A.java.new new file mode 100644 index 000000000000..73dca289a964 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/A.java.new @@ -0,0 +1,10 @@ +/** + * Created with IntelliJ IDEA. + * User: db + * Date: 31.03.12 + * Time: 17:50 + * To change this template use File | Settings | File Templates. + */ +public class A { + public final static int X = 0; +} diff --git a/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/nonIncremental4.iml b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/nonIncremental4.iml new file mode 100644 index 000000000000..d5c074327501 --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/nonIncremental4.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/src/A.java b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/src/A.java new file mode 100644 index 000000000000..5b61bd62314f --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/src/A.java @@ -0,0 +1,14 @@ +/** + * Created with IntelliJ IDEA. + * User: db + * Date: 31.03.12 + * Time: 17:50 + * To change this template use File | Settings | File Templates. + */ +public class A { + public final static int X; + + static { + X = 100; + } +} diff --git a/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/src/C.java b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/src/C.java new file mode 100644 index 000000000000..cf7ba0e1a6aa --- /dev/null +++ b/java/java-tests/testData/compileServer/incremental/fieldProperties/nonIncremental4/src/C.java @@ -0,0 +1,9 @@ +/** + * Created with IntelliJ IDEA. + * User: db + * Date: 31.03.12 + * Time: 17:51 + * To change this template use File | Settings | File Templates. + */ +public class C { +} diff --git a/java/java-tests/testSrc/com/intellij/compiler/notNullVerification/NotNullVerifyingInstrumenterTest.java b/java/java-tests/testSrc/com/intellij/compiler/notNullVerification/NotNullVerifyingInstrumenterTest.java index 8e94a2079f27..d28bcadafe7d 100644 --- a/java/java-tests/testSrc/com/intellij/compiler/notNullVerification/NotNullVerifyingInstrumenterTest.java +++ b/java/java-tests/testSrc/com/intellij/compiler/notNullVerification/NotNullVerifyingInstrumenterTest.java @@ -8,8 +8,8 @@ import com.intellij.testFramework.UsefulTestCase; import com.intellij.testFramework.fixtures.IdeaProjectTestFixture; import com.intellij.testFramework.fixtures.JavaTestFixtureFactory; import com.intellij.testFramework.fixtures.TestFixtureBuilder; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassWriter; +import org.jetbrains.asm4.ClassReader; +import org.jetbrains.asm4.ClassWriter; import java.io.File; import java.io.IOException; diff --git a/jps/jps-builders/jps-builders.iml b/jps/jps-builders/jps-builders.iml index e27c35289a56..7c9b8ec9b946 100644 --- a/jps/jps-builders/jps-builders.iml +++ b/jps/jps-builders/jps-builders.iml @@ -13,7 +13,7 @@ - + diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContext.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContext.java index 93613fbd9a0c..77274856a212 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContext.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileContext.java @@ -135,12 +135,11 @@ public class CompileContext extends UserDataHolderBase implements MessageHandler } } else { - MODULES_LOOP: for (final Module module : moduleChunk.getModules()) { - for (ClasspathItem dependency : module.getClasspath(classpathKind)) { - if (dependency instanceof Module && dirtyModules.contains((Module)dependency)) { - dirtyModules.addAll(moduleChunk.getModules()); - break MODULES_LOOP; - } + for (final Module module : moduleChunk.getModules()) { + final Set deps = getDependentModulesRecursively(module, classpathKind); + if (Utils.intersects(deps, modules)) { + dirtyModules.addAll(moduleChunk.getModules()); + break; } } } @@ -148,7 +147,11 @@ public class CompileContext extends UserDataHolderBase implements MessageHandler for (Module module : dirtyModules) { markDirtyFiles(module, myTsStorage, true, isCompilingTests()? DirtyMarkScope.TESTS : DirtyMarkScope.BOTH, null); - if (isMake()) { + } + + if (isMake()) { + // mark as non-incremental only the module that triggered non-incremental change + for (Module module : modules) { if (!isCompilingTests()) { myNonIncrementalModules.add(new Pair(module, DirtyMarkScope.PRODUCTION)); } @@ -157,6 +160,30 @@ public class CompileContext extends UserDataHolderBase implements MessageHandler } } + private static Set getDependentModulesRecursively(final Module module, final ClasspathKind kind) { + final Set result = new HashSet(); + + new Object() { + final Set processed = new HashSet(); + + void traverse(Module module, ClasspathKind kind, Collection result, boolean exportedOnly) { + if (processed.add(module)) { + for (ClasspathItem item : module.getClasspath(kind, exportedOnly)) { + if (item instanceof ModuleSourceEntry) { + result.add(((ModuleSourceEntry)item).getModule()); + } + else if (item instanceof Module) { + traverse((Module)item, kind, result, true); + } + } + } + } + + }.traverse(module, kind, result, false); + + return result; + } + boolean shouldDifferentiate(ModuleChunk chunk, boolean forTests) { if (!isMake()) { // the check makes sense only in make mode @@ -306,7 +333,7 @@ public class CompileContext extends UserDataHolderBase implements MessageHandler } public boolean hasRemovedSources() { - final Set removed = Paths.CHUNK_REMOVED_SOURCES_KEY.get(this); + final Set removed = Utils.CHUNK_REMOVED_SOURCES_KEY.get(this); return removed != null && !removed.isEmpty(); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java index 5d493a8dca64..bc58855d41d5 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java @@ -361,7 +361,7 @@ public class IncProjectBuilder { throw new ProjectBuildException(e); } finally { - Paths.CHUNK_REMOVED_SOURCES_KEY.set(context, null); + Utils.CHUNK_REMOVED_SOURCES_KEY.set(context, null); if (doneSomething && GENERATE_CLASSPATH_INDEX) { final boolean forTests = context.isCompilingTests(); final Future future = SharedThreadPool.INSTANCE.submit(new Runnable() { @@ -409,7 +409,8 @@ public class IncProjectBuilder { final File[] files = file.listFiles(); if (files != null) { for (File child : files) { - writeIndex(writer, child, path + "/" + child.getName()); + final String _path = path.isEmpty()? child.getName() : path + "/" + child.getName(); + writeIndex(writer, child, _path); } } } @@ -472,11 +473,11 @@ public class IncProjectBuilder { } } if (!allChunkRemovedSources.isEmpty()) { - final Set currentData = Paths.CHUNK_REMOVED_SOURCES_KEY.get(context); + final Set currentData = Utils.CHUNK_REMOVED_SOURCES_KEY.get(context); if (currentData != null) { allChunkRemovedSources.addAll(currentData); } - Paths.CHUNK_REMOVED_SOURCES_KEY.set(context, allChunkRemovedSources); + Utils.CHUNK_REMOVED_SOURCES_KEY.set(context, allChunkRemovedSources); for (Module module : chunk.getModules()) { myProjectDescriptor.fsState.clearDeletedPaths(module, context.isCompilingTests()); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleLevelBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleLevelBuilder.java index 8dc73bcea557..af87df25a8bb 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleLevelBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleLevelBuilder.java @@ -198,7 +198,7 @@ public abstract class ModuleLevelBuilder extends Builder { } private static Set getRemovedPaths(CompileContext context) { - final Set removed = Paths.CHUNK_REMOVED_SOURCES_KEY.get(context); + final Set removed = Utils.CHUNK_REMOVED_SOURCES_KEY.get(context); return removed != null? removed : Collections.emptySet(); } @@ -227,15 +227,8 @@ public abstract class ModuleLevelBuilder extends Builder { moduleOfFileWithDependencies = ProjectPaths.getModulesWithDependentsRecursively(moduleOfFile, true); myCache.put(moduleOfFile, moduleOfFileWithDependencies); } - return intersects(moduleOfFileWithDependencies, myChunkModules); + return Utils.intersects(moduleOfFileWithDependencies, myChunkModules); } - private static boolean intersects(Set set1, Set set2) { - if (set1.size() < set2.size()) { - return new HashSet(set1).removeAll(set2); - } - return new HashSet(set2).removeAll(set1); - } } - } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/Paths.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/Utils.java similarity index 66% rename from jps/jps-builders/src/org/jetbrains/jps/incremental/Paths.java rename to jps/jps-builders/src/org/jetbrains/jps/incremental/Utils.java index 847266cdf832..3e56b3cf7a5a 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/Paths.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/Utils.java @@ -2,11 +2,13 @@ package org.jetbrains.jps.incremental; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.io.FileUtil; +import org.jetbrains.jps.Module; import org.jetbrains.jps.Project; import java.io.File; import java.net.URI; import java.net.URISyntaxException; +import java.util.HashSet; import java.util.Locale; import java.util.Set; @@ -14,29 +16,24 @@ import java.util.Set; * @author Eugene Zhuravlev * Date: 10/20/11 */ -public class Paths { - private static final Paths ourInstance = new Paths(); +public class Utils { public static final Key> CHUNK_REMOVED_SOURCES_KEY = Key.create("_chunk_removed_sources_"); - private volatile File mySystemRoot = new File(System.getProperty("user.home", ".jps-server")); + private static volatile File ourSystemRoot = new File(System.getProperty("user.home", ".jps-server")); - private Paths() { - } - - public static Paths getInstance() { - return ourInstance; + private Utils() { } public static File getSystemRoot() { - return getInstance().mySystemRoot; + return ourSystemRoot; } - public void setSystemRoot(File systemRoot) { - mySystemRoot = systemRoot; + public static void setSystemRoot(File systemRoot) { + ourSystemRoot = systemRoot; } public static File getDataStorageRoot(Project project) { final String name = project.getProjectName().toLowerCase(Locale.US); - return new File(getInstance().mySystemRoot, name + "_" + Integer.toHexString(project.getLocationHash())); + return new File(ourSystemRoot, name + "_" + Integer.toHexString(project.getLocationHash())); } public static URI toURI(String localPath) { @@ -62,4 +59,11 @@ public class Paths { public static File convertToFile(final URI uri) { return new File(toURI(uri.getPath(), false)); } + + public static boolean intersects(Set set1, Set set2) { + if (set1.size() < set2.size()) { + return new HashSet(set1).removeAll(set2); + } + return new HashSet(set2).removeAll(set1); + } } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java index 50ca6fd3f611..860cc905ae64 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java @@ -10,13 +10,20 @@ import com.intellij.openapi.util.Key; import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.uiDesigner.compiler.*; +import com.intellij.uiDesigner.compiler.AlienFormFileException; +import com.intellij.uiDesigner.compiler.AsmCodeGenerator; +import com.intellij.uiDesigner.compiler.FormErrorInfo; +import com.intellij.uiDesigner.compiler.NestedFormLoader; import com.intellij.uiDesigner.core.GridConstraints; import com.intellij.uiDesigner.lw.CompiledClassPropertiesProvider; import com.intellij.uiDesigner.lw.LwRootContainer; import com.intellij.util.SystemProperties; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.asm4.ClassReader; +import org.jetbrains.asm4.ClassVisitor; +import org.jetbrains.asm4.ClassWriter; +import org.jetbrains.asm4.Opcodes; import org.jetbrains.ether.dependencyView.Callbacks; import org.jetbrains.ether.dependencyView.Mappings; import org.jetbrains.jps.*; @@ -29,10 +36,6 @@ import org.jetbrains.jps.incremental.messages.ProgressMessage; import org.jetbrains.jps.incremental.storage.BuildDataManager; import org.jetbrains.jps.incremental.storage.SourceToFormMapping; import org.jetbrains.jps.javac.*; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.commons.EmptyVisitor; import javax.tools.*; import java.io.*; @@ -456,7 +459,7 @@ public class JavaBuilder extends ModuleLevelBuilder { } final BaseOSProcessHandler processHandler = JavacServerBootstrap.launchJavacServer( - javaHome, heapSize, port, Paths.getSystemRoot(), getCompilationVMOptions(context) + javaHome, heapSize, port, Utils.getSystemRoot(), getCompilationVMOptions(context) ); final JavacServerClient client = new JavacServerClient(); try { @@ -718,7 +721,8 @@ public class JavaBuilder extends ModuleLevelBuilder { for (File formFile : formsToInstrument) { final LwRootContainer rootContainer; try { - rootContainer = Utils.getRootContainer(formFile.toURI().toURL(), new CompiledClassPropertiesProvider(finder.getLoader())); + rootContainer = com.intellij.uiDesigner.compiler.Utils + .getRootContainer(formFile.toURI().toURL(), new CompiledClassPropertiesProvider(finder.getLoader())); } catch (AlienFormFileException e) { // ignore non-IDEA forms @@ -821,7 +825,7 @@ public class JavaBuilder extends ModuleLevelBuilder { private static int getClassFileVersion(ClassReader reader) { final Ref result = new Ref(0); - reader.accept(new EmptyVisitor() { + reader.accept(new ClassVisitor(Opcodes.ASM4) { public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { result.set(version); } @@ -894,7 +898,7 @@ public class JavaBuilder extends ModuleLevelBuilder { kind = BuildMessage.Kind.INFO; } final JavaFileObject source = diagnostic.getSource(); - final File sourceFile = source != null ? Paths.convertToFile(source.toUri()) : null; + final File sourceFile = source != null ? Utils.convertToFile(source.toUri()) : null; final String srcPath = sourceFile != null ? FileUtil.toSystemIndependentName(sourceFile.getPath()) : null; myContext.processMessage( new CompilerMessage(BUILDER_NAME, kind, diagnostic.getMessage(Locale.US), srcPath, diagnostic.getStartPosition(), @@ -955,7 +959,7 @@ public class JavaBuilder extends ModuleLevelBuilder { } private LwRootContainer loadForm(String formFileName, InputStream resourceStream) throws Exception { - final LwRootContainer container = Utils.getRootContainer(resourceStream, null); + final LwRootContainer container = com.intellij.uiDesigner.compiler.Utils.getRootContainer(resourceStream, null); myCache.put(formFileName, container); return container; } diff --git a/jps/jps-builders/src/org/jetbrains/jps/javac/JavacFileManager.java b/jps/jps-builders/src/org/jetbrains/jps/javac/JavacFileManager.java index 73e238f9bdd7..0715a336d814 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/javac/JavacFileManager.java +++ b/jps/jps-builders/src/org/jetbrains/jps/javac/JavacFileManager.java @@ -3,7 +3,7 @@ package org.jetbrains.jps.javac; import com.intellij.openapi.util.io.FileUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jps.incremental.Paths; +import org.jetbrains.jps.incremental.Utils; import javax.tools.*; import java.io.File; @@ -131,7 +131,7 @@ class JavacFileManager extends ForwardingJavaFileManager 1 && sourceFile != null) { // multiple outputs case - final File outputDir = findOutputDir(Paths.convertToFile(sourceFile.toUri())); + final File outputDir = findOutputDir(Utils.convertToFile(sourceFile.toUri())); if (outputDir != null) { return outputDir; } diff --git a/jps/jps-builders/src/org/jetbrains/jps/javac/OutputFileObject.java b/jps/jps-builders/src/org/jetbrains/jps/javac/OutputFileObject.java index 63af623e3ab3..e399548a4dcf 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/javac/OutputFileObject.java +++ b/jps/jps-builders/src/org/jetbrains/jps/javac/OutputFileObject.java @@ -2,10 +2,9 @@ package org.jetbrains.jps.javac; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jps.incremental.Paths; +import org.jetbrains.jps.incremental.Utils; -import javax.tools.JavaFileObject; -import javax.tools.SimpleJavaFileObject; +import javax.tools.*; import java.io.*; import java.net.URI; import java.util.Arrays; @@ -32,7 +31,7 @@ public final class OutputFileObject extends SimpleJavaFileObject { } public OutputFileObject(@Nullable JavacFileManager.Context context, @Nullable File outputRoot, String relativePath, @NotNull File file, @NotNull Kind kind, @Nullable String className, @Nullable final URI srcUri, @Nullable Content content) { - super(Paths.toURI(file.getPath()), kind); + super(Utils.toURI(file.getPath()), kind); myContext = context; mySourceUri = srcUri; myContent = content; @@ -40,7 +39,7 @@ public final class OutputFileObject extends SimpleJavaFileObject { myRelativePath = relativePath; myFile = file; myClassName = className; - mySourceFile = srcUri != null? Paths.convertToFile(srcUri) : null; + mySourceFile = srcUri != null? Utils.convertToFile(srcUri) : null; } @Nullable diff --git a/jps/jps-builders/src/org/jetbrains/jps/server/ClasspathBootstrap.java b/jps/jps-builders/src/org/jetbrains/jps/server/ClasspathBootstrap.java index 63c600a02d41..1279c09b17b2 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/server/ClasspathBootstrap.java +++ b/jps/jps-builders/src/org/jetbrains/jps/server/ClasspathBootstrap.java @@ -28,14 +28,12 @@ import net.n3.nanoxml.IXMLBuilder; import org.codehaus.groovy.GroovyException; import org.jboss.netty.util.Version; import org.jetbrains.annotations.Nullable; +import org.jetbrains.asm4.ClassVisitor; +import org.jetbrains.asm4.ClassWriter; import org.jetbrains.jps.MacroExpander; import org.jetbrains.jps.javac.JavacServer; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.commons.EmptyVisitor; -import javax.tools.JavaCompiler; -import javax.tools.StandardJavaFileManager; -import javax.tools.ToolProvider; +import javax.tools.*; import java.io.File; import java.util.ArrayList; import java.util.LinkedHashSet; @@ -95,7 +93,7 @@ public class ClasspathBootstrap { cp.add(getResourcePath(Message.class)); // protobuf cp.add(getResourcePath(Version.class)); // netty cp.add(getResourcePath(ClassWriter.class)); // asm - cp.add(getResourcePath(EmptyVisitor.class)); // asm-commons + cp.add(getResourcePath(ClassVisitor.class)); // asm-commons cp.add(getResourcePath(MacroExpander.class)); // jps-model cp.add(getResourcePath(AlienFormFileException.class)); // forms-compiler cp.add(getResourcePath(GroovyException.class)); // groovy diff --git a/jps/jps-builders/src/org/jetbrains/jps/server/Server.java b/jps/jps-builders/src/org/jetbrains/jps/server/Server.java index 42c1141bcda3..9cc51413450f 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/server/Server.java +++ b/jps/jps-builders/src/org/jetbrains/jps/server/Server.java @@ -20,7 +20,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.api.AsyncTaskExecutor; import org.jetbrains.jps.api.GlobalOptions; import org.jetbrains.jps.api.JpsRemoteProto; -import org.jetbrains.jps.incremental.Paths; +import org.jetbrains.jps.incremental.Utils; import java.io.File; import java.net.InetSocketAddress; @@ -50,7 +50,7 @@ public class Server { private final ServerMessageHandler myMessageHandler; public Server(File systemDir) { - Paths.getInstance().setSystemRoot(systemDir); + Utils.setSystemRoot(systemDir); final ExecutorService threadPool = Executors.newCachedThreadPool(); myScheduler = ConcurrencyUtil.newSingleScheduledThreadExecutor("Client activity checker", Thread.MIN_PRIORITY); myBuildsExecutor = Executors.newFixedThreadPool(MAX_SIMULTANEOUS_BUILD_SESSIONS); diff --git a/jps/jps-builders/src/org/jetbrains/jps/server/ServerState.java b/jps/jps-builders/src/org/jetbrains/jps/server/ServerState.java index cff5e3eda9f3..ec993e99812b 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/server/ServerState.java +++ b/jps/jps-builders/src/org/jetbrains/jps/server/ServerState.java @@ -137,7 +137,7 @@ class ServerState { final FSState fsState = new FSState(false); ProjectTimestamps timestamps = null; BuildDataManager dataManager = null; - final File dataStorageRoot = Paths.getDataStorageRoot(project); + final File dataStorageRoot = Utils.getDataStorageRoot(project); try { timestamps = new ProjectTimestamps(dataStorageRoot); dataManager = new BuildDataManager(dataStorageRoot, myKeepTempCachesInMemory); diff --git a/jps/jps-builders/testSrc/org/jetbrains/ether/FieldPropertyTest.java b/jps/jps-builders/testSrc/org/jetbrains/ether/FieldPropertyTest.java index 8af0a272f344..8ba5807be69d 100644 --- a/jps/jps-builders/testSrc/org/jetbrains/ether/FieldPropertyTest.java +++ b/jps/jps-builders/testSrc/org/jetbrains/ether/FieldPropertyTest.java @@ -83,4 +83,11 @@ public class FieldPropertyTest extends IncrementalTestCase { public void testNonIncremental2() throws Exception { doTest(); } + //public void testNonIncremental3() throws Exception { + // doTest(); + // } + + public void testNonIncremental4() throws Exception { + doTest(); + } } diff --git a/jps/jps-builders/testSrc/org/jetbrains/ether/IncrementalTestCase.java b/jps/jps-builders/testSrc/org/jetbrains/ether/IncrementalTestCase.java index 405ab57fe607..5a813006c481 100644 --- a/jps/jps-builders/testSrc/org/jetbrains/ether/IncrementalTestCase.java +++ b/jps/jps-builders/testSrc/org/jetbrains/ether/IncrementalTestCase.java @@ -71,7 +71,7 @@ public abstract class IncrementalTestCase extends TestCase { FileUtil.copyDir(new File(getBaseDir()), new File(getWorkDir())); - Paths.getInstance().setSystemRoot(new File(workDir)); + Utils.setSystemRoot(new File(workDir)); } @Override @@ -201,7 +201,7 @@ public abstract class IncrementalTestCase extends TestCase { IdeaProjectLoader.loadFromPath(project, projectPath, ""); - final File dataStorageRoot = Paths.getDataStorageRoot(project); + final File dataStorageRoot = Utils.getDataStorageRoot(project); final TestJavaBuilderLogger javaBuilderLogger = new TestJavaBuilderLogger(FileUtil.toSystemIndependentName(getWorkDir() + File.separator)); final ProjectDescriptor projectDescriptor = new ProjectDescriptor(project, new FSState(true), new ProjectTimestamps(dataStorageRoot), diff --git a/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTestCase.java b/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTestCase.java index 081ed67ee76f..6b52d0e63036 100644 --- a/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTestCase.java +++ b/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTestCase.java @@ -54,7 +54,7 @@ public abstract class ArtifactBuilderTestCase extends UsefulTestCase { myProject = new Project(); myProject.setProjectName(getProjectName()); final File serverRoot = FileUtil.createTempDirectory("compile-server", null); - Paths.getInstance().setSystemRoot(serverRoot); + Utils.setSystemRoot(serverRoot); myArtifactBuilderLogger = new TestArtifactBuilderLogger(); } @@ -153,7 +153,7 @@ public abstract class ArtifactBuilderTestCase extends UsefulTestCase { private ProjectDescriptor createProjectDescriptor() { try { - final File dataStorageRoot = Paths.getDataStorageRoot(myProject); + final File dataStorageRoot = Utils.getDataStorageRoot(myProject); ProjectTimestamps timestamps = new ProjectTimestamps(dataStorageRoot); BuildDataManager dataManager = new BuildDataManager(dataStorageRoot, true); return new ProjectDescriptor(myProject, new FSState(true), timestamps, dataManager, new BuildLoggingManager(myArtifactBuilderLogger, diff --git a/jps/jps.iml b/jps/jps.iml index c08dac3c1a16..0865ffbd929e 100644 --- a/jps/jps.iml +++ b/jps/jps.iml @@ -20,7 +20,7 @@ - + diff --git a/jps/model/jps-model.iml b/jps/model/jps-model.iml index f09e08520e8b..76df8c5b0b59 100644 --- a/jps/model/jps-model.iml +++ b/jps/model/jps-model.iml @@ -9,7 +9,7 @@ - + diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/Callbacks.java b/jps/model/src/org/jetbrains/ether/dependencyView/Callbacks.java index c4d7b133f4ed..8b3bbee2a4dc 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/Callbacks.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/Callbacks.java @@ -1,6 +1,6 @@ package org.jetbrains.ether.dependencyView; -import org.objectweb.asm.ClassReader; +import org.jetbrains.asm4.ClassReader; import java.util.Collection; diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/ClassRepr.java b/jps/model/src/org/jetbrains/ether/dependencyView/ClassRepr.java index 9b591460b155..2eaedf77c615 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/ClassRepr.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/ClassRepr.java @@ -134,6 +134,11 @@ public class ClassRepr extends Proto { public int base() { return d; } + + @Override + public boolean hadValue() { + return false; + } }; } diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/ClassfileAnalyzer.java b/jps/model/src/org/jetbrains/ether/dependencyView/ClassfileAnalyzer.java index 8d898122d8d1..91d6bf4c2f14 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/ClassfileAnalyzer.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/ClassfileAnalyzer.java @@ -1,10 +1,9 @@ package org.jetbrains.ether.dependencyView; import com.intellij.openapi.util.Pair; -import org.objectweb.asm.*; -import org.objectweb.asm.commons.EmptyVisitor; -import org.objectweb.asm.signature.SignatureReader; -import org.objectweb.asm.signature.SignatureVisitor; +import org.jetbrains.asm4.*; +import org.jetbrains.asm4.signature.SignatureReader; +import org.jetbrains.asm4.signature.SignatureVisitor; import java.lang.annotation.ElementType; import java.lang.annotation.RetentionPolicy; @@ -37,8 +36,12 @@ class ClassfileAnalyzer { } } - private class ClassCrawler extends EmptyVisitor { - private class AnnotationRetentionPolicyCrawler implements AnnotationVisitor { + private class ClassCrawler extends ClassVisitor { + private class AnnotationRetentionPolicyCrawler extends AnnotationVisitor { + private AnnotationRetentionPolicyCrawler() { + super(Opcodes.ASM4); + } + public void visit(String name, Object value) { } @@ -58,7 +61,11 @@ class ClassfileAnalyzer { } } - private class AnnotationTargetCrawler implements AnnotationVisitor { + private class AnnotationTargetCrawler extends AnnotationVisitor { + private AnnotationTargetCrawler() { + super(Opcodes.ASM4); + } + public void visit(String name, Object value) { } @@ -78,13 +85,14 @@ class ClassfileAnalyzer { } } - private class AnnotationCrawler implements AnnotationVisitor { + private class AnnotationCrawler extends AnnotationVisitor { private final TypeRepr.ClassType type; private final ElementType target; private final Set usedArguments = new HashSet(); private AnnotationCrawler(final TypeRepr.ClassType type, final ElementType target) { + super(Opcodes.ASM4); this.type = type; this.target = target; annotationTargets.put(type, target); @@ -182,7 +190,7 @@ class ClassfileAnalyzer { if (sig != null) new SignatureReader(sig).accept(signatureCrawler); } - private final SignatureVisitor signatureCrawler = new SignatureVisitor() { + private final SignatureVisitor signatureCrawler = new SignatureVisitor(Opcodes.ASM4) { public void visitFormalTypeParameter(String name) { return; } @@ -284,6 +292,7 @@ class ClassfileAnalyzer { new TransientMultiMaplet(elementTypeSetConstructor); public ClassCrawler(final DependencyContext.S fn) { + super(Opcodes.ASM4); fileName = fn; } @@ -369,7 +378,7 @@ class ClassfileAnalyzer { fields.add(new FieldRepr(context, access, context.get(n), context.get(desc), context.get(signature), value)); } - return new EmptyVisitor() { + return new FieldVisitor(Opcodes.ASM4) { @Override public AnnotationVisitor visitAnnotation(String desc, boolean visible) { return new AnnotationCrawler((TypeRepr.ClassType)TypeRepr.getType(context, context.get(desc)), ElementType.FIELD); @@ -387,7 +396,7 @@ class ClassfileAnalyzer { processSignature(signature); - return new EmptyVisitor() { + return new MethodVisitor(Opcodes.ASM4) { @Override public void visitEnd() { if ((access & Opcodes.ACC_SYNTHETIC) == 0 || (access & Opcodes.ACC_BRIDGE) > 0) { @@ -403,7 +412,7 @@ class ClassfileAnalyzer { @Override public AnnotationVisitor visitAnnotationDefault() { - return new EmptyVisitor() { + return new AnnotationVisitor(Opcodes.ASM4) { public void visit(String name, Object value) { defaultValue.set(value); } diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/Difference.java b/jps/model/src/org/jetbrains/ether/dependencyView/Difference.java index 7b10a1f34cbe..003afdf31e0f 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/Difference.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/Difference.java @@ -112,4 +112,6 @@ abstract class Difference { public abstract int removedModifiers(); public abstract boolean packageLocalOn(); + + public abstract boolean hadValue (); } diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java b/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java index 6af8cfc58e9d..704c08443492 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java @@ -4,8 +4,8 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.io.FileUtil; import org.jetbrains.annotations.Nullable; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.Opcodes; +import org.jetbrains.asm4.ClassReader; +import org.jetbrains.asm4.Opcodes; import java.io.File; import java.io.IOException; @@ -1432,7 +1432,7 @@ public class Mappings { debug("Field: ", it.name); if ((field.access & Opcodes.ACC_PRIVATE) == 0 && (field.access & mask) == mask) { - if ((d.base() & Difference.ACCESS) > 0 || (d.base() & Difference.VALUE) > 0) { + if ((d.base() & Difference.ACCESS) > 0 || ((d.base() & Difference.VALUE) > 0 && d.hadValue())) { debug("Inline field changed it's access or value => a switch to non-incremental mode requested"); if (!incrementalDecision(it.name, field, affectedFiles, filter)) { debug("End of Differentiate, returning false"); diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/MethodRepr.java b/jps/model/src/org/jetbrains/ether/dependencyView/MethodRepr.java index f4e325fa5ecf..46e4d2cc6ba3 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/MethodRepr.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/MethodRepr.java @@ -1,8 +1,8 @@ package org.jetbrains.ether.dependencyView; import com.intellij.util.io.DataExternalizer; +import org.jetbrains.asm4.Type; import org.jetbrains.ether.RW; -import org.objectweb.asm.Type; import java.io.DataInput; import java.io.DataOutput; @@ -80,6 +80,11 @@ class MethodRepr extends ProtoMember { public boolean packageLocalOn() { return diff.packageLocalOn(); } + + @Override + public boolean hadValue() { + return ((MethodRepr)past).hasValue(); + } }; } diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/Proto.java b/jps/model/src/org/jetbrains/ether/dependencyView/Proto.java index 99508de315e0..fd2badf35b42 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/Proto.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/Proto.java @@ -90,6 +90,11 @@ class Proto implements RW.Savable { ((access & Opcodes.ACC_PRIVATE) == 0 && (access & Opcodes.ACC_PROTECTED) == 0 && (access & Opcodes.ACC_PUBLIC) == 0); } + + @Override + public boolean hadValue() { + return false; + } }; } } diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/ProtoMember.java b/jps/model/src/org/jetbrains/ether/dependencyView/ProtoMember.java index 4a301c335108..103c5d14a16f 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/ProtoMember.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/ProtoMember.java @@ -1,9 +1,10 @@ package org.jetbrains.ether.dependencyView; -import org.jetbrains.ether.RW; -import org.objectweb.asm.Type; +import org.jetbrains.asm4.Type; -import java.io.*; +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; /** * Created by IntelliJ IDEA. @@ -170,6 +171,11 @@ abstract class ProtoMember extends Proto { public boolean packageLocalOn() { return diff.packageLocalOn(); } + + @Override + public boolean hadValue() { + return ((ProtoMember)past).hasValue(); + } }; } } diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/TypeRepr.java b/jps/model/src/org/jetbrains/ether/dependencyView/TypeRepr.java index eb3857668df3..2b317e13ce4a 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/TypeRepr.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/TypeRepr.java @@ -2,13 +2,14 @@ package org.jetbrains.ether.dependencyView; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.io.DataExternalizer; +import org.jetbrains.asm4.Type; import org.jetbrains.ether.RW; -import org.objectweb.asm.Type; -import java.io.*; +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; import java.util.Arrays; import java.util.Collection; -import java.util.LinkedList; /** * Created by IntelliJ IDEA. diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/UsageRepr.java b/jps/model/src/org/jetbrains/ether/dependencyView/UsageRepr.java index 316ee502c9a8..d6c33ee78483 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/UsageRepr.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/UsageRepr.java @@ -1,8 +1,8 @@ package org.jetbrains.ether.dependencyView; import com.intellij.util.io.DataExternalizer; +import org.jetbrains.asm4.Type; import org.jetbrains.ether.RW; -import org.objectweb.asm.Type; import java.io.DataInput; import java.io.DataOutput; diff --git a/jps/src/org/jetbrains/ether/dependencyView/AntListener.java b/jps/src/org/jetbrains/ether/dependencyView/AntListener.java index ee921a7d86eb..7c8a7f0d8ffa 100644 --- a/jps/src/org/jetbrains/ether/dependencyView/AntListener.java +++ b/jps/src/org/jetbrains/ether/dependencyView/AntListener.java @@ -2,7 +2,7 @@ package org.jetbrains.ether.dependencyView; import org.apache.tools.ant.BuildEvent; import org.apache.tools.ant.BuildListener; -import org.objectweb.asm.ClassReader; +import org.jetbrains.asm4.ClassReader; import java.io.File; import java.io.FileInputStream; diff --git a/jps/src/org/jetbrains/jps/builders/javacApi/OptimizedFileManager.java b/jps/src/org/jetbrains/jps/builders/javacApi/OptimizedFileManager.java index d7163000ea5d..bb2a8a8918cf 100644 --- a/jps/src/org/jetbrains/jps/builders/javacApi/OptimizedFileManager.java +++ b/jps/src/org/jetbrains/jps/builders/javacApi/OptimizedFileManager.java @@ -6,14 +6,12 @@ import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.DefaultFileManager; import com.sun.tools.javac.util.List; import com.sun.tools.javac.util.ListBuffer; +import org.jetbrains.asm4.ClassReader; import org.jetbrains.ether.dependencyView.Callbacks; import org.jetbrains.jps.PathUtil; -import org.objectweb.asm.ClassReader; import javax.lang.model.SourceVersion; -import javax.tools.FileObject; -import javax.tools.ForwardingJavaFileObject; -import javax.tools.JavaFileObject; +import javax.tools.*; import java.io.*; import java.lang.reflect.Field; import java.net.URL; diff --git a/lib/asm4-all.jar b/lib/asm4-all.jar new file mode 100644 index 000000000000..773234c97a51 Binary files /dev/null and b/lib/asm4-all.jar differ diff --git a/lib/required_for_dist.txt b/lib/required_for_dist.txt index 885c232bdd48..a4e372026865 100644 --- a/lib/required_for_dist.txt +++ b/lib/required_for_dist.txt @@ -1,5 +1,6 @@ asm-commons.jar asm.jar +asm4-all.jar automaton.jar cli-10.jar cglib-2.2.2.jar diff --git a/plugins/IntelliLang/IntelliLang-java.iml b/plugins/IntelliLang/IntelliLang-java.iml index 998ca93c3ae5..5d4b43c8d504 100644 --- a/plugins/IntelliLang/IntelliLang-java.iml +++ b/plugins/IntelliLang/IntelliLang-java.iml @@ -11,7 +11,7 @@ - + diff --git a/plugins/IntelliLang/IntelliLang-xml.iml b/plugins/IntelliLang/IntelliLang-xml.iml index 608a5e9f2e97..4b8c7036d24d 100644 --- a/plugins/IntelliLang/IntelliLang-xml.iml +++ b/plugins/IntelliLang/IntelliLang-xml.iml @@ -10,7 +10,7 @@ - + diff --git a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/AnnotationBasedInstrumentingCompiler.java b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/AnnotationBasedInstrumentingCompiler.java index 6b6190780f80..bd8f724a1b63 100644 --- a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/AnnotationBasedInstrumentingCompiler.java +++ b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/AnnotationBasedInstrumentingCompiler.java @@ -34,14 +34,17 @@ import com.intellij.openapi.roots.ProjectFileIndex; import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.psi.*; +import com.intellij.psi.JavaPsiFacade; +import com.intellij.psi.PsiClass; +import com.intellij.psi.PsiFile; +import com.intellij.psi.PsiJavaFile; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.PsiSearchHelper; import com.intellij.util.Processor; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassWriter; +import org.jetbrains.asm4.ClassReader; +import org.jetbrains.asm4.ClassWriter; import java.io.DataInput; import java.io.FileOutputStream; diff --git a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/Instrumenter.java b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/Instrumenter.java index 2b16ab87bb63..53d9a6ae4d0f 100644 --- a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/Instrumenter.java +++ b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/Instrumenter.java @@ -15,8 +15,16 @@ */ package org.intellij.plugins.intelliLang.pattern.compiler; -import org.objectweb.asm.ClassVisitor; +import org.jetbrains.asm4.ClassVisitor; +import org.jetbrains.asm4.Opcodes; -public interface Instrumenter extends ClassVisitor { - boolean instrumented(); +public abstract class Instrumenter extends ClassVisitor { + protected Instrumenter() { + super(Opcodes.ASM4); + } + protected Instrumenter(ClassVisitor visitor) { + super(Opcodes.ASM4, visitor); + } + + public abstract boolean instrumented(); } diff --git a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/impl/InstrumentationAdapter.java b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/impl/InstrumentationAdapter.java index 39d4b6d59e9f..cc5e1ad9753d 100644 --- a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/impl/InstrumentationAdapter.java +++ b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/impl/InstrumentationAdapter.java @@ -17,14 +17,14 @@ package org.intellij.plugins.intelliLang.pattern.compiler.impl; import org.intellij.plugins.intelliLang.Configuration; import org.jetbrains.annotations.NonNls; -import org.objectweb.asm.*; +import org.jetbrains.asm4.*; import java.text.MessageFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -class InstrumentationAdapter extends MethodAdapter implements Opcodes { +class InstrumentationAdapter extends MethodVisitor implements Opcodes { @NonNls private static final String RETURN_VALUE_NAME = "$returnvalue$"; @@ -46,7 +46,7 @@ class InstrumentationAdapter extends MethodAdapter implements Opcodes { Type returnType, int access, String name) { - super(methodvisitor); + super(Opcodes.ASM4, methodvisitor); myInstrumenter = instrumenter; myArgTypes = argTypes; myReturnType = returnType; @@ -208,11 +208,12 @@ class InstrumentationAdapter extends MethodAdapter implements Opcodes { mv.visitInsn(Opcodes.ATHROW); } - private static class MyAnnotationVisitor implements AnnotationVisitor { + private static class MyAnnotationVisitor extends AnnotationVisitor { private final AnnotationVisitor av; private final PatternValue myPatternValue; public MyAnnotationVisitor(AnnotationVisitor annotationvisitor, PatternValue v) { + super(Opcodes.ASM4); av = annotationvisitor; myPatternValue = v; } diff --git a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/impl/PatternValidationCompiler.java b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/impl/PatternValidationCompiler.java index 293f29f1d0ec..2d602471b30d 100644 --- a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/impl/PatternValidationCompiler.java +++ b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/impl/PatternValidationCompiler.java @@ -32,7 +32,7 @@ import org.intellij.plugins.intelliLang.pattern.compiler.AnnotationBasedInstrume import org.intellij.plugins.intelliLang.pattern.compiler.Instrumenter; import org.intellij.plugins.intelliLang.util.AnnotationUtilEx; import org.jetbrains.annotations.NotNull; -import org.objectweb.asm.ClassWriter; +import org.jetbrains.asm4.ClassWriter; import java.util.HashMap; import java.util.Map; diff --git a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/impl/PatternValidationInstrumenter.java b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/impl/PatternValidationInstrumenter.java index 04f86978fcef..12ee27843a4e 100644 --- a/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/impl/PatternValidationInstrumenter.java +++ b/plugins/IntelliLang/java-support/org/intellij/plugins/intelliLang/pattern/compiler/impl/PatternValidationInstrumenter.java @@ -19,14 +19,14 @@ import org.intellij.plugins.intelliLang.Configuration; import org.intellij.plugins.intelliLang.pattern.compiler.InstrumentationException; import org.intellij.plugins.intelliLang.pattern.compiler.Instrumenter; import org.jetbrains.annotations.NonNls; -import org.objectweb.asm.*; +import org.jetbrains.asm4.*; import java.util.Arrays; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.regex.Pattern; -public class PatternValidationInstrumenter extends ClassAdapter implements Instrumenter, Opcodes { +public class PatternValidationInstrumenter extends Instrumenter implements Opcodes { @NonNls static final String PATTERN_CACHE_NAME = "$_PATTERN_CACHE_$"; @NonNls static final String ASSERTIONS_DISABLED_NAME = "$assertionsDisabled"; @NonNls static final String JAVA_LANG_STRING = "Ljava/lang/String;"; @@ -167,7 +167,7 @@ public class PatternValidationInstrumenter extends ClassAdapter implements Instr if ((access & ACC_STATIC) != 0 && name.equals("")) { myHasStaticInitializer = true; - return new MethodAdapter(methodvisitor) { + return new MethodVisitor(Opcodes.ASM4, methodvisitor) { public void visitCode() { super.visitCode(); patchStaticInitializer(mv); diff --git a/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidJpsUtil.java b/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidJpsUtil.java index 737139bcc6ff..9ebfe2cdb16d 100644 --- a/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidJpsUtil.java +++ b/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidJpsUtil.java @@ -19,8 +19,8 @@ import org.jetbrains.jps.*; import org.jetbrains.jps.idea.Facet; import org.jetbrains.jps.incremental.CompileContext; import org.jetbrains.jps.incremental.ModuleLevelBuilder; -import org.jetbrains.jps.incremental.Paths; import org.jetbrains.jps.incremental.ProjectBuildException; +import org.jetbrains.jps.incremental.Utils; import org.jetbrains.jps.incremental.messages.BuildMessage; import org.jetbrains.jps.incremental.messages.CompilerMessage; @@ -510,7 +510,7 @@ class AndroidJpsUtil { @NotNull public static File getGeneratedSourcesStorage(@NotNull Module module) { - final File dataStorageRoot = Paths.getDataStorageRoot(module.getProject()); + final File dataStorageRoot = Utils.getDataStorageRoot(module.getProject()); final File androidStorageRoot = new File(dataStorageRoot, ANDROID_STORAGE_DIR); final File generatedSourcesRoot = new File(androidStorageRoot, GENERATED_SOURCES_FOLDER_NAME); return new File(generatedSourcesRoot, module.getName()); @@ -518,7 +518,7 @@ class AndroidJpsUtil { @NotNull public static File getGeneratedResourcesStorage(@NotNull Module module) { - final File dataStorageRoot = Paths.getDataStorageRoot(module.getProject()); + final File dataStorageRoot = Utils.getDataStorageRoot(module.getProject()); final File androidStorageRoot = new File(dataStorageRoot, ANDROID_STORAGE_DIR); final File generatedSourcesRoot = new File(androidStorageRoot, GENERATED_RESOURCES_DIR_NAME); return new File(generatedSourcesRoot, module.getName()); diff --git a/plugins/groovy/rt/src/org/jetbrains/jps/incremental/groovy/GroovyBuilder.java b/plugins/groovy/rt/src/org/jetbrains/jps/incremental/groovy/GroovyBuilder.java index 0852f2e8fdfe..2e8aa639441b 100644 --- a/plugins/groovy/rt/src/org/jetbrains/jps/incremental/groovy/GroovyBuilder.java +++ b/plugins/groovy/rt/src/org/jetbrains/jps/incremental/groovy/GroovyBuilder.java @@ -8,6 +8,7 @@ import com.intellij.util.ArrayUtil; import com.intellij.util.Consumer; import com.intellij.util.SystemProperties; import groovy.util.CharsetToolkit; +import org.jetbrains.asm4.ClassReader; import org.jetbrains.ether.dependencyView.Callbacks; import org.jetbrains.ether.dependencyView.Mappings; import org.jetbrains.groovy.compiler.rt.GroovyCompilerWrapper; @@ -19,7 +20,6 @@ import org.jetbrains.jps.incremental.messages.FileGeneratedEvent; import org.jetbrains.jps.incremental.messages.ProgressMessage; import org.jetbrains.jps.incremental.storage.SourceToOutputMapping; import org.jetbrains.jps.server.ClasspathBootstrap; -import org.objectweb.asm.ClassReader; import java.io.File; import java.io.IOException; diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/make/PreviewNestedFormLoader.java b/plugins/ui-designer/src/com/intellij/uiDesigner/make/PreviewNestedFormLoader.java index fbe4c8aaa86e..88dd5f9b12e6 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/make/PreviewNestedFormLoader.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/make/PreviewNestedFormLoader.java @@ -27,9 +27,9 @@ import com.intellij.uiDesigner.lw.LwRootContainer; import com.intellij.util.ArrayUtil; import com.intellij.util.containers.HashSet; import org.jetbrains.annotations.NonNls; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.Opcodes; +import org.jetbrains.asm4.ClassWriter; +import org.jetbrains.asm4.MethodVisitor; +import org.jetbrains.asm4.Opcodes; import java.io.ByteArrayInputStream; import java.io.File; diff --git a/plugins/ui-designer/testSrc/com/intellij/uiDesigner/core/AsmCodeGeneratorTest.java b/plugins/ui-designer/testSrc/com/intellij/uiDesigner/core/AsmCodeGeneratorTest.java index d8ff9f5c68a6..a5630623c131 100644 --- a/plugins/ui-designer/testSrc/com/intellij/uiDesigner/core/AsmCodeGeneratorTest.java +++ b/plugins/ui-designer/testSrc/com/intellij/uiDesigner/core/AsmCodeGeneratorTest.java @@ -31,7 +31,7 @@ import com.intellij.uiDesigner.lw.LwRootContainer; import com.intellij.util.PathUtil; import com.intellij.util.ui.UIUtil; import junit.framework.TestCase; -import org.objectweb.asm.ClassWriter; +import org.jetbrains.asm4.ClassWriter; import javax.swing.*; import javax.swing.border.EtchedBorder; diff --git a/plugins/ui-designer/ui-designer.iml b/plugins/ui-designer/ui-designer.iml index e68ce2feab61..15cbc57d564d 100644 --- a/plugins/ui-designer/ui-designer.iml +++ b/plugins/ui-designer/ui-designer.iml @@ -19,7 +19,7 @@ - +