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