[371936] Java content assist very non-performant for strings in annotations
diff --git a/bundles/org.eclipse.jst.ws.annotations.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.annotations.core/META-INF/MANIFEST.MF
index 4cba698..0017d36 100644
--- a/bundles/org.eclipse.jst.ws.annotations.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.annotations.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.jst.ws.annotations.core;singleton:=true
-Bundle-Version: 1.1.0.qualifier
+Bundle-Version: 1.2.0.qualifier
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: %pluginProvider
diff --git a/bundles/org.eclipse.jst.ws.annotations.core/src/org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.java b/bundles/org.eclipse.jst.ws.annotations.core/src/org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.java
index cbb7d5e..2b513e8 100644
--- a/bundles/org.eclipse.jst.ws.annotations.core/src/org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.java
+++ b/bundles/org.eclipse.jst.ws.annotations.core/src/org/eclipse/jst/ws/annotations/core/utils/AnnotationUtils.java
@@ -36,7 +36,9 @@
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.Signature;
+import org.eclipse.jdt.core.dom.AST;
import org.eclipse.jdt.core.dom.ASTNode;
+import org.eclipse.jdt.core.dom.ASTParser;
import org.eclipse.jdt.core.dom.ASTVisitor;
import org.eclipse.jdt.core.dom.AbstractTypeDeclaration;
import org.eclipse.jdt.core.dom.Annotation;
@@ -64,7 +66,6 @@
import org.eclipse.jdt.core.dom.rewrite.ImportRewrite;
import org.eclipse.jdt.core.dom.rewrite.ListRewrite;
import org.eclipse.jdt.ui.CodeStyleConfiguration;
-import org.eclipse.jdt.ui.SharedASTProvider;
import org.eclipse.jst.ws.annotations.core.AnnotationDefinition;
import org.eclipse.jst.ws.annotations.core.AnnotationsCorePlugin;
import org.eclipse.jst.ws.annotations.core.AnnotationsManager;
@@ -286,7 +287,7 @@
* @throws CoreException the exception is thrown if the import rewrite fails.
*/
public static TextEdit createAddImportTextEdit(IJavaElement javaElement, String qualifiedName) throws CoreException {
- CompilationUnit compilationUnit = SharedASTProvider.getAST(getCompilationUnitFromJavaElement(javaElement), SharedASTProvider.WAIT_YES, null);
+ CompilationUnit compilationUnit = getAST(getCompilationUnitFromJavaElement(javaElement), false);
ImportRewrite importRewrite = CodeStyleConfiguration.createImportRewrite(compilationUnit, true);
importRewrite.addImport(qualifiedName);
return importRewrite.rewriteImports(null);
@@ -312,7 +313,7 @@
*/
@SuppressWarnings("unchecked")
public static TextEdit createRemoveImportTextEdit(IJavaElement javaElement, String qualifiedName) throws CoreException {
- CompilationUnit compilationUnit = SharedASTProvider.getAST(getCompilationUnitFromJavaElement(javaElement), SharedASTProvider.WAIT_YES, null);
+ CompilationUnit compilationUnit = getAST(getCompilationUnitFromJavaElement(javaElement), false);
ImportRewrite importRewrite = CodeStyleConfiguration.createImportRewrite(compilationUnit, true);
final String annotationSimpleName = qualifiedName.substring(qualifiedName.lastIndexOf(".") + 1);
final List<String> occurences = new ArrayList<String>();
@@ -493,7 +494,7 @@
private static TextEdit createAddAnnotationTextEdit(IPackageDeclaration packageDeclaration, Annotation annotation) throws JavaModelException {
if (packageDeclaration != null && !isAnnotationPresent(packageDeclaration, AnnotationUtils.getAnnotationName(annotation))) {
ICompilationUnit source = getCompilationUnitFromJavaElement(packageDeclaration);
- CompilationUnit compilationUnit = SharedASTProvider.getAST(source, SharedASTProvider.WAIT_YES, null);
+ CompilationUnit compilationUnit = getAST(source, false);
ASTRewrite rewriter = ASTRewrite.create(compilationUnit.getAST());
ListRewrite listRewrite = rewriter.getListRewrite(compilationUnit.getPackage(), PackageDeclaration.ANNOTATIONS_PROPERTY);
@@ -508,14 +509,14 @@
private static TextEdit createRemoveAnnotationTextEdit(IPackageDeclaration packageDeclaration, Annotation annotation) throws JavaModelException {
if (packageDeclaration != null && isAnnotationPresent(packageDeclaration, getAnnotationName(annotation))) {
ICompilationUnit source = getCompilationUnitFromJavaElement(packageDeclaration);
- CompilationUnit compilationUnit = SharedASTProvider.getAST(source, SharedASTProvider.WAIT_YES, null);
+ CompilationUnit compilationUnit = getAST(source, false);
ASTRewrite rewriter = ASTRewrite.create(compilationUnit.getAST());
PackageDeclaration pkgDeclaration = compilationUnit.getPackage();
ListRewrite listRewrite = rewriter.getListRewrite(pkgDeclaration, PackageDeclaration.ANNOTATIONS_PROPERTY);
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("rawtypes")
List originalList = listRewrite.getOriginalList();
for (Object object : originalList) {
if (object instanceof Annotation && compareAnnotationNames((Annotation) object, annotation)) {
@@ -548,7 +549,7 @@
ListRewrite listRewrite = rewriter.getListRewrite(typeDeclaration, getChildListPropertyDescriptorForType(typeDeclaration));
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("rawtypes")
List originalList = listRewrite.getOriginalList();
for (Object object : originalList) {
if (object instanceof Annotation && compareAnnotationNames((Annotation)object, annotation)) {
@@ -581,7 +582,7 @@
ListRewrite listRewrite = rewriter.getListRewrite(methodDeclaration, MethodDeclaration.MODIFIERS2_PROPERTY);
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("rawtypes")
List originalList = listRewrite.getOriginalList();
for (Object object : originalList) {
if (object instanceof Annotation && compareAnnotationNames((Annotation) object, annotation)) {
@@ -615,7 +616,7 @@
ListRewrite listRewrite = rewriter.getListRewrite(fieldDeclaration, FieldDeclaration.MODIFIERS2_PROPERTY);
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("rawtypes")
List originalList = listRewrite.getOriginalList();
for (Object object : originalList) {
if (object instanceof Annotation && compareAnnotationNames((Annotation) object, annotation)) {
@@ -648,7 +649,7 @@
ListRewrite listRewrite = rewriter.getListRewrite(parameter, SingleVariableDeclaration.MODIFIERS2_PROPERTY);
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("rawtypes")
List originalList = listRewrite.getOriginalList();
for (Object object : originalList) {
if (object instanceof Annotation && compareAnnotationNames((Annotation)object, annotation)) {
@@ -694,7 +695,7 @@
ListRewrite listRewrite = rewriter.getListRewrite(annotation, NormalAnnotation.VALUES_PROPERTY);
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("rawtypes")
List originalList = listRewrite.getOriginalList();
for (Object object : originalList) {
if (object instanceof MemberValuePair) {
@@ -785,7 +786,7 @@
*/
@SuppressWarnings("unchecked")
public static AbstractTypeDeclaration getTypeDeclaration(IType type) {
- CompilationUnit compilationUnit = SharedASTProvider.getAST(type.getCompilationUnit(), SharedASTProvider.WAIT_YES, null);
+ CompilationUnit compilationUnit = getAST(type.getCompilationUnit(), false);
List<TypeDeclaration> types = compilationUnit.types();
for (AbstractTypeDeclaration abstractTypeDeclaration : types) {
if (compareTypeNames(abstractTypeDeclaration, type)) {
@@ -1066,10 +1067,9 @@
*/
@SuppressWarnings("unchecked")
public static List<Annotation> getAnnotations(IJavaElement javaElement) {
- ICompilationUnit source = AnnotationUtils.getCompilationUnitFromJavaElement(javaElement);
- CompilationUnit compilationUnit = SharedASTProvider.getAST(source, SharedASTProvider.WAIT_YES, null);
-
if (javaElement.getElementType() == IJavaElement.PACKAGE_DECLARATION) {
+ ICompilationUnit source = AnnotationUtils.getCompilationUnitFromJavaElement(javaElement);
+ CompilationUnit compilationUnit = getAST(source, false);
PackageDeclaration packageDeclaration = compilationUnit.getPackage();
return packageDeclaration.annotations();
}
@@ -1127,7 +1127,7 @@
@SuppressWarnings("unchecked")
public static List<SingleVariableDeclaration> getSingleVariableDeclarations(final IMethod method) {
ICompilationUnit source = method.getCompilationUnit();
- CompilationUnit compilationUnit = SharedASTProvider.getAST(source, SharedASTProvider.WAIT_YES, null);
+ CompilationUnit compilationUnit = getAST(source, true);
final List<SingleVariableDeclaration> parameters = new ArrayList<SingleVariableDeclaration>();
compilationUnit.accept(new ASTVisitor() {
@Override
@@ -1441,4 +1441,12 @@
}
return null;
}
+
+ private static CompilationUnit getAST(ICompilationUnit source, boolean resolveBindings) {
+ final ASTParser parser = ASTParser.newParser(AST.JLS3);
+ parser.setResolveBindings(resolveBindings);
+ parser.setSource(source);
+ return (CompilationUnit) parser.createAST(null);
+ }
+
}
diff --git a/bundles/org.eclipse.jst.ws.cxf.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.cxf.core/META-INF/MANIFEST.MF
index aad7e14..2cd52c8 100644
--- a/bundles/org.eclipse.jst.ws.cxf.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.cxf.core/META-INF/MANIFEST.MF
@@ -46,7 +46,7 @@
org.eclipse.ui.console;bundle-version="[3.3.0,4.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.4.0,3.0.0)",
org.eclipse.jdt.apt.core;bundle-version="[3.3.100,4.0.0)",
- org.eclipse.jst.ws.annotations.core;bundle-version="[1.0.0,1.2.0)",
+ org.eclipse.jst.ws.annotations.core;bundle-version="[1.0.0,1.3.0)",
org.eclipse.jst.ws.jaxws.core;bundle-version="[1.0.0,1.1.0)",
org.eclipse.wst.command.env.core;bundle-version="[1.0.204,1.1.0)",
javax.jws;bundle-version="[2.0.0,2.1.0)",
diff --git a/bundles/org.eclipse.jst.ws.cxf.creation.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.cxf.creation.core/META-INF/MANIFEST.MF
index a1711d5..dd1ca76 100644
--- a/bundles/org.eclipse.jst.ws.cxf.creation.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.cxf.creation.core/META-INF/MANIFEST.MF
@@ -23,7 +23,7 @@
org.eclipse.jst.j2ee;bundle-version="[1.1.100,1.2.0)",
org.eclipse.jst.j2ee.core;bundle-version="[1.1.0,1.3.0)",
org.eclipse.text;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jst.ws.annotations.core;bundle-version="[1.0.0,1.2.0)",
+ org.eclipse.jst.ws.annotations.core;bundle-version="[1.0.0,1.3.0)",
org.eclipse.jst.ws.jaxws.core;bundle-version="[1.0.0,1.1.0)",
org.eclipse.emf.ecore;bundle-version="[2.4.0,3.0.0)",
org.eclipse.jem;bundle-version="[2.0.0,2.1.0)",
diff --git a/bundles/org.eclipse.jst.ws.cxf.creation.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.cxf.creation.ui/META-INF/MANIFEST.MF
index d545d5b..fd974af 100644
--- a/bundles/org.eclipse.jst.ws.cxf.creation.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.cxf.creation.ui/META-INF/MANIFEST.MF
@@ -29,7 +29,7 @@
org.eclipse.jst.ws.creation.ui;bundle-version="[1.0.305,1.1.0)",
org.eclipse.jst.ws;bundle-version="[1.0.304,1.1.0)",
org.eclipse.ltk.core.refactoring;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jst.ws.annotations.core;bundle-version="[1.0.0,1.2.0)",
+ org.eclipse.jst.ws.annotations.core;bundle-version="[1.0.0,1.3.0)",
org.eclipse.jst.ws.jaxws.core;bundle-version="[1.0.0,1.1.0)",
org.eclipse.emf.common;bundle-version="[2.4.0,3.0.0)",
javax.wsdl;bundle-version="[1.6.2,1.7.0)",
diff --git a/bundles/org.eclipse.jst.ws.jaxws.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.jaxws.core/META-INF/MANIFEST.MF
index e1260c1..9d8036e 100644
--- a/bundles/org.eclipse.jst.ws.jaxws.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.jaxws.core/META-INF/MANIFEST.MF
@@ -13,7 +13,7 @@
org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
org.eclipse.jdt.apt.core;bundle-version="[3.3.100,4.0.0)",
org.eclipse.core.filesystem;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.jst.ws.annotations.core;bundle-version="[1.0.0,1.2.0)",
+ org.eclipse.jst.ws.annotations.core;bundle-version="[1.0.0,1.3.0)",
javax.wsdl;bundle-version="[1.6.2,1.7.0)",
javax.xml.soap;bundle-version="[1.2.0,1.3.0)",
org.apache.xerces;bundle-version="[2.9.0,3.0.0)",
diff --git a/bundles/org.eclipse.jst.ws.jaxws.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.jaxws.ui/META-INF/MANIFEST.MF
index bc81bb3..9907335 100755
--- a/bundles/org.eclipse.jst.ws.jaxws.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.jaxws.ui/META-INF/MANIFEST.MF
@@ -17,7 +17,7 @@
org.eclipse.ltk.core.refactoring;bundle-version="[3.4.0,4.0.0)",
org.eclipse.ui.editors;bundle-version="[3.4.0,4.0.0)",
org.eclipse.jdt.launching;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jst.ws.annotations.core;bundle-version="[1.0.0,1.2.0)",
+ org.eclipse.jst.ws.annotations.core;bundle-version="[1.0.0,1.3.0)",
org.eclipse.jdt.apt.core;bundle-version="[3.3.100,4.0.0)",
org.eclipse.jst.ws.jaxws.dom.runtime;bundle-version="[1.0.0,1.1.0)",
org.eclipse.emf.ecore;bundle-version="[2.4.0,3.0.0)"
diff --git a/tests/org.eclipse.jst.ws.jaxb.core.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.jst.ws.jaxb.core.tests/META-INF/MANIFEST.MF
index 34146e9..e16294a 100644
--- a/tests/org.eclipse.jst.ws.jaxb.core.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.jst.ws.jaxb.core.tests/META-INF/MANIFEST.MF
@@ -14,7 +14,7 @@
org.eclipse.jdt.launching;bundle-version="[3.4.0,4.0.0)",
org.eclipse.ltk.core.refactoring;bundle-version="[3.4.0,4.0.0)",
org.eclipse.ltk.ui.refactoring;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jst.ws.annotations.core;bundle-version="[1.0.0,1.2.0)",
+ org.eclipse.jst.ws.annotations.core;bundle-version="[1.0.0,1.3.0)",
org.eclipse.jdt.apt.core;bundle-version="[3.3.100,4.0.0)",
org.eclipse.text;bundle-version="[3.4.0,4.0.0)",
org.eclipse.jdt.ui;bundle-version="[3.4.0,4.0.0)"
diff --git a/tests/org.eclipse.jst.ws.jaxws.core.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.jst.ws.jaxws.core.tests/META-INF/MANIFEST.MF
index 3a99a8d..ade99ca 100644
--- a/tests/org.eclipse.jst.ws.jaxws.core.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.jst.ws.jaxws.core.tests/META-INF/MANIFEST.MF
@@ -14,7 +14,7 @@
org.eclipse.jdt.launching;bundle-version="[3.4.0,4.0.0)",
org.eclipse.ltk.core.refactoring;bundle-version="[3.4.0,4.0.0)",
org.eclipse.ltk.ui.refactoring;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jst.ws.annotations.core;bundle-version="[1.0.0,1.2.0)",
+ org.eclipse.jst.ws.annotations.core;bundle-version="[1.0.0,1.3.0)",
org.eclipse.jdt.apt.core;bundle-version="[3.3.100,4.0.0)",
org.eclipse.text;bundle-version="[3.4.0,4.0.0)",
org.eclipse.jdt.ui;bundle-version="[3.4.0,4.0.0)"