Skip to content

Commit 444407d

Browse files
authored
send-server-about-info (#1967)
1 parent a6575b2 commit 444407d

File tree

3 files changed

+65
-33
lines changed

3 files changed

+65
-33
lines changed

src/main/kotlin/org/digma/intellij/plugin/ui/jcef/BaseMessageRouterHandler.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import org.digma.intellij.plugin.scope.SpanScope
2929
import org.digma.intellij.plugin.ui.MainToolWindowCardsController
3030
import org.digma.intellij.plugin.ui.ToolWindowShower
3131
import org.digma.intellij.plugin.ui.common.updateObservabilityValue
32-
import org.digma.intellij.plugin.ui.jcef.model.BackendInfoMessage
3332
import org.digma.intellij.plugin.ui.jcef.model.GetFromPersistenceRequest
3433
import org.digma.intellij.plugin.ui.jcef.model.OpenInDefaultBrowserRequest
3534
import org.digma.intellij.plugin.ui.jcef.model.OpenInInternalBrowserRequest
@@ -268,10 +267,8 @@ abstract class BaseMessageRouterHandler(protected val project: Project) : Common
268267

269268
protected fun doCommonInitialize(browser: CefBrowser) {
270269
try {
271-
val about = AnalyticsService.getInstance(project).about
272-
val message = BackendInfoMessage(about)
273270
Log.log(logger::trace, project, "sending {} message", JCEFGlobalConstants.GLOBAL_SET_BACKEND_INFO)
274-
serializeAndExecuteWindowPostMessageJavaScript(browser, message)
271+
sendBackendAboutInfo(browser, project)
275272
} catch (e: Exception) {
276273
Log.debugWithException(logger, project, e, "error calling about")
277274
}

src/main/kotlin/org/digma/intellij/plugin/ui/jcef/JCefComponent.kt

Lines changed: 56 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,11 @@ import org.digma.intellij.plugin.docker.DockerService
2121
import org.digma.intellij.plugin.env.Env
2222
import org.digma.intellij.plugin.errorreporting.ErrorReporter
2323
import org.digma.intellij.plugin.idea.frameworks.SpringBootMicrometerConfigureDepsService
24-
import org.digma.intellij.plugin.log.Log
25-
import org.digma.intellij.plugin.model.rest.insights.InsightsStatsResult
2624
import org.digma.intellij.plugin.model.rest.navigation.CodeLocation
2725
import org.digma.intellij.plugin.observability.ObservabilityChanged
2826
import org.digma.intellij.plugin.scope.ScopeChangedEvent
2927
import org.digma.intellij.plugin.scope.SpanScope
3028
import org.digma.intellij.plugin.settings.SettingsState
31-
import org.digma.intellij.plugin.ui.jcef.model.BackendInfoMessage
3229
import org.digma.intellij.plugin.ui.jcef.state.StateChangedEvent
3330
import org.digma.intellij.plugin.ui.settings.ApplicationUISettingsChangeNotifier
3431
import org.digma.intellij.plugin.ui.settings.SettingsChangeListener
@@ -103,9 +100,7 @@ private constructor(
103100
val status = service<DockerService>().getCurrentDigmaInstallationStatusOnConnectionGained()
104101
updateDigmaEngineStatus(jbCefBrowser.cefBrowser, status)
105102

106-
val about = AnalyticsService.getInstance(project).about
107-
val message = BackendInfoMessage(about)
108-
serializeAndExecuteWindowPostMessageJavaScript(jbCefBrowser.cefBrowser, message)
103+
sendBackendAboutInfo(jbCefBrowser.cefBrowser, project)
109104

110105
} catch (e: Exception) {
111106
ErrorReporter.getInstance().reportError(project, "JCefComponent.connectionGained", e)
@@ -116,43 +111,66 @@ private constructor(
116111

117112

118113
SettingsState.getInstance().addChangeListener({ settings ->
119-
val apiUrl = settings.apiUrl
120-
sendApiUrl(jbCefBrowser.cefBrowser, apiUrl)
121-
sendIsMicrometerProject(jbCefBrowser.cefBrowser, SpringBootMicrometerConfigureDepsService.isSpringBootWithMicrometer())
122-
sendIsJaegerButtonEnabledMessage(jbCefBrowser.cefBrowser)
114+
try {
115+
val apiUrl = settings.apiUrl
116+
sendApiUrl(jbCefBrowser.cefBrowser, apiUrl)
117+
sendIsMicrometerProject(jbCefBrowser.cefBrowser, SpringBootMicrometerConfigureDepsService.isSpringBootWithMicrometer())
118+
sendIsJaegerButtonEnabledMessage(jbCefBrowser.cefBrowser)
119+
sendBackendAboutInfo(jbCefBrowser.cefBrowser, project)
120+
val status = service<DockerService>().getCurrentDigmaInstallationStatusOnConnectionLost()
121+
updateDigmaEngineStatus(jbCefBrowser.cefBrowser, status)
122+
} catch (e: Throwable) {
123+
ErrorReporter.getInstance().reportError("JCefComponent.settingsChanged", e)
124+
}
123125
}, settingsListenerParentDisposable)
124126

125127

126128
project.messageBus.connect(userRegistrationParentDisposable).subscribe(
127129
UserRegistrationEvent.USER_REGISTRATION_TOPIC, object : UserRegistrationEvent {
128130
override fun userRegistered(email: String) {
129-
sendUserEmail(jbCefBrowser.cefBrowser, email)
131+
try {
132+
sendUserEmail(jbCefBrowser.cefBrowser, email)
133+
} catch (e: Throwable) {
134+
ErrorReporter.getInstance().reportError("JCefComponent.userRegistered", e)
135+
}
130136
}
131137
})
132138

133139

134140
project.messageBus.connect(environmentChangeParentDisposable).subscribe(
135141
EnvironmentChanged.ENVIRONMENT_CHANGED_TOPIC, object : EnvironmentChanged {
136142
override fun environmentChanged(newEnv: Env) {
137-
sendCurrentEnvironment(jbCefBrowser.cefBrowser, newEnv)
143+
try {
144+
sendCurrentEnvironment(jbCefBrowser.cefBrowser, newEnv)
145+
} catch (e: Throwable) {
146+
ErrorReporter.getInstance().reportError("JCefComponent.environmentChanged", e)
147+
}
138148
}
139149

140150
override fun environmentsListChanged(newEnvironments: MutableList<Env>?) {
141-
sendEnvironmentsList(
142-
jbCefBrowser.cefBrowser,
143-
AnalyticsService.getInstance(project).environment.getEnvironments()
144-
)
151+
try {
152+
sendEnvironmentsList(
153+
jbCefBrowser.cefBrowser,
154+
AnalyticsService.getInstance(project).environment.getEnvironments()
155+
)
156+
} catch (e: Throwable) {
157+
ErrorReporter.getInstance().reportError("JCefComponent.environmentsListChanged", e)
158+
}
145159
}
146160
})
147161

148162

149163
project.messageBus.connect(observabilityChangeParentDisposable).subscribe(
150164
ObservabilityChanged.OBSERVABILITY_CHANGED_TOPIC, object : ObservabilityChanged {
151165
override fun observabilityChanged(isObservabilityEnabled: Boolean) {
152-
sendObservabilityEnabledMessage(
153-
jbCefBrowser.cefBrowser,
154-
isObservabilityEnabled
155-
)
166+
try {
167+
sendObservabilityEnabledMessage(
168+
jbCefBrowser.cefBrowser,
169+
isObservabilityEnabled
170+
)
171+
} catch (e: Throwable) {
172+
ErrorReporter.getInstance().reportError("JCefComponent.observabilityChanged", e)
173+
}
156174
}
157175
}
158176
)
@@ -162,22 +180,31 @@ private constructor(
162180
override fun scopeChanged(
163181
scope: SpanScope?, codeLocation: CodeLocation, hasErrors: Boolean,
164182
) {
165-
val insightsStats = AnalyticsService.getInstance(project).getInsightsStats(scope?.spanCodeObjectId)
166-
sendScopeChangedMessage(
167-
jbCefBrowser.cefBrowser,
168-
scope,
169-
codeLocation,
170-
hasErrors,
171-
insightsStats?.analyticsInsightsCount ?: 0,
172-
insightsStats?.issuesInsightsCount ?: 0)
183+
try {
184+
val insightsStats = AnalyticsService.getInstance(project).getInsightsStats(scope?.spanCodeObjectId)
185+
sendScopeChangedMessage(
186+
jbCefBrowser.cefBrowser,
187+
scope,
188+
codeLocation,
189+
hasErrors,
190+
insightsStats?.analyticsInsightsCount ?: 0,
191+
insightsStats?.issuesInsightsCount ?: 0
192+
)
193+
} catch (e: Throwable) {
194+
ErrorReporter.getInstance().reportError("JCefComponent.scopeChanged", e)
195+
}
173196
}
174197
}
175198
)
176199

177200
project.messageBus.connect(stateChangeParentDisposable).subscribe(
178201
StateChangedEvent.JCEF_STATE_CHANGED_TOPIC, object : StateChangedEvent {
179202
override fun stateChanged(state: JsonNode) {
180-
sendJcefStateMessage(jbCefBrowser.cefBrowser, state)
203+
try {
204+
sendJcefStateMessage(jbCefBrowser.cefBrowser, state)
205+
} catch (e: Throwable) {
206+
ErrorReporter.getInstance().reportError("JCefComponent.stateChanged", e)
207+
}
181208
}
182209
}
183210
)

src/main/kotlin/org/digma/intellij/plugin/ui/jcef/JCefMessagesUtils.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.intellij.openapi.components.service
55
import com.intellij.openapi.project.Project
66
import com.intellij.ui.jcef.JBCefBrowser
77
import org.cef.browser.CefBrowser
8+
import org.digma.intellij.plugin.analytics.AnalyticsService
89
import org.digma.intellij.plugin.docker.DigmaInstallationStatus
910
import org.digma.intellij.plugin.docker.DockerService
1011
import org.digma.intellij.plugin.env.Env
@@ -14,6 +15,7 @@ import org.digma.intellij.plugin.navigation.View
1415
import org.digma.intellij.plugin.scope.SpanScope
1516
import org.digma.intellij.plugin.ui.common.isJaegerButtonEnabled
1617
import org.digma.intellij.plugin.ui.jcef.model.ApiUrlPayload
18+
import org.digma.intellij.plugin.ui.jcef.model.BackendInfoMessage
1719
import org.digma.intellij.plugin.ui.jcef.model.DigmaEngineStatusMessage
1820
import org.digma.intellij.plugin.ui.jcef.model.IsJaegerButtonEnabledMessage
1921
import org.digma.intellij.plugin.ui.jcef.model.IsJaegerButtonEnabledMessagePayload
@@ -85,6 +87,12 @@ fun updateDigmaEngineStatus(cefBrowser: CefBrowser, status: DigmaInstallationSta
8587
sendDigmaEngineStatus(cefBrowser, status)
8688
}
8789

90+
fun sendBackendAboutInfo(cefBrowser: CefBrowser, project: Project) {
91+
val about = AnalyticsService.getInstance(project).about
92+
val message = BackendInfoMessage(about)
93+
serializeAndExecuteWindowPostMessageJavaScript(cefBrowser, message)
94+
}
95+
8896

8997
private fun sendDigmaEngineStatus(cefBrowser: CefBrowser, status: DigmaInstallationStatus) {
9098

0 commit comments

Comments
 (0)