From 3048ff1954463be30d3737b236886e2b896f5557 Mon Sep 17 00:00:00 2001 From: Ishan Taldekar Date: Tue, 4 Feb 2025 16:27:23 -0500 Subject: [PATCH] Introduce ViewRouter Component (#337) * improved handling of lsp failure state * add static mock to lsp connection test case * Integrate Event Broker in LspStatusManager * Add ViewRouter POC * Fix code formatting bug * Add method to retrieve observables * Add listeners for combined state streams and view update request * Add listeners for combined state streams and view update request * Add listeners for combined state streams and view update request * Add functionality for hot event streams that track latest event (#340) * Add functionality for hot subscribers that track latest event * Add test to ensure event stream isolation * Fix missing subscription disposal in test * Use autoConnect to implicitly manage stream connection * Remove active view update request listener * Add ViewRouter tests * Remove public constructor * Remove public constructor and unused event in tests * Add comments * Add documentation for EventBroker * Remove ViewRouter initialization * Remove LspInitializingView from ID enum * Add documentation for ViewRouter * Refactor and enhance EventBroker tests * Refactor ViewRouter tests for clarity * Remove PluginState class into separate file * Add documentation to subscription management logic * Add support for notifying multiple late-subscribers over time of latest state (#342) * Remove CODE_REFERENCE_VIEW * Rename newActiveViewId to newActiveView * Rename ViewId class to AmazonQViewType * Revert "Integrate Event Broker in LspStatusManager" This reverts commit 374e549a692005f03c2c79ef6349e9564e467d5b. * Revert "improved handling of lsp failure state" This reverts commit 13c55acabaade5c1a73d7097fc35f7fca52b1226. * Refactor EventBroker and enhance tests (#343) --------- Co-authored-by: Nicolas Borges --- .../aws/toolkits/eclipse/amazonq/views/router/ViewRouter.java | 2 +- .../toolkits/eclipse/amazonq/views/router/ViewRouterTest.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/router/ViewRouter.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/router/ViewRouter.java index 88758cb5..e5928e38 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/router/ViewRouter.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/router/ViewRouter.java @@ -9,6 +9,7 @@ import software.aws.toolkits.eclipse.amazonq.lsp.auth.model.AuthState; import software.aws.toolkits.eclipse.amazonq.lsp.manager.LspState; import software.aws.toolkits.eclipse.amazonq.plugin.Activator; +<<<<<<< HEAD import software.aws.toolkits.eclipse.amazonq.providers.assets.ChatWebViewAssetState; import software.aws.toolkits.eclipse.amazonq.providers.assets.ToolkitLoginWebViewAssetState; import software.aws.toolkits.eclipse.amazonq.providers.browser.BrowserCompatibilityState; @@ -70,7 +71,6 @@ private ViewRouter(final Builder builder) { builder.browserCompatibilityStateObservable, builder.chatWebViewAssetStateObservable, builder.toolkitLoginWebViewAssetStateObservable, PluginState::new) .observeOn(Schedulers.computation()).subscribe(this::onEvent); - } public static Builder builder() { diff --git a/plugin/tst/software/aws/toolkits/eclipse/amazonq/views/router/ViewRouterTest.java b/plugin/tst/software/aws/toolkits/eclipse/amazonq/views/router/ViewRouterTest.java index 65e844f6..d5748e56 100644 --- a/plugin/tst/software/aws/toolkits/eclipse/amazonq/views/router/ViewRouterTest.java +++ b/plugin/tst/software/aws/toolkits/eclipse/amazonq/views/router/ViewRouterTest.java @@ -23,6 +23,7 @@ import software.aws.toolkits.eclipse.amazonq.lsp.auth.model.AuthState; import software.aws.toolkits.eclipse.amazonq.lsp.auth.model.AuthStateType; import software.aws.toolkits.eclipse.amazonq.lsp.manager.LspState; +<<<<<<< HEAD import software.aws.toolkits.eclipse.amazonq.providers.assets.ChatWebViewAssetState; import software.aws.toolkits.eclipse.amazonq.providers.assets.ToolkitLoginWebViewAssetState; import software.aws.toolkits.eclipse.amazonq.providers.browser.BrowserCompatibilityState;