Registered annotations provider as a service instead of static class to avoid problems with projects disposal.
This commit is contained in:
@@ -8,12 +8,6 @@
|
||||
|
||||
<depends optional="true">JUnit</depends>
|
||||
|
||||
<application-components>
|
||||
<component>
|
||||
<implementation-class>org.jetbrains.jet.plugin.extAnnotations.IdeaExternalAnnotationsProvider</implementation-class>
|
||||
</component>
|
||||
</application-components>
|
||||
|
||||
<project-components>
|
||||
<component>
|
||||
<implementation-class>org.jetbrains.jet.plugin.JetStandardLibraryInitializer</implementation-class>
|
||||
@@ -77,6 +71,9 @@
|
||||
<projectService serviceInterface="org.jetbrains.jet.lang.resolve.java.JetFilesProvider"
|
||||
serviceImplementation="org.jetbrains.jet.plugin.project.PluginJetFilesProvider"/>
|
||||
|
||||
<projectService serviceInterface="org.jetbrains.jet.lang.resolve.java.extAnnotations.ExternalAnnotationsProvider"
|
||||
serviceImplementation="org.jetbrains.jet.plugin.extAnnotations.IdeaExternalAnnotationsProvider"/>
|
||||
|
||||
<errorHandler implementation="org.jetbrains.jet.plugin.reporter.KotlinReportSubmitter"/>
|
||||
|
||||
<internalFileTemplate name="Kotlin File"/>
|
||||
|
||||
+9
-18
@@ -31,29 +31,20 @@ import org.jetbrains.jet.lang.resolve.java.extAnnotations.ExternalAnnotationsPro
|
||||
* @since 6/26/12
|
||||
*/
|
||||
@Deprecated
|
||||
public class IdeaExternalAnnotationsProvider extends ExternalAnnotationsProvider implements ApplicationComponent {
|
||||
@Override
|
||||
public PsiAnnotation findExternalAnnotation(@NotNull Project project, @NotNull PsiModifierListOwner listOwner, @NotNull String annotationFQN) {
|
||||
return ExternalAnnotationsManager.getInstance(project).findExternalAnnotation(listOwner, annotationFQN);
|
||||
public class IdeaExternalAnnotationsProvider extends ExternalAnnotationsProvider {
|
||||
private final ExternalAnnotationsManager externalAnnotationsManager;
|
||||
|
||||
public IdeaExternalAnnotationsProvider(ExternalAnnotationsManager externalAnnotationsManager) {
|
||||
this.externalAnnotationsManager = externalAnnotationsManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiAnnotation[] findExternalAnnotations(@NotNull Project project, @NotNull PsiModifierListOwner listOwner) {
|
||||
return ExternalAnnotationsManager.getInstance(project).findExternalAnnotations(listOwner);
|
||||
public synchronized PsiAnnotation findExternalAnnotation(@NotNull PsiModifierListOwner listOwner, @NotNull String annotationFQN) {
|
||||
return externalAnnotationsManager.findExternalAnnotation(listOwner, annotationFQN);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initComponent() {
|
||||
ExternalAnnotationsProvider.setInstance(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disposeComponent() {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String getComponentName() {
|
||||
return getClass().getName();
|
||||
public synchronized PsiAnnotation[] findExternalAnnotations(@NotNull PsiModifierListOwner listOwner) {
|
||||
return externalAnnotationsManager.findExternalAnnotations(listOwner);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user