Skip to content

Commit f39d335

Browse files
committed
Support new action GoToError in the REST Plugin API
1 parent 0d2bd25 commit f39d335

File tree

3 files changed

+27
-22
lines changed

3 files changed

+27
-22
lines changed

ide-common/src/main/java/org/digma/intellij/plugin/analytics/AnalyticsService.java

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import com.intellij.openapi.project.Project;
66
import com.intellij.ui.JBColor;
77
import org.apache.commons.lang3.time.StopWatch;
8-
import org.apache.maven.artifact.versioning.ComparableVersion;
98
import org.digma.intellij.plugin.auth.AuthManager;
109
import org.digma.intellij.plugin.common.*;
1110
import org.digma.intellij.plugin.errorreporting.ErrorReporter;
@@ -42,12 +41,12 @@
4241
import java.util.concurrent.TimeUnit;
4342
import java.util.function.*;
4443

44+
import static org.digma.intellij.plugin.analytics.BackendUtilsKt.backendVersionOlderThen;
4545
import static org.digma.intellij.plugin.analytics.EnvUtilsKt.getAllEnvironmentsIds;
4646
import static org.digma.intellij.plugin.analytics.EnvironmentRefreshSchedulerKt.scheduleEnvironmentRefresh;
4747
import static org.digma.intellij.plugin.common.JsonUtilsKt.objectToJsonNoException;
4848
import static org.digma.intellij.plugin.common.StringUtilsKt.argsToString;
4949
import static org.digma.intellij.plugin.log.Log.API_LOGGER_NAME;
50-
import static org.digma.intellij.plugin.model.rest.AboutResultKt.UNKNOWN_APPLICATION_VERSION;
5150

5251

5352
public class AnalyticsService implements Disposable {
@@ -566,7 +565,7 @@ public HttpResponse proxyCall(HttpRequest request) throws AnalyticsServiceExcept
566565
@Nullable
567566
public SpanInfoByUid resolveSpanByUid(@NotNull String uid) throws AnalyticsServiceException {
568567

569-
if (backendVersionOlderThen("0.3.155")) {
568+
if (backendVersionOlderThen(project,"0.3.155")) {
570569
return null;
571570
}
572571

@@ -576,29 +575,14 @@ public SpanInfoByUid resolveSpanByUid(@NotNull String uid) throws AnalyticsServi
576575

577576
@Nullable
578577
public EnvironmentInfoByErrorId resolveEnvironmentByErrorId(@NotNull String errorId) throws AnalyticsServiceException {
579-
if (backendVersionOlderThen("0.3.318")) {
578+
if (backendVersionOlderThen(project,"0.3.155")) {
580579
return null;
581580
}
582581

583582
return executeCatching(() -> analyticsProviderProxy.resolveEnvironmentByErrorId(errorId));
584583
}
585584

586585

587-
private boolean backendVersionOlderThen(String version) {
588-
String backendVersion = BackendInfoHolder.getInstance(project).getAbout().getApplicationVersion();
589-
590-
//dev environment may return unknown
591-
if (UNKNOWN_APPLICATION_VERSION.equalsIgnoreCase(backendVersion)) {
592-
return false;
593-
}
594-
595-
ComparableVersion currentBackendVersion = new ComparableVersion(backendVersion);
596-
ComparableVersion requiredBackendVersion = new ComparableVersion(version);
597-
598-
return currentBackendVersion.compareTo(requiredBackendVersion) < 0;
599-
}
600-
601-
602586
@Override
603587
public void dispose() {
604588
try {

ide-common/src/main/kotlin/org/digma/intellij/plugin/analytics/BackendUtils.kt

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.digma.intellij.plugin.analytics
22

33
import com.intellij.openapi.project.Project
4+
import org.apache.maven.artifact.versioning.ComparableVersion
45
import org.digma.intellij.plugin.auth.account.DigmaDefaultAccountHolder
56
import org.digma.intellij.plugin.common.findActiveProject
67
import org.digma.intellij.plugin.model.rest.UNKNOWN_APPLICATION_VERSION
@@ -32,10 +33,24 @@ fun isCentralized(): Boolean {
3233
val project = findActiveProject()
3334
return project?.let {
3435
BackendInfoHolder.getInstance(it).isCentralized()
35-
} ?:false
36+
} ?: false
3637
}
3738

3839

39-
fun isNoAccountInCentralized():Boolean{
40+
fun isNoAccountInCentralized(): Boolean {
4041
return isCentralized() && DigmaDefaultAccountHolder.getInstance().account == null
42+
}
43+
44+
fun backendVersionOlderThen(project: Project, version: String): Boolean {
45+
val backendVersion = BackendInfoHolder.getInstance(project).getAbout().applicationVersion
46+
47+
//dev environment may return unknown
48+
if (UNKNOWN_APPLICATION_VERSION.equals(backendVersion, true)) {
49+
return false;
50+
}
51+
52+
val currentBackendVersion = ComparableVersion(backendVersion);
53+
val requiredBackendVersion = ComparableVersion(version);
54+
55+
return currentBackendVersion < requiredBackendVersion;
4156
}

ide-common/src/main/kotlin/org/digma/intellij/plugin/api/GoToErrorCommand.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package org.digma.intellij.plugin.api
33
import com.intellij.openapi.project.Project
44
import io.netty.handler.codec.http.QueryStringDecoder
55
import org.digma.intellij.plugin.analytics.AnalyticsService
6+
import org.digma.intellij.plugin.analytics.backendVersionOlderThen
67
import org.digma.intellij.plugin.common.objectToJsonNode
78
import org.digma.intellij.plugin.log.Log
89
import org.digma.intellij.plugin.scope.ScopeContext
@@ -12,7 +13,12 @@ import java.util.Objects
1213

1314
class GoToErrorCommand : AbstractApiCommand() {
1415

15-
override fun execute(project: Project, urlDecoder: QueryStringDecoder) {
16+
override suspend fun execute(project: Project, urlDecoder: QueryStringDecoder) {
17+
18+
if (backendVersionOlderThen(project,"0.3.318")){
19+
throw RuntimeException("This api is not supported in this version of backend")
20+
}
21+
1622
val errorId = getStringParameter(ERROR_ID_PARAM_NAME, urlDecoder)
1723
Objects.requireNonNull(errorId, "errorId parameter must not be null")
1824

0 commit comments

Comments
 (0)