From 4b2586d4578a2a1bbadb9a889b1764853d564e64 Mon Sep 17 00:00:00 2001 From: Patrick Doyle Date: Sun, 18 Aug 2024 10:30:09 -0400 Subject: [PATCH] Stop using lombok val. We require at least Java 17 now, which has var. --- .../java/works/bosk/BoskConstructorTest.java | 9 +++--- .../works/bosk/BoskLocalReferenceTest.java | 31 +++++++++---------- .../test/java/works/bosk/BoskUpdateTest.java | 5 ++- .../src/test/java/works/bosk/HooksTest.java | 9 +++--- .../src/test/java/works/bosk/ListingTest.java | 13 ++++---- .../java/works/bosk/OptionalRefsTest.java | 7 ++--- .../java/works/bosk/ReferenceErrorTest.java | 3 +- .../java/works/bosk/PluginRoundTripTest.java | 5 ++- lombok.config | 1 + 9 files changed, 38 insertions(+), 45 deletions(-) diff --git a/bosk-core/src/test/java/works/bosk/BoskConstructorTest.java b/bosk-core/src/test/java/works/bosk/BoskConstructorTest.java index 49736a56..c3d1dc7b 100644 --- a/bosk-core/src/test/java/works/bosk/BoskConstructorTest.java +++ b/bosk-core/src/test/java/works/bosk/BoskConstructorTest.java @@ -3,7 +3,6 @@ import java.io.IOException; import java.lang.reflect.Type; import java.util.concurrent.atomic.AtomicReference; -import lombok.val; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; import works.bosk.Bosk.DefaultRootFunction; @@ -50,7 +49,7 @@ void basicProperties_correctValues() { assertSame(driver.get(), bosk.getDriver(ForwardingDriver.class)); - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { assertSame(root, bosk.rootReference().value()); } } @@ -106,7 +105,7 @@ void driverInitialRoot_matches() { SimpleTypes.class, _ -> {throw new AssertionError("Shouldn't be called");}, initialRootDriver(()->root)); - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { assertSame(root, bosk.rootReference().value()); } } @@ -116,14 +115,14 @@ void defaultRoot_matches() { SimpleTypes root = newEntity(); { Bosk valueBosk = new Bosk<>(boskName(), SimpleTypes.class, root, Bosk::simpleDriver); - try (val _ = valueBosk.readContext()) { + try (var _ = valueBosk.readContext()) { assertSame(root, valueBosk.rootReference().value()); } } { Bosk functionBosk = new Bosk(boskName(), SimpleTypes.class, _ -> root, Bosk::simpleDriver); - try (val _ = functionBosk.readContext()) { + try (var _ = functionBosk.readContext()) { assertSame(root, functionBosk.rootReference().value()); } } diff --git a/bosk-core/src/test/java/works/bosk/BoskLocalReferenceTest.java b/bosk-core/src/test/java/works/bosk/BoskLocalReferenceTest.java index d090635c..16e84933 100644 --- a/bosk-core/src/test/java/works/bosk/BoskLocalReferenceTest.java +++ b/bosk-core/src/test/java/works/bosk/BoskLocalReferenceTest.java @@ -18,7 +18,6 @@ import lombok.experimental.Delegate; import lombok.experimental.FieldDefaults; import lombok.experimental.FieldNameConstants; -import lombok.val; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import works.bosk.annotations.ReferencePath; @@ -163,7 +162,7 @@ void testListingReference() throws Exception { // Check references to the Listing contents Listing listing; Map entries; - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { listing = listingRef.value(); entries = listing.valueMap(); } @@ -206,7 +205,7 @@ void testSideTableReference() throws InvalidTypeException { } catch (AssertionError e) { throw new AssertionError("Failed checkRefence on id " + id + ", sideTableRef " + sideTableRef); } - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { for (Entry entry: sideTable.idEntrySet()) { Identifier key = entry.getKey(); Reference entryRef = sideTableRef.then(key); @@ -290,7 +289,7 @@ private void checkReferenceProperties(Reference ref, Path expectedPath, T assertEquals(expectedPath.urlEncoded(), ref.pathString()); assertThrows(IllegalStateException.class, ref::value, "Can't read before ReadContext"); - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { T actualValue = ref.valueIfExists(); assertSame(expectedValue, actualValue); @@ -322,7 +321,7 @@ private void checkEntityReference(Reference ref, Path expectedPath, assertEquals(expectedPath.then(TestEntity.Fields.listing), ref.then(Listing.class, TestEntity.Fields.listing).path()); assertEquals(expectedPath.then(TestEntity.Fields.sideTable), ref.then(SideTable.class, TestEntity.Fields.sideTable).path()); - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { if (expectedValue == null) { assertNull(ref.then(Catalog.class, TestEntity.Fields.catalog).valueIfExists()); assertNull(ref.then(Listing.class, TestEntity.Fields.listing).valueIfExists()); @@ -339,7 +338,7 @@ private void checkUpdates(Reference ref, UnaryOperator updater) throws Root originalRoot; T firstValue; assertThrows(IllegalStateException.class, ref::value, "Can't read from Bosk before ReadContext"); - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { originalRoot = bosk.rootReference().value(); firstValue = ref.value(); } @@ -347,25 +346,25 @@ private void checkUpdates(Reference ref, UnaryOperator updater) throws T secondValue = updater.apply(firstValue); T thirdValue = updater.apply(secondValue); - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { assertSame(firstValue, ref.value(), "New ReadContext sees same value as before"); bosk.driver().submitReplacement(ref, secondValue); assertSame(firstValue, ref.value(), "Bosk updates not visible during the same ReadContext"); - try (val _ = bosk.supersedingReadContext()) { + try (var _ = bosk.supersedingReadContext()) { assertSame(secondValue, ref.value(), "Superseding context sees the latest state"); - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { assertSame(secondValue, ref.value(), "Nested context matches outer context"); } } - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { assertSame(firstValue, ref.value(), "Nested context matches original outer context"); } } try ( - val context = bosk.readContext(); + var context = bosk.readContext(); ) { assertSame(secondValue, ref.value(), "New value is visible in next ReadContext"); bosk.driver().submitReplacement(ref, thirdValue); @@ -382,13 +381,13 @@ private void checkUpdates(Reference ref, UnaryOperator updater) throws fail("Unexpected exception: ", e); } assertNotNull(caught, "New thread should not have any scope by default, so an exception should be thrown"); - try (val unrelatedContext = bosk.readContext()) { + try (var _ = bosk.readContext()) { assertSame(thirdValue, ref.value(), "Separate thread should see the latest state"); } - try (val inheritedContext = context.adopt()) { + try (var inheritedContext = context.adopt()) { assertSame(secondValue, ref.value(), "Inherited scope should see the same state"); - try (val reinheritedContext = inheritedContext.adopt()) { + try (var _ = inheritedContext.adopt()) { // Harmless to re-assert a scope you're already in assertSame(secondValue, ref.value(), "Inner scope should see the same state"); } @@ -408,13 +407,13 @@ private void checkUpdates(Reference ref, UnaryOperator updater) throws private void checkDeletion(Reference ref, T expectedValue) { Root originalRoot; - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { originalRoot = bosk.rootReference().value(); assertSame(expectedValue, ref.valueIfExists(), "Value is present before deletion"); bosk.driver().submitDeletion(ref); assertSame(expectedValue, ref.valueIfExists(), "Bosk deletions not visible during the same ReadContext"); } - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { assertThrows(NonexistentReferenceException.class, ref::value); if (expectedValue != null) { bosk.driver().submitReplacement(ref, expectedValue); diff --git a/bosk-core/src/test/java/works/bosk/BoskUpdateTest.java b/bosk-core/src/test/java/works/bosk/BoskUpdateTest.java index d42ab232..df553469 100644 --- a/bosk-core/src/test/java/works/bosk/BoskUpdateTest.java +++ b/bosk-core/src/test/java/works/bosk/BoskUpdateTest.java @@ -1,7 +1,6 @@ package works.bosk; import java.io.IOException; -import lombok.val; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import works.bosk.annotations.ReferencePath; @@ -47,7 +46,7 @@ void createBosk() throws InvalidTypeException { Bosk::simpleDriver ); refs = bosk.buildReferences(Refs.class); - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { originalRoot = bosk.rootReference().value(); originalParent = refs.entity(PARENT_ID).value(); originalChild1 = refs.child(PARENT_ID, CHILD_1_ID).value(); @@ -153,7 +152,7 @@ void conditionalReplaceIDMismatchesNonNull_nothingChanged() throws IOException, void assertValueEquals(T expected, Reference ref) throws IOException, InterruptedException { bosk.driver().flush(); - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { assertEquals(expected, ref.valueIfExists()); } } diff --git a/bosk-core/src/test/java/works/bosk/HooksTest.java b/bosk-core/src/test/java/works/bosk/HooksTest.java index c4099b85..d73c9efe 100755 --- a/bosk-core/src/test/java/works/bosk/HooksTest.java +++ b/bosk-core/src/test/java/works/bosk/HooksTest.java @@ -5,7 +5,6 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; -import lombok.val; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; @@ -49,7 +48,7 @@ public interface Refs { void setupBosk() throws InvalidTypeException { bosk = setUpBosk(Bosk::simpleDriver); refs = bosk.rootReference().buildReferences(Refs.class); - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { originalRoot = bosk.rootReference().value(); originalParent = refs.parent().value(); originalChild1 = refs.child(child1).value(); @@ -449,7 +448,7 @@ void nestedMultipleUpdates_breadthFirst() { recorder.events(), "All hooks for an update should be called before any hooks for subsequent updates"); - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { assertEquals(expectedParent, refs.parent().value()); } } @@ -461,7 +460,7 @@ void nested_correctReadContext() { recorder.restart(); String expectedString = "expected string"; - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { bosk.driver().submitReplacement(refs.childString(child2), expectedString); // If the hook were to run accidentally in this ReadContext, it would // see originalChild2.string() instead of expectedString. @@ -473,7 +472,7 @@ void nested_correctReadContext() { "Hooks run in the right ReadContext regardless of active read scope at submission or execution time"); - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { assertEquals(expectedString, refs.childString(child2).value(), "Correct value got copied"); } } diff --git a/bosk-core/src/test/java/works/bosk/ListingTest.java b/bosk-core/src/test/java/works/bosk/ListingTest.java index 9580d609..3100a055 100644 --- a/bosk-core/src/test/java/works/bosk/ListingTest.java +++ b/bosk-core/src/test/java/works/bosk/ListingTest.java @@ -17,7 +17,6 @@ import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; import lombok.experimental.FieldNameConstants; -import lombok.val; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtensionContext; @@ -107,7 +106,7 @@ public static class TestEntity implements Entity { @ParameterizedTest @ArgumentsSource(ListingArgumentProvider.class) void testGet(Listing listing, List children, Bosk bosk) throws InvalidTypeException { - try (val context = bosk.readContext()) { + try (var _ = bosk.readContext()) { for (TestEntity child: children) { TestEntity actual = listing.getValue(child.id()); assertSame(child, actual, "All expected entities should be present in the Listing"); @@ -129,7 +128,7 @@ void testGet(Listing listing, List children, Bosk listing, List children, Bosk bosk) { Iterator expected = children.iterator(); Iterator actual; - try (val context = bosk.readContext()) { + try (var _ = bosk.readContext()) { // ReadContext is needed only when creating the iterator actual = listing.valueIterator(); } @@ -169,7 +168,7 @@ void testIdStream(Listing listing, List children, Bosk listing, List children, Bosk bosk) { Iterator expected = children.iterator(); Stream stream; - try (val context = bosk.readContext()) { + try (var _ = bosk.readContext()) { // ReadContext is needed only when creating the stream stream = listing.valueStream(); } @@ -180,7 +179,7 @@ void testStream(Listing listing, List children, Bosk listing, List children, Bosk bosk) { Collection actual; - try (val context = bosk.readContext()) { + try (var _ = bosk.readContext()) { // ReadContext is needed only when creating the collection actual = listing.valueList(); } @@ -208,7 +207,7 @@ void testSpliterator(Listing listing, List children, Bos } Spliterator newSplit; - try (val context = bosk.readContext()) { + try (var _ = bosk.readContext()) { newSplit = listing.values().spliterator(); } @@ -257,7 +256,7 @@ void testEmpty() throws InvalidTypeException { assertEquals(0, actual.size()); Iterator iterator; - try (val context = bosk.readContext()) { + try (var _ = bosk.readContext()) { // iterator() needs a ReadContext at creation time iterator = actual.valueIterator(); } diff --git a/bosk-core/src/test/java/works/bosk/OptionalRefsTest.java b/bosk-core/src/test/java/works/bosk/OptionalRefsTest.java index a61fdc4d..779d4b23 100644 --- a/bosk-core/src/test/java/works/bosk/OptionalRefsTest.java +++ b/bosk-core/src/test/java/works/bosk/OptionalRefsTest.java @@ -6,7 +6,6 @@ import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; -import lombok.val; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -122,15 +121,15 @@ private void doTest(E initialRoot, ValueFactory valu V value = valueFactory.createFrom(bosk); @SuppressWarnings("unchecked") Reference optionalRef = bosk.rootReference().then((Class)value.getClass(), "field"); - try (val context = bosk.readContext()) { + try (var _ = bosk.readContext()) { assertNull(optionalRef.valueIfExists()); } bosk.driver().submitReplacement(optionalRef, value); - try (val context = bosk.readContext()) { + try (var _ = bosk.readContext()) { assertEquals(value, optionalRef.valueIfExists()); } bosk.driver().submitDeletion(optionalRef); - try (val context = bosk.readContext()) { + try (var _ = bosk.readContext()) { assertNull(optionalRef.valueIfExists()); } diff --git a/bosk-core/src/test/java/works/bosk/ReferenceErrorTest.java b/bosk-core/src/test/java/works/bosk/ReferenceErrorTest.java index 3fc83886..cf3f2c45 100644 --- a/bosk-core/src/test/java/works/bosk/ReferenceErrorTest.java +++ b/bosk-core/src/test/java/works/bosk/ReferenceErrorTest.java @@ -4,7 +4,6 @@ import lombok.RequiredArgsConstructor; import lombok.Value; import lombok.experimental.FieldNameConstants; -import lombok.val; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import works.bosk.exceptions.InvalidTypeException; @@ -27,7 +26,7 @@ void setupBosk() { @Test void referenceGet_brokenGetter_propagatesException() throws InvalidTypeException { Reference idRef = bosk.rootReference().then(Identifier.class, Path.just("id")); - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { assertThrows(UnsupportedOperationException.class, idRef::value, "Reference.value() should propagate the exception as-is"); } diff --git a/lib-testing/src/main/java/works/bosk/PluginRoundTripTest.java b/lib-testing/src/main/java/works/bosk/PluginRoundTripTest.java index f91f0a91..49371e44 100644 --- a/lib-testing/src/main/java/works/bosk/PluginRoundTripTest.java +++ b/lib-testing/src/main/java/works/bosk/PluginRoundTripTest.java @@ -1,6 +1,5 @@ package works.bosk; -import lombok.val; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import works.bosk.exceptions.InvalidTypeException; @@ -13,12 +12,12 @@ public class PluginRoundTripTest extends AbstractRoundTripTest { void testRoundTrip(DriverFactory driverFactory) throws InvalidTypeException { Bosk bosk = setUpBosk(driverFactory); TestRoot originalRoot; - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { originalRoot = bosk.rootReference().value(); } bosk.driver().submitReplacement(bosk.rootReference(), originalRoot); - try (val _ = bosk.readContext()) { + try (var _ = bosk.readContext()) { // Use our entity's equals() to check that all is well // assertEquals(originalRoot, bosk.rootReference().value()); diff --git a/lombok.config b/lombok.config index fbaee5c4..81752854 100644 --- a/lombok.config +++ b/lombok.config @@ -2,3 +2,4 @@ lombok.accessors.fluent=true lombok.anyConstructor.addConstructorProperties=true lombok.addLombokGeneratedAnnotation=true lombok.sneakyThrows.flagUsage=error +lombok.val.flagUsage=error