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/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/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/IncProjectBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java
index 5d493a8dca64..53e9a0dac93d 100644
--- a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java
+++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java
@@ -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);
}
}
}
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..87e979f037d2 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
@@ -17,6 +17,10 @@ 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 +33,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.*;
@@ -821,7 +821,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);
}
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.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/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/Mappings.java b/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java
index 42142fe8019c..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;
diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/MethodRepr.java b/jps/model/src/org/jetbrains/ether/dependencyView/MethodRepr.java
index b8804dc3285a..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;
diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/ProtoMember.java b/jps/model/src/org/jetbrains/ether/dependencyView/ProtoMember.java
index 191f8f2b3435..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.
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/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 @@
-
+