Bug 566705 Docker: readContainerDirectory: Fix reading symlinks

"ls -L" reads info of linked file, not the link itself -> Links are
never marked as such -> Removed
The link target is now taken from ls and not normalized. The previous
solution also broke when links contained absolute paths. Normalizing
links also broke the PLA as, for example, extracting a Tar also does not
normalize symlinks.  File names and links with blanks in their names
are supported now by tokenizing properly.

ContainerFileProxy is updated to return the actual link via getLink()
and to return the actual target via getTarget()

CopyFromContainerCommandHandler is updated to create symbolic links
for relative links if copying a folder, otherwise, for individual files
and absolute links, the link is followed and the file/dir is copied.  Up
to 10 links are followed to avoid a possible circular link situation.

ContainerLauncher copy from container logic is updated similarly.

Fix API issue in DockerException caused by removal of getMessage().

Change-Id: Ie740e30ff1fbbf170e46d54eab134a82dc36c38b
Reviewed-on: https://git.eclipse.org/r/c/linuxtools/org.eclipse.linuxtools/+/173149
Tested-by: Linux Tools Bot <linuxtools-bot@eclipse.org>
Tested-by: Jeff Johnston <jjohnstn@redhat.com>
Reviewed-by: Jeff Johnston <jjohnstn@redhat.com>
Reviewed-on: https://git.eclipse.org/r/c/linuxtools/org.eclipse.linuxtools/+/168426
6 files changed
tree: 992548d83d585edb96d9dbf9f95568d8a02a2873
  1. changelog/
  2. containers/
  3. gcov/
  4. gprof/
  5. javadocs/
  6. libhover/
  7. lttng/
  8. man/
  9. oprofile/
  10. perf/
  11. profiling/
  12. releng/
  13. rpm/
  14. systemtap/
  15. vagrant/
  16. valgrind/
  17. .gitignore
  18. .project
  19. pom.xml
  20. README.md
README.md

Contributing to Linux Tools

Thanks for your interest in this project.

Project description:

The Linux Tools project aims to bring a full-featured C and C++ IDE to Linux developers. We build on the source editing and debugging features of the CDT and integrate popular native development tools such as the GNU Autotools, Valgrind, OProfile, RPM, SystemTap, GCov, GProf, LTTng, etc. Current projects include LTTng trace viewers and analyzers, an RPM .spec editor, Autotools build integration, a Valgrind heap usage analysis tool, and OProfile call profiling tools. The project also provides a place for Linux distributions to collaboratively overcome issues surrounding distribution packaging of Eclipse technology. The project produces both best practices and tools related to packaging. One of our features is a source archive of the Eclipse SDK that can be used by all Linux distributions building and distributing it.

Developer resources:

Information regarding source code management, builds, coding standards, and more.

Contributor License Agreement:

Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation Contributor License Agreement (CLA).

Contact:

Contact the project developers via the project's “dev” list.

Search for bugs:

This project uses Bugzilla to track ongoing development and issues.

Create a new bug:

Be sure to search for existing bugs before you create another one. Remember that contributions are always welcome!