diff --git a/build.gradle b/build.gradle index 6c26cbebe6..39b2b616b2 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,6 @@ apply plugin: 'gradle-one-jar' version = '0.5.2' allprojects { - apply plugin: 'java' apply plugin: 'groovy' repositories { @@ -42,12 +41,6 @@ allprojects { } } -compileJava { - options.compilerArgs << '-XDignore.symbol.file' - options.fork = true // may not needed on 1.8 - options.forkOptions.executable = 'javac' // may not needed on 1.8 -} - configurations { oneJarLib dnanexus.extendsFrom runtime @@ -75,6 +68,12 @@ dependencies { } } +sourceSets.main.java.srcDirs = [] +sourceSets.main.groovy.srcDirs = ['src/main/java', 'src/main/groovy'] + +compileGroovy { + options.compilerArgs = ['-XDignore.symbol.file'] +} subprojects { apply plugin: 'groovy' diff --git a/src/main/groovy/nextflow/Const.groovy b/src/main/groovy/nextflow/Const.groovy index 5bf5f12199..e513711284 100644 --- a/src/main/groovy/nextflow/Const.groovy +++ b/src/main/groovy/nextflow/Const.groovy @@ -67,7 +67,7 @@ class Const { /** * The app build number */ - static final int APP_BUILDNUM = 1115 + static final int APP_BUILDNUM = 1138 /** * The date time formatter string diff --git a/src/main/groovy/com/google/common/base/CharMatcher.java b/src/main/java/com/google/common/base/CharMatcher.java similarity index 100% rename from src/main/groovy/com/google/common/base/CharMatcher.java rename to src/main/java/com/google/common/base/CharMatcher.java diff --git a/src/main/groovy/com/google/common/base/Equivalence.java b/src/main/java/com/google/common/base/Equivalence.java similarity index 100% rename from src/main/groovy/com/google/common/base/Equivalence.java rename to src/main/java/com/google/common/base/Equivalence.java diff --git a/src/main/groovy/com/google/common/base/Function.java b/src/main/java/com/google/common/base/Function.java similarity index 100% rename from src/main/groovy/com/google/common/base/Function.java rename to src/main/java/com/google/common/base/Function.java diff --git a/src/main/groovy/com/google/common/base/FunctionalEquivalence.java b/src/main/java/com/google/common/base/FunctionalEquivalence.java similarity index 100% rename from src/main/groovy/com/google/common/base/FunctionalEquivalence.java rename to src/main/java/com/google/common/base/FunctionalEquivalence.java diff --git a/src/main/groovy/com/google/common/base/Functions.java b/src/main/java/com/google/common/base/Functions.java similarity index 100% rename from src/main/groovy/com/google/common/base/Functions.java rename to src/main/java/com/google/common/base/Functions.java diff --git a/src/main/groovy/com/google/common/base/Joiner.java b/src/main/java/com/google/common/base/Joiner.java similarity index 100% rename from src/main/groovy/com/google/common/base/Joiner.java rename to src/main/java/com/google/common/base/Joiner.java diff --git a/src/main/groovy/com/google/common/base/Objects.java b/src/main/java/com/google/common/base/Objects.java similarity index 100% rename from src/main/groovy/com/google/common/base/Objects.java rename to src/main/java/com/google/common/base/Objects.java diff --git a/src/main/groovy/com/google/common/base/PairwiseEquivalence.java b/src/main/java/com/google/common/base/PairwiseEquivalence.java similarity index 100% rename from src/main/groovy/com/google/common/base/PairwiseEquivalence.java rename to src/main/java/com/google/common/base/PairwiseEquivalence.java diff --git a/src/main/groovy/com/google/common/base/Platform.java b/src/main/java/com/google/common/base/Platform.java similarity index 100% rename from src/main/groovy/com/google/common/base/Platform.java rename to src/main/java/com/google/common/base/Platform.java diff --git a/src/main/groovy/com/google/common/base/Preconditions.java b/src/main/java/com/google/common/base/Preconditions.java similarity index 100% rename from src/main/groovy/com/google/common/base/Preconditions.java rename to src/main/java/com/google/common/base/Preconditions.java diff --git a/src/main/groovy/com/google/common/base/Predicate.java b/src/main/java/com/google/common/base/Predicate.java similarity index 100% rename from src/main/groovy/com/google/common/base/Predicate.java rename to src/main/java/com/google/common/base/Predicate.java diff --git a/src/main/groovy/com/google/common/base/Predicates.java b/src/main/java/com/google/common/base/Predicates.java similarity index 100% rename from src/main/groovy/com/google/common/base/Predicates.java rename to src/main/java/com/google/common/base/Predicates.java diff --git a/src/main/groovy/com/google/common/base/SmallCharMatcher.java b/src/main/java/com/google/common/base/SmallCharMatcher.java similarity index 100% rename from src/main/groovy/com/google/common/base/SmallCharMatcher.java rename to src/main/java/com/google/common/base/SmallCharMatcher.java diff --git a/src/main/groovy/com/google/common/base/Supplier.java b/src/main/java/com/google/common/base/Supplier.java similarity index 100% rename from src/main/groovy/com/google/common/base/Supplier.java rename to src/main/java/com/google/common/base/Supplier.java diff --git a/src/main/groovy/com/google/common/base/Suppliers.java b/src/main/java/com/google/common/base/Suppliers.java similarity index 100% rename from src/main/groovy/com/google/common/base/Suppliers.java rename to src/main/java/com/google/common/base/Suppliers.java diff --git a/src/main/groovy/com/google/common/hash/AbstractByteHasher.java b/src/main/java/com/google/common/hash/AbstractByteHasher.java similarity index 100% rename from src/main/groovy/com/google/common/hash/AbstractByteHasher.java rename to src/main/java/com/google/common/hash/AbstractByteHasher.java diff --git a/src/main/groovy/com/google/common/hash/AbstractCompositeHashFunction.java b/src/main/java/com/google/common/hash/AbstractCompositeHashFunction.java similarity index 100% rename from src/main/groovy/com/google/common/hash/AbstractCompositeHashFunction.java rename to src/main/java/com/google/common/hash/AbstractCompositeHashFunction.java diff --git a/src/main/groovy/com/google/common/hash/AbstractHasher.java b/src/main/java/com/google/common/hash/AbstractHasher.java similarity index 100% rename from src/main/groovy/com/google/common/hash/AbstractHasher.java rename to src/main/java/com/google/common/hash/AbstractHasher.java diff --git a/src/main/groovy/com/google/common/hash/AbstractNonStreamingHashFunction.java b/src/main/java/com/google/common/hash/AbstractNonStreamingHashFunction.java similarity index 100% rename from src/main/groovy/com/google/common/hash/AbstractNonStreamingHashFunction.java rename to src/main/java/com/google/common/hash/AbstractNonStreamingHashFunction.java diff --git a/src/main/groovy/com/google/common/hash/AbstractStreamingHashFunction.java b/src/main/java/com/google/common/hash/AbstractStreamingHashFunction.java similarity index 100% rename from src/main/groovy/com/google/common/hash/AbstractStreamingHashFunction.java rename to src/main/java/com/google/common/hash/AbstractStreamingHashFunction.java diff --git a/src/main/groovy/com/google/common/hash/ChecksumHashFunction.java b/src/main/java/com/google/common/hash/ChecksumHashFunction.java similarity index 100% rename from src/main/groovy/com/google/common/hash/ChecksumHashFunction.java rename to src/main/java/com/google/common/hash/ChecksumHashFunction.java diff --git a/src/main/groovy/com/google/common/hash/Funnel.java b/src/main/java/com/google/common/hash/Funnel.java similarity index 100% rename from src/main/groovy/com/google/common/hash/Funnel.java rename to src/main/java/com/google/common/hash/Funnel.java diff --git a/src/main/groovy/com/google/common/hash/Funnels.java b/src/main/java/com/google/common/hash/Funnels.java similarity index 100% rename from src/main/groovy/com/google/common/hash/Funnels.java rename to src/main/java/com/google/common/hash/Funnels.java diff --git a/src/main/groovy/com/google/common/hash/HashCode.java b/src/main/java/com/google/common/hash/HashCode.java similarity index 100% rename from src/main/groovy/com/google/common/hash/HashCode.java rename to src/main/java/com/google/common/hash/HashCode.java diff --git a/src/main/groovy/com/google/common/hash/HashFunction.java b/src/main/java/com/google/common/hash/HashFunction.java similarity index 100% rename from src/main/groovy/com/google/common/hash/HashFunction.java rename to src/main/java/com/google/common/hash/HashFunction.java diff --git a/src/main/groovy/com/google/common/hash/Hasher.java b/src/main/java/com/google/common/hash/Hasher.java similarity index 100% rename from src/main/groovy/com/google/common/hash/Hasher.java rename to src/main/java/com/google/common/hash/Hasher.java diff --git a/src/main/groovy/com/google/common/hash/Hashing.java b/src/main/java/com/google/common/hash/Hashing.java similarity index 100% rename from src/main/groovy/com/google/common/hash/Hashing.java rename to src/main/java/com/google/common/hash/Hashing.java diff --git a/src/main/groovy/com/google/common/hash/MessageDigestHashFunction.java b/src/main/java/com/google/common/hash/MessageDigestHashFunction.java similarity index 100% rename from src/main/groovy/com/google/common/hash/MessageDigestHashFunction.java rename to src/main/java/com/google/common/hash/MessageDigestHashFunction.java diff --git a/src/main/groovy/com/google/common/hash/Murmur3_128HashFunction.java b/src/main/java/com/google/common/hash/Murmur3_128HashFunction.java similarity index 100% rename from src/main/groovy/com/google/common/hash/Murmur3_128HashFunction.java rename to src/main/java/com/google/common/hash/Murmur3_128HashFunction.java diff --git a/src/main/groovy/com/google/common/hash/Murmur3_32HashFunction.java b/src/main/java/com/google/common/hash/Murmur3_32HashFunction.java similarity index 100% rename from src/main/groovy/com/google/common/hash/Murmur3_32HashFunction.java rename to src/main/java/com/google/common/hash/Murmur3_32HashFunction.java diff --git a/src/main/groovy/com/google/common/hash/PrimitiveSink.java b/src/main/java/com/google/common/hash/PrimitiveSink.java similarity index 100% rename from src/main/groovy/com/google/common/hash/PrimitiveSink.java rename to src/main/java/com/google/common/hash/PrimitiveSink.java diff --git a/src/main/groovy/com/google/common/hash/SipHashFunction.java b/src/main/java/com/google/common/hash/SipHashFunction.java similarity index 100% rename from src/main/groovy/com/google/common/hash/SipHashFunction.java rename to src/main/java/com/google/common/hash/SipHashFunction.java diff --git a/src/main/groovy/com/google/common/hash/package-info.java b/src/main/java/com/google/common/hash/package-info.java similarity index 100% rename from src/main/groovy/com/google/common/hash/package-info.java rename to src/main/java/com/google/common/hash/package-info.java diff --git a/src/main/groovy/com/google/common/primitives/AndroidInteger.java b/src/main/java/com/google/common/primitives/AndroidInteger.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/AndroidInteger.java rename to src/main/java/com/google/common/primitives/AndroidInteger.java diff --git a/src/main/groovy/com/google/common/primitives/Booleans.java b/src/main/java/com/google/common/primitives/Booleans.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/Booleans.java rename to src/main/java/com/google/common/primitives/Booleans.java diff --git a/src/main/groovy/com/google/common/primitives/Bytes.java b/src/main/java/com/google/common/primitives/Bytes.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/Bytes.java rename to src/main/java/com/google/common/primitives/Bytes.java diff --git a/src/main/groovy/com/google/common/primitives/Chars.java b/src/main/java/com/google/common/primitives/Chars.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/Chars.java rename to src/main/java/com/google/common/primitives/Chars.java diff --git a/src/main/groovy/com/google/common/primitives/Doubles.java b/src/main/java/com/google/common/primitives/Doubles.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/Doubles.java rename to src/main/java/com/google/common/primitives/Doubles.java diff --git a/src/main/groovy/com/google/common/primitives/Floats.java b/src/main/java/com/google/common/primitives/Floats.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/Floats.java rename to src/main/java/com/google/common/primitives/Floats.java diff --git a/src/main/groovy/com/google/common/primitives/Ints.java b/src/main/java/com/google/common/primitives/Ints.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/Ints.java rename to src/main/java/com/google/common/primitives/Ints.java diff --git a/src/main/groovy/com/google/common/primitives/Longs.java b/src/main/java/com/google/common/primitives/Longs.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/Longs.java rename to src/main/java/com/google/common/primitives/Longs.java diff --git a/src/main/groovy/com/google/common/primitives/ParseRequest.java b/src/main/java/com/google/common/primitives/ParseRequest.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/ParseRequest.java rename to src/main/java/com/google/common/primitives/ParseRequest.java diff --git a/src/main/groovy/com/google/common/primitives/Primitives.java b/src/main/java/com/google/common/primitives/Primitives.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/Primitives.java rename to src/main/java/com/google/common/primitives/Primitives.java diff --git a/src/main/groovy/com/google/common/primitives/Shorts.java b/src/main/java/com/google/common/primitives/Shorts.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/Shorts.java rename to src/main/java/com/google/common/primitives/Shorts.java diff --git a/src/main/groovy/com/google/common/primitives/SignedBytes.java b/src/main/java/com/google/common/primitives/SignedBytes.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/SignedBytes.java rename to src/main/java/com/google/common/primitives/SignedBytes.java diff --git a/src/main/groovy/com/google/common/primitives/UnsignedBytes.java b/src/main/java/com/google/common/primitives/UnsignedBytes.java similarity index 53% rename from src/main/groovy/com/google/common/primitives/UnsignedBytes.java rename to src/main/java/com/google/common/primitives/UnsignedBytes.java index c565831a81..d5e122dda9 100644 --- a/src/main/groovy/com/google/common/primitives/UnsignedBytes.java +++ b/src/main/java/com/google/common/primitives/UnsignedBytes.java @@ -19,10 +19,6 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; -import java.nio.ByteOrder; -import java.util.Comparator; - -import sun.misc.Unsafe; /** * Static utility methods pertaining to {@code byte} primitives that interpret @@ -245,185 +241,5 @@ public static String join(String separator, byte... array) { return builder.toString(); } - /** - * Returns a comparator that compares two {@code byte} arrays - * lexicographically. That is, it compares, using {@link - * #compare(byte, byte)}), the first pair of values that follow any common - * prefix, or when one array is a prefix of the other, treats the shorter - * array as the lesser. For example, {@code [] < [0x01] < [0x01, 0x7F] < - * [0x01, 0x80] < [0x02]}. Values are treated as unsigned. - * - *

The returned comparator is inconsistent with {@link - * Object#equals(Object)} (since arrays support only identity equality), but - * it is consistent with {@link java.util.Arrays#equals(byte[], byte[])}. - * - * @see - * Lexicographical order article at Wikipedia - * @since 2.0 - */ - public static Comparator lexicographicalComparator() { - return LexicographicalComparatorHolder.BEST_COMPARATOR; - } - - static Comparator lexicographicalComparatorJavaImpl() { - return LexicographicalComparatorHolder.PureJavaComparator.INSTANCE; - } - - /** - * Provides a lexicographical comparator implementation; either a Java - * implementation or a faster implementation based on {@link Unsafe}. - * - *

Uses reflection to gracefully fall back to the Java implementation if - * {@code Unsafe} isn't available. - */ - static class LexicographicalComparatorHolder { - static final String UNSAFE_COMPARATOR_NAME = - LexicographicalComparatorHolder.class.getName() + "$UnsafeComparator"; - - static final Comparator BEST_COMPARATOR = getBestComparator(); - - enum UnsafeComparator implements Comparator { - INSTANCE; - - static final boolean BIG_ENDIAN = - ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN); - - /* - * The following static final fields exist for performance reasons. - * - * In UnsignedBytesBenchmark, accessing the following objects via static - * final fields is the fastest (more than twice as fast as the Java - * implementation, vs ~1.5x with non-final static fields, on x86_32) - * under the Hotspot server compiler. The reason is obviously that the - * non-final fields need to be reloaded inside the loop. - * - * And, no, defining (final or not) local variables out of the loop still - * isn't as good because the null check on the theUnsafe object remains - * inside the loop and BYTE_ARRAY_BASE_OFFSET doesn't get - * constant-folded. - * - * The compiler can treat static final fields as compile-time constants - * and can constant-fold them while (final or not) local variables are - * run time values. - */ - - static final Unsafe theUnsafe; - - /** The offset to the first element in a byte array. */ - static final int BYTE_ARRAY_BASE_OFFSET; - - static { - theUnsafe = getUnsafe(); - BYTE_ARRAY_BASE_OFFSET = theUnsafe.arrayBaseOffset(byte[].class); - - // sanity check - this should never fail - if (theUnsafe.arrayIndexScale(byte[].class) != 1) { - throw new AssertionError(); - } - } - - /** - * Returns a sun.misc.Unsafe. Suitable for use in a 3rd party package. - * Replace with a simple call to Unsafe.getUnsafe when integrating - * into a jdk. - * - * @return a sun.misc.Unsafe - */ - private static sun.misc.Unsafe getUnsafe() { - try { - return sun.misc.Unsafe.getUnsafe(); - } catch (SecurityException tryReflectionInstead) {} - try { - return java.security.AccessController.doPrivileged - (new java.security.PrivilegedExceptionAction() { - public sun.misc.Unsafe run() throws Exception { - Class k = sun.misc.Unsafe.class; - for (java.lang.reflect.Field f : k.getDeclaredFields()) { - f.setAccessible(true); - Object x = f.get(null); - if (k.isInstance(x)) - return k.cast(x); - } - throw new NoSuchFieldError("the Unsafe"); - }}); - } catch (java.security.PrivilegedActionException e) { - throw new RuntimeException("Could not initialize intrinsics", - e.getCause()); - } - } - - @Override public int compare(byte[] left, byte[] right) { - int minLength = Math.min(left.length, right.length); - int minWords = minLength / Longs.BYTES; - - /* - * Compare 8 bytes at a time. Benchmarking shows comparing 8 bytes at a - * time is no slower than comparing 4 bytes at a time even on 32-bit. - * On the other hand, it is substantially faster on 64-bit. - */ - for (int i = 0; i < minWords * Longs.BYTES; i += Longs.BYTES) { - long lw = theUnsafe.getLong(left, BYTE_ARRAY_BASE_OFFSET + (long) i); - long rw = theUnsafe.getLong(right, BYTE_ARRAY_BASE_OFFSET + (long) i); - if (lw != rw) { - if (BIG_ENDIAN) { - return UnsignedLongs.compare(lw, rw); - } - - /* - * We want to compare only the first index where left[index] != right[index]. - * This corresponds to the least significant nonzero byte in lw ^ rw, since lw - * and rw are little-endian. Long.numberOfTrailingZeros(diff) tells us the least - * significant nonzero bit, and zeroing out the first three bits of L.nTZ gives us the - * shift to get that least significant nonzero byte. - */ - int n = Long.numberOfTrailingZeros(lw ^ rw) & ~0x7; - return (int) (((lw >>> n) & UNSIGNED_MASK) - ((rw >>> n) & UNSIGNED_MASK)); - } - } - - // The epilogue to cover the last (minLength % 8) elements. - for (int i = minWords * Longs.BYTES; i < minLength; i++) { - int result = UnsignedBytes.compare(left[i], right[i]); - if (result != 0) { - return result; - } - } - return left.length - right.length; - } - } - - enum PureJavaComparator implements Comparator { - INSTANCE; - - @Override public int compare(byte[] left, byte[] right) { - int minLength = Math.min(left.length, right.length); - for (int i = 0; i < minLength; i++) { - int result = UnsignedBytes.compare(left[i], right[i]); - if (result != 0) { - return result; - } - } - return left.length - right.length; - } - } - - /** - * Returns the Unsafe-using Comparator, or falls back to the pure-Java - * implementation if unable to do so. - */ - static Comparator getBestComparator() { - try { - Class theClass = Class.forName(UNSAFE_COMPARATOR_NAME); - - // yes, UnsafeComparator does implement Comparator - @SuppressWarnings("unchecked") - Comparator comparator = - (Comparator) theClass.getEnumConstants()[0]; - return comparator; - } catch (Throwable t) { // ensure we really catch *everything* - return lexicographicalComparatorJavaImpl(); - } - } - } } diff --git a/src/main/groovy/com/google/common/primitives/UnsignedInteger.java b/src/main/java/com/google/common/primitives/UnsignedInteger.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/UnsignedInteger.java rename to src/main/java/com/google/common/primitives/UnsignedInteger.java diff --git a/src/main/groovy/com/google/common/primitives/UnsignedInts.java b/src/main/java/com/google/common/primitives/UnsignedInts.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/UnsignedInts.java rename to src/main/java/com/google/common/primitives/UnsignedInts.java diff --git a/src/main/groovy/com/google/common/primitives/UnsignedLong.java b/src/main/java/com/google/common/primitives/UnsignedLong.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/UnsignedLong.java rename to src/main/java/com/google/common/primitives/UnsignedLong.java diff --git a/src/main/groovy/com/google/common/primitives/UnsignedLongs.java b/src/main/java/com/google/common/primitives/UnsignedLongs.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/UnsignedLongs.java rename to src/main/java/com/google/common/primitives/UnsignedLongs.java diff --git a/src/main/groovy/com/google/common/primitives/package-info.java b/src/main/java/com/google/common/primitives/package-info.java similarity index 100% rename from src/main/groovy/com/google/common/primitives/package-info.java rename to src/main/java/com/google/common/primitives/package-info.java