From 78754995e847115e5c9141521497b0b41319fc4b Mon Sep 17 00:00:00 2001 From: Gábor Boskovits Date: Sun, 24 Jun 2018 14:34:57 +0200 Subject: gnu: java-aqute-libg: Explicitly build for java7. * gnu/package/java.scm (java-aqute-libg)[arguments]: Add #:make-flags ant.build.javac.source=1.7 and ant.build.javac.target=1.7. --- gnu/packages/java.scm | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 30a9b77380e..aba81197415 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -7002,6 +7002,14 @@ it manages project dependencies, gives diffs jars, and much more.") `(#:jar-name "java-aqute-libg.jar" #:source-dir "aQute.libg/src" #:tests? #f)); FIXME: tests are in "aQute.libg/test", not in a java directory + ;; The build fails when source/target more recent than 1.7. This + ;; is a known issue. See: https://github.com/bndtools/bnd/issues/1327 + ;; + ;; It is closed as won't fix. There is no way to change the source + ;; so that it works on 1.8, and still works on 1.6, the upstream + ;; target. It work fine on 1.7, so we use 1.7. + #:make-flags (list "-Dant.build.javac.source=1.7" + "-Dant.build.javac.target=1.7") (inputs `(("slf4j" ,java-slf4j-api) ("osgi-annot" ,java-osgi-annotation) -- cgit v1.3 From 2ab089b7ba531b0a28e9fe65a44a8a4af4b1d2bf Mon Sep 17 00:00:00 2001 From: Gábor Boskovits Date: Sun, 24 Jun 2018 14:39:17 +0200 Subject: gnu: java-aqute-libg: Enable tests. * gnu/packages/java.scm (java-aqute-libg)[arguments]: Remove #:source-dir and #:tests?, add #:phases 'chdir and 'create-test-directory. [native-inputs]: Add java-hamcrest-core and java-junit. --- gnu/packages/java.scm | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index aba81197415..a13f6f18d1b 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -7000,8 +7000,6 @@ it manages project dependencies, gives diffs jars, and much more.") (name "java-aqute-libg") (arguments `(#:jar-name "java-aqute-libg.jar" - #:source-dir "aQute.libg/src" - #:tests? #f)); FIXME: tests are in "aQute.libg/test", not in a java directory ;; The build fails when source/target more recent than 1.7. This ;; is a known issue. See: https://github.com/bndtools/bnd/issues/1327 ;; @@ -7010,11 +7008,31 @@ it manages project dependencies, gives diffs jars, and much more.") ;; target. It work fine on 1.7, so we use 1.7. #:make-flags (list "-Dant.build.javac.source=1.7" "-Dant.build.javac.target=1.7") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + ;; Change to aQute.libg directory, so that the relative + ;; paths in the tests aren't broken. + (lambda _ + (chdir "aQute.libg") + #t)) + (add-before 'check 'create-test-directory + ;; Copy the test directory to test/java, since that's where + ;; ant-build-system's default project in build.xml expects to find + ;; the test classes. Leave a copy in the original place to not + ;; break paths in tests. + (lambda _ + (mkdir "src/test") + (copy-recursively "test" "src/test/java") + #t))))) (inputs `(("slf4j" ,java-slf4j-api) ("osgi-annot" ,java-osgi-annotation) ("java-osgi-cmpn" ,java-osgi-cmpn) - ("osgi" ,java-osgi-core))))) + ("osgi" ,java-osgi-core))) + (native-inputs + `(("hamcrest" ,java-hamcrest-core) + ("java-junit" ,java-junit))))) (define java-aqute-libg-bootstrap (package -- cgit v1.3 From aca7dcdd1eee3c879ef1cca2f417988fa0d12b03 Mon Sep 17 00:00:00 2001 From: Gábor Boskovits Date: Sun, 24 Jun 2018 15:16:51 +0200 Subject: gnu: java-aqute-libg-bootstrap: Disable tests. * gnu/packages/java.scm (java-aqute-libg-bootstrap)[arguments]: New field. [native-inputs]: New field. --- gnu/packages/java.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'gnu/packages/java.scm') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index a13f6f18d1b..03d58fc7b83 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -7038,10 +7038,14 @@ it manages project dependencies, gives diffs jars, and much more.") (package (inherit java-aqute-libg) (name "java-aqute-libg-bootstrap") + (arguments + ;; Disable tests, at this stage of bootstrap we have no test frameworks. + `(#:tests? #f)) (inputs `(("slf4j-bootstrap" ,java-slf4j-api-bootstrap) ,@(delete `("slf4j" ,java-slf4j-api) - (package-inputs java-aqute-libg)))))) + (package-inputs java-aqute-libg)))) + (native-inputs '()))) (define-public java-aqute-bndlib (package -- cgit v1.3 From 7c7323e432620a42f896056f076020a748c1fd6d Mon Sep 17 00:00:00 2001 From: Gábor Boskovits Date: Tue, 26 Jun 2018 08:14:45 +0200 Subject: gnu: java-commons-collections: Fix java8 errors. * gnu/packages/java.scm (java-commons-collections)[source]: Add patch. * gnu/packages/patches/java-commons-collections-fix-java8.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/java.scm | 4 +- .../java-commons-collections-fix-java8.patch | 299 +++++++++++++++++++++ 3 files changed, 303 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/java-commons-collections-fix-java8.patch (limited to 'gnu/packages/java.scm') diff --git a/gnu/local.mk b/gnu/local.mk index 9b832e3a398..66f802a078c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -805,6 +805,7 @@ dist_patch_DATA = \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \ %D%/packages/patches/jacal-fix-texinfo.patch \ %D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \ + %D%/packages/patches/java-commons-collections-fix-java8.patch \ %D%/packages/patches/java-jeromq-fix-tests.patch \ %D%/packages/patches/java-powermock-fix-java-files.patch \ %D%/packages/patches/java-simple-xml-fix-tests.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 03d58fc7b83..f23572a55ae 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -4032,7 +4032,9 @@ are many features, including: "commons-collections-" version "-src.tar.gz")) (sha256 (base32 - "055r51a5lfc3z7rkxnxmnn1npvkvda7636hjpm4qk7cnfzz98387")))) + "055r51a5lfc3z7rkxnxmnn1npvkvda7636hjpm4qk7cnfzz98387")) + (patches + (search-patches "java-commons-collections-fix-java8.patch")))) (arguments (substitute-keyword-arguments (package-arguments java-commons-collections4) ((#:phases phases) diff --git a/gnu/packages/patches/java-commons-collections-fix-java8.patch b/gnu/packages/patches/java-commons-collections-fix-java8.patch new file mode 100644 index 00000000000..322fd7f699b --- /dev/null +++ b/gnu/packages/patches/java-commons-collections-fix-java8.patch @@ -0,0 +1,299 @@ +From e760d181abd20ecb98654af63faec7b2a4d61189 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= +Date: Mon, 25 Jun 2018 15:02:25 +0200 +Subject: [PATCH] Rename removes in maps to fix java8. + +* src/java/org/apache/commons/collections/MultiHashMap.java: +Rename "V MultiHashMap#remove(K, V)" +to "boolean MulitHashMap#removeMapping(K, V)". +* src/java/org/apache/commons/collections/MultiMap.java: +Rename "V MultiMap#remove(K, V)" +to "boolean MultiMap#removeMapping(K, V)". +* src/java/org/apache/commons/collections/map/MultiKeyMap.java: +Rename "V MultiKeyMap#remove(...)" +to "V MultiKeyMap#removeMultiKey(...)". +* src/java/org/apache/commons/collections/map/MultiValueMap.java: +Rename "V MultiValueMap#remove(K, V)" +to "boolean MultiValueMap#removeMapping(K, V)". +* src/test/org/apache/commons/collections/TestMultiHashMap.java: +Adjust accordingly. +* src/test/org/apache/commons/collections/map/TestMultiKeyMap.java: +Adjust accordingly. +* src/test/org/apache/commons/collections/map/TestMultiValueMap.java: +Adjust accordingly. +--- + .../commons/collections/MultiHashMap.java | 8 ++++---- + .../apache/commons/collections/MultiMap.java | 2 +- + .../commons/collections/map/MultiKeyMap.java | 8 ++++---- + .../commons/collections/map/MultiValueMap.java | 8 ++++---- + .../commons/collections/TestMultiHashMap.java | 16 ++++++++-------- + .../collections/map/TestMultiKeyMap.java | 16 ++++++++-------- + .../collections/map/TestMultiValueMap.java | 18 +++++++++--------- + 7 files changed, 38 insertions(+), 38 deletions(-) + +diff --git a/src/java/org/apache/commons/collections/MultiHashMap.java b/src/java/org/apache/commons/collections/MultiHashMap.java +index 7fec9af..482ecbd 100644 +--- a/src/java/org/apache/commons/collections/MultiHashMap.java ++++ b/src/java/org/apache/commons/collections/MultiHashMap.java +@@ -331,21 +331,21 @@ public class MultiHashMap extends HashMap implements MultiMap { + * @param item the value to remove + * @return the value removed (which was passed in), null if nothing removed + */ +- public Object remove(Object key, Object item) { ++ public boolean removeMapping(Object key, Object item) { + Collection valuesForKey = getCollection(key); + if (valuesForKey == null) { +- return null; ++ return false; + } + boolean removed = valuesForKey.remove(item); + if (removed == false) { +- return null; ++ return false; + } + // remove the list if it is now empty + // (saves space, and allows equals to work) + if (valuesForKey.isEmpty()){ + remove(key); + } +- return item; ++ return true; + } + + /** +diff --git a/src/java/org/apache/commons/collections/MultiMap.java b/src/java/org/apache/commons/collections/MultiMap.java +index be9455b..fe54234 100644 +--- a/src/java/org/apache/commons/collections/MultiMap.java ++++ b/src/java/org/apache/commons/collections/MultiMap.java +@@ -66,7 +66,7 @@ public interface MultiMap extends Map { + * @throws ClassCastException if the key or value is of an invalid type + * @throws NullPointerException if the key or value is null and null is invalid + */ +- public Object remove(Object key, Object item); ++ public boolean removeMapping(Object key, Object item); + + //----------------------------------------------------------------------- + /** +diff --git a/src/java/org/apache/commons/collections/map/MultiKeyMap.java b/src/java/org/apache/commons/collections/map/MultiKeyMap.java +index 9e3e02d..0b99b65 100644 +--- a/src/java/org/apache/commons/collections/map/MultiKeyMap.java ++++ b/src/java/org/apache/commons/collections/map/MultiKeyMap.java +@@ -197,7 +197,7 @@ public class MultiKeyMap + * @param key2 the second key + * @return the value mapped to the removed key, null if key not in map + */ +- public Object remove(Object key1, Object key2) { ++ public Object removeMultiKey(Object key1, Object key2) { + int hashCode = hash(key1, key2); + int index = map.hashIndex(hashCode, map.data.length); + AbstractHashedMap.HashEntry entry = map.data[index]; +@@ -327,7 +327,7 @@ public class MultiKeyMap + * @param key3 the third key + * @return the value mapped to the removed key, null if key not in map + */ +- public Object remove(Object key1, Object key2, Object key3) { ++ public Object removeMultiKey(Object key1, Object key2, Object key3) { + int hashCode = hash(key1, key2, key3); + int index = map.hashIndex(hashCode, map.data.length); + AbstractHashedMap.HashEntry entry = map.data[index]; +@@ -467,7 +467,7 @@ public class MultiKeyMap + * @param key4 the fourth key + * @return the value mapped to the removed key, null if key not in map + */ +- public Object remove(Object key1, Object key2, Object key3, Object key4) { ++ public Object removeMultiKey(Object key1, Object key2, Object key3, Object key4) { + int hashCode = hash(key1, key2, key3, key4); + int index = map.hashIndex(hashCode, map.data.length); + AbstractHashedMap.HashEntry entry = map.data[index]; +@@ -617,7 +617,7 @@ public class MultiKeyMap + * @param key5 the fifth key + * @return the value mapped to the removed key, null if key not in map + */ +- public Object remove(Object key1, Object key2, Object key3, Object key4, Object key5) { ++ public Object removeMultiKey(Object key1, Object key2, Object key3, Object key4, Object key5) { + int hashCode = hash(key1, key2, key3, key4, key5); + int index = map.hashIndex(hashCode, map.data.length); + AbstractHashedMap.HashEntry entry = map.data[index]; +diff --git a/src/java/org/apache/commons/collections/map/MultiValueMap.java b/src/java/org/apache/commons/collections/map/MultiValueMap.java +index f44999b..86eaeb0 100644 +--- a/src/java/org/apache/commons/collections/map/MultiValueMap.java ++++ b/src/java/org/apache/commons/collections/map/MultiValueMap.java +@@ -153,19 +153,19 @@ public class MultiValueMap extends AbstractMapDecorator implements MultiMap { + * @param value the value to remove + * @return the value removed (which was passed in), null if nothing removed + */ +- public Object remove(Object key, Object value) { ++ public boolean removeMapping(Object key, Object value) { + Collection valuesForKey = getCollection(key); + if (valuesForKey == null) { +- return null; ++ return false; + } + boolean removed = valuesForKey.remove(value); + if (removed == false) { +- return null; ++ return false; + } + if (valuesForKey.isEmpty()) { + remove(key); + } +- return value; ++ return true; + } + + /** +diff --git a/src/test/org/apache/commons/collections/TestMultiHashMap.java b/src/test/org/apache/commons/collections/TestMultiHashMap.java +index eca833a..a1de943 100644 +--- a/src/test/org/apache/commons/collections/TestMultiHashMap.java ++++ b/src/test/org/apache/commons/collections/TestMultiHashMap.java +@@ -217,7 +217,7 @@ public class TestMultiHashMap extends AbstractTestMap { + MultiHashMap one = new MultiHashMap(); + Integer value = new Integer(1); + one.put("One", value); +- one.remove("One", value); ++ one.removeMapping("One", value); + + MultiHashMap two = new MultiHashMap(); + assertEquals(two, one); +@@ -269,7 +269,7 @@ public class TestMultiHashMap extends AbstractTestMap { + assertEquals(4, map.totalSize()); + map.remove("A"); + assertEquals(3, map.totalSize()); +- map.remove("B", "BC"); ++ map.removeMapping("B", "BC"); + assertEquals(2, map.totalSize()); + } + +@@ -292,7 +292,7 @@ public class TestMultiHashMap extends AbstractTestMap { + map.remove("A"); + assertEquals(0, map.size("A")); + assertEquals(3, map.size("B")); +- map.remove("B", "BC"); ++ map.removeMapping("B", "BC"); + assertEquals(0, map.size("A")); + assertEquals(2, map.size("B")); + } +@@ -464,11 +464,11 @@ public class TestMultiHashMap extends AbstractTestMap { + map.put("A", "AA"); + map.put("A", "AB"); + map.put("A", "AC"); +- assertEquals(null, map.remove("C", "CA")); +- assertEquals(null, map.remove("A", "AD")); +- assertEquals("AC", map.remove("A", "AC")); +- assertEquals("AB", map.remove("A", "AB")); +- assertEquals("AA", map.remove("A", "AA")); ++ assertEquals(false, map.removeMapping("C", "CA")); ++ assertEquals(false, map.removeMapping("A", "AD")); ++ assertEquals(true, map.removeMapping("A", "AC")); ++ assertEquals(true, map.removeMapping("A", "AB")); ++ assertEquals(true, map.removeMapping("A", "AA")); + assertEquals(new MultiHashMap(), map); + } + +diff --git a/src/test/org/apache/commons/collections/map/TestMultiKeyMap.java b/src/test/org/apache/commons/collections/map/TestMultiKeyMap.java +index b1ee3d0..b18f480 100644 +--- a/src/test/org/apache/commons/collections/map/TestMultiKeyMap.java ++++ b/src/test/org/apache/commons/collections/map/TestMultiKeyMap.java +@@ -315,34 +315,34 @@ public class TestMultiKeyMap extends AbstractTestIterableMap { + switch (key.size()) { + case 2: + assertEquals(true, multimap.containsKey(key.getKey(0), key.getKey(1))); +- assertEquals(value, multimap.remove(key.getKey(0), key.getKey(1))); ++ assertEquals(value, multimap.removeMultiKey(key.getKey(0), key.getKey(1))); + assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1))); + assertEquals(size - 1, multimap.size()); +- assertEquals(null, multimap.remove(key.getKey(0), key.getKey(1))); ++ assertEquals(null, multimap.removeMultiKey(key.getKey(0), key.getKey(1))); + assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1))); + break; + case 3: + assertEquals(true, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2))); +- assertEquals(value, multimap.remove(key.getKey(0), key.getKey(1), key.getKey(2))); ++ assertEquals(value, multimap.removeMultiKey(key.getKey(0), key.getKey(1), key.getKey(2))); + assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2))); + assertEquals(size - 1, multimap.size()); +- assertEquals(null, multimap.remove(key.getKey(0), key.getKey(1), key.getKey(2))); ++ assertEquals(null, multimap.removeMultiKey(key.getKey(0), key.getKey(1), key.getKey(2))); + assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2))); + break; + case 4: + assertEquals(true, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3))); +- assertEquals(value, multimap.remove(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3))); ++ assertEquals(value, multimap.removeMultiKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3))); + assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3))); + assertEquals(size - 1, multimap.size()); +- assertEquals(null, multimap.remove(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3))); ++ assertEquals(null, multimap.removeMultiKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3))); + assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3))); + break; + case 5: + assertEquals(true, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3), key.getKey(4))); +- assertEquals(value, multimap.remove(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3), key.getKey(4))); ++ assertEquals(value, multimap.removeMultiKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3), key.getKey(4))); + assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3), key.getKey(4))); + assertEquals(size - 1, multimap.size()); +- assertEquals(null, multimap.remove(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3), key.getKey(4))); ++ assertEquals(null, multimap.removeMultiKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3), key.getKey(4))); + assertEquals(false, multimap.containsKey(key.getKey(0), key.getKey(1), key.getKey(2), key.getKey(3), key.getKey(4))); + break; + default: +diff --git a/src/test/org/apache/commons/collections/map/TestMultiValueMap.java b/src/test/org/apache/commons/collections/map/TestMultiValueMap.java +index b9a5ac8..9ecc269 100644 +--- a/src/test/org/apache/commons/collections/map/TestMultiValueMap.java ++++ b/src/test/org/apache/commons/collections/map/TestMultiValueMap.java +@@ -161,7 +161,7 @@ public class TestMultiValueMap extends TestCase { + MultiValueMap one = new MultiValueMap(); + Integer value = new Integer(1); + one.put("One", value); +- one.remove("One", value); ++ one.removeMapping("One", value); + + MultiValueMap two = new MultiValueMap(); + assertEquals(two, one); +@@ -187,7 +187,7 @@ public class TestMultiValueMap extends TestCase { + assertEquals(4, map.totalSize()); + map.remove("A"); + assertEquals(3, map.totalSize()); +- map.remove("B", "BC"); ++ map.removeMapping("B", "BC"); + assertEquals(2, map.totalSize()); + } + +@@ -204,7 +204,7 @@ public class TestMultiValueMap extends TestCase { + assertEquals(2, map.size()); + map.remove("A"); + assertEquals(2, map.size()); +- map.remove("B", "BC"); ++ map.removeMapping("B", "BC"); + assertEquals(2, map.size()); + } + +@@ -227,7 +227,7 @@ public class TestMultiValueMap extends TestCase { + map.remove("A"); + assertEquals(0, map.size("A")); + assertEquals(3, map.size("B")); +- map.remove("B", "BC"); ++ map.removeMapping("B", "BC"); + assertEquals(0, map.size("A")); + assertEquals(2, map.size("B")); + } +@@ -338,11 +338,11 @@ public class TestMultiValueMap extends TestCase { + map.put("A", "AA"); + map.put("A", "AB"); + map.put("A", "AC"); +- assertEquals(null, map.remove("C", "CA")); +- assertEquals(null, map.remove("A", "AD")); +- assertEquals("AC", map.remove("A", "AC")); +- assertEquals("AB", map.remove("A", "AB")); +- assertEquals("AA", map.remove("A", "AA")); ++ assertEquals(false, map.removeMapping("C", "CA")); ++ assertEquals(false, map.removeMapping("A", "AD")); ++ assertEquals(true, map.removeMapping("A", "AC")); ++ assertEquals(true, map.removeMapping("A", "AB")); ++ assertEquals(true, map.removeMapping("A", "AA")); + assertEquals(new MultiValueMap(), map); + } + +-- +2.18.0 + -- cgit v1.3