Skip to content

Commit 0b10a4a

Browse files
committed
bugfix/link on span modifies the active env (#387)
1 parent 6b5e5d5 commit 0b10a4a

File tree

4 files changed

+62
-28
lines changed

4 files changed

+62
-28
lines changed

model/src/main/kotlin/org/digma/intellij/plugin/model/rest/recentactivity/RecentActivityResult.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties
55
import org.digma.intellij.plugin.model.rest.insights.Duration
66
import java.beans.ConstructorProperties
77

8+
/**
9+
* Contracts Definition.
10+
*
11+
* @see [Contracts Definition](https://docs.google.com/document/d/10W8dJHXXxVXe2kI52NQjlu9LNsT4lp94AUogQ64IZ58)
12+
*/
13+
814
data class RecentActivityResult
915
@JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
1016
@JsonIgnoreProperties(ignoreUnknown = true)
@@ -64,7 +70,8 @@ data class RecentActivityEntrySpanPayload
6470
@JsonIgnoreProperties(ignoreUnknown = true)
6571
@ConstructorProperties("span")
6672
constructor(
67-
val span: EntrySpan
73+
val span: EntrySpan,
74+
val environment: String,
6875
)
6976

7077
data class RecentActivityEntrySpanForTracePayload

src/main/java/org/digma/intellij/plugin/toolwindow/DigmaBottomToolWindowFactory.java

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,32 @@
2727
import org.digma.intellij.plugin.common.Backgroundable;
2828
import org.digma.intellij.plugin.common.CommonUtils;
2929
import org.digma.intellij.plugin.log.Log;
30-
import org.digma.intellij.plugin.model.rest.recentactivity.*;
30+
import org.digma.intellij.plugin.model.rest.recentactivity.RecentActivityEntrySpanForTracePayload;
31+
import org.digma.intellij.plugin.model.rest.recentactivity.RecentActivityEntrySpanPayload;
32+
import org.digma.intellij.plugin.model.rest.recentactivity.RecentActivityGoToSpanRequest;
33+
import org.digma.intellij.plugin.model.rest.recentactivity.RecentActivityGoToTraceRequest;
34+
import org.digma.intellij.plugin.model.rest.recentactivity.RecentActivityResponseEntry;
35+
import org.digma.intellij.plugin.model.rest.recentactivity.RecentActivityResult;
3136
import org.digma.intellij.plugin.psi.LanguageService;
3237
import org.digma.intellij.plugin.service.EditorService;
38+
import org.digma.intellij.plugin.ui.model.environment.EnvironmentsSupplier;
3339
import org.jetbrains.annotations.NotNull;
3440

3541
import javax.swing.*;
3642
import java.awt.*;
43+
import java.util.ArrayList;
44+
import java.util.Collections;
45+
import java.util.Date;
3746
import java.util.List;
38-
import java.util.*;
47+
import java.util.Map;
3948

40-
import static org.digma.intellij.plugin.toolwindow.ToolWindowUtil.*;
49+
import static org.digma.intellij.plugin.toolwindow.ToolWindowUtil.RECENT_ACTIVITY_GET_DATA;
50+
import static org.digma.intellij.plugin.toolwindow.ToolWindowUtil.RECENT_ACTIVITY_GO_TO_SPAN;
51+
import static org.digma.intellij.plugin.toolwindow.ToolWindowUtil.RECENT_ACTIVITY_GO_TO_TRACE;
52+
import static org.digma.intellij.plugin.toolwindow.ToolWindowUtil.RECENT_ACTIVITY_SET_DATA;
53+
import static org.digma.intellij.plugin.toolwindow.ToolWindowUtil.REQUEST_MESSAGE_TYPE;
4154
import static org.digma.intellij.plugin.ui.common.EnvironmentUtilKt.LOCAL_ENV;
55+
import static org.digma.intellij.plugin.ui.common.EnvironmentUtilKt.SUFFIX_OF_LOCAL;
4256
import static org.digma.intellij.plugin.ui.common.EnvironmentUtilKt.getSortedEnvironments;
4357
import static org.digma.intellij.plugin.ui.list.insights.JaegerUtilKt.openJaegerFromRecentActivity;
4458

@@ -157,6 +171,11 @@ private boolean processRecentActivityGoToSpanRequest(RecentActivityEntrySpanPayl
157171
LanguageService languageService = LanguageService.findLanguageServiceByMethodCodeObjectId(project, methodCodeObjectId);
158172
Map<String, Pair<String, Integer>> workspaceUrisForMethodCodeObjectIds = languageService.findWorkspaceUrisForMethodCodeObjectIds(Collections.singletonList(methodCodeObjectId));
159173
if (workspaceUrisForMethodCodeObjectIds.containsKey(methodCodeObjectId)) {
174+
// modifying the selected environment
175+
EnvironmentsSupplier environmentsSupplier = analyticsService.getEnvironment();
176+
String actualEnvName = adjustBackEnvNameIfNeeded(payload.getEnvironment());
177+
environmentsSupplier.setCurrent(actualEnvName);
178+
160179
Pair<String, Integer> result = workspaceUrisForMethodCodeObjectIds.get(methodCodeObjectId);
161180
editorService.openWorkspaceFileInEditor(result.getFirst(), result.getSecond());
162181
ToolWindow digmaLeftToolWindow = ToolWindowManager.getInstance(project).getToolWindow(DIGMA_LEFT_TOOL_WINDOW_NAME);
@@ -225,7 +244,14 @@ private List<RecentActivityResponseEntry> getEntriesWithAdjustedLocalEnvs(Recent
225244
}
226245

227246
private String getAdjustedEnvName(String environment) {
228-
return environment.toUpperCase().endsWith("["+ LOCAL_ENV + "]") ? LOCAL_ENV: environment;
247+
return environment.toUpperCase().endsWith(SUFFIX_OF_LOCAL) ? LOCAL_ENV: environment;
248+
}
249+
250+
private String adjustBackEnvNameIfNeeded(String environment) {
251+
if (environment.equalsIgnoreCase(LOCAL_ENV)) {
252+
return (localHostname + SUFFIX_OF_LOCAL).toUpperCase();
253+
}
254+
return environment;
229255
}
230256

231257
private <T> T parseJsonToObject(String jsonString, Class<T> jcefMessageRequestClass) {

src/main/kotlin/org/digma/intellij/plugin/ui/common/EnvironmentUtil.kt

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

33
const val LOCAL_ENV = "LOCAL"
4+
const val SUFFIX_OF_LOCAL = "[LOCAL]"
45

56
fun getSortedEnvironments(
67
envsList: List<String>,
@@ -31,7 +32,7 @@ fun getSortedEnvironments(
3132
return builtEnvs
3233
}
3334
fun isEnvironmentLocal(environment: String): Boolean {
34-
return environment.endsWith("[$LOCAL_ENV]", true)
35+
return environment.endsWith(SUFFIX_OF_LOCAL, true)
3536
}
3637

3738
fun isLocalEnvironmentMine(environment: String, localHostname: String): Boolean {

src/main/resources/webview/index.js

Lines changed: 22 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)