From 477503b02a4f74db57bf3f9817de2eacf6f07d20 Mon Sep 17 00:00:00 2001 From: skudikala Date: Thu, 13 Jun 2024 11:47:17 -0400 Subject: [PATCH 1/4] pin the release target to jdk8 --- pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pom.xml b/pom.xml index e246c5e..d616b24 100644 --- a/pom.xml +++ b/pom.xml @@ -26,6 +26,11 @@ RosettaImmutables + + 8 + 8 + + From 50e47136cc9ad2b99fb4fa13ea50ffeac572cb0b Mon Sep 17 00:00:00 2001 From: skudikala Date: Thu, 13 Jun 2024 12:14:02 -0400 Subject: [PATCH 2/4] make code jdk8 compliant --- .../RosettaAnnotationIntrospector.java | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/RosettaCore/src/main/java/com/hubspot/rosetta/internal/RosettaAnnotationIntrospector.java b/RosettaCore/src/main/java/com/hubspot/rosetta/internal/RosettaAnnotationIntrospector.java index 7bb52fc..ed01f8c 100644 --- a/RosettaCore/src/main/java/com/hubspot/rosetta/internal/RosettaAnnotationIntrospector.java +++ b/RosettaCore/src/main/java/com/hubspot/rosetta/internal/RosettaAnnotationIntrospector.java @@ -23,7 +23,9 @@ import com.hubspot.rosetta.annotations.RosettaSerialize; import com.hubspot.rosetta.annotations.RosettaValue; import com.hubspot.rosetta.annotations.StoredAsJson; +import java.util.Arrays; import java.util.Optional; +import java.util.function.Supplier; public class RosettaAnnotationIntrospector extends NopAnnotationIntrospector { @@ -121,17 +123,21 @@ public boolean hasCreatorAnnotation(Annotated a) { @Override public PropertyName findNameForSerialization(Annotated a) { - return findRosettaGetterName(a) - .or(() -> findRosettaPropertyName(a)) - .or(() -> Optional.ofNullable(super.findNameForSerialization(a))) + return getFirstNonEmpty( + () -> findRosettaGetterName(a), + () -> findRosettaPropertyName(a), + () -> Optional.ofNullable(super.findNameForSerialization(a)) + ) .orElse(null); } @Override public PropertyName findNameForDeserialization(Annotated a) { - return findRosettaSetterName(a) - .or(() -> findRosettaPropertyName(a)) - .or(() -> Optional.ofNullable(super.findNameForDeserialization(a))) + return getFirstNonEmpty( + () -> findRosettaSetterName(a), + () -> findRosettaPropertyName(a), + () -> Optional.ofNullable(super.findNameForDeserialization(a)) + ) .orElse(null); } @@ -211,4 +217,13 @@ private Annotated getAnnotatedTypeFromAnnotatedMethod(AnnotatedMethod a) { ); } } + + private Optional getFirstNonEmpty(Supplier>... suppliers) { + return Arrays + .stream(suppliers) + .map(Supplier::get) + .filter(Optional::isPresent) + .findFirst() + .orElse(Optional.empty()); + } } From 1949ac4aface567e6680fcc62bb13e9801ba05ad Mon Sep 17 00:00:00 2001 From: skudikala Date: Thu, 13 Jun 2024 12:26:59 -0400 Subject: [PATCH 3/4] fix test jdk targetting --- .../com/hubspot/rosetta/jdbi3/RosettaRowMapperFactoryTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/RosettaJdbi3/src/test/java/com/hubspot/rosetta/jdbi3/RosettaRowMapperFactoryTest.java b/RosettaJdbi3/src/test/java/com/hubspot/rosetta/jdbi3/RosettaRowMapperFactoryTest.java index 38f70be..f918e12 100644 --- a/RosettaJdbi3/src/test/java/com/hubspot/rosetta/jdbi3/RosettaRowMapperFactoryTest.java +++ b/RosettaJdbi3/src/test/java/com/hubspot/rosetta/jdbi3/RosettaRowMapperFactoryTest.java @@ -2,6 +2,7 @@ import static org.assertj.core.api.Assertions.assertThat; +import java.util.Collections; import java.util.List; import java.util.Map; import org.junit.Test; @@ -24,6 +25,6 @@ public void itMapsObject() { assertThat(actual).isEqualTo(expected); Map map = getDao().getAllMap(); - assertThat(map).containsOnly(Map.entry(1, expected)); + assertThat(map).containsAllEntriesOf(Collections.singletonMap(1, expected)); } } From 169d6951b07be7aff369ca43152c5f95f8c3f472 Mon Sep 17 00:00:00 2001 From: skudikala Date: Thu, 13 Jun 2024 12:30:15 -0400 Subject: [PATCH 4/4] replace lambda with for loop --- .../internal/RosettaAnnotationIntrospector.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/RosettaCore/src/main/java/com/hubspot/rosetta/internal/RosettaAnnotationIntrospector.java b/RosettaCore/src/main/java/com/hubspot/rosetta/internal/RosettaAnnotationIntrospector.java index ed01f8c..9fb12cb 100644 --- a/RosettaCore/src/main/java/com/hubspot/rosetta/internal/RosettaAnnotationIntrospector.java +++ b/RosettaCore/src/main/java/com/hubspot/rosetta/internal/RosettaAnnotationIntrospector.java @@ -23,7 +23,6 @@ import com.hubspot.rosetta.annotations.RosettaSerialize; import com.hubspot.rosetta.annotations.RosettaValue; import com.hubspot.rosetta.annotations.StoredAsJson; -import java.util.Arrays; import java.util.Optional; import java.util.function.Supplier; @@ -219,11 +218,12 @@ private Annotated getAnnotatedTypeFromAnnotatedMethod(AnnotatedMethod a) { } private Optional getFirstNonEmpty(Supplier>... suppliers) { - return Arrays - .stream(suppliers) - .map(Supplier::get) - .filter(Optional::isPresent) - .findFirst() - .orElse(Optional.empty()); + for (Supplier> supplier : suppliers) { + Optional maybeValue = supplier.get(); + if (maybeValue.isPresent()) { + return maybeValue; + } + } + return Optional.empty(); } }