Further steps towards JakartaEE.
Remove temporary version placeholders and obsolete version declarations for modules we do not test against anymore. Tweaked the JPA integration and the Jackson Hibernate 5 one in particular to work with the new Jakarta variants. Re-enabled JPA tests. Removed support for Jackson Hibernate 4 integration and JodaTime.
This commit is contained in:
16
pom.xml
16
pom.xml
@@ -28,22 +28,14 @@
|
||||
<project.type>multi</project.type>
|
||||
<dist.id>spring-data-rest</dist.id>
|
||||
|
||||
<!-- Temporarily here -->
|
||||
<spring>6.0.0-SNAPSHOT</spring>
|
||||
<spring-hateoas>2.0.0-SNAPSHOT</spring-hateoas>
|
||||
<validation>3.0.0</validation>
|
||||
|
||||
<springdata.commons>3.0.0-SNAPSHOT</springdata.commons>
|
||||
<springdata.jpa>2.6.0-SNAPSHOT</springdata.jpa>
|
||||
<springdata.mongodb>3.3.0-SNAPSHOT</springdata.mongodb>
|
||||
<springdata.geode>2.6.0-SNAPSHOT</springdata.geode>
|
||||
<springdata.solr>4.4.0-SNAPSHOT</springdata.solr>
|
||||
<springdata.cassandra>3.3.0-SNAPSHOT</springdata.cassandra>
|
||||
<springdata.keyvalue>2.6.0-SNAPSHOT</springdata.keyvalue>
|
||||
<springdata.jpa>3.0.0-SNAPSHOT</springdata.jpa>
|
||||
<springdata.mongodb>4.0.0-SNAPSHOT</springdata.mongodb>
|
||||
<springdata.geode>3.0.0-SNAPSHOT</springdata.geode>
|
||||
<springdata.keyvalue>3.0.0-SNAPSHOT</springdata.keyvalue>
|
||||
<servlet.version>5.0.0</servlet.version>
|
||||
|
||||
<hibernate.version>5.5.7.Final</hibernate.version>
|
||||
<bundlor.enabled>false</bundlor.enabled>
|
||||
</properties>
|
||||
|
||||
<developers>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<modules>
|
||||
<module>spring-data-rest-tests-core</module>
|
||||
<module>spring-data-rest-tests-geode</module>
|
||||
<!--<module>spring-data-rest-tests-jpa</module>-->
|
||||
<module>spring-data-rest-tests-jpa</module>
|
||||
<module>spring-data-rest-tests-mongodb</module>
|
||||
<!--<module>spring-data-rest-tests-security</module>-->
|
||||
<module>spring-data-rest-tests-shop</module>
|
||||
|
||||
@@ -51,7 +51,8 @@
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-hibernate5</artifactId>
|
||||
<artifactId>jackson-datatype-hibernate5-jakarta</artifactId>
|
||||
<version>${jackson}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@@ -73,13 +73,7 @@
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-hibernate4</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-hibernate5</artifactId>
|
||||
<artifactId>jackson-datatype-hibernate5-jakarta</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
@@ -90,14 +84,6 @@
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<!-- Jackson JodaTime -->
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-joda</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<!-- Querydsl -->
|
||||
|
||||
<dependency>
|
||||
|
||||
@@ -230,7 +230,6 @@ public class PersistentEntityResource extends EntityModel<Object> {
|
||||
|
||||
private static class NoLinksResources<T> extends CollectionModel<T> {
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public NoLinksResources(Iterable<T> content) {
|
||||
super(content);
|
||||
}
|
||||
|
||||
@@ -157,7 +157,7 @@ import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
|
||||
public class RepositoryRestMvcConfiguration extends HateoasAwareSpringDataWebConfiguration
|
||||
implements BeanClassLoaderAware {
|
||||
|
||||
private static final boolean IS_JPA_AVAILABLE = ClassUtils.isPresent("javax.persistence.EntityManager",
|
||||
private static final boolean IS_JPA_AVAILABLE = ClassUtils.isPresent("jakarta.persistence.EntityManager",
|
||||
RepositoryRestMvcConfiguration.class.getClassLoader());
|
||||
|
||||
private final ApplicationContext applicationContext;
|
||||
|
||||
@@ -19,10 +19,7 @@ import org.hibernate.Version;
|
||||
import org.springframework.util.ClassUtils;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
import com.fasterxml.jackson.datatype.hibernate4.Hibernate4Module;
|
||||
import com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module;
|
||||
import com.fasterxml.jackson.datatype.joda.JodaModule;
|
||||
import com.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule;
|
||||
|
||||
/**
|
||||
* Helper class to register datatype modules based on their presence in the classpath.
|
||||
@@ -34,69 +31,32 @@ public class Jackson2DatatypeHelper {
|
||||
|
||||
private static final boolean IS_HIBERNATE_AVAILABLE = ClassUtils.isPresent("org.hibernate.Version",
|
||||
Jackson2DatatypeHelper.class.getClassLoader());
|
||||
private static final boolean IS_HIBERNATE4_MODULE_AVAILABLE = ClassUtils.isPresent(
|
||||
"com.fasterxml.jackson.datatype.hibernate4.Hibernate4Module", Jackson2DatatypeHelper.class.getClassLoader());
|
||||
private static final boolean IS_HIBERNATE5_MODULE_AVAILABLE = ClassUtils.isPresent(
|
||||
"com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module", Jackson2DatatypeHelper.class.getClassLoader());
|
||||
|
||||
private static final boolean IS_JODA_MODULE_AVAILABLE = ClassUtils
|
||||
.isPresent("com.fasterxml.jackson.datatype.joda.JodaModule", Jackson2DatatypeHelper.class.getClassLoader());
|
||||
"com.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule",
|
||||
Jackson2DatatypeHelper.class.getClassLoader());
|
||||
|
||||
public static void configureObjectMapper(ObjectMapper mapper) {
|
||||
|
||||
// Hibernate types
|
||||
if (IS_HIBERNATE_AVAILABLE && HibernateVersions.isHibernate4() && IS_HIBERNATE4_MODULE_AVAILABLE) {
|
||||
new Hibernate4ModuleRegistrar().registerModule(mapper);
|
||||
}
|
||||
|
||||
if (IS_HIBERNATE_AVAILABLE && HibernateVersions.isHibernate5() && IS_HIBERNATE5_MODULE_AVAILABLE) {
|
||||
new Hibernate5ModuleRegistrar().registerModule(mapper);
|
||||
}
|
||||
|
||||
// JODA time
|
||||
if (IS_JODA_MODULE_AVAILABLE) {
|
||||
JodaModuleRegistrar.registerModule(mapper);
|
||||
}
|
||||
}
|
||||
|
||||
private static class HibernateVersions {
|
||||
|
||||
public static boolean isHibernate4() {
|
||||
return Version.getVersionString().startsWith("4");
|
||||
}
|
||||
|
||||
public static boolean isHibernate5() {
|
||||
return Version.getVersionString().startsWith("5");
|
||||
}
|
||||
}
|
||||
|
||||
private static class Hibernate4ModuleRegistrar {
|
||||
|
||||
public void registerModule(ObjectMapper mapper) {
|
||||
|
||||
Hibernate4Module module = new Hibernate4Module();
|
||||
module.enable(Hibernate4Module.Feature.FORCE_LAZY_LOADING);
|
||||
|
||||
mapper.registerModule(module);
|
||||
}
|
||||
}
|
||||
|
||||
private static class Hibernate5ModuleRegistrar {
|
||||
|
||||
public void registerModule(ObjectMapper mapper) {
|
||||
|
||||
Hibernate5Module module = new Hibernate5Module();
|
||||
module.enable(Hibernate5Module.Feature.FORCE_LAZY_LOADING);
|
||||
Hibernate5JakartaModule module = new Hibernate5JakartaModule();
|
||||
module.enable(Hibernate5JakartaModule.Feature.FORCE_LAZY_LOADING);
|
||||
|
||||
mapper.registerModule(module);
|
||||
}
|
||||
}
|
||||
|
||||
private static class JodaModuleRegistrar {
|
||||
|
||||
public static void registerModule(ObjectMapper mapper) {
|
||||
mapper.registerModule(new JodaModule());
|
||||
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user