[DQL] Executed DQL services will now be grouped by tenant in the Services tab#119
Conversation
…ices tab This helps to easily execute the same query on multiple tenants and compare values
There was a problem hiding this comment.
Pull request overview
This PR refactors DQL execution “Services” integration so executed queries are registered via a shared project-level services manager and can be grouped (notably by tenant) in the Services tool window, making it easier to execute/compare the same query across multiple tenants.
Changes:
- Introduces a generic
ProjectServicesManager+ManagedService(Group)contributor to register/group running executions in the IDE Services view. - Updates DQL execution actions/toolbar UI to use a new
QueryConfigurationActioncomponent set and new execute action id/class. - Adds tenant-based grouping (
TenantServiceGroup) and adjusts runtime service execution lifecycle + UI wiring accordingly.
Reviewed changes
Copilot reviewed 43 out of 43 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| src/main/resources/messages/DQLBundle.properties | Adds new service strings and renames execute action label key |
| src/main/resources/META-INF/plugin.xml | Switches service contributor + action id/class for query execution |
| src/main/java/pl/thedeem/intellij/edql/EDQLFileType.java | Uses shared icon source (Icons) |
| src/main/java/pl/thedeem/intellij/dql/services/ui/TenantServiceGroup.java | New service grouping node for tenant-based grouping |
| src/main/java/pl/thedeem/intellij/dql/services/ui/DQLServicesManager.java | Removes DQL-specific services manager (replaced by generic manager) |
| src/main/java/pl/thedeem/intellij/dql/services/ui/DQLServiceViewContributor.java | Removes DQL-specific services contributor |
| src/main/java/pl/thedeem/intellij/dql/services/ui/DQLManagedService.java | Removes DQL-specific service interface (replaced by ManagedService) |
| src/main/java/pl/thedeem/intellij/dql/services/query/DQLQueryConfigurationServiceImpl.java | Adds updateConfiguration() to persist updated config on a file |
| src/main/java/pl/thedeem/intellij/dql/services/query/DQLQueryConfigurationService.java | Exposes updateConfiguration() API |
| src/main/java/pl/thedeem/intellij/dql/exec/runConfiguration/ExecuteDQLRunConfiguration.java | Registers executions via ProjectServicesManager and updates DQLExecutionService ctor usage |
| src/main/java/pl/thedeem/intellij/dql/exec/panel/DQLExecutionResult.java | Ensures progress panel is shown while execution is running |
| src/main/java/pl/thedeem/intellij/dql/exec/DQLExecutionService.java | Migrates to ManagedService, adds tenant grouping, updates lifecycle/actions, threading, and data context |
| src/main/java/pl/thedeem/intellij/dql/editor/gutter/DQLQueryConfigurationLineMarkerProvider.java | Replaces old toolbar action with new QueryConfigurationAction popup |
| src/main/java/pl/thedeem/intellij/dql/editor/gutter/DQLFileQueryExecutionLineMarkerProvider.java | Uses new execute action package and copies config before mutation |
| src/main/java/pl/thedeem/intellij/dql/editor/actions/TenantSelectorAction.java | Updates tenant selection writeback API to use AnActionEvent data |
| src/main/java/pl/thedeem/intellij/dql/editor/actions/StartStopDQLExecutionAction.java | Reworks start/stop logic to use ProjectServicesManager and better file resolution (incl injected contexts) |
| src/main/java/pl/thedeem/intellij/dql/editor/actions/SaveQueryConfigurationAction.java | Switches to new data keys and adds explicit presentation (icon/text) |
| src/main/java/pl/thedeem/intellij/dql/editor/actions/QueryConfigurationTimeframeAction.java | New custom component action for timeframe editing |
| src/main/java/pl/thedeem/intellij/dql/editor/actions/QueryConfigurationOptionsAction.java | New custom component action for scan/max options with toggle |
| src/main/java/pl/thedeem/intellij/dql/editor/actions/QueryConfigurationAction.java | New composed toolbar action hosting tenant/execute/timeframe/options/save actions |
| src/main/java/pl/thedeem/intellij/dql/editor/actions/ExecutionManagerAction.java | Removes legacy execution manager toolbar implementation |
| src/main/java/pl/thedeem/intellij/dql/editor/actions/ExecuteDQLQueryAction.java | Removes legacy execute action (moved to new package) |
| src/main/java/pl/thedeem/intellij/dql/editor/actions/AbstractTimeFieldAction.java | Removes legacy text-field action implementation |
| src/main/java/pl/thedeem/intellij/dql/editor/actions/AbstractTextFieldAction.java | Removes legacy text-field base implementation |
| src/main/java/pl/thedeem/intellij/dql/editor/actions/AbstractNumericFieldAction.java | Removes legacy numeric text-field action implementation |
| src/main/java/pl/thedeem/intellij/dql/editor/DQLToolbarProvider.java | Uses QueryConfigurationAction and supplies query configuration via UiDataProvider |
| src/main/java/pl/thedeem/intellij/dql/definition/model/QueryConfiguration.java | Adds copy() helper for safer config mutation |
| src/main/java/pl/thedeem/intellij/dql/components/QueryTimeframeConfigurationComponent.java | New reusable timeframe UI component |
| src/main/java/pl/thedeem/intellij/dql/components/QueryConfigurationComponent.java | New reusable options UI component |
| src/main/java/pl/thedeem/intellij/dql/actions/ExecuteDQLQueryAction.java | New execute action implementation using ProjectServicesManager |
| src/main/java/pl/thedeem/intellij/dql/actions/ActionUtils.java | Removes legacy shared action helper utilities |
| src/main/java/pl/thedeem/intellij/dql/DQLIcon.java | Switches to shared Icons interface |
| src/main/java/pl/thedeem/intellij/dpl/DPLIcon.java | Switches to shared Icons interface |
| src/main/java/pl/thedeem/intellij/common/services/ProjectServicesManager.java | New generic project-level service registry for Services view |
| src/main/java/pl/thedeem/intellij/common/services/ManagedServiceViewContributor.java | New grouping contributor for Services view + grouping support |
| src/main/java/pl/thedeem/intellij/common/services/ManagedServiceGroup.java | New group interface for Services view grouping |
| src/main/java/pl/thedeem/intellij/common/services/ManagedService.java | New managed service interface with grouping and id |
| src/main/java/pl/thedeem/intellij/common/components/SimpleDataProviderPanel.java | New helper panel implementing UiDataProvider |
| src/main/java/pl/thedeem/intellij/common/components/ResizableTextField.java | New resizable text field with numeric/time validation support |
| src/main/java/pl/thedeem/intellij/common/StandardItemPresentation.java | Strengthens nullability annotations |
| src/main/java/pl/thedeem/intellij/common/IntelliJUtils.java | Adds helper to resolve project-relative files |
| src/main/java/pl/thedeem/intellij/common/Icons.java | New shared Dynatrace icon holder |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
src/main/java/pl/thedeem/intellij/dql/editor/actions/QueryConfigurationOptionsAction.java
Outdated
Show resolved
Hide resolved
src/main/java/pl/thedeem/intellij/dql/definition/model/QueryConfiguration.java
Outdated
Show resolved
Hide resolved
src/main/java/pl/thedeem/intellij/common/services/ProjectServicesManager.java
Show resolved
Hide resolved
Qodana for JVMIt seems all right 👌 No new problems were found according to the checks applied 💡 Qodana analysis was run in the pull request mode: only the changed files were checked View the detailed Qodana reportTo be able to view the detailed Qodana report, you can either:
To get - name: 'Qodana Scan'
uses: JetBrains/qodana-action@v2025.3.1
with:
upload-result: trueContact Qodana teamContact us at qodana-support@jetbrains.com
|
This helps to easily execute the same query on multiple tenants and compare values