From 0589a0ef7775f7a9b769b6a08540a33908e02a6d Mon Sep 17 00:00:00 2001 From: singingbush Date: Mon, 5 Jun 2023 01:24:02 +0100 Subject: [PATCH] #802 Added static methods for setting up configuration with Jackson, Gson, or Jakarta --- .../com/jayway/jsonpath/Configuration.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/json-path/src/main/java/com/jayway/jsonpath/Configuration.java b/json-path/src/main/java/com/jayway/jsonpath/Configuration.java index 69427e1f..af035619 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/Configuration.java +++ b/json-path/src/main/java/com/jayway/jsonpath/Configuration.java @@ -15,7 +15,13 @@ package com.jayway.jsonpath; import com.jayway.jsonpath.internal.DefaultsImpl; +import com.jayway.jsonpath.spi.json.GsonJsonProvider; +import com.jayway.jsonpath.spi.json.JacksonJsonProvider; +import com.jayway.jsonpath.spi.json.JakartaJsonProvider; import com.jayway.jsonpath.spi.json.JsonProvider; +import com.jayway.jsonpath.spi.mapper.GsonMappingProvider; +import com.jayway.jsonpath.spi.mapper.JacksonMappingProvider; +import com.jayway.jsonpath.spi.mapper.JakartaMappingProvider; import com.jayway.jsonpath.spi.mapper.MappingProvider; import java.util.*; @@ -169,6 +175,42 @@ public static Configuration defaultConfiguration() { return Configuration.builder().jsonProvider(defaults.jsonProvider()).options(defaults.options()).build(); } + /** + * Creates a new configuration that uses Jakarta + * @return a new configuration based on Jakarta + * @since 2.8.0 + */ + public static Configuration jakartaConfiguration() { + return Configuration.builder() + .jsonProvider(new JakartaJsonProvider()) + .mappingProvider(new JakartaMappingProvider()) + .build(); + } + + /** + * Creates a new configuration that uses Jackson + * @return a new configuration based on Jackson + * @since 2.8.0 + */ + public static Configuration jacksonConfiguration() { + return Configuration.builder() + .jsonProvider(new JacksonJsonProvider()) + .mappingProvider(new JacksonMappingProvider()) + .build(); + } + + /** + * Creates a new configuration that uses Gson + * @return a new configuration based on Gson + * @since 2.8.0 + */ + public static Configuration gsonConfiguration() { + return Configuration.builder() + .jsonProvider(new GsonJsonProvider()) + .mappingProvider(new GsonMappingProvider()) + .build(); + } + /** * Returns a new ConfigurationBuilder * @return a builder