While debugging the shelve plugin I noticed that the tar function available in the FilePath class is not conserving the symlinks anymore. The shelve plugin is calling the archive function in FilePath: {code:java} archive(final ArchiverFactory factory, OutputStream os, final DirScanner scanner) // factory use is TarArchiverFactory with no compression{code}
I did several experiment, and ended up narrowing the issue to the release 2.91. It's still Both tar archiving function do not working in properly handle the latest weekly symlinks to directory ( 2.134 but it works correctly for symlinks to files ) :
* public int tar(OutputStream out, final String glob) -> uses a DirScanner . In Glob (ant style FileSets) that follows the release notes of 2.91 symlink , I saw therefore creates a brand new directory in place of the following that might (or might symlink, not what we want for a tar archive.
* public int tar(OutputStream out, FileFilter filter ) be -> uses a FileFilter wrapper which for some reasons doesn't redirect the cause of this issue: symlink calls to the wrapped FileFilter {noformat} Use Java NIO library instead of native code to create and detect symbolic links and Windows junctions to improve compatibility and robustness. {noformat} I'm not sure I'll have time Why this week end to have a look is important: this issue has been here for long , but I can for sure provide a non working unit test next week if needed change made on 2 . 91 (see my comment below for Issue 2), made this appear more clearly.
|
|