From 378019949a28515a2248f974ea823503c9f0b76d Mon Sep 17 00:00:00 2001 From: yonip23 <yoni@tabnine.com> Date: Mon, 6 Mar 2023 18:00:58 +0200 Subject: [PATCH 1/3] DEV2-2244 inject enterprise url from updater plugin --- .../java/com/tabnine/general/StaticConfig.java | 15 +++++++++++++++ .../tabnine/userSettings/AppSettingsComponent.kt | 7 ++++++- .../com/tabnine/userSettings/AppSettingsState.kt | 3 ++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/tabnine/general/StaticConfig.java b/src/main/java/com/tabnine/general/StaticConfig.java index 924c50a2a..e0e2e98d3 100644 --- a/src/main/java/com/tabnine/general/StaticConfig.java +++ b/src/main/java/com/tabnine/general/StaticConfig.java @@ -3,6 +3,7 @@ import static com.tabnine.general.Utils.isUnitTestMode; import static java.awt.Color.decode; +import com.intellij.ide.util.PropertiesComponent; import com.intellij.notification.NotificationDisplayType; import com.intellij.notification.NotificationGroup; import com.intellij.openapi.application.Application; @@ -22,11 +23,20 @@ import java.util.*; import javax.swing.*; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class StaticConfig { // Must be identical to what is written under <id>com.tabnine.TabNine</id> in plugin.xml !!! public static final String TABNINE_PLUGIN_ID_RAW = Config.IS_ON_PREM ? "com.tabnine.TabNine-Enterprise" : "com.tabnine.TabNine"; + public static final String TABNINE_ENTERPRISE_URL_PROPERTIES_KEY = + TABNINE_PLUGIN_ID_RAW + ".enterpriseUrl"; + + // if the self-hosted updater injected the value, it'll be found here + @Nullable + public static final String TABNINE_ENTERPRISE_URL_DEFAULT_VALUE = + PropertiesComponent.getInstance().getValue(TABNINE_ENTERPRISE_URL_PROPERTIES_KEY); + public static final PluginId TABNINE_PLUGIN_ID = PluginId.getId(TABNINE_PLUGIN_ID_RAW); public static final int MAX_COMPLETIONS = 5; public static final String BINARY_PROTOCOL_VERSION = "4.4.223"; @@ -107,6 +117,11 @@ public static Optional<String> getTabnineEnterpriseHost() { if (!path.isEmpty()) { return Optional.of(path); } + + if (TABNINE_ENTERPRISE_URL_DEFAULT_VALUE != null) { + return Optional.of(TABNINE_ENTERPRISE_URL_DEFAULT_VALUE); + } + return Optional.ofNullable(System.getProperty(TABNINE_ENTERPRISE_HOST)); } diff --git a/src/main/java/com/tabnine/userSettings/AppSettingsComponent.kt b/src/main/java/com/tabnine/userSettings/AppSettingsComponent.kt index 4d578a975..494916a0a 100644 --- a/src/main/java/com/tabnine/userSettings/AppSettingsComponent.kt +++ b/src/main/java/com/tabnine/userSettings/AppSettingsComponent.kt @@ -90,7 +90,12 @@ class AppSettingsComponent { .addLabeledComponent("Log level (requires restart): ", logLevelComponent, 1, false) if (Config.IS_ON_PREM) { - panelBuilder.addLabeledComponent("Tabnine Enterprise URL (requires restart): ", cloud2UrlComponent, 1, false) + panelBuilder.addLabeledComponent( + "Tabnine Enterprise URL (requires restart): ", + cloud2UrlComponent, + 1, + false + ) } if (!isFixedDebounceConfigured()) { panelBuilder diff --git a/src/main/java/com/tabnine/userSettings/AppSettingsState.kt b/src/main/java/com/tabnine/userSettings/AppSettingsState.kt index 8db0f4999..14adb2929 100644 --- a/src/main/java/com/tabnine/userSettings/AppSettingsState.kt +++ b/src/main/java/com/tabnine/userSettings/AppSettingsState.kt @@ -5,6 +5,7 @@ import com.intellij.openapi.components.PersistentStateComponent import com.intellij.openapi.components.State import com.intellij.openapi.components.Storage import com.intellij.util.xmlb.XmlSerializerUtil +import com.tabnine.general.StaticConfig import com.tabnine.inline.render.GraphicsUtils val settingsDefaultColor = GraphicsUtils.niceContrastColor.rgb @@ -26,7 +27,7 @@ class AppSettingsState : PersistentStateComponent<AppSettingsState?> { var debounceTime: Long = 0 var autoImportEnabled: Boolean = true var binariesFolderOverride: String = "" - var cloud2Url: String = "" + var cloud2Url: String = StaticConfig.TABNINE_ENTERPRISE_URL_DEFAULT_VALUE ?: "" private var colorState = settingsDefaultColor From 78e0cac9b7c93175ce89fb28eb01394fc7ca325f Mon Sep 17 00:00:00 2001 From: yonip23 <yoni@tabnine.com> Date: Mon, 6 Mar 2023 18:17:48 +0200 Subject: [PATCH 2/3] fmt --- src/main/java/com/tabnine/general/StaticConfig.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/tabnine/general/StaticConfig.java b/src/main/java/com/tabnine/general/StaticConfig.java index e0e2e98d3..07ffff295 100644 --- a/src/main/java/com/tabnine/general/StaticConfig.java +++ b/src/main/java/com/tabnine/general/StaticConfig.java @@ -32,8 +32,8 @@ public class StaticConfig { public static final String TABNINE_ENTERPRISE_URL_PROPERTIES_KEY = TABNINE_PLUGIN_ID_RAW + ".enterpriseUrl"; - // if the self-hosted updater injected the value, it'll be found here - @Nullable + // if the self-hosted updater injected the value, it'll be found here + @Nullable public static final String TABNINE_ENTERPRISE_URL_DEFAULT_VALUE = PropertiesComponent.getInstance().getValue(TABNINE_ENTERPRISE_URL_PROPERTIES_KEY); @@ -119,7 +119,7 @@ public static Optional<String> getTabnineEnterpriseHost() { } if (TABNINE_ENTERPRISE_URL_DEFAULT_VALUE != null) { - return Optional.of(TABNINE_ENTERPRISE_URL_DEFAULT_VALUE); + return Optional.of(TABNINE_ENTERPRISE_URL_DEFAULT_VALUE); } return Optional.ofNullable(System.getProperty(TABNINE_ENTERPRISE_HOST)); From e564e8430b6817703d9723158dc62577b63b00ef Mon Sep 17 00:00:00 2001 From: yonip23 <yoni@tabnine.com> Date: Mon, 6 Mar 2023 18:22:14 +0200 Subject: [PATCH 3/3] fix for tests --- .../com/tabnine/general/StaticConfig.java | 19 ++++++++++++------- .../tabnine/userSettings/AppSettingsState.kt | 2 +- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/tabnine/general/StaticConfig.java b/src/main/java/com/tabnine/general/StaticConfig.java index 07ffff295..bc3ade9aa 100644 --- a/src/main/java/com/tabnine/general/StaticConfig.java +++ b/src/main/java/com/tabnine/general/StaticConfig.java @@ -32,11 +32,6 @@ public class StaticConfig { public static final String TABNINE_ENTERPRISE_URL_PROPERTIES_KEY = TABNINE_PLUGIN_ID_RAW + ".enterpriseUrl"; - // if the self-hosted updater injected the value, it'll be found here - @Nullable - public static final String TABNINE_ENTERPRISE_URL_DEFAULT_VALUE = - PropertiesComponent.getInstance().getValue(TABNINE_ENTERPRISE_URL_PROPERTIES_KEY); - public static final PluginId TABNINE_PLUGIN_ID = PluginId.getId(TABNINE_PLUGIN_ID_RAW); public static final int MAX_COMPLETIONS = 5; public static final String BINARY_PROTOCOL_VERSION = "4.4.223"; @@ -112,14 +107,24 @@ public static Optional<String> getLogLevel() { return Optional.empty(); } + // if the self-hosted updater injected the value, it'll be found here + @Nullable + public static String getInjectedEnterpriseUrlFromProperties() { + if (ApplicationManager.getApplication().isUnitTestMode()) { + return null; + } + return PropertiesComponent.getInstance().getValue(TABNINE_ENTERPRISE_URL_PROPERTIES_KEY); + } + public static Optional<String> getTabnineEnterpriseHost() { String path = AppSettingsState.getInstance().getCloud2Url(); if (!path.isEmpty()) { return Optional.of(path); } - if (TABNINE_ENTERPRISE_URL_DEFAULT_VALUE != null) { - return Optional.of(TABNINE_ENTERPRISE_URL_DEFAULT_VALUE); + String injectedHost = getInjectedEnterpriseUrlFromProperties(); + if (injectedHost != null) { + return Optional.of(injectedHost); } return Optional.ofNullable(System.getProperty(TABNINE_ENTERPRISE_HOST)); diff --git a/src/main/java/com/tabnine/userSettings/AppSettingsState.kt b/src/main/java/com/tabnine/userSettings/AppSettingsState.kt index 14adb2929..3c1684ce4 100644 --- a/src/main/java/com/tabnine/userSettings/AppSettingsState.kt +++ b/src/main/java/com/tabnine/userSettings/AppSettingsState.kt @@ -27,7 +27,7 @@ class AppSettingsState : PersistentStateComponent<AppSettingsState?> { var debounceTime: Long = 0 var autoImportEnabled: Boolean = true var binariesFolderOverride: String = "" - var cloud2Url: String = StaticConfig.TABNINE_ENTERPRISE_URL_DEFAULT_VALUE ?: "" + var cloud2Url: String = StaticConfig.getInjectedEnterpriseUrlFromProperties() ?: "" private var colorState = settingsDefaultColor