mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
introduce com.intellij.systemProperty EP
GitOrigin-RevId: 8271cf55a5d335221a6685d4a762f01334ba2d6a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
9b498304a6
commit
06eaddc154
@@ -1,7 +1,10 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.idea;
|
||||
|
||||
import com.intellij.diagnostic.*;
|
||||
import com.intellij.diagnostic.Activity;
|
||||
import com.intellij.diagnostic.LoadingPhase;
|
||||
import com.intellij.diagnostic.ParallelActivity;
|
||||
import com.intellij.diagnostic.StartUpMeasurer;
|
||||
import com.intellij.diagnostic.StartUpMeasurer.Phases;
|
||||
import com.intellij.featureStatistics.fusCollectors.LifecycleUsageTriggerCollector;
|
||||
import com.intellij.ide.*;
|
||||
@@ -17,10 +20,7 @@ import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.DialogEarthquakeShaker;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.IconLoader;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.*;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.util.registry.RegistryKeyBean;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
@@ -156,6 +156,10 @@ public final class IdeaApplication {
|
||||
return pluginDescriptorsFuture
|
||||
.thenCompose(pluginDescriptors -> {
|
||||
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
|
||||
Activity sysActivity = ParallelActivity.PREPARE_APP_INIT.start("init system properties");
|
||||
SystemPropertyBean.initSystemProperties();
|
||||
sysActivity.end();
|
||||
|
||||
Activity activity = ParallelActivity.PREPARE_APP_INIT.start("add registry keys");
|
||||
RegistryKeyBean.addKeysFromPlugins();
|
||||
activity.end();
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.openapi.util;
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.extensions.PluginAware;
|
||||
import com.intellij.openapi.extensions.PluginDescriptor;
|
||||
import com.intellij.util.xmlb.annotations.Attribute;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* @author gregsh
|
||||
*/
|
||||
public class SystemPropertyBean implements PluginAware {
|
||||
public static final ExtensionPointName<SystemPropertyBean> EP_NAME = ExtensionPointName.create("com.intellij.systemProperty");
|
||||
|
||||
private PluginDescriptor myPluginDescriptor;
|
||||
|
||||
public static void initSystemProperties() {
|
||||
for (SystemPropertyBean bean : EP_NAME.getExtensionList()) {
|
||||
if (System.getProperty(bean.name) != null) continue;
|
||||
System.setProperty(bean.name, bean.value);
|
||||
}
|
||||
}
|
||||
|
||||
@Attribute("name")
|
||||
public String name;
|
||||
|
||||
@Attribute("value")
|
||||
public String value;
|
||||
|
||||
@Override
|
||||
public void setPluginDescriptor(@NotNull PluginDescriptor pluginDescriptor) {
|
||||
myPluginDescriptor = pluginDescriptor;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public PluginDescriptor getPluginDescriptor() {
|
||||
return myPluginDescriptor;
|
||||
}
|
||||
}
|
||||
@@ -344,6 +344,7 @@
|
||||
<with attribute="implementationClass" implements="com.intellij.injected.editor.InjectedFileChangesHandlerProvider"/>
|
||||
</extensionPoint>
|
||||
|
||||
<extensionPoint name="systemProperty" beanClass="com.intellij.openapi.util.SystemPropertyBean"/>
|
||||
<extensionPoint name="registryKey" beanClass="com.intellij.openapi.util.registry.RegistryKeyBean"/>
|
||||
|
||||
<extensionPoint name="fileBreadcrumbsCollector" interface="com.intellij.codeInsight.breadcrumbs.FileBreadcrumbsCollector" area="IDEA_PROJECT"/>
|
||||
|
||||
Reference in New Issue
Block a user