Extension module to properly support datatypes of javax.money

Overview

Jackson Datatype Money

Stability: Sustained Build Status Coverage Status Code Quality Javadoc Release Maven Central License

Jackson Datatype Money is a Jackson module to support JSON serialization and deserialization of JavaMoney data types. It fills a niche, in that it integrates JavaMoney and Jackson so that they work seamlessly together, without requiring additional developer effort. In doing so, it aims to perform a small but repetitive task — once and for all.

This library reflects our API preferences for representing monetary amounts in JSON:

{
  "amount": 29.95,
  "currency": "EUR"
}

Features

  • enables you to express monetary amounts in JSON
  • can be used in a REST APIs
  • customized field names
  • localization of formatted monetary amounts
  • allows you to implement RESTful API endpoints that format monetary amounts based on the Accept-Language header
  • is unique and flexible

Dependencies

  • Java 8 or higher
  • Any build tool using Maven Central, or direct download
  • Jackson
  • JavaMoney

Installation

Add the following dependency to your project:

<dependency>
    <groupId>org.zalando</groupId>
    <artifactId>jackson-datatype-money</artifactId>
    <version>${jackson-datatype-money.version}</version>
</dependency>

For ultimate flexibility, this module is compatible with the official version as well as the backport of JavaMoney. The actual version will be selected by a profile based on the current JDK version.

Configuration

Register the module with your ObjectMapper:

ObjectMapper mapper = new ObjectMapper()
    .registerModule(new MoneyModule());

Alternatively, you can use the SPI capabilities:

ObjectMapper mapper = new ObjectMapper()
    .findAndRegisterModules();

Serialization

For serialization this module currently supports javax.money.MonetaryAmount and will, by default, serialize it as:

{
  "amount": 99.95,
  "currency": "EUR"
}

To serialize number as a JSON string, you have to configure the quoted decimal number value serializer:

ObjectMapper mapper = new ObjectMapper()
    .registerModule(new MoneyModule().withQuotedDecimalNumbers());
{
  "amount": "99.95",
  "currency": "EUR"
}

Formatting

A special feature for serializing monetary amounts is formatting, which is disabled by default. To enable it, you have to either enable default formatting:

ObjectMapper mapper = new ObjectMapper()
    .registerModule(new MoneyModule().withDefaultFormatting());

... or pass in a MonetaryAmountFormatFactory implementation to the MoneyModule:

ObjectMapper mapper = new ObjectMapper()
    .registerModule(new MoneyModule()
        .withFormatting(new CustomMonetaryAmountFormatFactory()));

The default formatting delegates directly to MonetaryFormats.getAmountFormat(Locale, String...).

Formatting only affects the serialization and can be customized based on the current locale, as defined by the SerializationConfig. This allows to implement RESTful API endpoints that format monetary amounts based on the Accept-Language header.

The first example serializes a monetary amount using the de_DE locale:

ObjectWriter writer = mapper.writer().with(Locale.GERMANY);
writer.writeValueAsString(Money.of(29.95, "EUR"));
{
  "amount": 29.95,
  "currency": "EUR",
  "formatted": "29,95 EUR"
}

The following example uses en_US:

ObjectWriter writer = mapper.writer().with(Locale.US);
writer.writeValueAsString(Money.of(29.95, "USD"));
{
  "amount": 29.95,
  "currency": "USD",
  "formatted": "USD29.95"
}

More sophisticated formatting rules can be supported by implementing MonetaryAmountFormatFactory directly.

Deserialization

This module will use org.javamoney.moneta.Money as an implementation for javax.money.MonetaryAmount by default when deserializing money values. If you need a different implementation, you can pass a different MonetaryAmountFactory to the MoneyModule:

ObjectMapper mapper = new ObjectMapper()
    .registerModule(new MoneyModule()
        .withMonetaryAmount(new CustomMonetaryAmountFactory()));

You can also pass in a method reference:

ObjectMapper mapper = new ObjectMapper()
    .registerModule(new MoneyModule()
        .withMonetaryAmount(FastMoney::of));

Jackson Datatype Money comes with support for all MonetaryAmount implementations from Moneta, the reference implementation of JavaMoney:

MonetaryAmount Implementation Factory
org.javamoney.moneta.FastMoney new MoneyModule().withFastMoney()
org.javamoney.moneta.Money new MoneyModule().withMoney()
org.javamoney.moneta.RoundedMoney new MoneyModule().withRoundedMoney()

