{"id":19563118,"url":"https://github.com/fasterxml/jackson-modules-java8","last_synced_at":"2025-05-13T17:07:55.859Z","repository":{"id":12746628,"uuid":"72700804","full_name":"FasterXML/jackson-modules-java8","owner":"FasterXML","description":"Set of support modules for Java 8 datatypes (Optionals, date/time) and features (parameter names)","archived":false,"fork":false,"pushed_at":"2025-05-07T01:02:18.000Z","size":2801,"stargazers_count":407,"open_issues_count":26,"forks_count":122,"subscribers_count":15,"default_branch":"2.x","last_synced_at":"2025-05-08T05:09:35.765Z","etag":null,"topics":["hacktoberfest","jackson","java-date"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FasterXML.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-11-03T02:26:02.000Z","updated_at":"2025-05-07T01:02:22.000Z","dependencies_parsed_at":"2023-02-15T20:15:17.627Z","dependency_job_id":"0dac37ee-5531-4f83-b942-5740596258f5","html_url":"https://github.com/FasterXML/jackson-modules-java8","commit_stats":{"total_commits":597,"total_committers":45,"mean_commits":"13.266666666666667","dds":"0.11557788944723613","last_synced_commit":"572b7ef86c1a2828717c9116118fff1920d09e66"},"previous_names":[],"tags_count":87,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FasterXML%2Fjackson-modules-java8","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FasterXML%2Fjackson-modules-java8/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FasterXML%2Fjackson-modules-java8/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FasterXML%2Fjackson-modules-java8/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FasterXML","download_url":"https://codeload.github.com/FasterXML/jackson-modules-java8/tar.gz/refs/heads/2.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253990467,"owners_count":21995774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","jackson","java-date"],"created_at":"2024-11-11T05:16:37.286Z","updated_at":"2025-05-13T17:07:50.842Z","avatar_url":"https://github.com/FasterXML.png","language":"Java","readme":"## Overview\n\nThis is a multi-module umbrella project for [Jackson](../../../jackson)\nmodules needed to support Java 8 features, especially with Jackson 2.x that only\nrequires Java 7 for running (and until 2.7 only Java 6).\n\n### Jackson 2.x\n\nWhen used with Jackson 2.x, Java 8 support is provided via 3 separate modules:\n\n* [Parameter names](parameter-names/): support for detecting constructor and factory method (\"creator\") parameters without having to use `@JsonProperty` annotation\n    * provides `com.fasterxml.jackson.module.paramnames.ParameterNamesModule`\n* [Java 8 Date/time](datetime/): support for Java 8 date/time types (specified in JSR-310 specification)\n    * provides `com.fasterxml.jackson.datatype.jsr310.JavaTimeModule`\n    * ALSO provides legacy variant `com.fasterxml.jackson.datatype.jsr310.JSR310TimeModule`\n    * difference between 2 modules is that of configuration defaults: use of `JavaTimeModule` strongly recommended for new code\n* [Java 8 Datatypes](datatypes/): support for other new Java 8 datatypes outside of date/time: most notably `Optional`, `OptionalLong`, `OptionalDouble`\n    * provides `com.fasterxml.jackson.datatype.jdk8.Jdk8Module`\n\nall of which are built from this repository, and accessed and used as separate Jackson modules\n(with separate Maven artifacts).\n\n### Jackson 3.0\n\nJackson 3.0 changes things as it requires Java 8 to work and can thereby directly supported features.\n\nBecause of this, all 3 modules are merged into `jackson-databind`\nand need not be registered (as of Jacksson `3.0.0-rc3`)\n\n## License\n\nAll modules are licensed under [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt).\n\n## Status\n\n[![Build status (github)](https://github.com/FasterXML/jackson-databind/actions/workflows/main.yml/badge.svg)](https://github.com/FasterXML/jackson-databind/actions/workflows/main.yml)\n[![Tidelift](https://tidelift.com/badges/package/maven/com.fasterxml.jackson.datatype:jackson-datatype-jsr310)](https://tidelift.com/subscription/pkg/maven-com-fasterxml-jackson-datatype-jackson-datatype-jsr310?utm_source=maven-com-fasterxml-jackson-datatype-jackson-datatype-jsr310\u0026utm_medium=referral\u0026utm_campaign=readme)\n\n## Usage\n\n### Maven dependencies\n\nTo include modules, you use some or all of:\n\n```xml\n\u003c!-- parameter names --\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.fasterxml.jackson.module\u003c/groupId\u003e\n    \u003cartifactId\u003ejackson-module-parameter-names\u003c/artifactId\u003e\n\u003c/dependency\u003e\n\n\u003c!-- Java 8 Date/time --\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.fasterxml.jackson.datatype\u003c/groupId\u003e\n    \u003cartifactId\u003ejackson-datatype-jsr310\u003c/artifactId\u003e\n\u003c/dependency\u003e\n\n\u003c!-- Java 8 Datatypes --\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.fasterxml.jackson.datatype\u003c/groupId\u003e\n    \u003cartifactId\u003ejackson-datatype-jdk8\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\n\nand either include versions directly, OR, preferably, import\n[Jackson BOM](../../../jackson-bom) that will specify consistent version set.\n\nNote that the parent project -- `jackson-modules-java8` -- is ONLY used as parent pom by\nindividual \"child\" modules, and DOES NOT have dependencies on them. This means that you should not depend on it\nas that will not include child modules.\n\n### Registering modules\n\nThe most common mechanism (and one recommended by Jackson team) is to explicitly register modules you want.\nThis is done by code like:\n\n```java\n// Up to Jackson 2.9: (but not with 3.0)\nObjectMapper mapper = new ObjectMapper()\n   .registerModule(new ParameterNamesModule())\n   .registerModule(new Jdk8Module())\n   .registerModule(new JavaTimeModule()); // new module, NOT JSR310Module\n\n// with 3.0 (or with 2.10 as alternative)\nObjectMapper mapper = JsonMapper.builder() // or different mapper for other format\n   .addModule(new ParameterNamesModule())\n   .addModule(new Jdk8Module())\n   .addModule(new JavaTimeModule())\n   // and possibly other configuration, modules, then:\n   .build();\n```\n\nAlternatively, you can also auto-discover these modules with:\n\n```java\nObjectMapper mapper = new ObjectMapper();\nmapper.findAndRegisterModules();\n```\nRegardless of registration mechanism, after registration all functionality is available for all normal Jackson operations.\n\n#### Notes on Registration\n\nBut do note that you should only either explicit OR automatic registration: DO NOT combine explicit\nand auto-registration. If you use both, only one of registrations will have effect.\nAnd selection of which one varies by module and settings:\n\n* If `MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS` is defined, the FIRST registration succeeds, rest ignored\n    * Duplicates are detected using id provided by `Module.getTypeId()`; duplicate-detection requires that Module provides same for all instances (true for Modules provided by this repo)\n* Otherwise all registrations are processed by the LAST one has effect as it has precedence over earlier registrations.\n\nAlso note that before Jackson 2.10, auto-registration would only register older `JSR310Module`, and not newer\n`JavaTimeModule` -- this is due to backwards compatibility. This was changed in Jackson 2.10.\n\nIf you want \"the other\" version of the module but also use auto-registration, make sure to\nregister \"other\" module explicitly AFTER calling `mapper.findAndRegisterModules()`.\nCall after works because `getTypeId()` provided by modules differs so they are not considered duplicates.\n\n# Development\n\n## Maintainers\n\nFollowing developers have committer access to this project.\n\n* Authors\n    * Nick Williams (beamerblvd@github) contributed Java 8 date/time module; still helps issues from time to time\n    * Tatu Saloranta (@cowtowncoder) wrote the other 2 modules and maintains them for 2.x (in 3.0, integrated into core `jackson-databind`)\n* Maintainers:\n    * Michael O'Keeffe (kupci@github) is the current maintainer of Java 8 date/time module   \n\n## More\n\nSee [Wiki](../../wiki) for more information (javadocs).\n","funding_links":["https://tidelift.com/badges/package/maven/com.fasterxml.jackson.datatype:jackson-datatype-jsr310","https://tidelift.com/subscription/pkg/maven-com-fasterxml-jackson-datatype-jackson-datatype-jsr310?utm_source=maven-com-fasterxml-jackson-datatype-jackson-datatype-jsr310\u0026utm_medium=referral\u0026utm_campaign=readme"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffasterxml%2Fjackson-modules-java8","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffasterxml%2Fjackson-modules-java8","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffasterxml%2Fjackson-modules-java8/lists"}