Am 09.08.2013 03:53, schrieb Adam Murdoch:
> 
> On 08/08/2013, at 12:01 AM, Harald Schmitt <li...@hschmitt.de
> <mailto:li...@hschmitt.de>> wrote:
> 
>> Am 06.08.2013 01:20, schrieb Adam Murdoch:
>>>
>>> On 05/08/2013, at 9:20 PM, Harald Schmitt <li...@hschmitt.de
>>> <mailto:li...@hschmitt.de>
>>> <mailto:li...@hschmitt.de>> wrote:
>>>
>>>> Hi,
>>>>
>>>> I did a first try to support symbolic links when using tarTree() for
>>>> untar.
>>>> https://github.com/gradle/gradle/pull/182
>>>> For the other way round, I realized that there are some bits missing, to
>>>> implement support for symbolic links with the Tar task type.
>>>> The interface Symlink
>>>> https://github.com/gradle/gradle/blob/master/subprojects/native/src/main/java/org/gradle/internal/nativeplatform/filesystem/Symlink.java
>>>> needs two more functions
>>>> public boolean isSymlink(File linkCandidate);
>>>> public RelativePath symlinkTarget(File link);
>>>>
>>>> Determining whether it is a symbolic link could be achieved with pure
>>>> java code as the ANT class SymbolicLinkUtils does it, but it could be
>>>> much faster using native tools.
>>>> But to query the target relative path , I don't know whether this can be
>>>> done in java?
>>>>
>>>> I'd need someone to implement the native part. Is there someone willing?
>>>> Is this something that will go into gradle?
>>>
>>> The native toolkit that we use
>>> (https://github.com/adammurdoch/native-platform) already has some
>>> support for symlinks. It's missing a method to detect if a file is a
>>> symlink, but I can add that. It might take me a few days to get it done,
>>> though.
>>>
>>> We can also use the Java 7 file attributes stuff to determine if a file
>>> is a symbolic link. There's also the trick where we can use
>>> File.getCanonicalFile() to determine if something is a symlink or not.
>>>
>>> What you could do to get started is to add the methods that you need on
>>> Symlink with dummy implementations or implementations that only work on
>>> Java 7 or that use the Ant stuff for now. Then you can continue on with
>>> the Tar stuff while I add the native support in the native toolkit and
>>> wire it in.
>> The native toolkit you are referring is not used for symlinks in gradle
>> at the moment, but it makes sense to switch to it.
> 
> We're slowly moving from jna/jna-posix to native-platform, and the plan
> is to switch the Symlink implementation over.
I took a look into NativeServices class and FileSystem class. Is the
plan to provide the FileSystem service from NativeServices?
Because there is a problem with FileSystems.getDefault() which would
introduce a package cycle if it uses NativeServices.

Best regards,
Harald


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to