diff --git a/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/latest/GitpodMetricControlProvider.kt b/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/GitpodMetricControlProvider.kt similarity index 98% rename from components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/latest/GitpodMetricControlProvider.kt rename to components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/GitpodMetricControlProvider.kt index b70ca71f10fe76..59957e844276b1 100644 --- a/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/latest/GitpodMetricControlProvider.kt +++ b/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/GitpodMetricControlProvider.kt @@ -2,7 +2,7 @@ // Licensed under the GNU Affero General Public License (AGPL). // See License-AGPL.txt in the project root for license information. -package io.gitpod.jetbrains.remote.latest +package io.gitpod.jetbrains.remote import com.jetbrains.ide.model.uiautomation.BeControl import com.jetbrains.rd.ui.bedsl.dsl.VerticalGridBuilder diff --git a/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/latest/GitpodMetricProvider.kt b/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/GitpodMetricProvider.kt similarity index 98% rename from components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/latest/GitpodMetricProvider.kt rename to components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/GitpodMetricProvider.kt index 1e0fd16dd5e518..6d0e48c93a6445 100644 --- a/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/latest/GitpodMetricProvider.kt +++ b/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/GitpodMetricProvider.kt @@ -2,7 +2,7 @@ // Licensed under the GNU Affero General Public License (AGPL). // See License-AGPL.txt in the project root for license information. -package io.gitpod.jetbrains.remote.latest +package io.gitpod.jetbrains.remote import com.intellij.openapi.components.service import com.jetbrains.rd.platform.codeWithMe.unattendedHost.metrics.Metric diff --git a/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/latest/GitpodTerminalService.kt b/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/GitpodTerminalService.kt similarity index 99% rename from components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/latest/GitpodTerminalService.kt rename to components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/GitpodTerminalService.kt index 40c37d22994407..4b1ef9dcfa71d0 100644 --- a/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/latest/GitpodTerminalService.kt +++ b/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/GitpodTerminalService.kt @@ -2,7 +2,7 @@ // Licensed under the GNU Affero General Public License (AGPL). // See License-AGPL.txt in the project root for license information. -package io.gitpod.jetbrains.remote.latest +package io.gitpod.jetbrains.remote import com.intellij.openapi.client.ClientProjectSession import com.intellij.openapi.diagnostic.thisLogger diff --git a/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/stable/GitpodTerminalService.kt b/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/stable/GitpodTerminalService.kt deleted file mode 100644 index 7ad70c8800da37..00000000000000 --- a/components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/stable/GitpodTerminalService.kt +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) 2022 Gitpod GmbH. All rights reserved. -// Licensed under the GNU Affero General Public License (AGPL). -// See License-AGPL.txt in the project root for license information. - -package io.gitpod.jetbrains.remote.stable - -import com.intellij.openapi.Disposable -import com.intellij.openapi.application.runInEdt -import com.intellij.openapi.project.Project -import com.intellij.openapi.wm.ToolWindowManager -import com.intellij.openapi.wm.ex.ToolWindowManagerListener -import com.intellij.remoteDev.util.onTerminationOrNow -import com.intellij.util.application -import com.jetbrains.rd.util.lifetime.Lifetime -import com.jetbrains.rdserver.terminal.BackendTerminalManager -import com.jetbrains.rdserver.unattendedHost.UnattendedHostManager -import kotlinx.coroutines.DelicateCoroutinesApi -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.delay -import kotlinx.coroutines.future.await -import kotlinx.coroutines.launch -import org.jetbrains.plugins.terminal.ShellTerminalWidget -import org.jetbrains.plugins.terminal.TerminalToolWindowFactory -import org.jetbrains.plugins.terminal.TerminalView -import java.util.concurrent.CompletableFuture - -@Suppress("UnstableApiUsage", "EXPERIMENTAL_IS_NOT_ENABLED") -@OptIn(DelicateCoroutinesApi::class) -class GitpodTerminalService(private val project: Project) : Disposable { - private val lifetime = Lifetime.Eternal.createNested() - private val terminalView = TerminalView.getInstance(project) - private val backendTerminalManager = BackendTerminalManager.getInstance(project) - - override fun dispose() { - lifetime.terminate() - } - - init { - if (!application.isHeadlessEnvironment) { - val job = launch() - lifetime.onTerminationOrNow { job.cancel() } - } - } - - private fun launch() = GlobalScope.launch { - getTerminalToolWindowRegisteredEvent().await() - delayUntilControllerClientConnects() - val widget = createNewSharedTerminal().await() - printWelcomeMessage(widget) - } - - private fun printWelcomeMessage(widget: ShellTerminalWidget) { - widget.executeCommand( - "clear; echo '\uD83D\uDC4B Welcome to Gitpod!\n" + - "\t\t - Start by typing `gp --help` to see what you can do with Gitpod CLI.\n" + - "\t\t - Run `gp tasks --help` to learn how to attach and watch tasks defined in .gitpod.yml!\n'; gp tasks attach" - ) - } - - private fun getTerminalToolWindowRegisteredEvent(): CompletableFuture { - val completableFuture = CompletableFuture() - - val messageBusConnection = project.messageBus.connect() - - val toolWindowManagerListener = object : ToolWindowManagerListener { - override fun toolWindowsRegistered(ids: MutableList, toolWindowManager: ToolWindowManager) { - if (ids.contains(TerminalToolWindowFactory.TOOL_WINDOW_ID)) { - completableFuture.complete(null) - messageBusConnection.disconnect() - } - } - } - - messageBusConnection.subscribe(ToolWindowManagerListener.TOPIC, toolWindowManagerListener) - - return completableFuture - } - - private suspend fun delayUntilControllerClientConnects() { - while (UnattendedHostManager.getInstance().controllerClientId == null) { - delay(1000L) - } - } - - private fun createNewSharedTerminal(): CompletableFuture { - val completableFuture = CompletableFuture() - - runInEdt { - val shellTerminalWidget = terminalView.createLocalShellWidget(project.basePath, null) - backendTerminalManager.shareTerminal(shellTerminalWidget, "Gitpod") - completableFuture.complete(shellTerminalWidget) - } - - return completableFuture - } -} diff --git a/components/ide/jetbrains/backend-plugin/src/main/resources-latest/META-INF/extensions.xml b/components/ide/jetbrains/backend-plugin/src/main/resources-latest/META-INF/extensions.xml index 47aa4aa265bfc4..207e8a1a0003e1 100644 --- a/components/ide/jetbrains/backend-plugin/src/main/resources-latest/META-INF/extensions.xml +++ b/components/ide/jetbrains/backend-plugin/src/main/resources-latest/META-INF/extensions.xml @@ -5,9 +5,6 @@ --> - - - diff --git a/components/ide/jetbrains/backend-plugin/src/main/resources-stable/META-INF/extensions.xml b/components/ide/jetbrains/backend-plugin/src/main/resources-stable/META-INF/extensions.xml index 5961b901e13e92..edc5701e617818 100644 --- a/components/ide/jetbrains/backend-plugin/src/main/resources-stable/META-INF/extensions.xml +++ b/components/ide/jetbrains/backend-plugin/src/main/resources-stable/META-INF/extensions.xml @@ -5,6 +5,5 @@ --> - diff --git a/components/ide/jetbrains/backend-plugin/src/main/resources/META-INF/plugin.xml b/components/ide/jetbrains/backend-plugin/src/main/resources/META-INF/plugin.xml index bbb6f3991a9cdc..4b521062dfb338 100644 --- a/components/ide/jetbrains/backend-plugin/src/main/resources/META-INF/plugin.xml +++ b/components/ide/jetbrains/backend-plugin/src/main/resources/META-INF/plugin.xml @@ -29,7 +29,10 @@ + + +