IDEADEV-40127 CME: IdeaServerManagerImpl.processStorages + fix ComponentVersionsProce...
[fedora-idea.git] / platform / platform-impl / src / com / intellij / idea / IdeaTestApplication.java
blob9ec8a7bd09df5801329c87396ac87a5a5e336a92
1 package com.intellij.idea;
3 import com.intellij.ide.plugins.IdeaPluginDescriptor;
4 import com.intellij.ide.plugins.PluginManager;
5 import com.intellij.openapi.actionSystem.DataProvider;
6 import com.intellij.openapi.application.Result;
7 import com.intellij.openapi.application.WriteAction;
8 import com.intellij.openapi.application.ex.ApplicationEx;
9 import com.intellij.openapi.application.ex.ApplicationManagerEx;
10 import com.intellij.openapi.application.impl.PluginsFacade;
11 import com.intellij.openapi.extensions.PluginId;
12 import org.jetbrains.annotations.Nullable;
14 public class IdeaTestApplication extends CommandLineApplication {
15 private DataProvider myDataContext;
17 private IdeaTestApplication() {
18 super(false, true, true);
20 PluginsFacade.INSTANCE = new PluginsFacade() {
21 public IdeaPluginDescriptor getPlugin(PluginId id) {
22 return PluginManager.getPlugin(id);
25 public IdeaPluginDescriptor[] getPlugins() {
26 return PluginManager.getPlugins();
31 public void setDataProvider(DataProvider dataContext) {
32 myDataContext = dataContext;
35 public Object getData(String dataId) {
36 return myDataContext == null ? null : myDataContext.getData(dataId);
39 public static synchronized IdeaTestApplication getInstance(@Nullable final String configPath) {
40 if (ourInstance == null) {
41 new IdeaTestApplication();
42 PluginsFacade.INSTANCE.getPlugins(); //initialization
43 final ApplicationEx app = ApplicationManagerEx.getApplicationEx();
44 new WriteAction() {
45 protected void run(Result result) throws Throwable {
46 app.load(configPath);
48 }.execute();
50 return (IdeaTestApplication)ourInstance;
53 public static boolean isInitialized() {
54 return ourInstance != null;