diff --git a/RegExpSupport/test/org/intellij/lang/regexp/RegExpParsingTest.java b/RegExpSupport/test/org/intellij/lang/regexp/RegExpParsingTest.java index 7d21bc7f65e8..e73c4d6ebb58 100644 --- a/RegExpSupport/test/org/intellij/lang/regexp/RegExpParsingTest.java +++ b/RegExpSupport/test/org/intellij/lang/regexp/RegExpParsingTest.java @@ -24,7 +24,7 @@ public class RegExpParsingTest extends ParsingTestCase { @Override protected void setUp() throws Exception { super.setUp(); - myProject.registerService(SmartPointerManager.class, new MockSmartPointerManager()); + project.registerService(SmartPointerManager.class, new MockSmartPointerManager()); } @Override diff --git a/java/java-psi-impl/src/com/intellij/core/JavaCoreApplicationEnvironment.java b/java/java-psi-impl/src/com/intellij/core/JavaCoreApplicationEnvironment.java index 65f47ab13a15..e5fd695ecf2a 100644 --- a/java/java-psi-impl/src/com/intellij/core/JavaCoreApplicationEnvironment.java +++ b/java/java-psi-impl/src/com/intellij/core/JavaCoreApplicationEnvironment.java @@ -65,11 +65,11 @@ public class JavaCoreApplicationEnvironment extends CoreApplicationEnvironment { registerApplicationExtensionPoint(ContainerProvider.EP_NAME, ContainerProvider.class); addExtension(ContainerProvider.EP_NAME, new JavaContainerProvider()); - myApplication.registerService(PsiPackageImplementationHelper.class, new CorePsiPackageImplementationHelper()); + application.registerService(PsiPackageImplementationHelper.class, new CorePsiPackageImplementationHelper()); - myApplication.registerService(PsiSubstitutorFactory.class, new PsiSubstitutorFactoryImpl()); - myApplication.registerService(JavaDirectoryService.class, createJavaDirectoryService()); - myApplication.registerService(JavaVersionService.class, new JavaVersionService()); + application.registerService(PsiSubstitutorFactory.class, new PsiSubstitutorFactoryImpl()); + application.registerService(JavaDirectoryService.class, createJavaDirectoryService()); + application.registerService(JavaVersionService.class, new JavaVersionService()); addExplicitExtension(ItemPresentationProviders.INSTANCE, PsiPackage.class, new PackagePresentationProvider()); addExplicitExtension(ItemPresentationProviders.INSTANCE, PsiClass.class, new ClassPresentationProvider()); diff --git a/java/java-psi-impl/src/com/intellij/core/JavaCoreProjectEnvironment.java b/java/java-psi-impl/src/com/intellij/core/JavaCoreProjectEnvironment.java index 3be3ef339158..894fb6958c91 100644 --- a/java/java-psi-impl/src/com/intellij/core/JavaCoreProjectEnvironment.java +++ b/java/java-psi-impl/src/com/intellij/core/JavaCoreProjectEnvironment.java @@ -37,34 +37,34 @@ public class JavaCoreProjectEnvironment extends CoreProjectEnvironment { public JavaCoreProjectEnvironment(@NotNull Disposable parentDisposable, @NotNull CoreApplicationEnvironment applicationEnvironment) { super(parentDisposable, applicationEnvironment); - myProject.registerService(PsiElementFactory.class, new PsiElementFactoryImpl(myProject)); - myProject.registerService(JavaPsiImplementationHelper.class, createJavaPsiImplementationHelper()); - myProject.registerService(PsiResolveHelper.class, new PsiResolveHelperImpl(myProject)); - myProject.registerService(LanguageLevelProjectExtension.class, new CoreLanguageLevelProjectExtension()); - myProject.registerService(JavaResolveCache.class, new JavaResolveCache(myProject)); - myProject.registerService(JavaCodeStyleSettingsFacade.class, new CoreJavaCodeStyleSettingsFacade()); - myProject.registerService(JavaFileCodeStyleFacade.class, new CoreJavaFileCodeStyleFacade()); - myProject.registerService(JavaCodeStyleManager.class, new CoreJavaCodeStyleManager()); - myProject.registerService(ControlFlowFactory.class, new ControlFlowFactory(myProject)); + project.registerService(PsiElementFactory.class, new PsiElementFactoryImpl(project)); + project.registerService(JavaPsiImplementationHelper.class, createJavaPsiImplementationHelper()); + project.registerService(PsiResolveHelper.class, new PsiResolveHelperImpl(project)); + project.registerService(LanguageLevelProjectExtension.class, new CoreLanguageLevelProjectExtension()); + project.registerService(JavaResolveCache.class, new JavaResolveCache(project)); + project.registerService(JavaCodeStyleSettingsFacade.class, new CoreJavaCodeStyleSettingsFacade()); + project.registerService(JavaFileCodeStyleFacade.class, new CoreJavaFileCodeStyleFacade()); + project.registerService(JavaCodeStyleManager.class, new CoreJavaCodeStyleManager()); + project.registerService(ControlFlowFactory.class, new ControlFlowFactory(project)); myPackageIndex = createCorePackageIndex(); - myProject.registerService(PackageIndex.class, myPackageIndex); + project.registerService(PackageIndex.class, myPackageIndex); myFileManager = createCoreFileManager(); - myProject.registerService(JavaFileManager.class, myFileManager); + project.registerService(JavaFileManager.class, myFileManager); - myProject.registerService(JvmPsiConversionHelper.class, new JvmPsiConversionHelperImpl()); + project.registerService(JvmPsiConversionHelper.class, new JvmPsiConversionHelperImpl()); registerJavaPsiFacade(); - myProject.registerService(JvmFacade.class, new JvmFacadeImpl(myProject)); + project.registerService(JvmFacade.class, new JvmFacadeImpl(project)); } protected void registerJavaPsiFacade() { - JavaPsiFacadeImpl javaPsiFacade = new JavaPsiFacadeImpl(myProject); - myProject.registerService(JavaPsiFacade.class, javaPsiFacade); + JavaPsiFacadeImpl javaPsiFacade = new JavaPsiFacadeImpl(project); + project.registerService(JavaPsiFacade.class, javaPsiFacade); } protected CoreJavaPsiImplementationHelper createJavaPsiImplementationHelper() { - return new CoreJavaPsiImplementationHelper(myProject); + return new CoreJavaPsiImplementationHelper(project); } protected JavaFileManager createCoreFileManager() { diff --git a/platform/core-impl/src/com/intellij/core/CoreApplicationEnvironment.java b/platform/core-impl/src/com/intellij/core/CoreApplicationEnvironment.java index a65728400bf8..d8cb9670823b 100644 --- a/platform/core-impl/src/com/intellij/core/CoreApplicationEnvironment.java +++ b/platform/core-impl/src/com/intellij/core/CoreApplicationEnvironment.java @@ -59,12 +59,11 @@ import java.util.List; public class CoreApplicationEnvironment { private final CoreFileTypeRegistry myFileTypeRegistry; - protected final MockApplication myApplication; + protected final MockApplication application; private final CoreLocalFileSystem myLocalFileSystem; - @NotNull - protected final VirtualFileSystem myJarFileSystem; + protected final @NotNull VirtualFileSystem myJarFileSystem; private final VirtualFileSystem myJrtFileSystem; - @NotNull private final Disposable myParentDisposable; + private final @NotNull Disposable myParentDisposable; private final boolean myUnitTestMode; public CoreApplicationEnvironment(@NotNull Disposable parentDisposable) { @@ -79,8 +78,8 @@ public class CoreApplicationEnvironment { myFileTypeRegistry = new CoreFileTypeRegistry(); - myApplication = createApplication(myParentDisposable); - ApplicationManager.setApplication(myApplication, + application = createApplication(myParentDisposable); + ApplicationManager.setApplication(application, () -> myFileTypeRegistry, myParentDisposable); myLocalFileSystem = createLocalFileSystem(); @@ -111,22 +110,20 @@ public class CoreApplicationEnvironment { registerApplicationService(CommandProcessor.class, new CoreCommandProcessor()); registerApplicationService(GraphAlgorithms.class, new GraphAlgorithmsImpl()); - myApplication.registerService(ApplicationInfo.class, ApplicationInfoImpl.class); + application.registerService(ApplicationInfo.class, ApplicationInfoImpl.class); registerApplicationExtensionPoint(DynamicBundle.LanguageBundleEP.EP_NAME, DynamicBundle.LanguageBundleEP.class); } public void registerApplicationService(@NotNull Class serviceInterface, @NotNull T serviceImplementation) { - myApplication.registerService(serviceInterface, serviceImplementation); + application.registerService(serviceInterface, serviceImplementation); } - @NotNull - protected VirtualFilePointerManager createVirtualFilePointerManager() { + protected @NotNull VirtualFilePointerManager createVirtualFilePointerManager() { return new CoreVirtualFilePointerManager(); } - @NotNull - protected MockApplication createApplication(@NotNull Disposable parentDisposable) { + protected @NotNull MockApplication createApplication(@NotNull Disposable parentDisposable) { return new MockApplication(parentDisposable) { @Override public boolean isUnitTestMode() { @@ -135,45 +132,38 @@ public class CoreApplicationEnvironment { }; } - @NotNull - protected JobLauncher createJobLauncher() { + protected @NotNull JobLauncher createJobLauncher() { return new CoreJobLauncher(); } - @NotNull - protected ProgressManager createProgressIndicatorProvider() { + protected @NotNull ProgressManager createProgressIndicatorProvider() { return new CoreProgressManager(); } - @NotNull - protected VirtualFileSystem createJarFileSystem() { + protected @NotNull VirtualFileSystem createJarFileSystem() { return new CoreJarFileSystem(); } - @NotNull - protected CoreLocalFileSystem createLocalFileSystem() { + protected @NotNull CoreLocalFileSystem createLocalFileSystem() { return new CoreLocalFileSystem(); } - @Nullable - protected VirtualFileSystem createJrtFileSystem() { + protected @Nullable VirtualFileSystem createJrtFileSystem() { return null; } - @NotNull - public MockApplication getApplication() { - return myApplication; + public @NotNull MockApplication getApplication() { + return application; } - @NotNull - public Disposable getParentDisposable() { + public @NotNull Disposable getParentDisposable() { return myParentDisposable; } public void registerApplicationComponent(@NotNull Class interfaceClass, @NotNull T implementation) { - registerComponentInstance(myApplication.getPicoContainer(), interfaceClass, implementation); + registerComponentInstance(application.getPicoContainer(), interfaceClass, implementation); if (implementation instanceof Disposable) { - Disposer.register(myApplication, (Disposable)implementation); + Disposer.register(application, (Disposable)implementation); } } @@ -198,15 +188,15 @@ public class CoreApplicationEnvironment { addExplicitExtension(LanguageParserDefinitions.INSTANCE, language, parserDefinition); } - public void addExplicitExtension(@NotNull final FileTypeExtension instance, @NotNull final FileType fileType, @NotNull final T object) { + public void addExplicitExtension(final @NotNull FileTypeExtension instance, final @NotNull FileType fileType, final @NotNull T object) { instance.addExplicitExtension(fileType, object, myParentDisposable); } - public void addExplicitExtension(@NotNull final ClassExtension instance, @NotNull final Class aClass, @NotNull final T object) { + public void addExplicitExtension(final @NotNull ClassExtension instance, final @NotNull Class aClass, final @NotNull T object) { instance.addExplicitExtension(aClass, object, myParentDisposable); } - public void addExtension(@NotNull ExtensionPointName name, @NotNull final T extension) { + public void addExtension(@NotNull ExtensionPointName name, final @NotNull T extension) { final ExtensionPoint extensionPoint = Extensions.getRootArea().getExtensionPoint(name); //noinspection TestOnlyProblems extensionPoint.registerExtension(extension, myParentDisposable); @@ -255,18 +245,15 @@ public class CoreApplicationEnvironment { descriptor.registerExtensions(areaImpl.extensionPoints, descriptor.appContainerDescriptor, null); } - @NotNull - public CoreLocalFileSystem getLocalFileSystem() { + public @NotNull CoreLocalFileSystem getLocalFileSystem() { return myLocalFileSystem; } - @NotNull - public VirtualFileSystem getJarFileSystem() { + public @NotNull VirtualFileSystem getJarFileSystem() { return myJarFileSystem; } - @Nullable - public VirtualFileSystem getJrtFileSystem() { + public @Nullable VirtualFileSystem getJrtFileSystem() { return myJrtFileSystem; } } diff --git a/platform/core-impl/src/com/intellij/core/CoreProjectEnvironment.java b/platform/core-impl/src/com/intellij/core/CoreProjectEnvironment.java index 766640b92f2d..df9d0398f2a0 100644 --- a/platform/core-impl/src/com/intellij/core/CoreProjectEnvironment.java +++ b/platform/core-impl/src/com/intellij/core/CoreProjectEnvironment.java @@ -31,38 +31,38 @@ public class CoreProjectEnvironment { protected final FileIndexFacade myFileIndexFacade; protected final PsiManagerImpl myPsiManager; - protected final MockProject myProject; + protected final MockProject project; public CoreProjectEnvironment(@NotNull Disposable parentDisposable, @NotNull CoreApplicationEnvironment applicationEnvironment) { myParentDisposable = parentDisposable; myEnvironment = applicationEnvironment; - myProject = createProject(myEnvironment.getApplication().getPicoContainer(), myParentDisposable); + project = createProject(myEnvironment.getApplication().getPicoContainer(), myParentDisposable); preregisterServices(); myFileIndexFacade = createFileIndexFacade(); - PsiModificationTrackerImpl modificationTracker = new PsiModificationTrackerImpl(myProject); - myProject.registerService(PsiModificationTracker.class, modificationTracker); - myProject.registerService(FileIndexFacade.class, myFileIndexFacade); - myProject.registerService(ResolveCache.class, new ResolveCache(myProject)); + PsiModificationTrackerImpl modificationTracker = new PsiModificationTrackerImpl(project); + project.registerService(PsiModificationTracker.class, modificationTracker); + project.registerService(FileIndexFacade.class, myFileIndexFacade); + project.registerService(ResolveCache.class, new ResolveCache(project)); - myPsiManager = new PsiManagerImpl(myProject); - myProject.registerService(PsiManager.class, myPsiManager); - myProject.registerService(SmartPointerManager.class, SmartPointerManagerImpl.class); - myProject.registerService(DocumentCommitProcessor.class, new MockDocumentCommitProcessor()); - myProject.registerService(PsiDocumentManager.class, new CorePsiDocumentManager(myProject)); + myPsiManager = new PsiManagerImpl(project); + project.registerService(PsiManager.class, myPsiManager); + project.registerService(SmartPointerManager.class, SmartPointerManagerImpl.class); + project.registerService(DocumentCommitProcessor.class, new MockDocumentCommitProcessor()); + project.registerService(PsiDocumentManager.class, new CorePsiDocumentManager(project)); - myProject.registerService(ResolveScopeManager.class, createResolveScopeManager(myPsiManager)); + project.registerService(ResolveScopeManager.class, createResolveScopeManager(myPsiManager)); - myProject.registerService(PsiFileFactory.class, new PsiFileFactoryImpl(myPsiManager)); - myProject.registerService(CachedValuesManager.class, new CachedValuesManagerImpl(myProject, new PsiCachedValuesFactory(myProject))); - myProject.registerService(PsiDirectoryFactory.class, new PsiDirectoryFactoryImpl(myProject)); - myProject.registerService(ProjectScopeBuilder.class, createProjectScopeBuilder()); - myProject.registerService(DumbService.class, new MockDumbService(myProject)); - myProject.registerService(DumbUtil.class, new MockDumbUtil()); - myProject.registerService(CoreEncodingProjectManager.class, CoreEncodingProjectManager.class); - myProject.registerService(InjectedLanguageManager.class, new CoreInjectedLanguageManager()); + project.registerService(PsiFileFactory.class, new PsiFileFactoryImpl(myPsiManager)); + project.registerService(CachedValuesManager.class, new CachedValuesManagerImpl(project, new PsiCachedValuesFactory(project))); + project.registerService(PsiDirectoryFactory.class, new PsiDirectoryFactoryImpl(project)); + project.registerService(ProjectScopeBuilder.class, createProjectScopeBuilder()); + project.registerService(DumbService.class, new MockDumbService(project)); + project.registerService(DumbUtil.class, new MockDumbUtil()); + project.registerService(CoreEncodingProjectManager.class, CoreEncodingProjectManager.class); + project.registerService(InjectedLanguageManager.class, new CoreInjectedLanguageManager()); } @NotNull @@ -72,7 +72,7 @@ public class CoreProjectEnvironment { @NotNull protected ProjectScopeBuilder createProjectScopeBuilder() { - return new CoreProjectScopeBuilder(myProject, myFileIndexFacade); + return new CoreProjectScopeBuilder(project, myFileIndexFacade); } protected void preregisterServices() { @@ -81,7 +81,7 @@ public class CoreProjectEnvironment { @NotNull protected FileIndexFacade createFileIndexFacade() { - return new MockFileIndexFacade(myProject); + return new MockFileIndexFacade(project); } @NotNull @@ -91,13 +91,13 @@ public class CoreProjectEnvironment { public void addProjectExtension(@NotNull ExtensionPointName name, @NotNull final T extension) { //noinspection TestOnlyProblems - name.getPoint(myProject).registerExtension(extension, myParentDisposable); + name.getPoint(project).registerExtension(extension, myParentDisposable); } public void registerProjectComponent(@NotNull Class interfaceClass, @NotNull T implementation) { - CoreApplicationEnvironment.registerComponentInstance(myProject.getPicoContainer(), interfaceClass, implementation); + CoreApplicationEnvironment.registerComponentInstance(project.getPicoContainer(), interfaceClass, implementation); if (implementation instanceof Disposable) { - Disposer.register(myProject, (Disposable) implementation); + Disposer.register(project, (Disposable) implementation); } } @@ -113,6 +113,6 @@ public class CoreProjectEnvironment { @NotNull public MockProject getProject() { - return myProject; + return project; } } diff --git a/platform/core-impl/src/com/intellij/mock/MockApplication.java b/platform/core-impl/src/com/intellij/mock/MockApplication.java index 31a83914146c..c7ba459a50f2 100644 --- a/platform/core-impl/src/com/intellij/mock/MockApplication.java +++ b/platform/core-impl/src/com/intellij/mock/MockApplication.java @@ -36,17 +36,15 @@ public class MockApplication extends MockComponentManager implements Application Extensions.setRootArea(getExtensionArea(), parentDisposable); } - @NotNull @TestOnly - public static MockApplication setUp(@NotNull Disposable parentDisposable) { + public static @NotNull MockApplication setUp(@NotNull Disposable parentDisposable) { MockApplication app = new MockApplication(parentDisposable); ApplicationManager.setApplication(app, parentDisposable); return app; } - @Nullable @Override - public final T getServiceIfCreated(@NotNull Class serviceClass) { + public final @Nullable T getServiceIfCreated(@NotNull Class serviceClass) { return doGetService(serviceClass, false); } @@ -151,15 +149,13 @@ public class MockApplication extends MockComponentManager implements Application return true; } - @NotNull @Override - public Future executeOnPooledThread(@NotNull Runnable action) { + public @NotNull Future executeOnPooledThread(@NotNull Runnable action) { return AppExecutorUtil.getAppExecutorService().submit(action); } - @NotNull @Override - public Future executeOnPooledThread(@NotNull Callable action) { + public @NotNull Future executeOnPooledThread(@NotNull Callable action) { return AppExecutorUtil.getAppExecutorService().submit(action); } @@ -213,15 +209,13 @@ public class MockApplication extends MockComponentManager implements Application return computation.compute(); } - @NotNull @Override - public AccessToken acquireReadActionLock() { + public @NotNull AccessToken acquireReadActionLock() { return AccessToken.EMPTY_ACCESS_TOKEN; } - @NotNull @Override - public AccessToken acquireWriteActionLock(@Nullable Class marker) { + public @NotNull AccessToken acquireWriteActionLock(@Nullable Class marker) { return AccessToken.EMPTY_ACCESS_TOKEN; } @@ -252,18 +246,17 @@ public class MockApplication extends MockComponentManager implements Application return 0; } - @NotNull @Override - public ModalityState getNoneModalityState() { + public @NotNull ModalityState getNoneModalityState() { return ModalityState.NON_MODAL; } @Override - public void invokeLater(@NotNull final Runnable runnable, @NotNull final Condition expired) { + public void invokeLater(final @NotNull Runnable runnable, final @NotNull Condition expired) { } @Override - public void invokeLater(@NotNull final Runnable runnable, @NotNull final ModalityState state, @NotNull final Condition expired) { + public void invokeLater(final @NotNull Runnable runnable, final @NotNull ModalityState state, final @NotNull Condition expired) { } @Override @@ -276,8 +269,7 @@ public class MockApplication extends MockComponentManager implements Application @Deprecated @Override - @NotNull - public ModalityInvokator getInvokator() { + public @NotNull ModalityInvokator getInvokator() { throw new UnsupportedOperationException(); } @@ -301,27 +293,23 @@ public class MockApplication extends MockComponentManager implements Application invokeAndWait(runnable, getDefaultModalityState()); } - @NotNull @Override - public ModalityState getCurrentModalityState() { + public @NotNull ModalityState getCurrentModalityState() { return getNoneModalityState(); } - @NotNull @Override - public ModalityState getAnyModalityState() { + public @NotNull ModalityState getAnyModalityState() { return AnyModalityState.ANY; } - @NotNull @Override - public ModalityState getModalityStateForComponent(@NotNull Component c) { + public @NotNull ModalityState getModalityStateForComponent(@NotNull Component c) { return getNoneModalityState(); } - @NotNull @Override - public ModalityState getDefaultModalityState() { + public @NotNull ModalityState getDefaultModalityState() { return getNoneModalityState(); } @@ -358,7 +346,7 @@ public class MockApplication extends MockComponentManager implements Application } @Override - public void assertIsDispatchThread(@Nullable final JComponent component) { + public void assertIsDispatchThread(final @Nullable JComponent component) { } @Override diff --git a/platform/core-impl/src/com/intellij/mock/MockComponentManager.java b/platform/core-impl/src/com/intellij/mock/MockComponentManager.java index 9076cd2f9019..298355ee6bba 100644 --- a/platform/core-impl/src/com/intellij/mock/MockComponentManager.java +++ b/platform/core-impl/src/com/intellij/mock/MockComponentManager.java @@ -23,7 +23,6 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.picocontainer.ComponentAdapter; -import org.picocontainer.MutablePicoContainer; import org.picocontainer.PicoContainer; import java.util.HashMap; @@ -32,7 +31,7 @@ import java.util.Set; public class MockComponentManager extends UserDataHolderBase implements ComponentManager, MessageBusOwner { private final MessageBus myMessageBus = MessageBusFactoryImpl.createRootBus(this); - private final DefaultPicoContainer myPicoContainer; + private final DefaultPicoContainer picoContainer; private final ExtensionsAreaImpl myExtensionArea; private final Map, Object> myComponents = new HashMap<>(); @@ -40,7 +39,7 @@ public class MockComponentManager extends UserDataHolderBase implements Componen private boolean myDisposed; public MockComponentManager(@Nullable PicoContainer parent, @NotNull Disposable parentDisposable) { - myPicoContainer = new DefaultPicoContainer((DefaultPicoContainer)parent) { + picoContainer = new DefaultPicoContainer((DefaultPicoContainer)parent) { @Override public @Nullable Object getComponentInstance(@NotNull Object componentKey) { if (myDisposed) { @@ -53,11 +52,15 @@ public class MockComponentManager extends UserDataHolderBase implements Componen } }; - myPicoContainer.registerComponentInstance(getClass(), this); + picoContainer.registerComponentInstance(getClass(), this); myExtensionArea = new ExtensionsAreaImpl(this); Disposer.register(parentDisposable, this); } + public DefaultPicoContainer getPicoContainer() { + return picoContainer; + } + @Override public @NotNull ExtensionsAreaImpl getExtensionArea() { return myExtensionArea; @@ -96,8 +99,8 @@ public class MockComponentManager extends UserDataHolderBase implements Componen } public void registerService(@NotNull Class serviceInterface, @NotNull Class serviceImplementation) { - myPicoContainer.unregisterComponent(serviceInterface.getName()); - myPicoContainer.registerComponentImplementation(serviceInterface.getName(), serviceImplementation); + picoContainer.unregisterComponent(serviceInterface.getName()); + picoContainer.registerComponentImplementation(serviceInterface.getName(), serviceImplementation); } public void registerService(@NotNull Class serviceImplementation) { @@ -105,14 +108,14 @@ public class MockComponentManager extends UserDataHolderBase implements Componen } public void registerService(@NotNull Class serviceInterface, @NotNull T serviceImplementation) { - myPicoContainer.registerComponentInstance(serviceInterface.getName(), serviceImplementation); + picoContainer.registerComponentInstance(serviceInterface.getName(), serviceImplementation); registerComponentInDisposer(serviceImplementation); } public void registerService(@NotNull Class serviceInterface, @NotNull T serviceImplementation, @NotNull Disposable parentDisposable) { String key = serviceInterface.getName(); registerService(serviceInterface, serviceImplementation); - Disposer.register(parentDisposable, () -> myPicoContainer.unregisterComponent(key)); + Disposer.register(parentDisposable, () -> picoContainer.unregisterComponent(key)); } public void addComponent(@NotNull Class interfaceClass, @NotNull T instance) { @@ -122,25 +125,20 @@ public class MockComponentManager extends UserDataHolderBase implements Componen @Override public @Nullable T getComponent(@NotNull Class interfaceClass) { - final Object o = myPicoContainer.getComponentInstance(interfaceClass); + final Object o = picoContainer.getComponentInstance(interfaceClass); //noinspection unchecked return (T)(o != null ? o : myComponents.get(interfaceClass)); } @Override public T getService(@NotNull Class serviceClass) { - T result = myPicoContainer.getService(serviceClass); + T result = picoContainer.getService(serviceClass); registerComponentInDisposer(result); return result; } - @Override - public final @NotNull MutablePicoContainer getPicoContainer() { - return myPicoContainer; - } - public final ComponentAdapter getComponentAdapter(@NotNull Object componentKey) { - return myPicoContainer.getComponentAdapter(componentKey); + return picoContainer.getComponentAdapter(componentKey); } @Override diff --git a/platform/core-impl/src/com/intellij/mock/MockProject.java b/platform/core-impl/src/com/intellij/mock/MockProject.java index 771642830f21..70df6b75f69e 100644 --- a/platform/core-impl/src/com/intellij/mock/MockProject.java +++ b/platform/core-impl/src/com/intellij/mock/MockProject.java @@ -9,7 +9,6 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Condition; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.util.pico.DefaultPicoContainer; import kotlinx.coroutines.CoroutineScope; import kotlinx.coroutines.GlobalScope; import org.jetbrains.annotations.NonNls; @@ -99,8 +98,7 @@ public class MockProject extends MockComponentManager implements Project { public @NotNull List getComponentInstancesOfType(@NotNull Class componentType) { List result = new ArrayList<>(); - DefaultPicoContainer container = (DefaultPicoContainer)getPicoContainer(); - container.getComponentAdapters().forEach(componentAdapter -> { + getPicoContainer().getComponentAdapters().forEach(componentAdapter -> { Class descendant = componentAdapter.getComponentImplementation(); if (componentType == descendant || componentType.isAssignableFrom(descendant)) { //noinspection unchecked diff --git a/platform/extensions/src/com/intellij/openapi/components/ComponentManager.java b/platform/extensions/src/com/intellij/openapi/components/ComponentManager.java index a7efd6343d30..d621fd30faba 100644 --- a/platform/extensions/src/com/intellij/openapi/components/ComponentManager.java +++ b/platform/extensions/src/com/intellij/openapi/components/ComponentManager.java @@ -14,7 +14,6 @@ import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.picocontainer.PicoContainer; import java.util.Collections; import java.util.List; @@ -48,20 +47,12 @@ public interface ComponentManager extends UserDataHolder, Disposable, AreaInstan /** * Checks whether there is a component with the specified interface class. * - * @param interfaceClass interface class of component to be checked + * @param interfaceClass interface class of a component to be checked * @return {@code true} if there is a component with the specified interface class; * {@code false} otherwise */ boolean hasComponent(@NotNull Class interfaceClass); - /** - * @deprecated Use ComponentManager API - */ - @Deprecated - @ApiStatus.Internal - @ApiStatus.ScheduledForRemoval - @NotNull PicoContainer getPicoContainer(); - @ApiStatus.Internal boolean isInjectionForExtensionSupported(); diff --git a/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionPointImplTest.java b/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionPointImplTest.java index ce6f617447ee..4b5d5dfd69e1 100644 --- a/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionPointImplTest.java +++ b/platform/extensions/testSrc/com/intellij/openapi/extensions/impl/ExtensionPointImplTest.java @@ -17,7 +17,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.junit.After; import org.junit.Test; -import org.picocontainer.PicoContainer; import java.util.*; import java.util.function.BiConsumer; @@ -367,11 +366,6 @@ public class ExtensionPointImplTest { throw new UnsupportedOperationException(); } - @Override - public @NotNull PicoContainer getPicoContainer() { - throw new UnsupportedOperationException(); - } - @Override public boolean isInjectionForExtensionSupported() { return false; diff --git a/platform/platform-impl/src/com/intellij/openapi/command/impl/DummyProject.java b/platform/platform-impl/src/com/intellij/openapi/command/impl/DummyProject.java index 24787e35ab51..a8ebdeff388a 100644 --- a/platform/platform-impl/src/com/intellij/openapi/command/impl/DummyProject.java +++ b/platform/platform-impl/src/com/intellij/openapi/command/impl/DummyProject.java @@ -18,7 +18,6 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.SystemIndependent; -import org.picocontainer.PicoContainer; import java.util.Map; @@ -86,11 +85,6 @@ public final class DummyProject extends UserDataHolderBase implements Project { return false; } - @Override - public @NotNull PicoContainer getPicoContainer() { - throw new UnsupportedOperationException("getPicoContainer is not implement in : " + getClass()); - } - @Override public boolean isInjectionForExtensionSupported() { return false; diff --git a/platform/platform-impl/src/com/intellij/openapi/project/impl/DefaultProject.java b/platform/platform-impl/src/com/intellij/openapi/project/impl/DefaultProject.java index d03efac0c5a6..e130016331a1 100644 --- a/platform/platform-impl/src/com/intellij/openapi/project/impl/DefaultProject.java +++ b/platform/platform-impl/src/com/intellij/openapi/project/impl/DefaultProject.java @@ -25,7 +25,6 @@ import com.intellij.serviceContainer.ComponentManagerImpl; import com.intellij.util.messages.MessageBus; import kotlinx.coroutines.CoroutineScope; import org.jetbrains.annotations.*; -import org.picocontainer.PicoContainer; import java.util.Map; @@ -230,11 +229,6 @@ final class DefaultProject extends UserDataHolderBase implements Project { return getDelegate().getComponent(interfaceClass); } - @Override - public @NotNull PicoContainer getPicoContainer() { - throw new UnsupportedOperationException(); - } - @Override public boolean isInjectionForExtensionSupported() { return true; diff --git a/platform/service-container/src/com/intellij/serviceContainer/ComponentManagerImpl.kt b/platform/service-container/src/com/intellij/serviceContainer/ComponentManagerImpl.kt index ffe704ea70db..f39fbd531426 100644 --- a/platform/service-container/src/com/intellij/serviceContainer/ComponentManagerImpl.kt +++ b/platform/service-container/src/com/intellij/serviceContainer/ComponentManagerImpl.kt @@ -1,5 +1,5 @@ // Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -@file:Suppress("ReplaceNegatedIsEmptyWithIsNotEmpty", "ReplaceGetOrSet", "ReplacePutWithAssignment", "OVERRIDE_DEPRECATION") +@file:Suppress("ReplaceNegatedIsEmptyWithIsNotEmpty", "ReplaceGetOrSet", "ReplacePutWithAssignment") package com.intellij.serviceContainer import com.intellij.concurrency.resetThreadContext @@ -17,6 +17,7 @@ import com.intellij.openapi.components.ServiceDescriptor.PreloadMode import com.intellij.openapi.components.impl.stores.IComponentStore import com.intellij.openapi.diagnostic.Attachment import com.intellij.openapi.diagnostic.ControlFlowException +import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.diagnostic.logger import com.intellij.openapi.extensions.* import com.intellij.openapi.extensions.impl.ExtensionPointImpl @@ -40,7 +41,6 @@ import kotlinx.coroutines.* import org.jetbrains.annotations.ApiStatus.Internal import org.jetbrains.annotations.TestOnly import org.picocontainer.ComponentAdapter -import org.picocontainer.PicoContainer import java.lang.invoke.MethodHandle import java.lang.invoke.MethodHandles import java.lang.invoke.MethodType @@ -55,7 +55,9 @@ import java.util.concurrent.atomic.AtomicReference import kotlin.coroutines.CoroutineContext import kotlin.coroutines.EmptyCoroutineContext -internal val LOG = logger() +internal val LOG: Logger + get() = logger() + private val constructorParameterResolver = ConstructorParameterResolver() private val methodLookup = MethodHandles.lookup() private val emptyConstructorMethodType = MethodType.methodType(Void.TYPE) @@ -148,9 +150,11 @@ abstract class ComponentManagerImpl( @Volatile private var isServicePreloadingCancelled = false - private fun debugString(short: Boolean = false): String = "${if (short) javaClass.simpleName else javaClass.name}@${System.identityHashCode(this)}" + private fun debugString(short: Boolean = false): String { + return "${if (short) javaClass.simpleName else javaClass.name}@${System.identityHashCode(this)}" + } - internal val serviceParentDisposable = Disposer.newDisposable("services of ${debugString()}") + internal val serviceParentDisposable: Disposable = Disposer.newDisposable("services of ${debugString()}") protected open val isLightServiceSupported = parent?.parent == null protected open val isMessageBusSupported = parent?.parent == null @@ -191,16 +195,6 @@ abstract class ComponentManagerImpl( } } - private val picoContainerAdapter: PicoContainer = object : PicoContainer { - override fun getComponentInstance(componentKey: Any): Any? { - return this@ComponentManagerImpl.getComponentInstance(componentKey) - } - - override fun getComponentInstanceOfType(componentType: Class<*>): Any? { - throw UnsupportedOperationException("Do not use getComponentInstanceOfType()") - } - } - internal fun getComponentInstance(componentKey: Any): Any? { assertComponentsSupported() @@ -209,12 +203,6 @@ abstract class ComponentManagerImpl( return if (adapter == null) parent?.getComponentInstance(componentKey) else adapter.componentInstance } - @Deprecated("Use ComponentManager API", level = DeprecationLevel.ERROR) - final override fun getPicoContainer(): PicoContainer { - checkState() - return picoContainerAdapter - } - private fun registerAdapter(componentAdapter: ComponentAdapter, pluginDescriptor: PluginDescriptor?) { if (componentKeyToAdapter.putIfAbsent(componentAdapter.componentKey, componentAdapter) != null) { val error = "Key ${componentAdapter.componentKey} duplicated" @@ -292,8 +280,8 @@ abstract class ComponentManagerImpl( var activity = activityNamePrefix?.let { StartUpMeasurer.startActivity("${it}service and ep registration") } - // register services before registering extensions because plugins can access services in their - // extensions which can be invoked right away if the plugin is loaded dynamically + // register services before registering extensions because plugins can access services in their extensions, + // which can be invoked right away if the plugin is loaded dynamically val extensionPoints = if (precomputedExtensionModel == null) HashMap(extensionArea.extensionPoints) else null for (rootModule in modules) { executeRegisterTask(rootModule) { module -> @@ -1488,7 +1476,7 @@ abstract class ComponentManagerImpl( * Key: plugin coroutine scope. * Value: intersection of this container scope and plugin coroutine scope. */ - private val pluginScopes: AtomicReference> = AtomicReference(persistentHashMapOf()) + private val pluginScopes = AtomicReference>(persistentHashMapOf()) internal fun instanceCoroutineScope(pluginClass: Class<*>): CoroutineScope { val pluginClassloader = pluginClass.classLoader @@ -1498,10 +1486,11 @@ abstract class ComponentManagerImpl( ?: pluginScope intersectionCoroutineScope(parentScope) } - else { // non-unloadable + else { + // non-unloadable getCoroutineScope() } - // The parent scope should become cancelled only when the container is disposed, or the plugin is unloaded. + // The parent scope should become canceled only when the container is disposed, or the plugin is unloaded. // Leaking the parent scope might lead to premature cancellation. // Fool proofing: a fresh child scope is created per instance to avoid leaking the parent to clients. return intersectionScope.namedChildScope(pluginClass.name) @@ -1540,7 +1529,7 @@ abstract class ComponentManagerImpl( } private fun removePluginScope(pluginScope: CoroutineScope) { - pluginScopes.updateAndGet { scopes: PersistentMap -> + pluginScopes.updateAndGet { scopes -> scopes.remove(pluginScope) } } diff --git a/platform/testFramework/src/com/intellij/mock/MockModule.java b/platform/testFramework/src/com/intellij/mock/MockModule.java index 0dbdfdbf1aac..139788c02092 100644 --- a/platform/testFramework/src/com/intellij/mock/MockModule.java +++ b/platform/testFramework/src/com/intellij/mock/MockModule.java @@ -20,7 +20,7 @@ public class MockModule extends MockComponentManager implements Module { this(null, parentDisposable); } - public MockModule(@Nullable final Project project, @NotNull Disposable parentDisposable) { + public MockModule(@Nullable MockProject project, @NotNull Disposable parentDisposable) { super(project == null ? null : project.getPicoContainer(), parentDisposable); myProject = project; } @@ -31,14 +31,12 @@ public class MockModule extends MockComponentManager implements Module { } @Override - @NotNull - public Path getModuleNioFile() { + public @NotNull Path getModuleNioFile() { return Paths.get(""); } - @NotNull @Override - public GlobalSearchScope getModuleRuntimeScope(final boolean includeTests) { + public @NotNull GlobalSearchScope getModuleRuntimeScope(final boolean includeTests) { return new MockGlobalSearchScope(); } @@ -52,65 +50,55 @@ public class MockModule extends MockComponentManager implements Module { throw new UnsupportedOperationException("Method getModuleTestSourceScope is not yet implemented in " + getClass().getName()); } - @NotNull @Override - public GlobalSearchScope getModuleScope() { + public @NotNull GlobalSearchScope getModuleScope() { return new MockGlobalSearchScope(); } - @NotNull @Override - public GlobalSearchScope getModuleScope(boolean includeTests) { + public @NotNull GlobalSearchScope getModuleScope(boolean includeTests) { return new MockGlobalSearchScope(); } - @NotNull @Override - public GlobalSearchScope getModuleTestsWithDependentsScope() { + public @NotNull GlobalSearchScope getModuleTestsWithDependentsScope() { return new MockGlobalSearchScope(); } - @NotNull @Override - public GlobalSearchScope getModuleWithDependenciesAndLibrariesScope(final boolean includeTests) { + public @NotNull GlobalSearchScope getModuleWithDependenciesAndLibrariesScope(final boolean includeTests) { return new MockGlobalSearchScope(); //throw new UnsupportedOperationException( "Method getModuleWithDependenciesAndLibrariesScope is not yet implemented in " + getClass().getName()); } - @NotNull @Override - public GlobalSearchScope getModuleWithDependenciesScope() { + public @NotNull GlobalSearchScope getModuleWithDependenciesScope() { return new MockGlobalSearchScope(); } - @NotNull @Override - public GlobalSearchScope getModuleContentWithDependenciesScope() { + public @NotNull GlobalSearchScope getModuleContentWithDependenciesScope() { throw new UnsupportedOperationException("Method getModuleContentWithDependenciesScope is not yet implemented in " + getClass().getName()); } - @NotNull @Override - public GlobalSearchScope getModuleContentScope() { + public @NotNull GlobalSearchScope getModuleContentScope() { throw new UnsupportedOperationException("Method getModuleContentScope is not yet implemented in " + getClass().getName()); } - @NotNull @Override - public GlobalSearchScope getModuleWithDependentsScope() { + public @NotNull GlobalSearchScope getModuleWithDependentsScope() { throw new UnsupportedOperationException("Method getModuleWithDependentsScope is not yet implemented in " + getClass().getName()); } - @NotNull @Override - public GlobalSearchScope getModuleWithLibrariesScope() { + public @NotNull GlobalSearchScope getModuleWithLibrariesScope() { throw new UnsupportedOperationException("Method getModuleWithLibrariesScope is not yet implemented in " + getClass().getName()); } @Override - @NotNull - public String getName() { + public @NotNull String getName() { return myName; } @@ -125,19 +113,17 @@ public class MockModule extends MockComponentManager implements Module { } @Override - @Nullable - public String getOptionValue(@NotNull final String optionName) { + public @Nullable String getOptionValue(@NotNull String optionName) { throw new UnsupportedOperationException("Method getOptionValue is not yet implemented in " + getClass().getName()); } @Override - @NotNull - public Project getProject() { + public @NotNull Project getProject() { return myProject; } @Override - public void setOption(@NotNull final String optionName, @NotNull final String optionValue) { + public void setOption(@NotNull String optionName, @Nullable String optionValue) { throw new UnsupportedOperationException("Method setOption is not yet implemented in " + getClass().getName()); } } diff --git a/platform/testFramework/src/com/intellij/mock/MockProjectEx.java b/platform/testFramework/src/com/intellij/mock/MockProjectEx.java index 3cf5e43f656f..7dbed0d36912 100644 --- a/platform/testFramework/src/com/intellij/mock/MockProjectEx.java +++ b/platform/testFramework/src/com/intellij/mock/MockProjectEx.java @@ -4,7 +4,6 @@ package com.intellij.mock; import com.intellij.openapi.Disposable; import com.intellij.openapi.application.Application; import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.components.ComponentManagerEx; import com.intellij.openapi.project.ex.ProjectEx; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -17,7 +16,7 @@ public class MockProjectEx extends MockProject implements ProjectEx { private static @Nullable PicoContainer getParentContainer() { Application app = ApplicationManager.getApplication(); - return app == null || app instanceof ComponentManagerEx ? null : app.getPicoContainer(); + return app instanceof MockApplication ? ((MockApplication)app).getPicoContainer() : null; } @Override diff --git a/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java b/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java index 19d01a7892aa..c5abec340825 100644 --- a/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java +++ b/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java @@ -62,10 +62,10 @@ import java.util.*; /** @noinspection JUnitTestCaseWithNonTrivialConstructors*/ public abstract class ParsingTestCase extends UsefulTestCase { - private PluginDescriptor myPluginDescriptor; + private PluginDescriptor pluginDescriptor; - private MockApplication myApp; - protected MockProjectEx myProject; + private MockApplication app; + protected MockProjectEx project; protected String myFilePrefix = ""; protected String myFileExt; @@ -91,7 +91,7 @@ public abstract class ParsingTestCase extends UsefulTestCase { @NotNull protected MockApplication getApplication() { - return myApp; + return app; } @Override @@ -99,7 +99,7 @@ public abstract class ParsingTestCase extends UsefulTestCase { super.setUp(); MockApplication app = MockApplication.setUp(getTestRootDisposable()); - myApp = app; + this.app = app; MutablePicoContainer appContainer = app.getPicoContainer(); ComponentAdapter component = appContainer.getComponentAdapter(ProgressManager.class.getName()); if (component == null) { @@ -107,8 +107,8 @@ public abstract class ParsingTestCase extends UsefulTestCase { } IdeaForkJoinWorkerThreadFactory.setupForkJoinCommonPool(true); - myProject = new MockProjectEx(getTestRootDisposable()); - myPsiManager = new MockPsiManager(myProject); + project = new MockProjectEx(getTestRootDisposable()); + myPsiManager = new MockPsiManager(project); myFileFactory = new PsiFileFactoryImpl(myPsiManager); appContainer.registerComponentInstance(MessageBus.class, app.getMessageBus()); appContainer.registerComponentInstance(SchemeManagerFactory.class, new MockSchemeManagerFactory()); @@ -121,11 +121,11 @@ public abstract class ParsingTestCase extends UsefulTestCase { app.registerService(PsiBuilderFactory.class, new PsiBuilderFactoryImpl()); app.registerService(DefaultASTFactory.class, new DefaultASTFactoryImpl()); app.registerService(ReferenceProvidersRegistry.class, new ReferenceProvidersRegistryImpl()); - myProject.registerService(PsiDocumentManager.class, new MockPsiDocumentManager()); - myProject.registerService(PsiManager.class, myPsiManager); - myProject.registerService(TreeAspect.class, new TreeAspect()); - myProject.registerService(CachedValuesManager.class, new CachedValuesManagerImpl(myProject, new PsiCachedValuesFactory(myProject))); - myProject.registerService(StartupManager.class, new StartupManagerImpl(myProject, myProject.getCoroutineScope())); + project.registerService(PsiDocumentManager.class, new MockPsiDocumentManager()); + project.registerService(PsiManager.class, myPsiManager); + project.registerService(TreeAspect.class, new TreeAspect()); + project.registerService(CachedValuesManager.class, new CachedValuesManagerImpl(project, new PsiCachedValuesFactory(project))); + project.registerService(StartupManager.class, new StartupManagerImpl(project, project.getCoroutineScope())); registerExtensionPoint(app.getExtensionArea(), FileTypeFactory.FILE_TYPE_FACTORY_EP, FileTypeFactory.class); registerExtensionPoint(app.getExtensionArea(), MetaLanguage.EP_NAME, MetaLanguage.class); @@ -140,7 +140,7 @@ public abstract class ParsingTestCase extends UsefulTestCase { } // That's for reparse routines - myProject.registerService(PomModel.class, new PomModelImpl(myProject)); + project.registerService(PomModel.class, new PomModelImpl(project)); Registry.markAsLoaded(); } @@ -166,7 +166,7 @@ public abstract class ParsingTestCase extends UsefulTestCase { myLanguage = definition.getFileNodeType().getLanguage(); myFileExt = extension; registerParserDefinition(definition); - myApp.registerService(FileTypeManager.class, new MockFileTypeManager(new MockLanguageFileType(myLanguage, myFileExt))); + app.registerService(FileTypeManager.class, new MockFileTypeManager(new MockLanguageFileType(myLanguage, myFileExt))); } protected final void registerExtension(@NotNull ExtensionPointName name, @NotNull T extension) { @@ -175,7 +175,7 @@ public abstract class ParsingTestCase extends UsefulTestCase { } protected final void registerExtensions(@NotNull ExtensionPointName name, @NotNull Class extensionClass, @NotNull List extensions) { - ExtensionsAreaImpl area = myApp.getExtensionArea(); + ExtensionsAreaImpl area = app.getExtensionArea(); ExtensionPoint point = area.getExtensionPointIfRegistered(name.getName()); if (point == null) { point = registerExtensionPoint(area, name, extensionClass); @@ -189,7 +189,7 @@ public abstract class ParsingTestCase extends UsefulTestCase { } protected final void addExplicitExtension(@NotNull LanguageExtension collector, @NotNull Language language, @NotNull T object) { - ExtensionsAreaImpl area = myApp.getExtensionArea(); + ExtensionsAreaImpl area = app.getExtensionArea(); PluginDescriptor pluginDescriptor = getPluginDescriptor(); if (!area.hasExtensionPoint(collector.getName())) { area.registerFakeBeanPoint(collector.getName(), pluginDescriptor); @@ -200,7 +200,7 @@ public abstract class ParsingTestCase extends UsefulTestCase { } protected final void registerExtensionPoint(@NotNull ExtensionPointName extensionPointName, @NotNull Class aClass) { - registerExtensionPoint(myApp.getExtensionArea(), extensionPointName, aClass); + registerExtensionPoint(app.getExtensionArea(), extensionPointName, aClass); } protected ExtensionPointImpl registerExtensionPoint(@NotNull ExtensionsAreaImpl extensionArea, @@ -219,17 +219,17 @@ public abstract class ParsingTestCase extends UsefulTestCase { @NotNull // easy debug of not disposed extension private PluginDescriptor getPluginDescriptor() { - PluginDescriptor pluginDescriptor = myPluginDescriptor; + PluginDescriptor pluginDescriptor = this.pluginDescriptor; if (pluginDescriptor == null) { pluginDescriptor = new DefaultPluginDescriptor(PluginId.getId(getClass().getName() + "." + getName()), ParsingTestCase.class.getClassLoader()); - myPluginDescriptor = pluginDescriptor; + this.pluginDescriptor = pluginDescriptor; } return pluginDescriptor; } @NotNull public MockProjectEx getProject() { - return myProject; + return project; } public MockPsiManager getPsiManager() { @@ -239,7 +239,7 @@ public abstract class ParsingTestCase extends UsefulTestCase { @Override protected void tearDown() throws Exception { myFile = null; - myProject = null; + project = null; myPsiManager = null; myFileFactory = null; super.tearDown(); @@ -519,11 +519,11 @@ public abstract class ParsingTestCase extends UsefulTestCase { } public void registerMockInjectedLanguageManager() { - registerExtensionPoint(myProject.getExtensionArea(), MultiHostInjector.MULTIHOST_INJECTOR_EP_NAME, MultiHostInjector.class); + registerExtensionPoint(project.getExtensionArea(), MultiHostInjector.MULTIHOST_INJECTOR_EP_NAME, MultiHostInjector.class); - registerExtensionPoint(myApp.getExtensionArea(), LanguageInjector.EXTENSION_POINT_NAME, LanguageInjector.class); - myProject.registerService(DumbService.class, new MockDumbService(myProject)); + registerExtensionPoint(app.getExtensionArea(), LanguageInjector.EXTENSION_POINT_NAME, LanguageInjector.class); + project.registerService(DumbService.class, new MockDumbService(project)); getApplication().registerService(EditorWindowTracker.class, new EditorWindowTrackerImpl()); - myProject.registerService(InjectedLanguageManager.class, new InjectedLanguageManagerImpl(myProject)); + project.registerService(InjectedLanguageManager.class, new InjectedLanguageManagerImpl(project)); } } \ No newline at end of file diff --git a/plugins/kotlin/tests-common/test/org/jetbrains/kotlin/idea/test/testFramework/MockProjects.kt b/plugins/kotlin/tests-common/test/org/jetbrains/kotlin/idea/test/testFramework/MockProjects.kt index eb6124400feb..3fac86fd43ea 100644 --- a/plugins/kotlin/tests-common/test/org/jetbrains/kotlin/idea/test/testFramework/MockProjects.kt +++ b/plugins/kotlin/tests-common/test/org/jetbrains/kotlin/idea/test/testFramework/MockProjects.kt @@ -2,6 +2,7 @@ package org.jetbrains.kotlin.idea.test.testFramework +import com.intellij.mock.MockApplication import com.intellij.mock.MockProject import com.intellij.openapi.Disposable import com.intellij.openapi.application.ApplicationManager @@ -13,7 +14,7 @@ interface ProjectEx : Project { fun setProjectName(name: String) } -class MockProjectEx(parentDisposable: Disposable) : MockProject(if (ApplicationManager.getApplication() != null) ApplicationManager.getApplication().picoContainer else null, parentDisposable), ProjectEx { +class MockProjectEx(parentDisposable: Disposable) : MockProject(if (ApplicationManager.getApplication() is MockApplication) (ApplicationManager.getApplication() as MockApplication).picoContainer else null, parentDisposable), ProjectEx { override fun setProjectName(name: String) { }