From d8461bc2f5b8650e0ba8de3aff368290343be33b Mon Sep 17 00:00:00 2001 From: Shaun Senecal Date: Sat, 11 Apr 2015 16:25:39 -0700 Subject: [PATCH 1/3] #1 -fixing up unit tests which no longer compiled under Java 8 by forcing the types to be declared where they may have been ambiguous before -hacked in the missing methods on LateTypeVariable. They simply throw UnsupportedOperationException, but at least that seems to get me going for now. Proper implementations will likely be needed in the future though. --- .../nullschool/collect/basic/BasicMapN.java | 2 +- .../collect/basic/BasicSortedMapN.java | 2 +- .../nullschool/reflect/LateTypeVariable.java | 21 +++++++ .../collect/CollectionTestingTools.java | 14 ++--- .../basic/BasicConstSortedMapTest.java | 59 ++++++++++--------- .../basic/BasicConstSortedSetTest.java | 2 +- .../collect/basic/BasicSortedMap0Test.java | 2 +- .../collect/basic/BasicSortedMap1Test.java | 4 +- .../collect/basic/BasicSortedMapNTest.java | 4 +- .../collect/basic/BasicSortedSet0Test.java | 9 +-- .../collect/basic/BasicSortedSet1Test.java | 24 ++++---- .../collect/basic/BasicSortedSetNTest.java | 12 ++-- .../reflect/LateTypeVariableTest.java | 2 +- .../datatype/BasicCollectionsTest.java | 4 +- .../grains/kryo/BasicCollectionsTest.java | 8 +-- .../grains/msgpack/BasicCollectionsTest.java | 4 +- pom.xml | 14 +++++ 17 files changed, 111 insertions(+), 76 deletions(-) diff --git a/core/src/main/java/net/nullschool/collect/basic/BasicMapN.java b/core/src/main/java/net/nullschool/collect/basic/BasicMapN.java index 5aeab0f..0544ebb 100644 --- a/core/src/main/java/net/nullschool/collect/basic/BasicMapN.java +++ b/core/src/main/java/net/nullschool/collect/basic/BasicMapN.java @@ -112,7 +112,7 @@ final class BasicMapN extends BasicConstMap { if (Objects.equals(value, values[index])) { return this; } - return new BasicMapN<>(keys, replace(values, index, value)); + return new BasicMapN<>(keys, BasicTools.replace(values, index, value)); } final int length = keys.length; return new BasicMapN<>(insert(keys, length, key), insert(values, length, value)); diff --git a/core/src/main/java/net/nullschool/collect/basic/BasicSortedMapN.java b/core/src/main/java/net/nullschool/collect/basic/BasicSortedMapN.java index 64a7eea..ebaefc1 100644 --- a/core/src/main/java/net/nullschool/collect/basic/BasicSortedMapN.java +++ b/core/src/main/java/net/nullschool/collect/basic/BasicSortedMapN.java @@ -130,7 +130,7 @@ private int indexOf(Object o) { if (Objects.equals(value, values[index])) { return this; } - return new BasicSortedMapN<>(comparator, keys, replace(values, index, value)); + return new BasicSortedMapN<>(comparator, keys, BasicTools.replace(values, index, value)); } index = flip(index); return new BasicSortedMapN<>(comparator, insert(keys, index, key), insert(values, index, value)); diff --git a/core/src/main/java/net/nullschool/reflect/LateTypeVariable.java b/core/src/main/java/net/nullschool/reflect/LateTypeVariable.java index db1c096..cf654c8 100644 --- a/core/src/main/java/net/nullschool/reflect/LateTypeVariable.java +++ b/core/src/main/java/net/nullschool/reflect/LateTypeVariable.java @@ -18,6 +18,7 @@ import net.nullschool.util.ArrayTools; +import java.lang.annotation.Annotation; import java.lang.reflect.*; import static java.util.Objects.requireNonNull; @@ -152,4 +153,24 @@ private boolean equals(TypeVariable that) { @Override public String toString() { return name; } + + @Override + public AnnotatedType[] getAnnotatedBounds() { + throw new UnsupportedOperationException("not yet implemented"); + } + + @Override + public T getAnnotation(Class annotationClass) { + throw new UnsupportedOperationException("not yet implemented"); + } + + @Override + public Annotation[] getAnnotations() { + throw new UnsupportedOperationException("not yet implemented"); + } + + @Override + public Annotation[] getDeclaredAnnotations() { + throw new UnsupportedOperationException("not yet implemented"); + } } diff --git a/core/src/test/java/net/nullschool/collect/CollectionTestingTools.java b/core/src/test/java/net/nullschool/collect/CollectionTestingTools.java index 7a074f9..c4288bb 100644 --- a/core/src/test/java/net/nullschool/collect/CollectionTestingTools.java +++ b/core/src/test/java/net/nullschool/collect/CollectionTestingTools.java @@ -18,7 +18,6 @@ import java.util.*; -import static java.util.Collections.reverseOrder; import static org.junit.Assert.*; @@ -44,7 +43,7 @@ public static final class NullSafeReverseComparator implements Comparator if (left == null) { return right == null ? 0 : 1; } - return right == null ? -1 : reverseOrder().compare(left, right); + return right == null ? -1 : Collections.reverseOrder().compare(left, right); } @Override public boolean equals(Object obj) { return obj instanceof NullSafeReverseComparator; } @Override public int hashCode() { return 1; } @@ -402,8 +401,8 @@ private static void compare_ranges(SortedSet expected, SortedSet actua } @SafeVarargs - public static void compare_sorted_sets(SortedSet expectedSet, SortedSet actual, E... rangePoints) { - @SuppressWarnings("unchecked") SortedSet expected = (SortedSet)expectedSet; + public static void compare_sorted_sets(SortedSet expectedSet, SortedSet actual, X... rangePoints) { + SortedSet expected = expectedSet; compare_sets(expected, actual); assertEquals(expected.comparator(), actual.comparator()); @@ -422,7 +421,7 @@ public static void compare_sorted_sets(SortedSet expectedSet, SortedSe if (expected.size() > 1) { // Compare the tail sets of everything from the second item onwards. - E from = nth(expected, 1); + X from = nth(expected, 1); compare_sorted_sets(expected.tailSet(from), actual.tailSet(from)); } } @@ -548,9 +547,8 @@ private static void compare_ranges(SortedMap expected, SortedMap void compare_sorted_maps( - SortedMap expectedMap, + public static void compare_sorted_maps( + SortedMap expectedMap, SortedMap actual, K... rangePoints) { diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedMapTest.java b/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedMapTest.java index a2dee0a..d1750c8 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedMapTest.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedMapTest.java @@ -16,6 +16,7 @@ package net.nullschool.collect.basic; +import net.nullschool.collect.CollectionTestingTools; import net.nullschool.collect.ConstSortedMap; import net.nullschool.reflect.PublicInterfaceRef; import org.junit.Test; @@ -126,27 +127,27 @@ public void test_construction_permutations_reverse() { @Test public void test_sortedMapOf() { - compare_sorted_maps(newSortedMap(null, "a", 1), sortedMapOf(null, "a", 1)); - compare_sorted_maps(newSortedMap(null, "a", 1, "b", 2), sortedMapOf(null, "a", 1, "b", 2)); - compare_sorted_maps(newSortedMap(null, "a", 1, "b", 2, "c", 3), sortedMapOf(null, "a", 1, "b", 2, "c", 3)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools.newSortedMap(null, "a", 1), BasicCollections.sortedMapOf(null, "a", 1)); + compare_sorted_maps(CollectionTestingTools.newSortedMap(null, "a", 1, "b", 2), sortedMapOf(null, "a", 1, "b", 2)); + compare_sorted_maps(CollectionTestingTools.newSortedMap(null, "a", 1, "b", 2, "c", 3), sortedMapOf(null, "a", 1, "b", 2, "c", 3)); + compare_sorted_maps(CollectionTestingTools. newSortedMap(null, "a", 1, "b", 2, "c", 3, "d", 4), sortedMapOf(null, "a", 1, "b", 2, "c", 3, "d", 4)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(null, "a", 1, "b", 2, "c", 3, "d", 4, "e", 5), sortedMapOf(null, "a", 1, "b", 2, "c", 3, "d", 4, "e", 5)); Comparator reverse = new NullSafeReverseComparator<>(); - compare_sorted_maps(newSortedMap(reverse, "a", 1), sortedMapOf(reverse, "a", 1)); - compare_sorted_maps(newSortedMap(reverse, "a", 1, "b", 2), sortedMapOf(reverse, "a", 1, "b", 2)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools.newSortedMap(reverse, "a", 1), sortedMapOf(reverse, "a", 1)); + compare_sorted_maps(CollectionTestingTools.newSortedMap(reverse, "a", 1, "b", 2), sortedMapOf(reverse, "a", 1, "b", 2)); + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, "a", 1, "b", 2, "c", 3), sortedMapOf(reverse, "a", 1, "b", 2, "c", 3)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, "a", 1, "b", 2, "c", 3, "d", 4), sortedMapOf(reverse, "a", 1, "b", 2, "c", 3, "d", 4)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, "a", 1, "b", 2, "c", 3, "d", 4, "e", 5), sortedMapOf(reverse, "a", 1, "b", 2, "c", 3, "d", 4, "e", 5)); @@ -178,48 +179,48 @@ public void test_sortedMapOf_types() { public void test_asSortedMap_array() { Integer[] a; assertSame(emptySortedMap(null), asSortedMap(null, a = new Integer[] {}, a)); - compare_sorted_maps(newSortedMap(null, 1, 1), asSortedMap(null, a = new Integer[] {1}, a)); - compare_sorted_maps(newSortedMap(null, 1, 1, 2, 2), asSortedMap(null, a = new Integer[] {1, 2}, a)); - compare_sorted_maps(newSortedMap(null, 1, 1, 2, 2, 3, 3), asSortedMap(null, a = new Integer[] {1, 2, 3}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools.newSortedMap(null, 1, 1), asSortedMap(null, a = new Integer[] {1}, a)); + compare_sorted_maps(CollectionTestingTools.newSortedMap(null, 1, 1, 2, 2), asSortedMap(null, a = new Integer[] {1, 2}, a)); + compare_sorted_maps(CollectionTestingTools.newSortedMap(null, 1, 1, 2, 2, 3, 3), asSortedMap(null, a = new Integer[] {1, 2, 3}, a)); + compare_sorted_maps(CollectionTestingTools. newSortedMap(null, 1, 1, 2, 2, 3, 3, 4, 4), asSortedMap(null, a = new Integer[] {1, 2, 3, 4}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(null, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5), asSortedMap(null, a = new Integer[] {1, 2, 3, 4, 5}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(null, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6), asSortedMap(null, a = new Integer[] {1, 2, 3, 4, 5, 6}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(null, 1, 1, 2, 2), asSortedMap(null, new Integer[] {1, 2}, new Integer[] {1, 2, 3})); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(null, 1, 1, 2, 2), asSortedMap(null, new Integer[] {1, 2, 3}, new Integer[] {1, 2})); Comparator reverse = reverseOrder(); - compare_sorted_maps(emptySortedMap(reverse), asSortedMap(reverse, a = new Integer[] {}, a)); - compare_sorted_maps(newSortedMap(reverse, 1, 1), asSortedMap(reverse, a = new Integer[] {1}, a)); - compare_sorted_maps(newSortedMap(reverse, 1, 1, 2, 2), asSortedMap(reverse, a = new Integer[] {1, 2}, a)); - compare_sorted_maps( + compare_sorted_maps(BasicCollections.emptySortedMap(reverse), BasicCollections.asSortedMap(reverse, a = new Integer[]{}, a)); + compare_sorted_maps(CollectionTestingTools.newSortedMap(reverse, 1, 1), asSortedMap(reverse, a = new Integer[] {1}, a)); + compare_sorted_maps(CollectionTestingTools.newSortedMap(reverse, 1, 1, 2, 2), asSortedMap(reverse, a = new Integer[] {1, 2}, a)); + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, 1, 1, 2, 2, 3, 3), asSortedMap(reverse, a = new Integer[] {1, 2, 3}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, 1, 1, 2, 2, 3, 3, 4, 4), asSortedMap(reverse, a = new Integer[] {1, 2, 3, 4}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5), asSortedMap(reverse, a = new Integer[] {1, 2, 3, 4, 5}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6), asSortedMap(reverse, a = new Integer[] {1, 2, 3, 4, 5, 6}, a)); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, 1, 1, 2, 2), asSortedMap(reverse, new Integer[] {1, 2}, new Integer[] {1, 2, 3})); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, 1, 1, 2, 2), asSortedMap(reverse, new Integer[] {1, 2, 3}, new Integer[] {1, 2})); } @@ -326,10 +327,10 @@ public void test_asSortedMap_comparator_map() { // Calling asSortedMap with a sorted map but different comparator should change the order, and even the size. ConstSortedMap names = sortedMapOf(reverse, "a", 1, "B", 2, "b", 3, "c", 4, "C", 5); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(reverse, "c", 4, "b", 3, "a", 1, "C", 5, "B", 2), // before names); - compare_sorted_maps( + compare_sorted_maps(CollectionTestingTools. newSortedMap(CASE_INSENSITIVE_ORDER, "a", 1, "b", 2, "c", 5), // after asSortedMap(CASE_INSENSITIVE_ORDER, names)); } diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedSetTest.java b/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedSetTest.java index d79194d..d64bf91 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedSetTest.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicConstSortedSetTest.java @@ -186,7 +186,7 @@ public void test_asSortedSet_array() { Comparator reverse = reverseOrder(); - compare_sorted_sets(emptySortedSet(reverse), asSortedSet(reverse, new Integer[] {})); + compare_sorted_sets(BasicCollections.emptySortedSet(reverse), asSortedSet(reverse, new Integer[] {})); compare_sorted_sets(newSortedSet(reverse, 1), asSortedSet(reverse, new Integer[] {1})); compare_sorted_sets(newSortedSet(reverse, 1, 2), asSortedSet(reverse, new Integer[] {1, 2})); compare_sorted_sets(newSortedSet(reverse, 1, 2, 3), asSortedSet(reverse, new Integer[] {1, 2, 3})); diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap0Test.java b/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap0Test.java index e1da836..10937de 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap0Test.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap0Test.java @@ -129,7 +129,7 @@ public void test_serialization_with_comparator() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedMap read = (ConstSortedMap)in.readObject(); + ConstSortedMap read = (ConstSortedMap)in.readObject(); compare_sorted_maps(map, read); assertSame(map.getClass(), read.getClass()); } diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap1Test.java b/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap1Test.java index a331f28..85ac85e 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap1Test.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicSortedMap1Test.java @@ -138,7 +138,7 @@ public void test_serialization() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedMap read = (ConstSortedMap)in.readObject(); + ConstSortedMap read = (ConstSortedMap)in.readObject(); compare_sorted_maps(map, read); assertSame(map.getClass(), read.getClass()); } @@ -159,7 +159,7 @@ public void test_serialization_with_comparator() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedMap read = (ConstSortedMap)in.readObject(); + ConstSortedMap read = (ConstSortedMap)in.readObject(); compare_sorted_maps(map, read); assertSame(map.getClass(), read.getClass()); } diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicSortedMapNTest.java b/core/src/test/java/net/nullschool/collect/basic/BasicSortedMapNTest.java index 7f2516b..cc9261f 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicSortedMapNTest.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicSortedMapNTest.java @@ -167,7 +167,7 @@ public void test_serialization() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedMap read = (ConstSortedMap)in.readObject(); + ConstSortedMap read = (ConstSortedMap)in.readObject(); compare_sorted_maps(map, read); assertSame(map.getClass(), read.getClass()); } @@ -189,7 +189,7 @@ public void test_serialization_with_comparator() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedMap read = (ConstSortedMap)in.readObject(); + ConstSortedMap read = (ConstSortedMap)in.readObject(); compare_sorted_maps(map, read); assertSame(map.getClass(), read.getClass()); } diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet0Test.java b/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet0Test.java index 6723ece..1788fa3 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet0Test.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet0Test.java @@ -16,6 +16,7 @@ package net.nullschool.collect.basic; +import net.nullschool.collect.CollectionTestingTools; import net.nullschool.collect.ConstSortedSet; import org.junit.Test; @@ -39,7 +40,7 @@ public class BasicSortedSet0Test { @Test public void test_comparison() { - compare_sorted_sets(newSortedSet(null), BasicSortedSet0.instance(null), -1, 0, 1, 0); + compare_sorted_sets(CollectionTestingTools.newSortedSet(null), BasicSortedSet0.instance(null), -1, 0, 1, 0); compare_sorted_sets(newSortedSet(reverseOrder()), BasicSortedSet0.instance(reverseOrder()), 1, 0, -1, 0); } @@ -50,8 +51,8 @@ public void test_immutable() { @Test public void test_with() { - compare_sorted_sets(newSortedSet(null, 1), BasicSortedSet0.instance(null).with(1)); - compare_sorted_sets(newSortedSet(reverseOrder(), 1), BasicSortedSet0.instance(reverseOrder()).with(1)); + compare_sorted_sets(newSortedSet(null, 1), BasicSortedSet0.instance(null).with(1)); + compare_sorted_sets(newSortedSet(reverseOrder(), 1), BasicSortedSet0.instance(reverseOrder()).with(1)); } @Test @@ -128,7 +129,7 @@ public void test_serialization_with_comparator() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedSet read = (ConstSortedSet)in.readObject(); + ConstSortedSet read = (ConstSortedSet)in.readObject(); compare_sorted_sets(set, read); assertSame(set.getClass(), read.getClass()); } diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet1Test.java b/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet1Test.java index a1bdf1f..f192abe 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet1Test.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicSortedSet1Test.java @@ -26,9 +26,9 @@ import java.util.Arrays; import java.util.Collections; -import static org.junit.Assert.*; +import static java.util.Collections.reverseOrder; import static net.nullschool.collect.CollectionTestingTools.*; -import static java.util.Collections.*; +import static org.junit.Assert.*; /** * 2013-04-25

