Skip to content

SLCORE-2061 SLCORE-2062 On-demand analyzers.#1941

Draft
nquinquenel wants to merge 28 commits intomasterfrom
feature/on-demand-analyzers
Draft

SLCORE-2061 SLCORE-2062 On-demand analyzers.#1941
nquinquenel wants to merge 28 commits intomasterfrom
feature/on-demand-analyzers

Conversation

@nquinquenel
Copy link
Copy Markdown
Member

No description provided.

@nquinquenel nquinquenel changed the title SLCORE-2239 Add on-demand plugin signature verification SLCORE-2061 SLCORE-2062 On-demand analyzers. Mar 24, 2026
@nquinquenel nquinquenel force-pushed the feature/on-demand-analyzers branch 2 times, most recently from d422d29 to 8a4a4e0 Compare March 25, 2026 13:48
@sonarqube-next
Copy link
Copy Markdown

sonarqube-next bot commented Mar 31, 2026

@damien-urruty-sonarsource damien-urruty-sonarsource force-pushed the feature/on-demand-analyzers branch 3 times, most recently from a6492c5 to 6a2ef4a Compare April 10, 2026 13:42
@sonarqube-next
Copy link
Copy Markdown

Quality Gate failed Quality Gate failed

Failed conditions
7 New issues
79.5% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE SonarQube for IDE

* SLCORE-2062 Introduce standalone artifacts loading strategy

Add the ArtifactSource interface, the standalone source implementations
(EmbeddedPluginSource, BinariesArtifactSource) and their supporting
infrastructure (ArtifactState, ArtifactOrigin, ResolvedArtifact, …),
together with StandaloneArtifactsLoadingStrategy and
ArtifactsLoadingStrategy interface.
Renames commons Plugin → EnterpriseReplacement to reflect its meaning.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* SLCORE-2062 Move binaries utilities to plugin/source package

OnDemandPluginCacheManager, OmnisharpDistributionDownloader,
OnDemandPluginSignatureVerifier, UniqueTaskExecutor and DownloadableArtifact
were pure package moves; delete the old files and update imports in
SonarLintSpringAppConfig and AnalysisSchedulerCache.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* SLCORE-2062 Fix compilation of standalone branch

- Delete plugin.ArtifactState (now in plugin.source.ArtifactState)
- Update all imports from plugin.ArtifactState to source.ArtifactState
- Update old resolver files: ArtifactSource enum -> ArtifactOrigin
- Apply PluginStatusMapper from main refactoring commit
- Update ResolvedArtifact to use source.ArtifactState and ArtifactOrigin
- Add missing imports in resolver dead-code files for moved classes
- Make OnDemandPluginSignatureVerifier.verify() and OnDemandPluginCacheManager.cleanupOldVersions() public

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* SLCORE-2062 Fix test compilation of standalone branch

- Add ArtifactState and ArtifactOrigin imports to tests in plugin package
  (previously accessed without import as same-package types)
- Replace ArtifactSource enum values with ArtifactOrigin in tests
- Fix resolved() helper method signatures in resolver tests
- Add OnDemandPluginSignatureVerifier and DownloadableArtifact imports
  to OnDemandArtifactResolverTest (classes moved out of resolvers package)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* SLCORE-2062 Delete ondemand plugins.properties test resource

This file belonged to the old OnDemandArtifactResolver which is removed as part of this refactoring.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* SLCORE-2062 Fix medium test after DownloadableArtifact package move

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* PR review

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* PR review

* SLCORE-2062 Introduce connected artifacts loading strategy

Add ServerPluginSource, ServerPluginDownloader, ServerPluginsCache and
ConnectedArtifactsLoadingStrategy (with its factory) to handle plugin
resolution in connected mode via the new ArtifactSource architecture.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* SLCORE-2062 Move ServerPluginDownloader and ServerPluginsCache to plugin/source/server

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* SLCORE-2062 Fix test compilation of connected branch

- Add ServerPluginsCache import to ConnectedModeArtifactResolverTest
  (class moved from plugin to plugin.source.server)
- Add ServerPluginDownloader import to ConnectedModeCompanionPluginResolverTest
  (class moved from plugin.resolvers to plugin.source.server)
- Restore refreshAndGet method in ServerPluginsCache (was missing from the move)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* PR review

* PR review

* Fix logic around text enterprise plugin

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
)

* SLCORE-2062 Wire artifacts loading strategies into PluginsService

Replace the old resolver chain (EmbeddedArtifactResolver,
ConnectedModeArtifactResolver, …) with the new
ArtifactsLoadingStrategy / ArtifactSource abstraction in PluginsService
and SonarLintSpringAppConfig. Delete all old resolver classes and update
AnalysisService, LanguageSupportRepository, PluginStatus and the medium
tests accordingly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* SLCORE-2062 Align wiring branch with original plugin-sources branch

- Revert cleanupOldVersions and verify to package-private (were widened temporarily to compile dead-code resolvers)
- Remove ServerPluginsCache.refreshAndGet (not in original, not called by production code)
- Remove corresponding refreshAndGet test case from ServerPluginsCacheTest
- Restore {@link ServerPluginSource} Javadoc + import in ArtifactSource
- Fix import ordering in SonarLintSpringAppConfig (ServerPlugin* after SkippedPlugins*)

Intentional improvements kept over original:
- ArtifactState/ArtifactOrigin imports in test files (needed for compilation)
- ServerPluginsCacheTest moved to source/server/ package (matches production code location)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Move classes

* Bot review

* PR review

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants