morningman opened a new pull request, #61859:
URL: https://github.com/apache/doris/pull/61859

   ### What problem does this PR solve?
   
   Issue Number: N/A
   
   Problem Summary: Before splitting filesystem implementations into 
independent Maven modules (Phase 3), several compile-time couplings must be 
eliminated. This commit completes all Phase 0 prerequisite decoupling tasks:
   
   - P0.1: Introduce FsStorageType enum in fe-foundation (zero-dep module) to 
replace StorageBackend.StorageType (Thrift-generated) in PersistentFileSystem. 
Add FsStorageTypeAdapter for bidirectional Thrift conversion. Update all 
subclasses and callers (Repository, BackupJob, RestoreJob, CloudRestoreJob).
   
   - P0.2: Add IOException-based default bridge methods to ObjStorage interface 
(checkObjectExists, getObjectChecked, putObjectChecked, deleteObjectChecked, 
deleteObjectsChecked, copyObjectChecked, listObjectsChecked). Add 
ObjStorageStatusAdapter for Status→IOException conversion. Zero changes to 
existing implementations.
   
   - P0.3: Decouple SwitchingFileSystem from ExternalMetaCacheMgr via new 
FileSystemLookup functional interface. FileSystemProviderImpl passes a lambda.
   
   - P0.4: Extract MultipartUploadCapable interface from ObjFileSystem, 
removing the forced abstract method. S3FileSystem and AzureFileSystem implement 
it. HMSTransaction now uses instanceof check instead of ObjFileSystem cast.
   
   - P0.5: Introduce FileSystemDescriptor POJO for Repository metadata 
serialization, replacing direct PersistentFileSystem subclass serialization. 
Migrate GsonUtils to string-based Class.forName() reflection for legacy format 
backward compat, removing 7 compile-time imports of concrete filesystem classes.
   
   - P0.6: Add FileSystemSpiProvider interface skeleton in fs/spi/ as the 
future ServiceLoader contract for Phase 3 module split.
   
   ### Release note
   
   None
   
   ### Check List (For Author)
   
   - Test: No need to test (pure refactor; all changes are backward compatible; 
three successful FE builds verified during development)
   - Behavior changed: No
   - Does this need documentation: 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]

Reply via email to