oscerd opened a new pull request, #22656:
URL: https://github.com/apache/camel/pull/22656

   ## Summary
   
   Follow-up to #22638. Completes the second half of CAMEL-23331 by adding the 
`snapshotId` read-path.
   After this PR, `getBlob`, `downloadBlobToFile` and `downloadLink` can target 
a specific blob snapshot version
   instead of the live blob.
   
   ## Changes
   
   - `BlobConfiguration` — new `snapshotId` `@UriParam(common)`
   - `BlobConstants` — `BLOB_SNAPSHOT_ID` description updated to cover both 
roles (input for read ops / output of `createBlobSnapshot`)
   - `BlobExchangeHeaders` — new `getSnapshotIdFromHeaders()` reader (setter 
`snapshotId()` already existed from #22638)
   - `BlobConfigurationOptionsProxy` — resolve `snapshotId` from header, fall 
back to config
   - `BlobClientWrapper` — new `withSnapshot(String)` returning a wrapper 
scoped to the snapshot via `BlobClient.getSnapshotClient`, or `this` when the 
id is empty
   - `BlobOperations` — thread `withSnapshot` through the three read 
operations; fix the `downloadLink` URL composition to handle the 
snapshot-scoped URL's existing `?snapshot=<id>` query string before appending 
the SAS token
   - Documentation — new section "Reading a specific blob snapshot" with a 
route example
   - Regenerated catalog JSON, endpoint DSL, configurers
   
   ## Test plan
   
   - [x] New 
`BlobOperationsTest.testGetBlobWithSnapshotIdReadsFromScopedClient()` — 
verifies that when `snapshotId` is configured, `getBlob` reaches the 
snapshot-scoped client
   - [x] New 
`BlobOperationsTest.testGetBlobWithSnapshotIdHeaderOverridesConfig()` — 
verifies header precedence over the URI param
   - [x] All existing tests pass (34 tests, 0 failures)
   - [x] Full `mvn -DskipTests install` for the module, catalog and endpoint 
DSL succeeds — all generated files committed
   - [ ] Integration test against Azure/Azurite (requires credentials)
   
   ## JIRA
   
   https://issues.apache.org/jira/browse/CAMEL-23331 (the ticket's original 
scope included both creation and retrieval; #22638 delivered the first half, 
this PR delivers the second)
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code) on behalf of 
Andrea Cosentino


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to