@@ -39,8 +39,8 @@ public class BasicSortedSet1Test { @Test public void test_comparison() { - compare_sorted_sets(newSortedSet(null, 1), new BasicSortedSet1<>(null, 1), 0, 1, 1, 2, 0); - compare_sorted_sets(newSortedSet(reverseOrder(), 1), new BasicSortedSet1<>(reverseOrder(), 1), 2, 1, 1, 0, 2); + compare_sorted_sets(newSortedSet(null, 1), new BasicSortedSet1(null, 1), 0, 1, 1, 2, 0); + compare_sorted_sets(newSortedSet(reverseOrder(), 1), new BasicSortedSet1(reverseOrder(), 1), 2, 1, 1, 0, 2); } @Test @@ -86,11 +86,11 @@ public void test_without() { ConstSortedSet set; set = new BasicSortedSet1<>(null, 1); - compare_sorted_sets(BasicSortedSet0.instance(null), set.without(1)); + compare_sorted_sets(BasicSortedSet0.instance(null), set.without(1)); assertSame(set, set.without(2)); set = new BasicSortedSet1<>(reverseOrder(), 1); - compare_sorted_sets(BasicSortedSet0.instance(reverseOrder()), set.without(1)); + compare_sorted_sets(BasicSortedSet0.instance(reverseOrder()), set.without(1)); assertSame(set, set.without(2)); } @@ -99,14 +99,14 @@ public void test_withoutAll() { ConstSortedSet set; set = new BasicSortedSet1<>(null, 1); - compare_sorted_sets(BasicSortedSet0.instance(null), set.withoutAll(Arrays.asList(1))); - compare_sorted_sets(BasicSortedSet0.instance(null), set.withoutAll(Arrays.asList(2, 1))); + compare_sorted_sets(BasicSortedSet0.instance(null), set.withoutAll(Arrays.asList(1))); + compare_sorted_sets(BasicSortedSet0.instance(null), set.withoutAll(Arrays.asList(2, 1))); assertSame(set, set.withoutAll(Arrays.asList(2))); assertSame(set, set.withoutAll(Arrays.asList())); set = new BasicSortedSet1<>(reverseOrder(), 1); - compare_sorted_sets(BasicSortedSet0.instance(reverseOrder()), set.withoutAll(Arrays.asList(1))); - compare_sorted_sets(BasicSortedSet0.instance(reverseOrder()), set.withoutAll(Arrays.asList(2, 1))); + compare_sorted_sets(BasicSortedSet0.instance(reverseOrder()), set.withoutAll(Arrays.asList(1))); + compare_sorted_sets(BasicSortedSet0.instance(reverseOrder()), set.withoutAll(Arrays.asList(2, 1))); assertSame(set, set.withoutAll(Arrays.asList(2))); assertSame(set, set.withoutAll(Arrays.asList())); } @@ -131,7 +131,7 @@ public void test_serialization() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedSet read = (ConstSortedSet)in.readObject(); + ConstSortedSet read = (ConstSortedSet)in.readObject(); compare_sorted_sets(set, read); assertSame(set.getClass(), read.getClass()); } @@ -152,7 +152,7 @@ public void test_serialization_with_comparator() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedSet read = (ConstSortedSet)in.readObject(); + ConstSortedSet read = (ConstSortedSet)in.readObject(); compare_sorted_sets(set, read); assertSame(set.getClass(), read.getClass()); } diff --git a/core/src/test/java/net/nullschool/collect/basic/BasicSortedSetNTest.java b/core/src/test/java/net/nullschool/collect/basic/BasicSortedSetNTest.java index ef4c8c0..eef3062 100644 --- a/core/src/test/java/net/nullschool/collect/basic/BasicSortedSetNTest.java +++ b/core/src/test/java/net/nullschool/collect/basic/BasicSortedSetNTest.java @@ -26,9 +26,9 @@ import java.util.Arrays; import java.util.Collections; -import static org.junit.Assert.*; +import static java.util.Collections.reverseOrder; import static net.nullschool.collect.CollectionTestingTools.*; -import static java.util.Collections.*; +import static org.junit.Assert.*; /** @@ -42,11 +42,11 @@ public class BasicSortedSetNTest { public void test_comparison() { compare_sorted_sets( newSortedSet(null, 1, 2, 3, 5, 6, 7), - new BasicSortedSetN<>(null, new Object[] {1, 2, 3, 5, 6, 7}), + new BasicSortedSetN(null, new Object[] {1, 2, 3, 5, 6, 7}), 0, 2, 4, 6, 8, 1, 7); compare_sorted_sets( newSortedSet(reverseOrder(), 7, 6, 5, 3, 2, 1), - new BasicSortedSetN<>(reverseOrder(), new Object[] {7, 6, 5, 3, 2, 1}), + new BasicSortedSetN(reverseOrder(), new Object[] {7, 6, 5, 3, 2, 1}), 8, 6, 4, 2, 0, 7, 1); } @@ -154,7 +154,7 @@ public void test_serialization() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedSet read = (ConstSortedSet)in.readObject(); + ConstSortedSet read = (ConstSortedSet)in.readObject(); compare_sorted_sets(set, read); assertSame(set.getClass(), read.getClass()); } @@ -175,7 +175,7 @@ public void test_serialization_with_comparator() throws Exception { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(data)); - ConstSortedSet read = (ConstSortedSet)in.readObject(); + ConstSortedSet read = (ConstSortedSet)in.readObject(); compare_sorted_sets(set, read); assertSame(set.getClass(), read.getClass()); } diff --git a/core/src/test/java/net/nullschool/reflect/LateTypeVariableTest.java b/core/src/test/java/net/nullschool/reflect/LateTypeVariableTest.java index 843d136..2466c9e 100644 --- a/core/src/test/java/net/nullschool/reflect/LateTypeVariableTest.java +++ b/core/src/test/java/net/nullschool/reflect/LateTypeVariableTest.java @@ -69,7 +69,7 @@ private static void compare(TypeVariable expected, TypeVariable actual) { assertEquals(expected.getName(), tv.getName()); assertEquals(expected.getGenericDeclaration(), tv.getGenericDeclaration()); assertArrayEquals(expected.getBounds(), tv.getBounds()); - assertTrue(expected.equals(tv)); + // assertTrue(expected.equals(tv)); this can never be true because the default Sun/Oracle implementation of TypeVariable.equals() checks .class() assertTrue(tv.equals(expected)); assertEquals(expected.hashCode(), tv.hashCode()); assertEquals(expected.toString(), tv.toString()); diff --git a/jackson/src/test/java/net/nullschool/grains/jackson/datatype/BasicCollectionsTest.java b/jackson/src/test/java/net/nullschool/grains/jackson/datatype/BasicCollectionsTest.java index f435646..11714e8 100644 --- a/jackson/src/test/java/net/nullschool/grains/jackson/datatype/BasicCollectionsTest.java +++ b/jackson/src/test/java/net/nullschool/grains/jackson/datatype/BasicCollectionsTest.java @@ -64,7 +64,7 @@ public void test_basicConstSortedSet() throws IOException { for (int i = 0; i < 10; i++) { ObjectMapper mapper = newGrainsObjectMapper(); byte[] data = mapper.writeValueAsBytes(set); - ConstSortedSet actual = mapper.readValue(data, new TypeReference>(){}); + ConstSortedSet actual = mapper.readValue(data, new TypeReference>(){}); CollectionTestingTools.compare_sorted_sets(set, actual); set = set.with(i); } @@ -88,7 +88,7 @@ public void test_basicConstSortedMap() throws IOException { for (int i = 0; i < 5; i++) { ObjectMapper mapper = newGrainsObjectMapper(); byte[] data = mapper.writeValueAsBytes(map); - ConstSortedMap actual = + ConstSortedMap actual = mapper.readValue(data, new TypeReference>(){}); CollectionTestingTools.compare_sorted_maps(map, actual); map = map.with(String.valueOf(i), i); diff --git a/kryo/src/test/java/net/nullschool/grains/kryo/BasicCollectionsTest.java b/kryo/src/test/java/net/nullschool/grains/kryo/BasicCollectionsTest.java index 724f2ae..51b546f 100644 --- a/kryo/src/test/java/net/nullschool/grains/kryo/BasicCollectionsTest.java +++ b/kryo/src/test/java/net/nullschool/grains/kryo/BasicCollectionsTest.java @@ -53,7 +53,7 @@ public void test_basicConstSortedSet() { kryo.addDefaultSerializer(Comparator.class, new ComparatorSerializer()); Object obj = roundTrip(set, baos, kryo, kryo); assertTrue(obj instanceof ConstSortedSet); - CollectionTestingTools.compare_sorted_sets(set, (ConstSortedSet)obj); + CollectionTestingTools.compare_sorted_sets(set, (ConstSortedSet)obj); set = set.with(i); } @@ -64,7 +64,7 @@ public void test_basicConstSortedSet() { kryo.addDefaultSerializer(Comparator.class, new ComparatorSerializer()); Object obj = roundTrip(set, baos, kryo, kryo); assertTrue(obj instanceof ConstSortedSet); - CollectionTestingTools.compare_sorted_sets(set, (ConstSortedSet)obj); + CollectionTestingTools.compare_sorted_sets(set, (ConstSortedSet)obj); set = set.with(i); } } @@ -90,7 +90,7 @@ public void test_basicConstSortedMap() { kryo.addDefaultSerializer(Comparator.class, new ComparatorSerializer()); Object obj = roundTrip(map, baos, kryo, kryo); assertTrue(obj instanceof ConstSortedMap); - CollectionTestingTools.compare_sorted_maps(map, (ConstSortedMap)obj); + CollectionTestingTools.compare_sorted_maps(map, (ConstSortedMap)obj); map = map.with(i, i); } @@ -101,7 +101,7 @@ public void test_basicConstSortedMap() { kryo.addDefaultSerializer(Comparator.class, new ComparatorSerializer()); Object obj = roundTrip(map, baos, kryo, kryo); assertTrue(obj instanceof ConstSortedMap); - CollectionTestingTools.compare_sorted_maps(map, (ConstSortedMap)obj); + CollectionTestingTools.compare_sorted_maps(map, (ConstSortedMap)obj); map = map.with(i, i); } } diff --git a/msgpack/src/test/java/net/nullschool/grains/msgpack/BasicCollectionsTest.java b/msgpack/src/test/java/net/nullschool/grains/msgpack/BasicCollectionsTest.java index bf0867b..db7b134 100644 --- a/msgpack/src/test/java/net/nullschool/grains/msgpack/BasicCollectionsTest.java +++ b/msgpack/src/test/java/net/nullschool/grains/msgpack/BasicCollectionsTest.java @@ -64,7 +64,7 @@ public void test_basicConstSortedSet() throws IOException { for (int i = 0; i < 10; i++) { MessagePack msgpack = newGrainsMessagePack(); byte[] data = msgpack.write(set); - ConstSortedSet actual = msgpack.read(data, ConstSortedSet.class); + ConstSortedSet actual = msgpack.read(data, ConstSortedSet.class); CollectionTestingTools.compare_sorted_sets(set, actual); set = set.with(i); } @@ -88,7 +88,7 @@ public void test_basicConstSortedMap() throws IOException { for (int i = 0; i < 5; i++) { MessagePack msgpack = newGrainsMessagePack(); byte[] data = msgpack.write(map); - ConstSortedMap actual = msgpack.read(data, ConstSortedMap.class); + ConstSortedMap actual = msgpack.read(data, ConstSortedMap.class); CollectionTestingTools.compare_sorted_maps(map, actual); map = map.with(i, i); } diff --git a/pom.xml b/pom.xml index 6778053..de7a80b 100644 --- a/pom.xml +++ b/pom.xml @@ -71,4 +71,18 @@ sample + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.7 + 1.7 + + + + + From 94ca912ef9003db27a487f9be25e7b272df093da Mon Sep 17 00:00:00 2001 From: Shaun Senecal Date: Sun, 12 Apr 2015 20:36:54 -0700 Subject: [PATCH 2/3] #2 -upgrading to Jackson 2.5.1 so projects using more recent versions of Jackson are able to use Grains --- jackson/pom.xml | 8 ++++---- .../jackson/datatype/JacksonGrainProperty.java | 13 ++++++++++++- .../grains/jackson/datatype/JacksonTest.java | 6 +----- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/jackson/pom.xml b/jackson/pom.xml index e686596..8716ee0 100644 --- a/jackson/pom.xml +++ b/jackson/pom.xml @@ -65,7 +65,7 @@ com.fasterxml.jackson.core jackson-databind - 2.2.2 + 2.5.1 @@ -91,19 +91,19 @@ com.fasterxml.jackson.dataformat jackson-dataformat-smile - 2.2.2 + 2.5.1 test com.fasterxml.jackson.dataformat jackson-dataformat-xml - 2.2.2 + 2.5.1 test com.fasterxml.jackson.dataformat jackson-dataformat-yaml - 2.2.2 + 2.5.1 test diff --git a/jackson/src/main/java/net/nullschool/grains/jackson/datatype/JacksonGrainProperty.java b/jackson/src/main/java/net/nullschool/grains/jackson/datatype/JacksonGrainProperty.java index 3fb7e77..ed698bc 100644 --- a/jackson/src/main/java/net/nullschool/grains/jackson/datatype/JacksonGrainProperty.java +++ b/jackson/src/main/java/net/nullschool/grains/jackson/datatype/JacksonGrainProperty.java @@ -32,7 +32,8 @@ final class JacksonGrainProperty implements BeanProperty { // UNDONE: Serializa try { String getterName = (prop.getFlags().contains(IS_PROPERTY) ? "is" : "get") + capitalize(prop.getName()); // UNDONE: annotations - this.member = new AnnotatedMethod(grainClass.getMethod(getterName), new AnnotationMap(), EMPTY); + AnnotatedClass annotatedClass = AnnotatedClass.construct(grainClass, new GrainsAnnotationIntrospector(), null); + this.member = new AnnotatedMethod(annotatedClass, grainClass.getMethod(getterName), new AnnotationMap(), EMPTY); } catch (NoSuchMethodException e) { throw new IllegalArgumentException(e); @@ -43,6 +44,11 @@ final class JacksonGrainProperty implements BeanProperty { // UNDONE: Serializa return name; } + @Override + public PropertyName getFullName() { + return new PropertyName(name); + } + @Override public JavaType getType() { return type; } @@ -51,6 +57,11 @@ final class JacksonGrainProperty implements BeanProperty { // UNDONE: Serializa return null; } + @Override + public PropertyMetadata getMetadata() { + return PropertyMetadata.STD_REQUIRED_OR_OPTIONAL; + } + @Override public boolean isRequired() { return false; } diff --git a/jackson/src/test/java/net/nullschool/grains/jackson/datatype/JacksonTest.java b/jackson/src/test/java/net/nullschool/grains/jackson/datatype/JacksonTest.java index 1e39679..9abe4f7 100644 --- a/jackson/src/test/java/net/nullschool/grains/jackson/datatype/JacksonTest.java +++ b/jackson/src/test/java/net/nullschool/grains/jackson/datatype/JacksonTest.java @@ -58,11 +58,7 @@ public void test_complete_serialization_smile() throws IOException { byte[] data = mapper.writeValueAsBytes(expected); assertEquals( - ":)a1fa80a#80bc280cc480dc480ec680f&810180g(3|00080h)1?x000000080i*80815080j@a80kDhello80lc1bd31d6" + - "6-eda2-4395-a2a7-510bd581e3ab80mThttp://nullschool.net80oDgreen80pfa81idc2fb80qf8c2c4f980rf8" + - "faOc2fbfaOc4fbf980sf8c4c6f980tf8faOc4fbfaOc6fbf980uf8@a@bf980vf8faOc8fbfaOcafbf980wfa@c2Ac4f" + - "b80xfa@faOccfbAfaOcefbfb80yf8@x@yf980zfa801faOd0fb802faOd2fbfb81zafa@f8f8faOc2fbfaOc4fbf9f9f" + - "b81zbf8f8@a@bf9f8@c@df9f9fb", + ":)a1fa80a#80bc280cc480dc480ec680f&810180g(3|00080h)1?x000000080i*80815080j@a80kDhello80le890dtcV76DCJhTu8/+1qj380mThttp://nullschool.net80oDgreen80pfa81idc2fb80qf8c2c4f980rf8faOc2fbfaOc4fbf980sf8c4c6f980tf8faOc4fbfaOc6fbf980uf8@a@bf980vf8faOc8fbfaOcafbf980wfa@c2Ac4fb80xfa@faOccfbAfaOcefbfb80yf8@x@yf980zfa801faOd0fb802faOd2fbfb81zafa@f8f8faOc2fbfaOc4fbf9f9fb81zbf8f8@a@bf9f8@c@df9f9fb", BasicToolsTest.asReadableString(data)); CompleteGrain actual = mapper.readValue(data, CompleteGrain.class); From 28088bc2a20719484483711f7bbcc150057bea45 Mon Sep 17 00:00:00 2001 From: senecaso Date: Mon, 27 Apr 2020 21:20:13 -0700 Subject: [PATCH 3/3] #2 -upgrading to a newer version of Jackson so projects using more recent versions of Jackson are able to use Grains --- .../reflect/LateParameterizedTypeTest.java | 4 +-- jackson/pom.xml | 6 ++-- .../jackson/datatype/GrainDeserializer.java | 2 +- .../jackson/datatype/GrainSerializer.java | 2 +- .../datatype/JacksonGrainProperty.java | 29 ++++++++++++------- pom.xml | 4 +-- 6 files changed, 27 insertions(+), 20 deletions(-) diff --git a/core/src/test/java/net/nullschool/reflect/LateParameterizedTypeTest.java b/core/src/test/java/net/nullschool/reflect/LateParameterizedTypeTest.java index c013787..f115f95 100644 --- a/core/src/test/java/net/nullschool/reflect/LateParameterizedTypeTest.java +++ b/core/src/test/java/net/nullschool/reflect/LateParameterizedTypeTest.java @@ -83,14 +83,14 @@ public void test_inner_class_comparison_with_standard_reflection() { new JavaToken.Inner0>(){}.asParameterizedType(), new LateParameterizedType( Outer.Inner0.class, - new LateParameterizedType(Outer.class, null, Byte.class))); + new LateParameterizedType(Outer.class, null, Byte.class)), IgnoreFlag.ToString); compare( new JavaToken.Inner1>(){}.asParameterizedType(), new LateParameterizedType( Outer.Inner1.class, new LateParameterizedType(Outer.class, null, Byte.class), - Long.class)); + Long.class), IgnoreFlag.ToString); } @Test diff --git a/jackson/pom.xml b/jackson/pom.xml index 8716ee0..fbc1cac 100644 --- a/jackson/pom.xml +++ b/jackson/pom.xml @@ -65,7 +65,7 @@ com.fasterxml.jackson.core jackson-databind - 2.5.1 + 2.10.3 @@ -91,7 +91,7 @@ com.fasterxml.jackson.dataformat jackson-dataformat-smile - 2.5.1 + 2.10.3 test @@ -103,7 +103,7 @@ com.fasterxml.jackson.dataformat jackson-dataformat-yaml - 2.5.1 + 2.10.3 test diff --git a/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainDeserializer.java b/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainDeserializer.java index 5b08dd5..79fe4c6 100644 --- a/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainDeserializer.java +++ b/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainDeserializer.java @@ -65,7 +65,7 @@ private GrainDeserializer(GrainFactory factory) { @Override public void resolve(DeserializationContext ctxt) throws JsonMappingException { for (GrainProperty gp : factory.getBasisProperties().values()) { - JacksonGrainProperty prop = new JacksonGrainProperty(gp, ctxt.getTypeFactory(), getValueClass()); + JacksonGrainProperty prop = new JacksonGrainProperty(gp, ctxt.getTypeFactory(), getValueClass(), ctxt.getConfig()); JsonDeserializer deserializer = ctxt.findContextualValueDeserializer(prop.getType(), prop); readers.put(prop.getName(), new PropertyReader(deserializer)); diff --git a/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainSerializer.java b/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainSerializer.java index 5c87620..7c4831b 100644 --- a/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainSerializer.java +++ b/jackson/src/main/java/net/nullschool/grains/jackson/datatype/GrainSerializer.java @@ -72,7 +72,7 @@ private GrainSerializer(GrainFactory factory) { } List writers = new ArrayList<>(); for (GrainProperty gp : factory.getBasisProperties().values()) { - JacksonGrainProperty prop = new JacksonGrainProperty(gp, provider.getTypeFactory(), handledType()); + JacksonGrainProperty prop = new JacksonGrainProperty(gp, provider.getTypeFactory(), handledType(), provider.getConfig()); JsonSerializer serializer = provider.findValueSerializer(prop.getType(), prop); writers.add(new PropertyWriter(prop.getName(), serializer)); diff --git a/jackson/src/main/java/net/nullschool/grains/jackson/datatype/JacksonGrainProperty.java b/jackson/src/main/java/net/nullschool/grains/jackson/datatype/JacksonGrainProperty.java index ed698bc..ddd77ea 100644 --- a/jackson/src/main/java/net/nullschool/grains/jackson/datatype/JacksonGrainProperty.java +++ b/jackson/src/main/java/net/nullschool/grains/jackson/datatype/JacksonGrainProperty.java @@ -1,7 +1,16 @@ package net.nullschool.grains.jackson.datatype; -import com.fasterxml.jackson.databind.*; -import com.fasterxml.jackson.databind.introspect.*; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.PropertyMetadata; +import com.fasterxml.jackson.databind.PropertyName; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.cfg.MapperConfig; +import com.fasterxml.jackson.databind.introspect.AnnotatedClass; +import com.fasterxml.jackson.databind.introspect.AnnotatedClassResolver; +import com.fasterxml.jackson.databind.introspect.AnnotatedMember; +import com.fasterxml.jackson.databind.introspect.AnnotatedMethod; +import com.fasterxml.jackson.databind.introspect.AnnotationMap; +import com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBase; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonObjectFormatVisitor; import com.fasterxml.jackson.databind.type.TypeFactory; import net.nullschool.grains.GrainProperty; @@ -17,7 +26,7 @@ * * @author Cameron Beccario */ -final class JacksonGrainProperty implements BeanProperty { // UNDONE: Serializable +final class JacksonGrainProperty extends ConcreteBeanPropertyBase { // UNDONE: Serializable private static final AnnotationMap[] EMPTY = new AnnotationMap[0]; @@ -26,13 +35,15 @@ final class JacksonGrainProperty implements BeanProperty { // UNDONE: Serializa private final JavaType type; private final AnnotatedMember member; - JacksonGrainProperty(GrainProperty prop, TypeFactory typeFactory, Class grainClass) { + JacksonGrainProperty(GrainProperty prop, TypeFactory typeFactory, Class grainClass, MapperConfig config) { + super(PropertyMetadata.STD_REQUIRED_OR_OPTIONAL); + this.name = prop.getName(); this.type = typeFactory.constructType(prop.getType()); try { String getterName = (prop.getFlags().contains(IS_PROPERTY) ? "is" : "get") + capitalize(prop.getName()); // UNDONE: annotations - AnnotatedClass annotatedClass = AnnotatedClass.construct(grainClass, new GrainsAnnotationIntrospector(), null); + AnnotatedClass annotatedClass = AnnotatedClassResolver.resolve(config, typeFactory.constructType(grainClass), null); this.member = new AnnotatedMethod(annotatedClass, grainClass.getMethod(getterName), new AnnotationMap(), EMPTY); } catch (NoSuchMethodException e) { @@ -57,11 +68,6 @@ public PropertyName getFullName() { return null; } - @Override - public PropertyMetadata getMetadata() { - return PropertyMetadata.STD_REQUIRED_OR_OPTIONAL; - } - @Override public boolean isRequired() { return false; } @@ -78,7 +84,8 @@ public PropertyMetadata getMetadata() { return member; } - @Override public void depositSchemaProperty(JsonObjectFormatVisitor objectVisitor) throws JsonMappingException { + @Override + public void depositSchemaProperty(JsonObjectFormatVisitor objectVisitor, SerializerProvider provider) { // UNDONE throw new UnsupportedOperationException("NYI"); } diff --git a/pom.xml b/pom.xml index de7a80b..c8bac90 100644 --- a/pom.xml +++ b/pom.xml @@ -78,8 +78,8 @@ maven-compiler-plugin 3.3 - 1.7 - 1.7 + 1.8 + 1.8