mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
inline ApplicationComponentLocator
This commit is contained in:
-42
@@ -1,42 +0,0 @@
|
||||
/*
|
||||
* Copyright 2000-2011 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.openapi.application;
|
||||
|
||||
import com.intellij.openapi.components.ComponentManager;
|
||||
|
||||
/**
|
||||
* @author yole
|
||||
*/
|
||||
public class ApplicationComponentLocator {
|
||||
private static ComponentManager ourInstance;
|
||||
|
||||
public static <T> T getComponent(Class<T> interfaceClass) {
|
||||
return ourInstance.getComponent(interfaceClass);
|
||||
}
|
||||
|
||||
public static Object getComponentInstance(Object componentKey) {
|
||||
return ourInstance.getPicoContainer().getComponentInstance(componentKey);
|
||||
}
|
||||
|
||||
public static void setInstance(ComponentManager instance) {
|
||||
ourInstance = instance;
|
||||
}
|
||||
|
||||
public static boolean initialized() {
|
||||
return ourInstance != null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
package com.intellij.openapi.components;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationComponentLocator;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.NotNullLazyKey;
|
||||
import com.intellij.util.NotNullFunction;
|
||||
@@ -33,7 +33,7 @@ public class ServiceManager {
|
||||
}
|
||||
|
||||
public static <T> T getService(@NotNull Class<T> serviceClass) {
|
||||
return (T)ApplicationComponentLocator.getComponentInstance(serviceClass.getName());
|
||||
return (T)ApplicationManager.getApplication().getPicoContainer().getComponentInstance(serviceClass.getName());
|
||||
}
|
||||
|
||||
public static <T> T getService(@NotNull Project project, @NotNull Class<T> serviceClass) {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
package com.intellij.openapi.fileEditor;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationComponentLocator;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.SavingRequestor;
|
||||
@@ -25,7 +25,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public abstract class FileDocumentManager implements SavingRequestor {
|
||||
public static FileDocumentManager getInstance() {
|
||||
return ApplicationComponentLocator.getComponent(FileDocumentManager.class);
|
||||
return ApplicationManager.getApplication().getComponent(FileDocumentManager.class);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
package com.intellij.openapi.vfs;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.ApplicationComponentLocator;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.util.ModificationTracker;
|
||||
import com.intellij.openapi.vfs.newvfs.BulkFileListener;
|
||||
import com.intellij.util.messages.Topic;
|
||||
@@ -41,7 +41,7 @@ public abstract class VirtualFileManager implements ModificationTracker{
|
||||
*/
|
||||
@NotNull
|
||||
public static VirtualFileManager getInstance(){
|
||||
return ApplicationComponentLocator.getComponent(VirtualFileManager.class);
|
||||
return ApplicationManager.getApplication().getComponent(VirtualFileManager.class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -19,7 +19,6 @@ import com.intellij.lang.*;
|
||||
import com.intellij.lang.impl.PsiBuilderFactoryImpl;
|
||||
import com.intellij.mock.*;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.ApplicationComponentLocator;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.impl.DocumentImpl;
|
||||
@@ -94,7 +93,6 @@ public class CoreEnvironment {
|
||||
new ApplicationManager() {{
|
||||
ourApplication = myApplication;
|
||||
}};
|
||||
ApplicationComponentLocator.setInstance(myApplication);
|
||||
myLocalFileSystem = new CoreLocalFileSystem();
|
||||
myJarFileSystem = new CoreJarFileSystem();
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
*/
|
||||
package com.intellij.openapi.fileTypes;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationComponentLocator;
|
||||
import com.intellij.openapi.application.Application;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.CachedSingletonsRegistry;
|
||||
import com.intellij.openapi.util.Getter;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -52,7 +53,8 @@ public abstract class FileTypeManager extends FileTypeRegistry {
|
||||
*/
|
||||
public static FileTypeManager getInstance() {
|
||||
if (ourInstance == null) {
|
||||
ourInstance = ApplicationComponentLocator.initialized() ? ApplicationComponentLocator.getComponent(FileTypeManager.class) : new MockFileTypeManager();
|
||||
Application app = ApplicationManager.getApplication();
|
||||
ourInstance = app != null ? app.getComponent(FileTypeManager.class) : new MockFileTypeManager();
|
||||
}
|
||||
return ourInstance;
|
||||
}
|
||||
|
||||
-2
@@ -17,7 +17,6 @@ package com.intellij.openapi.application.ex;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.Application;
|
||||
import com.intellij.openapi.application.ApplicationComponentLocator;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.CachedSingletonsRegistry;
|
||||
import com.intellij.openapi.application.impl.ApplicationImpl;
|
||||
@@ -46,7 +45,6 @@ public class ApplicationManagerEx extends ApplicationManager {
|
||||
|
||||
private static void setApplication(Application instance) {
|
||||
ourApplication = instance;
|
||||
ApplicationComponentLocator.setInstance(instance);
|
||||
CachedSingletonsRegistry.cleanupCachedFields();
|
||||
}
|
||||
|
||||
|
||||
@@ -18,10 +18,13 @@ package com.intellij.idea;
|
||||
import com.intellij.ide.plugins.PluginManager;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.actionSystem.DataProvider;
|
||||
import com.intellij.openapi.application.Application;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.application.ex.ApplicationEx;
|
||||
import com.intellij.openapi.application.ex.ApplicationManagerEx;
|
||||
import com.intellij.openapi.application.impl.ApplicationImpl;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -42,7 +45,12 @@ public class IdeaTestApplication extends CommandLineApplication implements Dispo
|
||||
}
|
||||
|
||||
public static synchronized IdeaTestApplication getInstance(@Nullable final String configPath) {
|
||||
if (ourInstance == null) {
|
||||
final boolean isForeignApp = !(ApplicationManager.getApplication() instanceof ApplicationImpl);
|
||||
if (ourInstance == null || isForeignApp) {
|
||||
if (isForeignApp) {
|
||||
disposeInstance();
|
||||
PluginManager.invalidatePlugins();
|
||||
}
|
||||
new IdeaTestApplication();
|
||||
PluginManager.getPlugins();
|
||||
final ApplicationEx app = ApplicationManagerEx.getApplicationEx();
|
||||
@@ -61,8 +69,12 @@ public class IdeaTestApplication extends CommandLineApplication implements Dispo
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
disposeInstance();
|
||||
}
|
||||
|
||||
private static void disposeInstance() {
|
||||
if (ourInstance == null) return;
|
||||
ApplicationEx applicationEx = ApplicationManagerEx.getApplicationEx();
|
||||
Application applicationEx = ApplicationManager.getApplication();
|
||||
if (applicationEx != null) {
|
||||
Disposer.dispose(applicationEx);
|
||||
//ApplicationManagerEx.setApplication(null); it will set automatically back to null
|
||||
|
||||
Reference in New Issue
Block a user