Module supports deserialization of amount number from JSON number as well as from JSON string without any special configuration required.

Custom Field Names

As you have seen in the previous examples the MoneyModule uses the field names amount, currency and formatted by default. Those names can be overridden if desired:

ObjectMapper mapper = new ObjectMapper()
    .registerModule(new MoneyModule()
        .withAmountFieldName("value")
        .withCurrencyFieldName("unit")
        .withFormattedFieldName("pretty"));

Usage

After registering and configuring the module you're now free to directly use MonetaryAmount in your data types:

import javax.money.MonetaryAmount;

public class Product {
    private String sku;
    private MonetaryAmount price;
    ...
}

Getting help

If you have questions, concerns, bug reports, etc, please file an issue in this repository's Issue Tracker.

Getting involved

To contribute, simply make a pull request and add a brief description (1-2 sentences) of your addition or change. Please note that we aim to keep this project straightforward and focused. We are not looking to add lots of features; we just want it to keep doing what it does, as well and as powerfully as possible. For more details check the contribution guidelines.

Comments
  • MonetaryAmount serialization

    MonetaryAmount serialization

    Hello,

    I have an issue during the serialization of a MonetaryAmount.

    When I try to serialize an amount of 100.00 EUR for example, the corresponding JSON is the following : {"amount":"1E+2","currency":"EUR"}

    I would like to get {"amount":"100.00","currency":"EUR"} instead.

    In fact, what I expect is an amount formatted with the currency digit places number. If the currency has 3 digit places (like the TND) I want to have {"amount":"100.000","currency":"TND"}.

    Maybe I missed something in the library that's doing this.

    Thank you in advance.

    Feature Discussion 
    opened by Namhto 30
  • Ensure that currency is always serialized with the proper serializer

    Ensure that currency is always serialized with the proper serializer

    It seems like Jackson looses the serialization configuration when a new ObjectWriter gets configured based on an ObjectMapper. This PR ensures that that doesn't happen by using defaultSerializeField of the supplied SerializerProvider (which in all cases contains the proper serialization configuration).

    Relates to: https://github.com/quarkusio/quarkus/issues/16081

    opened by geoand 13
  • Ability to change default digits for a particular currency

    Ability to change default digits for a particular currency

    Ability to change default digits for a particular currency

    Detailed Description

    For eg default digits for TWD currency is 2 but we do need to return zero digits

    Context

    Accordiing to busineess needs users can change the decimal points for specific currency

    Feature Discussion 
    opened by kiranreddykasa 11
  • Refactor maven profiles

    Refactor maven profiles

    It looks like the profile is activated even in a dependency, in that case activation should be based on the currently used jdk version.

    This is an alternative to PR #22 and should fix issue #20

    Feature 
    opened by jhorstmann 11
  • MoneyModule seems configured but Jackson not deserializing

    MoneyModule seems configured but Jackson not deserializing

    If objectMapper.getRegisteredModuleIds() contains org.zalando.jackson.datatype.money.MoneyModule, why would this error still occur?

    Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `javax.money.MonetaryAmount` (no Creators, like default constructor, exist): abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information
    

    It seems the Money Jackson HttpMessageConverter not configured? Is there another setup step I missed, e.g. also need to configure the converter?

    Running with Spring Boot v2.3.1.RELEASE, Spring v5.2.7.RELEASE.

    Configured by this in a @Configuration class:

        @Bean
        public Module moneyModule()
        {
            return new MoneyModule();
        }
    
    Feature More information needed 
    opened by jeffjensen 9
  • Implement unwrapping MonetaryAmountSerializer

    Implement unwrapping MonetaryAmountSerializer

    In this commit, MonetaryAmountSerializer.unwrappingSerializer returns a version of itself that doesn't write JSON start and end objects and optionally transforms field names with the given NameTransformer.

    This fixes #314 and implements #340.

    • [ ] My change requires a change to the documentation. I don't believe it does, this is a standard feature of Jackson (the annotation is documented here), that works the same for all serializers, so it doesn't need to be mentioned for each serializer. A note could be added to the the readme saying, "works with @JsonUnwrapped".
    • [ ] I have updated the documentation accordingly.
    • [X] I have added tests to cover my changes.
    opened by darioseidl 8
  • Unifies SECURITY.md to point to the Zalando security form

    Unifies SECURITY.md to point to the Zalando security form

    Unifies SECURITY.md to point to the Zalando security form.

    Description

    Motivation and Context

    The majority of projects links to the security form. We still have some repositories that point to e-mail boxes.

    Types of changes

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist:

    • [ ] My change requires a change to the documentation.
    • [x] I have updated the documentation accordingly.
    • [ ] I have added tests to cover my changes.
    opened by bocytko 7
  • Adds support for other jsonSchema-Generators like mbknor-jackson-jsonschema

    Adds support for other jsonSchema-Generators like mbknor-jackson-jsonschema

    Description

    The jsonschemagenarator from mbknor-jackson-jsonschema calls the acceptJsonFormatVisitor everytime he founds an MonetaryAmount-class in the target-class and expects that the JsonFormatVisitorWrapper.ExpectObjectFormat-method returns null if one class is already specified.

    Example: com.fasterxml.jackson.databind.ser.std.BeanSerializerBase#acceptJsonFormatVisitor

    Motivation and Context

    To work with other json-schema-versions (>=DraftV4) other generators then Jackson must be supported.

    Types of changes

    • [x] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist:

    • [ ] My change requires a change to the documentation.
    • [ ] I have updated the documentation accordingly.
    • [x] I have added tests to cover my changes.
    opened by PhilippHirch4211 7
  • Add support for string amounts

    Add support for string amounts

    I'm consuming an API that serializes the amounts as string values and the current implementation fails at deserialization with a JsonMappingException (Current token (VALUE_STRING) not numeric, can not use numeric value accessors)

    I thought it doesn't hurt to support this use case in the library and so here is my PR :)

    The way via the context should not add much overhead performance wise as the BigIntegerDeserializer does more or less the same in the INT and FLOAT cases but also handles Strings correctly. The indirection just adds some more stack frames.

    opened by bountin 7
  • RestTemplate Integration

    RestTemplate Integration

    Is there some additional configuration required to get deserialization working with Spring's RestTemplate?

    I'm getting the following error:

    org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Can not construct instance of javax.money.MonetaryAmount: abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of javax.money.MonetaryAmount: abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information
     at [Source: java.io.PushbackInputStream@2065cbae; line: 2, column: 13] (through reference chain: com.mypackage.PriceResource["price"])
    

    I'm using version org.zalando:jackson-datatype-money:1.0.0-RC2 with 'org.javamoney:moneta:1.1' and am trying to deserialize:

    {
        "price": {
            "amount": 1799.99,
            "currency": "USD"
        }
    }
    

    into:

    import javax.money.MonetaryAmount;
    import org.springframework.hateoas.ResourceSupport;
    
    public class PriceResource extends ResourceSupport {
      private MonetaryAmount price;
      public PriceResource() {}
      public MonetaryAmount getPrice() {
        return price;
      }
      public void setPrice(MonetaryAmount price) {
        this.price = price;
      }
    }
    

    Using a RestTemplate built as follows:

    RestTemplate restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory());
    restTemplate.getMessageConverters().removeIf(messageConverter -> messageConverter.getClass() == MappingJackson2HttpMessageConverter.class);
    restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter(objectMapper));
    

    where the objectMapper is created by SpringBoot (v1.5.7) and injected into the previous method and supplied the MoneyModule via the following:

    @Configuration
    class JacksonConfig {
      @Bean
      public MoneyModule moneyModule() {
        return new MoneyModule();
      }
    }
    

    To show that the RestTemplate has an ObjectMapper with the MoneyModule, here's the instance view in the debugger right after catching the above exception:

    billingserviceclient_java_-_expressplay_services_-____dev_repos_exp-services_bitbucket_

    Note that I've also tried both of the following configs, as the README.md wasn't clear if was necessary or not, however both generated the same error as above:

    @Configuration
    class JacksonConfig {
      @Bean
      public MoneyModule moneyModule() {
        return new MoneyModule().withMoney();
      }
    }
    
    @Configuration
    class JacksonConfig {
      @Bean
      public MoneyModule moneyModule() {
        return new MoneyModule().withMonetaryAmount(Money::of);
      }
    }
    
    opened by pluttrell 6
  • Amount is sent as number, consider string instead

    Amount is sent as number, consider string instead

    I wanted to find another page which outlines in more depth the issues, but I could only find the ones below.

    A quick summary is some JSON parsers will deserialize numbers as floats which obviously is problematic for Money. Other issues with eventually being deserialized as a float are limitations on size and problems with adding/subtracting. If you send it as a String it will be deserialized as a String.

    Various browsers use IEEE-754 to represent their numbers by default which would cause issues.

    http://stackoverflow.com/questions/30249406/what-is-the-standard-for-formatting-currency-values-in-json

    https://github.com/nlohmann/json/issues/98

    https://github.com/shopspring/decimal/issues/21

    opened by Psynbiotik 6
  • Bump assertj-core from 3.22.0 to 3.24.1

    Bump assertj-core from 3.22.0 to 3.24.1

    Bumps assertj-core from 3.22.0 to 3.24.1.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump dependency-check-maven from 7.1.0 to 7.4.4

    Bump dependency-check-maven from 7.1.0 to 7.4.4

    Bumps dependency-check-maven from 7.1.0 to 7.4.4.

    Release notes

    Sourced from dependency-check-maven's releases.

    Version 7.4.4

    Fixed

    • Resolved issue processing NVD CVE data due to column width (#5229)

    See the full listing of changes.

    Version 7.4.3

    Fixed

    • Fixed NPE when analyzing version ranges in NPM (#5158 & #5190)
    • Resolved several FP (#5191)

    See the full listing of changes.

    Version 7.4.2

    Fixed

    • Fixes maven 3.1 compatibility issue (#5152)
    • Fixed issue with invalid node_module paths in some scans (#5135)
    • Fixed missing option to disable the Poetry Analyzer in the CLI (#5160)
    • Fixed missing option to configure the OSS Index URL in the CLI (#5180)
    • Fixed NPE when analyzing version ranges in NPM (#5158)
    • Fixed issue with non-proxy host in the gradle plugin (dependency-check/dependency-check-gradle#298)
    • Resolved several FP

    See the full listing of changes.

    Version 7.4.1

    Fixed

    • Fixed bug when setting the proxy port in gradle (#5123)
    • Fixed issue with invalid node_module paths in some scans (#5127)
    • Resolved several FP

    See the full listing of changes.

    Version 7.4.0

    Added

    • Add support for npm package lock v2 and v3 (#5078)
    • Added experimental support for Python Poetry (#5025)
    • Added a vanilla HTML report for use in Jenkins (#5053)

    Changed

    • Renamed RELEASE_NOTES.md to CHANGELOG.md to be more conventional
    • Optimized checksum calculation to improve performance (#5112)
    • Added support for scanning .NET assemblies when only the dotnet runtime is installed (#5087)
    • Bumped several dependencies

    ... (truncated)

    Changelog

    Sourced from dependency-check-maven's changelog.

    Version 7.4.4 (2022-01-06)

    Fixed

    • Resolved issue processing NVD CVE data due to column width (#5229)

    See the full listing of changes.

    Version 7.4.3 (2022-12-29)

    Fixed

    • Fixed NPE when analyzing version ranges in NPM (#5158 & #5190)
    • Resolved several FP (#5191)

    See the full listing of changes.

    Version 7.4.2 (2022-12-28)

    Fixed

    • Fixes maven 3.1 compatibility issue (#5152)
    • Fixed issue with invalid node_module paths in some scans (#5135)
    • Fixed missing option to disable the Poetry Analyzer in the CLI (#5160)
    • Fixed missing option to configure the OSS Index URL in the CLI (#5180)
    • Fixed NPE when analyzing version ranges in NPM (#5158)
    • Fixed issue with non-proxy host in the gradle plugin (dependency-check/dependency-check-gradle#298)
    • Resolved several FP

    See the full listing of changes.

    Version 7.4.1 (2022-12-09)

    Fixed

    • Fixed bug when setting the proxy port in gradle (#5123)
    • Fixed issue with invalid node_module paths in some scans (#5127)
    • Resolved several FP

    See the full listing of changes.

    Version 7.4.0 (2022-12-04)

    Added

    • Add support for npm package lock v2 and v3 (#5078)
    • Added experimental support for Python Poetry (#5025)
    • Added a vanilla HTML report for use in Jenkins (#5053)

    Changed

    ... (truncated)

    Commits
    • 220140b build:prepare release v7.4.4
    • 07a852d docs: release notes
    • 2d3660b fix: long version of go dependency unable to inserted into software table (CV...
    • 0e11411 fix: update column width
    • 69ad5b7 fix: update data version to 5.2.2 and update it in all other initialize scrip...
    • 8b20c15 fix: long version of go dependency unable to inserted into software table (CV...
    • afc69a0 build(deps): bump actions/setup-node from 3.5.1 to 3.6.0 (#5219)
    • 5a8b81c build(deps): bump actions/setup-node from 3.5.1 to 3.6.0
    • 21b08b3 fix: Support RELEASE and LATEST metaversions in the transitive dependencies (...
    • 1fd1a1f fix: add documentation about ossindexAnalyzerUrl parameter (#5202)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump mockito-core from 4.5.1 to 4.11.0

    Bump mockito-core from 4.5.1 to 4.11.0

    Bumps mockito-core from 4.5.1 to 4.11.0.

    Release notes

    Sourced from mockito-core's releases.

    v4.11.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.11.0

    v4.10.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.10.0

    v4.9.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.9.0

    v4.8.1

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.8.1

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump versions-maven-plugin from 2.10.0 to 2.14.2

    Bump versions-maven-plugin from 2.10.0 to 2.14.2

    Bumps versions-maven-plugin from 2.10.0 to 2.14.2.

    Release notes

    Sourced from versions-maven-plugin's releases.

    2.14.2

    Changes

    🚀 New features and improvements

    🐛 Bug Fixes

    📦 Dependency updates

    👻 Maintenance

    2.14.1

    Changes

    🐛 Bug Fixes

    2.14.0

    Changes

    🚀 New features and improvements

    ... (truncated)

    Commits
    • 374ddab [maven-release-plugin] prepare release 2.14.2
    • 2b9bdb7 Bump wagon-provider-api from 3.5.2 to 3.5.3
    • 67c1800 Resolves #872: Make allowSnapshots an explicit argument in lookupDependencyUp...
    • 2fe2c3d Manage transitive dependencies version for security updates
    • 1130350 Upgrade com.fasterxml.woodstox:woodstox-core to 6.4.0
    • 8f2fd07 Project dependencies maintenance - move versions to dependencyManagement
    • 2bed457 Add a simple cache for ComparableVersions
    • 2d7a157 Bump actions/stale from 6 to 7
    • 4546a4e Fixes #866: Require maven 3.2.5
    • 5ee419d Bump mockito-inline from 4.9.0 to 4.10.0
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump jackson-bom from 2.13.3 to 2.14.1

    Bump jackson-bom from 2.13.3 to 2.14.1

    Bumps jackson-bom from 2.13.3 to 2.14.1.

    Commits
    • 28345e8 [maven-release-plugin] prepare release jackson-bom-2.14.1
    • 0d678d3 ...
    • 04e59a5 Merge branch '2.14' of github.com:FasterXML/jackson-bom into 2.14
    • 806813d [maven-release-plugin] prepare release jackson-bom-2.14.1
    • 2a00d4b Prepare for 2.14.1 release
    • 70c86d4 Merge pull request #55 from yeikel/patch-1
    • 7cc42f1 docs: update readme to 2.14.0
    • 6e65bdd back to snapshot deps
    • bf3e3e6 [maven-release-plugin] prepare for next development iteration
    • cd99403 [maven-release-plugin] prepare release jackson-bom-2.14.0
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump slf4j.version from 1.7.36 to 2.0.0

    Bump slf4j.version from 1.7.36 to 2.0.0

    Bumps slf4j.version from 1.7.36 to 2.0.0. Updates slf4j-api from 1.7.36 to 2.0.0

    Commits
    • 0614d46 prepare release 2.0.0
    • b1afcd0 javadoc edits
    • 20cd3ad start work on 2.0.0-SNAPSHOT
    • aeebb61 prepare release 2.0.0-beta1
    • 1068cd0 javadoc changes
    • 4e4e56a add CheckReturnValue annotation in org.slf4j.helpers
    • 0dcfa19 check for return value in some oggingEventBuilder methods
    • e7ca8d1 start work on 2.0.0-beta1-SNAPSHOPT
    • 2314de9 add setMessage and log method to the fluent API
    • 508a796 set version to 2.0.0-beta0
    • Additional commits viewable in compare view

    Updates slf4j-nop from 1.7.36 to 2.0.0

    Commits
    • 0614d46 prepare release 2.0.0
    • b1afcd0 javadoc edits
    • 20cd3ad start work on 2.0.0-SNAPSHOT
    • aeebb61 prepare release 2.0.0-beta1
    • 1068cd0 javadoc changes
    • 4e4e56a add CheckReturnValue annotation in org.slf4j.helpers
    • 0dcfa19 check for return value in some oggingEventBuilder methods
    • e7ca8d1 start work on 2.0.0-beta1-SNAPSHOPT
    • 2314de9 add setMessage and log method to the fluent API
    • 508a796 set version to 2.0.0-beta0
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Releases(1.3.0)
Owner
Zalando SE
The org page for Zalando, Europe's leading online fashion platform. Visit opensource.zalando.com for project stats.
Zalando SE
Set of support modules for Java 8 datatypes (Optionals, date/time) and features (parameter names)

Overview This is a multi-module umbrella project for Jackson modules needed to support Java 8 features, especially with Jackson 2.x that only requires

FasterXML, LLC 372 Dec 23, 2022
It generates a circular Image from users display names with animation support

DisplayNameView generates an avatar from users name. Setup allprojects { repositories { ... maven { url 'https://jitpack.io' }

Emre 4 Sep 24, 2021
Vert.x PoC for Project Loom Support

Vert.x Loom Wrapper Codegen This project contains a proof of concept implementation for a codegen wrapper API that provides virtual async-await suppor

Johannes Schüth 13 Oct 10, 2022
A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI v2 & v3.

Astrum A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI v2 & v3. OpenAPI is now a widely-adopted met

Apiwiz 11 May 24, 2022
Jakarta money is a helpful library for a better developer experience when combining Money-API with Jakarta and MicroProfile API.

jakarta-money Jakarta money is a helpful library for a better developer experience when combining Money-API with Jakarta and MicroProfile API. The dep

Money and Currency API | JavaMoney 19 Aug 12, 2022
Set of support modules for Java 8 datatypes (Optionals, date/time) and features (parameter names)

Overview This is a multi-module umbrella project for Jackson modules needed to support Java 8 features, especially with Jackson 2.x that only requires

FasterXML, LLC 372 Dec 23, 2022
This is a clone of Mircosoft Paint that uses Java and its javax.swing library

PaintClone This is a clone of Mircosoft Paint that uses Java and its javax.swing library You are able to select a RBG colors and creates a pallet of t

Nick Quinones 2 Feb 17, 2022
Properly implements shields being able to block endcrystal blasts, as they should; like every other explosion type.

Endcrystal-Shield Properly implements shields being able to block endcrystal blasts, as they should; like every other explosion type. Mojang CONFIRMED

Ian 3 Jul 7, 2022
Rekex parser generator - grammar as algebraic datatypes

Rekex PEG parser generator for Java 17 grammar as algebraic datatypes A context-free grammar has the form of A = A1 | A2 A1 = B C ... which looks ex

Zhong Yu 41 Dec 18, 2022
Development Driven Testing (DDT) lets you generate unit tests from a running application. Reproduce a bug, generate a properly mocked test

DDTJ: It kills bugs DDT is the flip side of TDD (Test-driven development). It stands for "Development Driven Tests". Notice that it doesn’t contradict

null 4 Dec 30, 2021
Transfer Service app to transfer money between source and destination account

transferserviceapp Transfer Service app to transfer money between source and destination account H2 Console available at : http://localhost:8080/h2-co

null 1 Oct 21, 2021
The MTN Mobile Money SDK

mtn-mobilemoney-java-sdk ###Introduction The MTN Mobile Money platform is currently available in 15 countries serving millions of subscribers. The pla

null 4 Dec 19, 2022
Spring Integration provides an extension of the Spring programming model to support the well-known Enterprise Integration Patterns (EIP)

Spring Integration Code of Conduct Please see our Code of conduct. Reporting Security Vulnerabilities Please see our Security policy. Checking out and

Spring 1.4k Dec 30, 2022
An HTML to PDF library for the JVM. Based on Flying Saucer and Apache PDF-BOX 2. With SVG image support. Now also with accessible PDF support (WCAG, Section 508, PDF/UA)!

OPEN HTML TO PDF OVERVIEW Open HTML to PDF is a pure-Java library for rendering arbitrary well-formed XML/XHTML (and even HTML5) using CSS 2.1 for lay

null 1.6k Dec 29, 2022
An uber-fast parallelized Java classpath scanner and module scanner.

ClassGraph ClassGraph is an uber-fast parallelized classpath scanner and module scanner for Java, Scala, Kotlin and other JVM languages. ClassGraph wo

classgraph 2.4k Dec 29, 2022
Nginx module for embedding Clojure or Java or Groovy programs, typically those Ring based handlers.

Nginx-Clojure Nginx-Clojure is a Nginx module for embedding Clojure or Java or Groovy programs, typically those Ring based handlers. Core Features The

nginx-clojure 1k Dec 22, 2022
Spring Boot starter module for gRPC framework.

Spring Boot starter module for gRPC framework.

Michael Zhang 2.8k Jan 4, 2023