This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch branch-fs-spi
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-fs-spi by this push:
new 913ee4410f6 [refactor](fe) Phase 0: Prerequisite decoupling for
filesystem SPI (#61862)
913ee4410f6 is described below
commit 913ee4410f6c5aaeac8702b42a86aad8c3e66a27
Author: Mingyu Chen (Rayner) <[email protected]>
AuthorDate: Mon Mar 30 09:53:54 2026 -0700
[refactor](fe) Phase 0: Prerequisite decoupling for filesystem SPI (#61862)
## Summary
This PR completes **Phase 0** of the [FE filesystem SPI
refactoring](https://github.com/apache/doris/issues/61860) — removing
compile-time couplings that would otherwise prevent splitting filesystem
implementations into independent Maven modules in later phases.
## Changes
### P0.1 — FsStorageType enum migration
- Introduce `FsStorageType` enum in `fe-foundation` (zero-dependency
module) to replace Thrift-generated `StorageBackend.StorageType` in
`PersistentFileSystem`
- Add `FsStorageTypeAdapter` in `fe-core` for bidirectional
Thrift↔FsStorageType conversion
- Update all subclasses and callers: `Repository`, `BackupJob`,
`RestoreJob`, `CloudRestoreJob`
### P0.2 — ObjStorage IOException bridge
- Add `IOException`-based `default` bridge methods to `ObjStorage`
interface
- Add `ObjStorageStatusAdapter` for `Status→IOException` conversion
### P0.3 — SwitchingFileSystem decoupling
- Introduce `FileSystemLookup` functional interface
- Decouple `SwitchingFileSystem` from `ExternalMetaCacheMgr`
### P0.4 — MultipartUploadCapable interface
- Extract `MultipartUploadCapable` interface from `ObjFileSystem`
- `S3FileSystem` and `AzureFileSystem` implement it; `HMSTransaction`
uses `instanceof` check
### P0.5 — GsonUtils compile-time decoupling
- Introduce `FileSystemDescriptor` POJO for `Repository` metadata
serialization
- `GsonUtils` removes 7 compile-time concrete class imports, uses
`Class.forName()` reflection
### P0.6 — FileSystemSpiProvider skeleton
- Add `FileSystemSpiProvider` interface in `fs/spi/`
### Build
- Fix Maven build cache incorrectly skipping `checkstyle:check`
- Fix checkstyle violations (unused import, import order)
## Testing
- FE build: ✅ Checkstyle: 0 violations ✅
Closes part of #61860
---------
Co-authored-by: Copilot <[email protected]>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]