CalvinKirs opened a new pull request, #64853:
URL: https://github.com/apache/doris/pull/64853
### What problem does this PR solve?
Related PR: #xxx
Problem Summary:
This is an additive slice of the `fe-filesystem` SPI migration. It does
**not** touch the
~102 legacy `datasource.property.storage.StorageProperties` consumers and
does **not** delete
any legacy class — it only lays down geography that later consumer-migration
PRs depend on:
1. **HTTP filesystem module** (`fe-filesystem-http`): typed
`HttpFileSystemProperties`
(validates `http://` / `https://` / `hf://` URIs, extracts
`http.header.*`) and
`HttpFileSystemProvider` registered via SPI. HTTP has no real FileSystem
— reads happen
via the `http()` TVF (FE `HttpUtils` / BE `TFileType.FILE_HTTP`) — so
`create()` throws and
capability gating is used instead.
2. **Capability framework**: `FileSystemCapability` enum
(READ/WRITE/LIST/DELETE/MVCC),
provider-level `FileSystemProvider.capabilities()` as the source of
truth, and a
`FileSystemFactory.capabilities(Map)` consumer shortcut (plugin-manager
path + ServiceLoader
fallback). Lets callers gate operations (e.g. HTTP = READ only) without
calling `create()`.
3. **URI validation on the properties model**:
`FileSystemProperties.validateAndNormalizeUri()` /
`validateAndGetUri()` defaults. This is pure config logic (no I/O) and
lives on the properties
model on purpose — many callers validate a URI before, or without ever,
creating a FileSystem.
### Release note
None
### Check List (For Author)
- Test
- [x] Unit Test (`fe-filesystem-http` module tests +
`FileSystemFactoryCapabilitiesTest` in fe-core)
- Behavior changed:
- [x] No. Additive SPI scaffolding; no existing path is rerouted.
- Does this need documentation?
- [x] No.
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]