refactor: move the download ingestion code to analytics.ingestion - #2131
Open
netomi wants to merge 8 commits into
Open
refactor: move the download ingestion code to analytics.ingestion#2131netomi wants to merge 8 commits into
netomi wants to merge 8 commits into
Conversation
This was referenced Sep 2, 2026
netomi
force-pushed
the
split/ingestion-move
branch
from
September 2, 2026 16:09
516f771 to
824ba66
Compare
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The change set is a consistent package relocation with updated references (including the AOP pointcut) and no remaining org.eclipse.openvsx.storage.log references found in the codebase.
Pull request overview
This PR relocates the server-side “download ingestion” implementation from org.eclipse.openvsx.storage.log into the new org.eclipse.openvsx.analytics.ingestion package hierarchy (with AWS/Azure subpackages), aiming to keep subsequent ingestion rework focused and reviewable without mixing in package-move noise.
Changes:
- Moved ingestion service/processor and AWS/Azure handlers into
analytics.ingestionpackages (package declarations + import rewrites). - Updated all in-repo references (including tests) to import
org.eclipse.openvsx.analytics.ingestion.DownloadCountService. - Updated the mirror AOP pointcut string to match the new
DownloadCountServicepackage.
File summaries
| File | Description |
|---|---|
| server/src/test/resources/org/eclipse/openvsx/analytics/ingestion/aws/fastly.log | Adds Fastly sample log under the new AWS ingestion resource path for tests. |
| server/src/test/resources/org/eclipse/openvsx/analytics/ingestion/aws/cloudfront.log | Adds CloudFront sample log under the new AWS ingestion resource path for tests. |
| server/src/test/java/org/eclipse/openvsx/storage/StorageUtilServiceUploadFileTest.java | Updates DownloadCountService import to new analytics ingestion package. |
| server/src/test/java/org/eclipse/openvsx/storage/StorageUtilServiceTest.java | Updates DownloadCountService import to new analytics ingestion package. |
| server/src/test/java/org/eclipse/openvsx/RegistryAPITest.java | Updates DownloadCountService import to new analytics ingestion package. |
| server/src/test/java/org/eclipse/openvsx/eclipse/EclipseServiceTest.java | Updates DownloadCountService import to new analytics ingestion package. |
| server/src/test/java/org/eclipse/openvsx/analytics/ingestion/aws/FastlyLogFileParserTest.java | Moves test package to analytics.ingestion.aws to match relocated AWS parser code/resources. |
| server/src/test/java/org/eclipse/openvsx/analytics/ingestion/aws/CloudFrontLogFileParserTest.java | Moves test package to analytics.ingestion.aws to match relocated AWS parser code/resources. |
| server/src/test/java/org/eclipse/openvsx/admin/AdminAPITest.java | Updates DownloadCountService import to new analytics ingestion package. |
| server/src/test/java/org/eclipse/openvsx/adapter/VSCodeAPITest.java | Updates DownloadCountService import to new analytics ingestion package. |
| server/src/main/java/org/eclipse/openvsx/storage/StorageUtilService.java | Updates DownloadCountService import to new analytics ingestion package. |
| server/src/main/java/org/eclipse/openvsx/mirror/aop/DownloadCountServiceAspect.java | Updates AOP pointcut package string to match relocated DownloadCountService. |
| server/src/main/java/org/eclipse/openvsx/analytics/ingestion/DownloadCountService.java | Relocates service to analytics.ingestion; adds cross-package imports for AWS/Azure handlers. |
| server/src/main/java/org/eclipse/openvsx/analytics/ingestion/DownloadCountProcessor.java | Relocates processor to analytics.ingestion (package declaration update). |
| server/src/main/java/org/eclipse/openvsx/analytics/ingestion/azure/AzureDownloadCountHandler.java | Relocates Azure handler into analytics.ingestion.azure and adjusts imports accordingly. |
| server/src/main/java/org/eclipse/openvsx/analytics/ingestion/aws/LogRecord.java | Relocates AWS log record model into analytics.ingestion.aws. |
| server/src/main/java/org/eclipse/openvsx/analytics/ingestion/aws/LogFileParser.java | Relocates AWS log parser interface into analytics.ingestion.aws. |
| server/src/main/java/org/eclipse/openvsx/analytics/ingestion/aws/FastlyLogFileParser.java | Relocates Fastly parser into analytics.ingestion.aws. |
| server/src/main/java/org/eclipse/openvsx/analytics/ingestion/aws/CloudFrontLogFileParser.java | Relocates CloudFront parser into analytics.ingestion.aws. |
| server/src/main/java/org/eclipse/openvsx/analytics/ingestion/aws/AwsDownloadCountHandler.java | Relocates AWS handler into analytics.ingestion.aws and adjusts imports accordingly. |
Review details
- Files reviewed: 18/20 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
(cherry picked from commit e0a4859)
(cherry picked from commit 2f96cbc)
(cherry picked from commit 1208a19)
(cherry picked from commit 5bba107)
(cherry picked from commit ad058b3)
The dashboard spec is the first test to mount a page that reaches @mui/x-charts (the rate limiting usage stats chart), x-data-grid and x-date-pickers. Their ESM builds import directory paths Node's resolver rejects, so vite has to bundle them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
adminPages is consumer-provided API input, and the shadowing check took the first segment of the path as given. A leading slash left it inspecting an empty segment, so '/customers' passed the check and sat in the nav beside the built-in page it names, and createRoute joined it into '/admin-dashboard//customers'. Paths are now trimmed of leading and trailing slashes before anything derives a route or a nav link from them, and a path left empty by that is dropped. Also corrects two doc comments that said the opposite of what the code does: compactControl carries nested selectors for the select's inner slots, so it is sx-only rather than usable in a plain style prop; and useExtendNavbarBlur has no ownership stack, so "last writer wins" only holds until any writer unmounts and resets the fan under a second one still mounted. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Pure relocation, no behaviour change, ahead of the ingestion rework. The files
move from org.eclipse.openvsx.storage.log to the package layout the rework
targets:
storage/log/AwsDownloadCountHandler -> analytics/ingestion/aws/
storage/log/{CloudFront,Fastly}LogFileParser, LogFileParser, LogRecord
-> analytics/ingestion/aws/
storage/log/AzureDownloadCountHandler -> analytics/ingestion/azure/
storage/log/{DownloadCountProcessor,DownloadCountService}
-> analytics/ingestion/
Class names and file contents are untouched, so every file is a git rename and
the only edits are `package` declarations, the imports that were previously
same-package, and the mock declarations in the tests that name the service.
The one change a compiler could not have caught is in DownloadCountServiceAspect:
its @around pointcut matches the package as a string, so the move would have
silently stopped the mirror from intercepting isEnabled. That is the reason for
doing this as its own step.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
netomi
force-pushed
the
split/ingestion-move
branch
from
September 3, 2026 14:46
3af6963 to
39f5d25
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stack: 2 of 6. Split out of #2027. Base: #2130 (
split/webui-library-surface).A pure relocation with no behaviour change, so that the ingestion rework in the next PR is reviewable as a rework rather than as a rework tangled up with a package move.
How to check it is really a no-op
20 files, +22/−18. Git detects all 12 relocated files as renames with content identical, so
git diff -Mshows only:packagedeclarations in the moved filesDownloadCountServicemock declarations in the six tests that name itFiltering the diff to non-
package/non-importlines leaves exactly one hunk.The one thing that could have broken silently
DownloadCountServiceAspectmatches the package as a string. Nothing in the compiler or the type system would have caught this, and the failure mode is quiet: the mirror stops interceptingisEnabled, and download counting behaves differently only in mirror deployments. This is the concrete argument for separating the move from the rework — inside a 114-file feature PR, that line is invisible.Class names are deliberately not changed here. The
DownloadCountProcessedItem->DownloadIngestionentity rename comes with a table rename, which is a data migration, so it belongs with the rework rather than with a move.Verification
compileJava/compileTestJavaclean; 371 tests passing across the ingestion, storage, registry, admin, VSCode-adapter and Eclipse-service suites (everything that references the moved classes).Refs #2027, #2025