Skip to content

Commit 5dda6df

Browse files
committed
[jb] bump up major platform version of backend plugin
1 parent 5cf9fca commit 5dda6df

13 files changed

+167
-65
lines changed
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# See https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
22
# for insight into build numbers and IntelliJ Platform versions.
3-
pluginSinceBuild=223.8836
4-
pluginUntilBuild=223.*
3+
pluginSinceBuild=231.8109
4+
pluginUntilBuild=231.*
55
# Plugin Verifier integration -> https://github.com/JetBrains/gradle-intellij-plugin#plugin-verifier-dsl
66
# See https://jb.gg/intellij-platform-builds-list for available build versions.
7-
pluginVerifierIdeVersions=2022.3
7+
pluginVerifierIdeVersions=2023.1
88
# Version from "com.jetbrains.intellij.idea" which can be found at https://www.jetbrains.com/intellij-repository/snapshots
9-
platformVersion=223.8836-EAP-CANDIDATE-SNAPSHOT
9+
platformVersion=231.8109-EAP-CANDIDATE-SNAPSHOT
Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,16 @@
55
package io.gitpod.jetbrains.remote
66

77
import com.jetbrains.ide.model.uiautomation.BeControl
8+
import com.jetbrains.ide.model.uiautomation.DefiniteProgress
9+
import com.jetbrains.rd.platform.codeWithMe.unattendedHost.metrics.Metric
810
import com.jetbrains.rd.ui.bedsl.dsl.*
911
import com.jetbrains.rd.util.lifetime.Lifetime
1012
import com.jetbrains.rd.util.reactive.Property
1113
import com.jetbrains.rdserver.diagnostics.BackendDiagnosticsService
1214
import com.jetbrains.rdserver.unattendedHost.customization.controlCenter.performance.MetricControlProvider
1315
import com.jetbrains.rdserver.unattendedHost.customization.controlCenter.performance.createProgressBar
14-
import com.jetbrains.rdserver.unattendedHost.customization.controlCenter.performance.createProgressRow
1516

16-
class GitpodMetricControlProvider : MetricControlProvider {
17+
abstract class AbstractGitpodMetricControlProvider : MetricControlProvider {
1718
override val id: String = "gitpodMetricsControl"
1819
override fun getControl(lifetime: Lifetime): BeControl {
1920
val backendDiagnosticsService = BackendDiagnosticsService.Companion.getInstance()
@@ -92,7 +93,7 @@ class GitpodMetricControlProvider : MetricControlProvider {
9293
cpuTotal.valueProperty.change.advise(lifetime) {
9394
updateLabel()
9495
}
95-
createProgressRow(ctx, lifetime, label, cpuPercentage.statusProperty, labelProperty, cpuPercentageProperty, progressBar)
96+
createProgressControl(ctx, lifetime, label, cpuPercentage, labelProperty, cpuPercentageProperty, progressBar)
9697
}
9798

9899
private fun createMemoryControl(ctx: VerticalGridBuilder, backendDiagnosticsService: BackendDiagnosticsService, lifetime: Lifetime) {
@@ -115,6 +116,8 @@ class GitpodMetricControlProvider : MetricControlProvider {
115116
updateLabel()
116117
}
117118

118-
createProgressRow(ctx, lifetime, label, memoryPercentage.statusProperty, labelProperty, memoryPercentageProperty, progressBar)
119+
createProgressControl(ctx, lifetime, label, memoryPercentage, labelProperty, memoryPercentageProperty, progressBar)
119120
}
121+
122+
protected abstract fun createProgressControl(ctx: VerticalGridBuilder, lifetime: Lifetime, label: String, cpuPercentage: Metric, labelProperty: Property<String>, cpuPercentageProperty: Property<String>, progressBar: DefiniteProgress)
120123
}

components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/GitpodTerminalService.kt renamed to components/ide/jetbrains/backend-plugin/src/main/kotlin/io/gitpod/jetbrains/remote/AbstractGitpodTerminalService.kt

Lines changed: 7 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import com.intellij.util.application
1313
import com.jediterm.terminal.ui.TerminalWidget
1414
import com.jediterm.terminal.ui.TerminalWidgetListener
1515
import com.jetbrains.rd.framework.util.launch
16-
import com.jetbrains.rdserver.terminal.BackendTerminalManager
1716
import io.gitpod.supervisor.api.Status
1817
import io.gitpod.supervisor.api.StatusServiceGrpc
1918
import io.gitpod.supervisor.api.TerminalOuterClass
@@ -25,16 +24,12 @@ import kotlinx.coroutines.delay
2524
import kotlinx.coroutines.future.await
2625
import kotlinx.coroutines.guava.await
2726
import org.jetbrains.plugins.terminal.ShellTerminalWidget
28-
import org.jetbrains.plugins.terminal.TerminalView
2927
import java.util.*
3028
import java.util.concurrent.CompletableFuture
3129
import java.util.concurrent.ExecutionException
3230

33-
@Suppress("UnstableApiUsage")
34-
class GitpodTerminalService(project: Project): Disposable {
31+
abstract class AbstractGitpodTerminalService(project: Project) : Disposable {
3532
private val lifetime = defineNestedLifetime()
36-
private val terminalView = TerminalView.getInstance(project)
37-
private val backendTerminalManager = BackendTerminalManager.getInstance(project)
3833
private val terminalServiceFutureStub = TerminalServiceGrpc.newFutureStub(GitpodManager.supervisorChannel)
3934
private val terminalServiceStub = TerminalServiceGrpc.newStub(GitpodManager.supervisorChannel)
4035
private val statusServiceStub = StatusServiceGrpc.newStub(GitpodManager.supervisorChannel)
@@ -44,8 +39,7 @@ class GitpodTerminalService(project: Project): Disposable {
4439
}
4540

4641
override fun dispose() = Unit
47-
48-
private fun start() {
42+
protected fun start() {
4943
if (application.isHeadlessEnvironment) return
5044

5145
lifetime.launch {
@@ -58,25 +52,7 @@ class GitpodTerminalService(project: Project): Disposable {
5852
}
5953
}
6054

61-
private fun createSharedTerminalAndExecuteCommand(title: String, command: String): ShellTerminalWidget? {
62-
val registeredTerminals = terminalView.widgets.toMutableList()
63-
64-
backendTerminalManager.createNewSharedTerminal(UUID.randomUUID().toString(), title)
65-
66-
for (widget in terminalView.widgets) {
67-
if (registeredTerminals.contains(widget)) continue
68-
69-
widget.terminalTitle.change { applicationTitle = title }
70-
71-
val shellTerminalWidget = widget as ShellTerminalWidget
72-
73-
shellTerminalWidget.executeCommand(command)
74-
75-
return shellTerminalWidget
76-
}
77-
78-
return null
79-
}
55+
protected abstract fun createSharedTerminal(title: String): ShellTerminalWidget
8056

8157
private fun createTerminalsAttachedToTasks(
8258
terminals: List<TerminalOuterClass.Terminal>,
@@ -181,15 +157,10 @@ class GitpodTerminalService(project: Project): Disposable {
181157
}
182158

183159
private fun createAttachedSharedTerminal(supervisorTerminal: TerminalOuterClass.Terminal) {
184-
val shellTerminalWidget = createSharedTerminalAndExecuteCommand(
185-
supervisorTerminal.title,
186-
"gp tasks attach ${supervisorTerminal.alias}"
187-
) ?: return
188-
160+
val shellTerminalWidget = createSharedTerminal(supervisorTerminal.title)
161+
shellTerminalWidget.executeCommand("gp tasks attach ${supervisorTerminal.alias}")
189162
closeTerminalWidgetWhenClientGetsClosed(shellTerminalWidget)
190-
191163
exitTaskWhenTerminalWidgetGetsClosed(supervisorTerminal, shellTerminalWidget)
192-
193164
listenForTaskTerminationAndTitleChanges(supervisorTerminal, shellTerminalWidget)
194165
}
195166

@@ -207,10 +178,7 @@ class GitpodTerminalService(project: Project): Disposable {
207178
.build()
208179

209180
val listenTerminalResponseObserver =
210-
object : ClientResponseObserver<
211-
TerminalOuterClass.ListenTerminalRequest,
212-
TerminalOuterClass.ListenTerminalResponse
213-
> {
181+
object : ClientResponseObserver<TerminalOuterClass.ListenTerminalRequest, TerminalOuterClass.ListenTerminalResponse> {
214182
override fun beforeStart(
215183
request: ClientCallStreamObserver<TerminalOuterClass.ListenTerminalRequest>
216184
) {
@@ -286,7 +254,7 @@ class GitpodTerminalService(project: Project): Disposable {
286254
)
287255
} catch (throwable: Throwable) {
288256
thisLogger().error("gitpod: Got an error while shutting down " +
289-
"'${supervisorTerminal.title}' terminal.", throwable)
257+
"'${supervisorTerminal.title}' terminal.", throwable)
290258
}
291259
}
292260
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2+
// Licensed under the GNU Affero General Public License (AGPL).
3+
// See License.AGPL.txt in the project root for license information.
4+
5+
package io.gitpod.jetbrains.remote.latest
6+
7+
import io.gitpod.jetbrains.remote.GitpodIgnoredPortsForNotificationService
8+
import kotlinx.coroutines.GlobalScope
9+
import kotlinx.coroutines.launch
10+
import org.jetbrains.ide.BuiltInServerManager
11+
12+
@Suppress("OPT_IN_USAGE")
13+
class LatestGitpodIgnoredPortsForNotificationServiceImpl : GitpodIgnoredPortsForNotificationService {
14+
private val ignoredPortsForNotification = mutableSetOf(5990)
15+
16+
init {
17+
GlobalScope.launch {
18+
BuiltInServerManager.getInstance().waitForStart().port.let { ignorePort(it) }
19+
}
20+
}
21+
22+
override fun ignorePort(portNumber: Int) {
23+
ignoredPortsForNotification.add(portNumber)
24+
}
25+
26+
override fun getIgnoredPorts(): Set<Int> {
27+
return ignoredPortsForNotification.toSet()
28+
}
29+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2+
// Licensed under the GNU Affero General Public License (AGPL).
3+
// See License.AGPL.txt in the project root for license information.
4+
5+
package io.gitpod.jetbrains.remote.latest
6+
7+
import com.jetbrains.ide.model.uiautomation.DefiniteProgress
8+
import com.jetbrains.rd.platform.codeWithMe.unattendedHost.metrics.Metric
9+
import com.jetbrains.rd.ui.bedsl.dsl.*
10+
import com.jetbrains.rd.util.lifetime.Lifetime
11+
import com.jetbrains.rd.util.reactive.Property
12+
import com.jetbrains.rdserver.unattendedHost.customization.controlCenter.performance.createProgressRow
13+
import io.gitpod.jetbrains.remote.AbstractGitpodMetricControlProvider
14+
15+
class LatestGitpodMetricControlProvider: AbstractGitpodMetricControlProvider() {
16+
17+
override fun createProgressControl(ctx: VerticalGridBuilder, lifetime: Lifetime, label: String, cpuPercentage: Metric, labelProperty: Property<String>, cpuPercentageProperty: Property<String>, progressBar: DefiniteProgress) {
18+
createProgressRow(ctx, id, lifetime, label, cpuPercentage.statusProperty, labelProperty, cpuPercentageProperty, progressBar)
19+
}
20+
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2+
// Licensed under the GNU Affero General Public License (AGPL).
3+
// See License.AGPL.txt in the project root for license information.
4+
5+
package io.gitpod.jetbrains.remote.latest
6+
7+
import com.intellij.openapi.project.Project
8+
import com.jetbrains.rdserver.terminal.BackendTerminalManager
9+
import io.gitpod.jetbrains.remote.AbstractGitpodTerminalService
10+
import org.jetbrains.plugins.terminal.ShellTerminalWidget
11+
import org.jetbrains.plugins.terminal.TerminalToolWindowManager
12+
import java.util.*
13+
14+
@Suppress("UnstableApiUsage")
15+
class LatestGitpodTerminalService(project: Project): AbstractGitpodTerminalService(project) {
16+
17+
private val terminalToolWindowManager = TerminalToolWindowManager.getInstance(project)
18+
private val backendTerminalManager = BackendTerminalManager.getInstance(project)
19+
20+
override fun createSharedTerminal(title: String): ShellTerminalWidget {
21+
val shellTerminalWidget = terminalToolWindowManager.createLocalShellWidget(null, title, true, false)
22+
backendTerminalManager.shareTerminal(shellTerminalWidget.asNewWidget(), UUID.randomUUID().toString())
23+
return shellTerminalWidget
24+
}
25+
26+
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Licensed under the GNU Affero General Public License (AGPL).
33
// See License.AGPL.txt in the project root for license information.
44

5-
package io.gitpod.jetbrains.remote.internal
5+
package io.gitpod.jetbrains.remote.stable
66

77
import com.intellij.idea.getServerFutureAsync
88
import io.gitpod.jetbrains.remote.GitpodIgnoredPortsForNotificationService
@@ -11,7 +11,7 @@ import kotlinx.coroutines.launch
1111
import org.jetbrains.ide.BuiltInServerManager
1212

1313
@Suppress("OPT_IN_USAGE")
14-
class GitpodIgnoredPortsForNotificationServiceImpl : GitpodIgnoredPortsForNotificationService {
14+
class StableGitpodIgnoredPortsForNotificationServiceImpl : GitpodIgnoredPortsForNotificationService {
1515
private val ignoredPortsForNotification = mutableSetOf(5990)
1616

1717
init {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2+
// Licensed under the GNU Affero General Public License (AGPL).
3+
// See License.AGPL.txt in the project root for license information.
4+
5+
package io.gitpod.jetbrains.remote.stable
6+
7+
import com.jetbrains.ide.model.uiautomation.DefiniteProgress
8+
import com.jetbrains.rd.platform.codeWithMe.unattendedHost.metrics.Metric
9+
import com.jetbrains.rd.ui.bedsl.dsl.*
10+
import com.jetbrains.rd.util.lifetime.Lifetime
11+
import com.jetbrains.rd.util.reactive.Property
12+
import com.jetbrains.rdserver.unattendedHost.customization.controlCenter.performance.createProgressRow
13+
import io.gitpod.jetbrains.remote.AbstractGitpodMetricControlProvider
14+
15+
class StableGitpodMetricControlProvider: AbstractGitpodMetricControlProvider() {
16+
17+
override fun createProgressControl(ctx: VerticalGridBuilder, lifetime: Lifetime, label: String, cpuPercentage: Metric, labelProperty: Property<String>, cpuPercentageProperty: Property<String>, progressBar: DefiniteProgress) {
18+
createProgressRow(ctx, lifetime, label, cpuPercentage.statusProperty, labelProperty, cpuPercentageProperty, progressBar)
19+
}
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2+
// Licensed under the GNU Affero General Public License (AGPL).
3+
// See License.AGPL.txt in the project root for license information.
4+
5+
package io.gitpod.jetbrains.remote.stable
6+
7+
import com.intellij.openapi.project.Project
8+
import com.jetbrains.rdserver.terminal.BackendTerminalManager
9+
import io.gitpod.jetbrains.remote.AbstractGitpodTerminalService
10+
import org.jetbrains.plugins.terminal.ShellTerminalWidget
11+
import org.jetbrains.plugins.terminal.TerminalView
12+
import java.util.*
13+
14+
@Suppress("UnstableApiUsage")
15+
class StableGitpodTerminalService(project: Project): AbstractGitpodTerminalService(project) {
16+
17+
private val terminalView = TerminalView.getInstance(project)
18+
private val backendTerminalManager = BackendTerminalManager.getInstance(project)
19+
20+
override fun createSharedTerminal(title: String): ShellTerminalWidget {
21+
val shellTerminalWidget = terminalView.createLocalShellWidget(null, title, true, false)
22+
backendTerminalManager.shareTerminal(shellTerminalWidget, UUID.randomUUID().toString())
23+
return shellTerminalWidget
24+
}
25+
26+
}

components/ide/jetbrains/backend-plugin/src/main/resources-latest/META-INF/extensions.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,14 @@
66
<!--suppress PluginXmlValidity -->
77
<idea-plugin>
88
<extensions defaultExtensionNs="com.intellij">
9+
<gateway.customization.performance id="gitpodMetricsControl" order="before cpuControl"
10+
implementation="io.gitpod.jetbrains.remote.latest.LatestGitpodMetricControlProvider"/>
11+
12+
<projectService serviceImplementation="io.gitpod.jetbrains.remote.latest.LatestGitpodTerminalService" client="controller"
13+
preload="true"/>
14+
15+
<applicationService serviceInterface="io.gitpod.jetbrains.remote.GitpodIgnoredPortsForNotificationService"
16+
serviceImplementation="io.gitpod.jetbrains.remote.latest.LatestGitpodIgnoredPortsForNotificationServiceImpl"
17+
preload="true"/>
918
</extensions>
1019
</idea-plugin>

components/ide/jetbrains/backend-plugin/src/main/resources-stable/META-INF/extensions.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,14 @@
66
<!--suppress PluginXmlValidity -->
77
<idea-plugin>
88
<extensions defaultExtensionNs="com.intellij">
9+
<gateway.customization.performance id="gitpodMetricsControl" order="before cpuControl"
10+
implementation="io.gitpod.jetbrains.remote.stable.StableGitpodMetricControlProvider"/>
11+
12+
<projectService serviceImplementation="io.gitpod.jetbrains.remote.stable.StableGitpodTerminalService" client="controller"
13+
preload="true"/>
14+
15+
<applicationService serviceInterface="io.gitpod.jetbrains.remote.GitpodIgnoredPortsForNotificationService"
16+
serviceImplementation="io.gitpod.jetbrains.remote.stable.StableGitpodIgnoredPortsForNotificationServiceImpl"
17+
preload="true"/>
918
</extensions>
1019
</idea-plugin>

components/ide/jetbrains/backend-plugin/src/main/resources/META-INF/plugin.xml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@
2626
<applicationService serviceImplementation="io.gitpod.jetbrains.remote.services.HeartbeatService"
2727
preload="true"/>
2828
<applicationService serviceImplementation="io.gitpod.jetbrains.remote.GitpodManager" preload="true"/>
29-
<applicationService serviceInterface="io.gitpod.jetbrains.remote.GitpodIgnoredPortsForNotificationService"
30-
serviceImplementation="io.gitpod.jetbrains.remote.internal.GitpodIgnoredPortsForNotificationServiceImpl"
31-
preload="true"/>
3229
<applicationService serviceInterface="io.gitpod.jetbrains.remote.GitpodPortForwardingService"
3330
serviceImplementation="io.gitpod.jetbrains.remote.internal.GitpodPortForwardingServiceImpl"
3431
client="controller" preload="true"/>
@@ -39,13 +36,9 @@
3936

4037
<projectService serviceImplementation="io.gitpod.jetbrains.remote.GitpodClientProjectSessionTracker"
4138
client="controller" preload="true"/>
42-
<projectService serviceImplementation="io.gitpod.jetbrains.remote.GitpodTerminalService" client="controller"
43-
preload="true"/>
4439

4540
<gateway.customization.name
4641
implementation="io.gitpod.jetbrains.remote.GitpodGatewayClientCustomizationProvider"/>
47-
<gateway.customization.performance id="gitpodMetricsControl" order="before cpuControl"
48-
implementation="io.gitpod.jetbrains.remote.GitpodMetricControlProvider"/>
4942
<gateway.customization.metrics id="gitpodMetricsProvider"
5043
implementation="io.gitpod.jetbrains.remote.GitpodMetricProvider"/>
5144

components/supervisor-api/java/build.gradle

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,13 @@ repositories {
1212
group 'io.gitpod.api'
1313

1414
dependencies {
15-
implementation 'com.google.protobuf:protobuf-java:3.19.1'
16-
implementation 'com.google.protobuf:protobuf-java-util:3.19.1'
17-
implementation 'com.google.api.grpc:proto-google-common-protos:2.2.2'
18-
implementation 'io.grpc:grpc-core:1.49.0'
19-
implementation 'io.grpc:grpc-protobuf:1.49.0'
20-
implementation 'io.grpc:grpc-stub:1.49.0'
21-
implementation 'javax.annotation:javax.annotation-api:1.3.2'
22-
23-
runtimeOnly 'io.grpc:grpc-netty-shaded:1.41.0'
15+
compileOnly 'com.google.protobuf:protobuf-java:3.19.1'
16+
compileOnly 'com.google.protobuf:protobuf-java-util:3.19.1'
17+
compileOnly 'com.google.api.grpc:proto-google-common-protos:2.2.2'
18+
compileOnly 'io.grpc:grpc-core:1.49.0'
19+
compileOnly 'io.grpc:grpc-protobuf:1.49.0'
20+
compileOnly 'io.grpc:grpc-stub:1.49.0'
21+
compileOnly 'javax.annotation:javax.annotation-api:1.3.2'
2422
}
2523

2624
application {

0 commit comments

Comments
 (0)