morningman opened a new pull request, #61908: URL: https://github.com/apache/doris/pull/61908
### What problem does this PR solve? Issue Number: N/A Problem Summary: The existing FileSystem interface uses Status-based return values, bare String paths, and Hadoop-dependent RemoteFile objects throughout the FE codebase, making it hard to test and impossible to isolate from Hadoop at the module boundary. Phase 1 introduces the new clean IOException-based FileSystem API with typed Location value objects, while preserving full backward compatibility via LegacyFileSystemApi. ### Release note None ### Check List (For Author) - Test: Manual build verification (./build.sh --fe) passes with zero errors - Behavior changed: No (all existing code paths preserved via LegacyFileSystemApi) - Does this need documentation: No New files: - Location.java: immutable URI value object replacing bare String paths - FileEntry.java: immutable file/dir descriptor replacing Hadoop-dependent RemoteFile - FileIterator.java: lazy Closeable iterator interface for directory listing - LegacyFileSystemApi.java: @Deprecated copy of old FileSystem interface (Status-based) - LegacyFileSystemAdapter.java: abstract bridge implementing new FileSystem via legacy* methods - LegacyToNewFsAdapter.java: wraps any LegacyFileSystemApi as new FileSystem - MemoryFileSystem.java: in-memory FileSystem for unit testing Modified files: - FileSystem.java: replaced with new clean IOException-based interface - PersistentFileSystem, LocalDfsFileSystem, SwitchingFileSystem: implements LegacyFileSystemApi - FileSystemProvider, FileSystemLookup: return LegacyFileSystemApi - DorisInputFile, DorisOutputFile: add location() method; deprecate path() - HdfsInputFile, HdfsOutputFile, HdfsInputStream: use Location instead of ParsedPath - ParsedPath: @Deprecated + toLocation() conversion method - RemoteFile: @Deprecated + toFileEntry()/fromFileEntry() conversion methods - RemoteFiles, RemoteFileRemoteIterator: @Deprecated - All callers updated to use LegacyFileSystemApi type -- 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]
