In SwiftNativeFileSystem implementation,
writes DLO manifest and segments to same location.
largefile <- manifest file
largefile/000001 <- 1st segment
largefile/000002 <- 2nd segment
And querying Swift to list objects (delimiter=/),
returns two object that is same name (sorted by name).
largefile <- manifest file
largefile/ <- pseudo-directory
listStatus method returns two objects at above.
But FileSystem spec cannot exists file and directory in same name.
This patch modified listStatus's behavior to fix that problems
1. Ignores pseudo-directory entry If same named objects found
2. When called listStatus with manifest file path, returns a manifest file
instead of the segments. (currently, returns list of segments)
Change-Id: Ic8835ba170c52ebac405315b44d59b4935909d51
Closes-Bug: 1436278
Current directory representation is zero-byte file but swift's pseudo-directory
is trailing-slash file. This patch changes direcotry representation and improves
compatibility with Swift and Horizon.
Change-Id: I6d6aeee958ff877b6f8e95f3108c8059f5d3b5c7
Closes-Bug: 1390414
Sources were obtained from https://issues.apache.org/jira/secure/attachment/12583703/HADOOP-8545-033.patch
by running "patch" command. All the files related to Hadoop-common were skiped during patching.
Changes were made after patching:
* pom.xml was updated to use hadoop-core 1.1.2 dependency
* removed dependency on 2.x hadoop in code (@Override and isDirectory() -> isDir())
* removed Hadoop 2.X tests
There are no unit-tests, only integration.
Change-Id: I8d7c2f544d14f79597fcdefe27ecae0d43b6df9e