Bug 530868 - Higher timestamp resolution with native provider

In order to obtain a better file timestamp precision, currently its
necessary to use -Declipse.filesystem.useNatives=false which slows down
builds considerably.

This change introduces full use of Unix stat() on Linux systems. Since
Kernel version 2.5.48, nano seconds are available from stat(). With
this, the file timestamp from the native file system provider has
milliseconds precision instead of seconds precision.

For backward compatibility, the following option restores the seconds
precision:

-Declipse.filesystem.useNatives.modificationTimestampMillisecondsResolution=false

Additionally, access to fields of StructStat is only done once
(upfront), as opposed to on each access. This ensures performance of the
Eclipse native file info provider is on par with the respective JDK
provider.

Change-Id: I92fe6834d53b6f6c9f54c697c69594212dc535a9
Signed-off-by: Simeon Andreev <simeon.danailov.andreev@gmail.com>
11 files changed
tree: f6084f7847755c1c545c6d2079769d5ce1e7e8b7
  1. bundles/
  2. tests/
  3. .gitignore
  4. CONTRIBUTING.md
  5. pom.xml