diff --git a/moneta/pom.xml b/moneta/pom.xml
index 0b494f3..4a145b8 100644
--- a/moneta/pom.xml
+++ b/moneta/pom.xml
@@ -61,11 +61,6 @@
3.0.2
provided
-
- org.projectlombok
- lombok
- provided
-
diff --git a/moneta/src/test/java/com/fasterxml/jackson/datatype/moneta/MonetaryAmountSerializerTest.java b/moneta/src/test/java/com/fasterxml/jackson/datatype/moneta/MonetaryAmountSerializerTest.java
index 9fc1bbe..023097d 100644
--- a/moneta/src/test/java/com/fasterxml/jackson/datatype/moneta/MonetaryAmountSerializerTest.java
+++ b/moneta/src/test/java/com/fasterxml/jackson/datatype/moneta/MonetaryAmountSerializerTest.java
@@ -1,63 +1,46 @@
+// Generated by delombok at Thu Apr 10 14:39:25 PDT 2025
package com.fasterxml.jackson.datatype.moneta;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Locale;
-
import javax.money.MonetaryAmount;
-
import com.fasterxml.jackson.annotation.JsonUnwrapped;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.json.JsonWriteFeature;
-import com.fasterxml.jackson.databind.Module;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.json.JsonMapper;
import com.fasterxml.jackson.databind.jsontype.BasicPolymorphicTypeValidator;
import com.fasterxml.jackson.datatype.javax.money.AmountWriter;
-import com.fasterxml.jackson.datatype.moneta.MonetaMoneyModule;
-
-import lombok.Value;
import org.javamoney.moneta.FastMoney;
import org.javamoney.moneta.Money;
import org.javamoney.moneta.RoundedMoney;
-import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
-
import static javax.money.Monetary.getDefaultRounding;
import static org.assertj.core.api.Assertions.assertThat;
public final class MonetaryAmountSerializerTest {
-
static Iterable amounts() {
- return Arrays.asList(
- FastMoney.of(29.95, "EUR"),
- Money.of(29.95, "EUR"),
- RoundedMoney.of(29.95, "EUR", getDefaultRounding()));
+ return Arrays.asList(FastMoney.of(29.95, "EUR"), Money.of(29.95, "EUR"), RoundedMoney.of(29.95, "EUR", getDefaultRounding()));
}
static Iterable hundreds() {
- return Arrays.asList(
- FastMoney.of(100, "EUR"),
- Money.of(100, "EUR"),
- RoundedMoney.of(100, "EUR", getDefaultRounding()));
+ return Arrays.asList(FastMoney.of(100, "EUR"), Money.of(100, "EUR"), RoundedMoney.of(100, "EUR", getDefaultRounding()));
}
static Iterable fractions() {
- return Arrays.asList(
- FastMoney.of(0.0001, "EUR"),
- Money.of(0.0001, "EUR"),
- RoundedMoney.of(0.0001, "EUR", getDefaultRounding()));
+ return Arrays.asList(FastMoney.of(1.0E-4, "EUR"), Money.of(1.0E-4, "EUR"), RoundedMoney.of(1.0E-4, "EUR", getDefaultRounding()));
}
private ObjectMapper unit() {
return unit(module());
}
- private ObjectMapper unit(final Module module) {
+ private ObjectMapper unit(com.fasterxml.jackson.databind.Module module) {
return build(module).build();
}
@@ -65,9 +48,8 @@ private JsonMapper.Builder build() {
return build(module());
}
- private JsonMapper.Builder build(final Module module) {
- return JsonMapper.builder()
- .addModule(module);
+ private JsonMapper.Builder build(final com.fasterxml.jackson.databind.Module module) {
+ return JsonMapper.builder().addModule(module);
}
private MonetaMoneyModule module() {
@@ -76,37 +58,29 @@ private MonetaMoneyModule module() {
@ParameterizedTest
@MethodSource("amounts")
- public void shouldSerialize(final MonetaryAmount amount) throws JsonProcessingException {
+ public void shouldSerialize(final MonetaryAmount amount) throws Exception {
final ObjectMapper unit = unit();
-
final String expected = "{\"amount\":29.95,\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(amount);
-
assertThat(actual).isEqualTo(expected);
}
@ParameterizedTest
@MethodSource("amounts")
- public void shouldSerializeWithoutFormattedValueIfFactoryProducesNull(
- final MonetaryAmount amount) throws JsonProcessingException {
+ public void shouldSerializeWithoutFormattedValueIfFactoryProducesNull(final MonetaryAmount amount) throws Exception {
final ObjectMapper unit = unit(module().withoutFormatting());
-
final String expected = "{\"amount\":29.95,\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(amount);
-
assertThat(actual).isEqualTo(expected);
}
@ParameterizedTest
@MethodSource("amounts")
- public void shouldSerializeWithFormattedGermanValue(final MonetaryAmount amount) throws JsonProcessingException {
+ public void shouldSerializeWithFormattedGermanValue(final MonetaryAmount amount) throws Exception {
final ObjectMapper unit = unit(new MonetaMoneyModule().withDefaultFormatting());
-
final String expected = "{\"amount\":29.95,\"currency\":\"EUR\",\"formatted\":\"29,95 EUR\"}";
-
final ObjectWriter writer = unit.writer().with(Locale.GERMANY);
final String actual = writer.writeValueAsString(amount);
-
assertThat(actual).isEqualTo(expected);
}
@@ -114,28 +88,19 @@ public void shouldSerializeWithFormattedGermanValue(final MonetaryAmount amount)
@MethodSource("amounts")
public void shouldSerializeWithFormattedAmericanValue(final MonetaryAmount amount) throws JsonProcessingException {
final ObjectMapper unit = unit(module().withDefaultFormatting());
-
final String expected = "{\"amount\":29.95,\"currency\":\"USD\",\"formatted\":\"USD29.95\"}";
-
final ObjectWriter writer = unit.writer().with(Locale.US);
final String actual = writer.writeValueAsString(amount.getFactory().setCurrency("USD").create());
-
assertThat(actual).isEqualTo(expected);
}
@ParameterizedTest
@MethodSource("amounts")
public void shouldSerializeWithCustomName(final MonetaryAmount amount) throws Exception {
- final ObjectMapper unit = unit(module().withDefaultFormatting()
- .withAmountFieldName("value")
- .withCurrencyFieldName("unit")
- .withFormattedFieldName("pretty"));
-
+ final ObjectMapper unit = unit(module().withDefaultFormatting().withAmountFieldName("value").withCurrencyFieldName("unit").withFormattedFieldName("pretty"));
final String expected = "{\"value\":29.95,\"unit\":\"EUR\",\"pretty\":\"29,95 EUR\"}";
-
final ObjectWriter writer = unit.writer().with(Locale.GERMANY);
final String actual = writer.writeValueAsString(amount);
-
assertThat(actual).isEqualTo(expected);
}
@@ -143,56 +108,44 @@ public void shouldSerializeWithCustomName(final MonetaryAmount amount) throws Ex
@MethodSource("amounts")
public void shouldSerializeAmountAsDecimal(final MonetaryAmount amount) throws JsonProcessingException {
final ObjectMapper unit = unit(module().withDecimalNumbers());
-
final String expected = "{\"amount\":29.95,\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(amount);
-
assertThat(actual).isEqualTo(expected);
}
@ParameterizedTest
@MethodSource("hundreds")
- public void shouldSerializeAmountAsDecimalWithDefaultFractionDigits(
- final MonetaryAmount hundred) throws JsonProcessingException {
+ public void shouldSerializeAmountAsDecimalWithDefaultFractionDigits(final MonetaryAmount hundred) throws JsonProcessingException {
final ObjectMapper unit = unit(module().withDecimalNumbers());
-
final String expected = "{\"amount\":100.00,\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(hundred);
-
assertThat(actual).isEqualTo(expected);
}
@ParameterizedTest
@MethodSource("fractions")
- public void shouldSerializeAmountAsDecimalWithHigherNumberOfFractionDigits(
- final MonetaryAmount fraction) throws JsonProcessingException {
+ public void shouldSerializeAmountAsDecimalWithHigherNumberOfFractionDigits(final MonetaryAmount fraction) throws JsonProcessingException {
final ObjectMapper unit = unit(module().withDecimalNumbers());
-
final String expected = "{\"amount\":0.0001,\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(fraction);
-
assertThat(actual).isEqualTo(expected);
}
@ParameterizedTest
@MethodSource("hundreds")
- public void shouldSerializeAmountAsDecimalWithLowerNumberOfFractionDigits(
- final MonetaryAmount hundred) throws JsonProcessingException {
+ public void shouldSerializeAmountAsDecimalWithLowerNumberOfFractionDigits(final MonetaryAmount hundred) throws JsonProcessingException {
final ObjectMapper unit = unit(module().withNumbers(new AmountWriter() {
@Override
public Class getType() {
return BigDecimal.class;
}
-
@Override
public BigDecimal write(final MonetaryAmount amount) {
return amount.getNumber().numberValueExact(BigDecimal.class).stripTrailingZeros();
}
}));
-
final String expected = "{\"amount\":1E+2,\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(hundred);
-
assertThat(actual).isEqualTo(expected);
}
@@ -200,56 +153,44 @@ public BigDecimal write(final MonetaryAmount amount) {
@MethodSource("amounts")
public void shouldSerializeAmountAsQuotedDecimal(final MonetaryAmount amount) throws JsonProcessingException {
final ObjectMapper unit = unit(module().withQuotedDecimalNumbers());
-
final String expected = "{\"amount\":\"29.95\",\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(amount);
-
assertThat(actual).isEqualTo(expected);
}
@ParameterizedTest
@MethodSource("hundreds")
- public void shouldSerializeAmountAsQuotedDecimalWithDefaultFractionDigits(
- final MonetaryAmount hundred) throws JsonProcessingException {
+ public void shouldSerializeAmountAsQuotedDecimalWithDefaultFractionDigits(final MonetaryAmount hundred) throws JsonProcessingException {
final ObjectMapper unit = unit(module().withQuotedDecimalNumbers());
-
final String expected = "{\"amount\":\"100.00\",\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(hundred);
-
assertThat(actual).isEqualTo(expected);
}
@ParameterizedTest
@MethodSource("fractions")
- public void shouldSerializeAmountAsQuotedDecimalWithHigherNumberOfFractionDigits(
- final MonetaryAmount fraction) throws JsonProcessingException {
+ public void shouldSerializeAmountAsQuotedDecimalWithHigherNumberOfFractionDigits(final MonetaryAmount fraction) throws JsonProcessingException {
final ObjectMapper unit = unit(module().withQuotedDecimalNumbers());
-
final String expected = "{\"amount\":\"0.0001\",\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(fraction);
-
assertThat(actual).isEqualTo(expected);
}
@ParameterizedTest
@MethodSource("hundreds")
- public void shouldSerializeAmountAsQuotedDecimalWithLowerNumberOfFractionDigits(
- final MonetaryAmount hundred) throws JsonProcessingException {
+ public void shouldSerializeAmountAsQuotedDecimalWithLowerNumberOfFractionDigits(final MonetaryAmount hundred) throws JsonProcessingException {
final ObjectMapper unit = unit(module().withNumbers(new AmountWriter() {
@Override
public Class getType() {
return String.class;
}
-
@Override
public String write(final MonetaryAmount amount) {
return amount.getNumber().numberValueExact(BigDecimal.class).stripTrailingZeros().toPlainString();
}
}));
-
final String expected = "{\"amount\":\"100\",\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(hundred);
-
assertThat(actual).isEqualTo(expected);
}
@@ -258,37 +199,26 @@ public String write(final MonetaryAmount amount) {
public void shouldSerializeAmountAsQuotedDecimalPlainString(final MonetaryAmount hundred) throws JsonProcessingException {
final ObjectMapper unit = unit(module().withQuotedDecimalNumbers());
unit.enable(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN);
-
final String expected = "{\"amount\":\"100.00\",\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(hundred);
-
assertThat(actual).isEqualTo(expected);
}
@ParameterizedTest
@MethodSource("amounts")
public void shouldWriteNumbersAsStrings(final MonetaryAmount amount) throws JsonProcessingException {
- final ObjectMapper unit = build()
- .enable(JsonWriteFeature.WRITE_NUMBERS_AS_STRINGS)
- .build();
-
+ final ObjectMapper unit = build().enable(JsonWriteFeature.WRITE_NUMBERS_AS_STRINGS).build();
final String expected = "{\"amount\":\"29.95\",\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(amount);
-
assertThat(actual).isEqualTo(expected);
}
@ParameterizedTest
@MethodSource("hundreds")
public void shouldWriteNumbersAsPlainStrings(final MonetaryAmount hundred) throws JsonProcessingException {
- final ObjectMapper unit = build()
- .enable(JsonWriteFeature.WRITE_NUMBERS_AS_STRINGS)
- .enable(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN)
- .build();
-
+ final ObjectMapper unit = build().enable(JsonWriteFeature.WRITE_NUMBERS_AS_STRINGS).enable(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN).build();
final String expected = "{\"amount\":\"100.00\",\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(hundred);
-
assertThat(actual).isEqualTo(expected);
}
@@ -296,10 +226,8 @@ public void shouldWriteNumbersAsPlainStrings(final MonetaryAmount hundred) throw
@MethodSource("amounts")
public void shouldSerializeWithType(final MonetaryAmount amount) throws JsonProcessingException {
final ObjectMapper unit = unit(module()).activateDefaultTyping(BasicPolymorphicTypeValidator.builder().build());
-
final String expected = "{\"amount\":{\"amount\":29.95,\"currency\":\"EUR\"}}";
final String actual = unit.writeValueAsString(new Price(amount));
-
assertThat(actual).isEqualTo(expected);
}
@@ -307,10 +235,8 @@ public void shouldSerializeWithType(final MonetaryAmount amount) throws JsonProc
@MethodSource("amounts")
public void shouldSerializeWithTypeUnwrapped(final MonetaryAmount amount) throws JsonProcessingException {
final ObjectMapper unit = unit(module()).activateDefaultTyping(BasicPolymorphicTypeValidator.builder().build());
-
final String expected = "{\"amount\":29.95,\"currency\":\"EUR\"}";
final String actual = unit.writeValueAsString(new PriceUnwrapped(amount));
-
assertThat(actual).isEqualTo(expected);
}
@@ -318,10 +244,8 @@ public void shouldSerializeWithTypeUnwrapped(final MonetaryAmount amount) throws
@MethodSource("amounts")
public void shouldSerializeWithTypeUnwrappedAndNamesTransformed(final MonetaryAmount amount) throws JsonProcessingException {
final ObjectMapper unit = unit(module()).activateDefaultTyping(BasicPolymorphicTypeValidator.builder().build());
-
final String expected = "{\"Price-amount-Field\":29.95,\"Price-currency-Field\":\"EUR\"}";
final String actual = unit.writeValueAsString(new PriceUnwrappedTransformedNames(amount));
-
assertThat(actual).isEqualTo(expected);
}
@@ -337,30 +261,140 @@ public void shouldSerializeWithTypeUnwrappedAndNamesTransformed(final MonetaryAm
@ParameterizedTest
@MethodSource("amounts")
public void shouldSerializeWithWrapRootValue(final MonetaryAmount amount) throws JsonProcessingException {
- final ObjectMapper unit = unit(module())
- .configure(SerializationFeature.WRAP_ROOT_VALUE, true);
-
+ final ObjectMapper unit = unit(module()).configure(SerializationFeature.WRAP_ROOT_VALUE, true);
final String expected = "{\"Price\":{\"amount\":{\"amount\":29.95,\"currency\":\"EUR\"}}}";
final String actual = unit.writeValueAsString(new Price(amount));
-
assertThat(actual).isEqualTo(expected);
}
- @Value
- static class Price {
- MonetaryAmount amount;
+
+ static final class Price {
+ private final MonetaryAmount amount;
+
+ //@lombok.Generated
+ public Price(final MonetaryAmount amount) {
+ this.amount = amount;
+ }
+
+ //@lombok.Generated
+ public MonetaryAmount getAmount() {
+ return this.amount;
+ }
+
+ //@lombok.Generated
+ @java.lang.Override
+ public boolean equals(final java.lang.Object o) {
+ if (o == this) return true;
+ if (!(o instanceof MonetaryAmountSerializerTest.Price)) return false;
+ final MonetaryAmountSerializerTest.Price other = (MonetaryAmountSerializerTest.Price) o;
+ final java.lang.Object this$amount = this.getAmount();
+ final java.lang.Object other$amount = other.getAmount();
+ if (this$amount == null ? other$amount != null : !this$amount.equals(other$amount)) return false;
+ return true;
+ }
+
+ //@lombok.Generated
+ @java.lang.Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ final java.lang.Object $amount = this.getAmount();
+ result = result * PRIME + ($amount == null ? 43 : $amount.hashCode());
+ return result;
+ }
+
+ //@lombok.Generated
+ @java.lang.Override
+ public java.lang.String toString() {
+ return "MonetaryAmountSerializerTest.Price(amount=" + this.getAmount() + ")";
+ }
}
- @Value
- private static class PriceUnwrapped {
+
+ private static final class PriceUnwrapped {
@JsonUnwrapped
- MonetaryAmount amount;
+ private final MonetaryAmount amount;
+
+ //@lombok.Generated
+ public PriceUnwrapped(final MonetaryAmount amount) {
+ this.amount = amount;
+ }
+
+ //@lombok.Generated
+ public MonetaryAmount getAmount() {
+ return this.amount;
+ }
+
+ //@lombok.Generated
+ @java.lang.Override
+ public boolean equals(final java.lang.Object o) {
+ if (o == this) return true;
+ if (!(o instanceof MonetaryAmountSerializerTest.PriceUnwrapped)) return false;
+ final MonetaryAmountSerializerTest.PriceUnwrapped other = (MonetaryAmountSerializerTest.PriceUnwrapped) o;
+ final java.lang.Object this$amount = this.getAmount();
+ final java.lang.Object other$amount = other.getAmount();
+ if (this$amount == null ? other$amount != null : !this$amount.equals(other$amount)) return false;
+ return true;
+ }
+
+ //@lombok.Generated
+ @java.lang.Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ final java.lang.Object $amount = this.getAmount();
+ result = result * PRIME + ($amount == null ? 43 : $amount.hashCode());
+ return result;
+ }
+
+ //@lombok.Generated
+ @java.lang.Override
+ public java.lang.String toString() {
+ return "MonetaryAmountSerializerTest.PriceUnwrapped(amount=" + this.getAmount() + ")";
+ }
}
- @Value
- private static class PriceUnwrappedTransformedNames {
+
+ private static final class PriceUnwrappedTransformedNames {
@JsonUnwrapped(prefix = "Price-", suffix = "-Field")
- MonetaryAmount amount;
+ private final MonetaryAmount amount;
+
+ //@lombok.Generated
+ public PriceUnwrappedTransformedNames(final MonetaryAmount amount) {
+ this.amount = amount;
+ }
+
+ //@lombok.Generated
+ public MonetaryAmount getAmount() {
+ return this.amount;
+ }
+
+ //@lombok.Generated
+ @java.lang.Override
+ public boolean equals(final java.lang.Object o) {
+ if (o == this) return true;
+ if (!(o instanceof MonetaryAmountSerializerTest.PriceUnwrappedTransformedNames)) return false;
+ final MonetaryAmountSerializerTest.PriceUnwrappedTransformedNames other = (MonetaryAmountSerializerTest.PriceUnwrappedTransformedNames) o;
+ final java.lang.Object this$amount = this.getAmount();
+ final java.lang.Object other$amount = other.getAmount();
+ if (this$amount == null ? other$amount != null : !this$amount.equals(other$amount)) return false;
+ return true;
+ }
+
+ //@lombok.Generated
+ @java.lang.Override
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ final java.lang.Object $amount = this.getAmount();
+ result = result * PRIME + ($amount == null ? 43 : $amount.hashCode());
+ return result;
+ }
+
+ //@lombok.Generated
+ @java.lang.Override
+ public java.lang.String toString() {
+ return "MonetaryAmountSerializerTest.PriceUnwrappedTransformedNames(amount=" + this.getAmount() + ")";
+ }
}
-
}
diff --git a/moneta/src/test/java/com/fasterxml/jackson/datatype/moneta/SchemaTestClass.java b/moneta/src/test/java/com/fasterxml/jackson/datatype/moneta/SchemaTestClass.java
index 0e3a64b..d12c936 100644
--- a/moneta/src/test/java/com/fasterxml/jackson/datatype/moneta/SchemaTestClass.java
+++ b/moneta/src/test/java/com/fasterxml/jackson/datatype/moneta/SchemaTestClass.java
@@ -1,13 +1,25 @@
+// Generated by delombok at Thu Apr 10 14:03:28 PDT 2025
package com.fasterxml.jackson.datatype.moneta;
import javax.money.MonetaryAmount;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-@AllArgsConstructor
-@Getter
public class SchemaTestClass {
private final MonetaryAmount moneyOne;
private final MonetaryAmount moneyTwo;
+
+ //@lombok.Generated
+ public SchemaTestClass(final MonetaryAmount moneyOne, final MonetaryAmount moneyTwo) {
+ this.moneyOne = moneyOne;
+ this.moneyTwo = moneyTwo;
+ }
+
+ //@lombok.Generated
+ public MonetaryAmount getMoneyOne() {
+ return this.moneyOne;
+ }
+
+ //@lombok.Generated
+ public MonetaryAmount getMoneyTwo() {
+ return this.moneyTwo;
+ }
}
diff --git a/pom.xml b/pom.xml
index 3728869..71f81c8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,21 +41,9 @@
- 1.18.36
-
2025-04-08T02:04:31Z
-
-
-
-
- org.projectlombok
- lombok
- ${version.lombok}
-
-
-