diff --git a/pom.xml b/pom.xml index 6ac39df..18cd958 100644 --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,7 @@ 4.0.6 - 5.0.0 + 7.0.2 3.18.0 @@ -99,7 +99,7 @@ provided - com.fasterxml.jackson.core + tools.jackson.core jackson-databind provided diff --git a/pom.xml.versionsBackup b/pom.xml.versionsBackup deleted file mode 100644 index 8863f33..0000000 --- a/pom.xml.versionsBackup +++ /dev/null @@ -1,289 +0,0 @@ - - - 4.0.0 - - nl.42 - restzilla - 4.0.1-SNAPSHOT - jar - - Restzilla - Dynamic REST endpoints for Spring - https://github.com/42BV/restzilla - 2015 - - - 42BV - https://www.42.nl/ - - - - - Apache Software License 2.0 - https://www.apache.org/licenses - repo - - - - - - Jeroen van Schagen - jeroen.van.schagen@42.nl - - - - - ${maven.build.timestamp} - - UTF-8 - 21 - - - 4.0.6 - 5.0.0 - 3.18.0 - - - 12.2.2 - 0.8.14 - 0.9.0 - 3.2.8 - 3.4.0 - 3.12.0 - - - - scm:git:git@github.com:42BV/restzilla.git - scm:git:git@github.com:42BV/restzilla.git - https://github.com/42BV/restzilla - HEAD - - - - - - org.springframework.boot - spring-boot-dependencies - ${spring.boot.version} - pom - import - - - - - - - io.beanmapper - beanmapper-spring - ${beanmapper.version} - - - org.apache.commons - commons-lang3 - ${commons-lang.version} - - - com.google.guava - guava - 33.6.0-jre - - - - - spring-webmvc - org.springframework - - - spring-aop - org.springframework - provided - - - com.fasterxml.jackson.core - jackson-databind - provided - - - jakarta.servlet - jakarta.servlet-api - provided - - - - - org.springframework.security - spring-security-web - provided - - - - - org.springframework.data - spring-data-jpa - provided - - - org.hibernate.orm - hibernate-core - provided - - - - - org.springframework.boot - spring-boot-starter-web - test - - - org.springframework.boot - spring-boot-starter-data-jpa - test - - - org.springframework.boot - spring-boot-starter-validation - test - - - org.springframework.boot - spring-boot-starter-test - test - - - org.hamcrest - hamcrest-core - test - - - com.jayway.jsonpath - json-path - test - - - org.hsqldb - hsqldb - test - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.15.0 - - ${java.version} - ${java.version} - ${java.version} - - - org.projectlombok - lombok - - - - - - org.apache.maven.plugins - maven-surefire-plugin - 3.5.5 - - - org.owasp - dependency-check-maven - ${dependency-check-maven.version} - - 0 - true - true - true - false - owasp-suppressions.xml - - - - org.jacoco - jacoco-maven-plugin - ${jacoco-maven-plugin.version} - - - - prepare-agent - - - - report - test - - report - - - - - - - - - - release - - - - org.apache.maven.plugins - maven-javadoc-plugin - ${maven-javadoc-plugin.version} - - - attach-javadocs - - jar - - - - - - - org.apache.maven.plugins - maven-source-plugin - ${maven-source-plugin.version} - - - attach-sources - - jar-no-fork - - - - - - - org.apache.maven.plugins - maven-gpg-plugin - ${maven-gpg-plugin.version} - - - sign-artifacts - verify - - sign - - - - - - - org.sonatype.central - central-publishing-maven-plugin - ${central-publishing-maven-plugin.version} - true - - central - - - - - - - - diff --git a/src/main/java/nl/_42/restzilla/config/RestHandlerMappingFactoryBean.java b/src/main/java/nl/_42/restzilla/config/RestHandlerMappingFactoryBean.java index 7dcb9b0..c153bf4 100644 --- a/src/main/java/nl/_42/restzilla/config/RestHandlerMappingFactoryBean.java +++ b/src/main/java/nl/_42/restzilla/config/RestHandlerMappingFactoryBean.java @@ -3,7 +3,6 @@ */ package nl._42.restzilla.config; -import com.fasterxml.jackson.databind.ObjectMapper; import io.beanmapper.BeanMapper; import io.beanmapper.config.BeanMapperBuilder; import io.beanmapper.utils.Classes; @@ -30,6 +29,7 @@ import org.springframework.util.ClassUtils; import org.springframework.validation.Validator; import org.springframework.web.servlet.HandlerMapping; +import tools.jackson.databind.ObjectMapper; import java.util.HashSet; import java.util.Set; diff --git a/src/main/java/nl/_42/restzilla/web/DefaultHandlerMappingFactory.java b/src/main/java/nl/_42/restzilla/web/DefaultHandlerMappingFactory.java index 0d762ea..ab1d040 100644 --- a/src/main/java/nl/_42/restzilla/web/DefaultHandlerMappingFactory.java +++ b/src/main/java/nl/_42/restzilla/web/DefaultHandlerMappingFactory.java @@ -1,6 +1,5 @@ package nl._42.restzilla.web; -import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.io.CharStreams; import io.beanmapper.BeanMapper; import jakarta.servlet.http.HttpServletRequest; @@ -32,6 +31,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.method.HandlerMethod; +import tools.jackson.databind.ObjectMapper; import java.io.Serializable; import java.lang.reflect.Method; diff --git a/src/main/java/nl/_42/restzilla/web/util/JsonUtil.java b/src/main/java/nl/_42/restzilla/web/util/JsonUtil.java index ccc52a3..90600e2 100644 --- a/src/main/java/nl/_42/restzilla/web/util/JsonUtil.java +++ b/src/main/java/nl/_42/restzilla/web/util/JsonUtil.java @@ -1,10 +1,9 @@ package nl._42.restzilla.web.util; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; import org.springframework.util.StringUtils; -import java.io.IOException; import java.util.HashSet; import java.util.Iterator; import java.util.Set; @@ -28,14 +27,14 @@ public static Set getPropertyNamesFromJson(String json, ObjectMapper obj try { JsonNode tree = objectMapper.readTree(json); return getPropertyNames(tree, ""); - } catch (IOException e) { + } catch (RuntimeException e) { throw new IllegalStateException("Could not retrieve property names from JSON.", e); } } private static Set getPropertyNames(JsonNode node, String base) { Set propertyNames = new HashSet<>(); - Iterator iterator = node.fieldNames(); + Iterator iterator = node.propertyNames().iterator(); while (iterator.hasNext()) { String fieldName = iterator.next(); String propertyName = StringUtils.isEmpty(base) ? fieldName : base + "." + fieldName; diff --git a/src/test/java/nl/_42/restzilla/ApplicationConfig.java b/src/test/java/nl/_42/restzilla/ApplicationConfig.java index 4bc3a56..a116d5f 100644 --- a/src/test/java/nl/_42/restzilla/ApplicationConfig.java +++ b/src/test/java/nl/_42/restzilla/ApplicationConfig.java @@ -3,7 +3,6 @@ */ package nl._42.restzilla; -import com.fasterxml.jackson.databind.ObjectMapper; import io.beanmapper.BeanMapper; import io.beanmapper.config.BeanMapperBuilder; import nl._42.restzilla.config.EnableRest; @@ -19,19 +18,18 @@ import org.springframework.context.annotation.ComponentScan.Filter; import org.springframework.context.annotation.Configuration; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.http.converter.json.JacksonJsonHttpMessageConverter; import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.EnableTransactionManagement; -import org.springframework.validation.Validator; -import org.springframework.validation.beanvalidation.CustomValidatorBean; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; +import tools.jackson.databind.json.JsonMapper; import javax.sql.DataSource; import java.util.HashMap; @@ -63,7 +61,7 @@ public class ApplicationConfig { @Autowired @Qualifier("hibernateDialect") private String hibernateDialect; - + @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory() { LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean(); @@ -93,13 +91,6 @@ public JpaTransactionManager transactionManager() { return transactionManager; } - @Bean - public ObjectMapper objectMapper() { - ObjectMapper mapper = new ObjectMapper(); - mapper.findAndRegisterModules(); - return mapper; - } - @Bean public BeanMapper beanMapper() { return new BeanMapperBuilder().build(); @@ -112,12 +103,15 @@ public RequestMappingHandlerAdapter requestMappingHandlerAdapter() { return adapter; } - private MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() { - MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); - converter.setObjectMapper(objectMapper()); - return converter; + private JacksonJsonHttpMessageConverter mappingJackson2HttpMessageConverter() { + return new JacksonJsonHttpMessageConverter(jsonMapper()); } - + + @Bean + public JsonMapper jsonMapper() { + return new JsonMapper(); + } + @Bean public Cache cache() { return new ConcurrentMapCache("test"); @@ -129,17 +123,17 @@ public GlobalExceptionHandler exceptionHandler() { } public static class HsqlConfig { - + @Bean public DataSource dataSource() { return new EmbeddedDatabaseBuilder().setName("dev").setType(HSQL).build(); } - + @Bean public String hibernateDialect() { return HSQLDialect.class.getName(); } - + } } diff --git a/src/test/java/nl/_42/restzilla/web/GlobalExceptionHandler.java b/src/test/java/nl/_42/restzilla/web/GlobalExceptionHandler.java index 12c90a3..acec080 100644 --- a/src/test/java/nl/_42/restzilla/web/GlobalExceptionHandler.java +++ b/src/test/java/nl/_42/restzilla/web/GlobalExceptionHandler.java @@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.NoHandlerFoundException; -import org.springframework.web.servlet.view.json.MappingJackson2JsonView; +import org.springframework.web.servlet.view.json.JacksonJsonView; import static org.springframework.http.HttpStatus.FORBIDDEN; import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; @@ -47,7 +47,7 @@ public ModelAndView handleException(HttpServletResponse response, Exception ex) private static ModelAndView error(HttpServletResponse response, HttpStatus status) { response.setStatus(status.value()); - return new ModelAndView(new MappingJackson2JsonView(), "error", status.name()); + return new ModelAndView(new JacksonJsonView(), "error", status.name()); } } diff --git a/src/test/java/nl/_42/restzilla/web/RestTest.java b/src/test/java/nl/_42/restzilla/web/RestTest.java index 2ae216e..1ebb75a 100644 --- a/src/test/java/nl/_42/restzilla/web/RestTest.java +++ b/src/test/java/nl/_42/restzilla/web/RestTest.java @@ -3,7 +3,6 @@ */ package nl._42.restzilla.web; -import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import nl._42.restzilla.AbstractControllerTest; @@ -27,6 +26,7 @@ import org.springframework.http.MediaType; import org.springframework.security.authentication.TestingAuthenticationToken; import org.springframework.transaction.annotation.Transactional; +import tools.jackson.databind.ObjectMapper; import java.util.List;