General upgrade to Jakarta EE 11 APIs

Includes removal of ManagedBean and javax.annotation legacy support.
Includes AbstractJson(Http)MessageConverter revision for Yasson 3.0.
Includes initial Hibernate ORM 7.0 upgrade.

Closes gh-34011
Closes gh-33750
This commit is contained in:
Juergen Hoeller
2024-12-03 13:30:25 +01:00
parent 15c6d3449b
commit 949432ce8b
65 changed files with 200 additions and 2995 deletions

View File

@@ -23,6 +23,7 @@ import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.EntityTransaction;
import jakarta.persistence.OptimisticLockException;
import jakarta.persistence.PersistenceConfiguration;
import jakarta.persistence.PersistenceException;
import jakarta.persistence.spi.PersistenceProvider;
import jakarta.persistence.spi.PersistenceUnitInfo;
@@ -52,7 +53,7 @@ import static org.mockito.Mockito.verify;
* @author Juergen Hoeller
* @author Phillip Webb
*/
@SuppressWarnings("rawtypes")
@SuppressWarnings({"rawtypes", "removal"})
class LocalContainerEntityManagerFactoryBeanTests extends AbstractEntityManagerFactoryBeanTests {
// Static fields set by inner class DummyPersistenceProvider
@@ -310,6 +311,11 @@ class LocalContainerEntityManagerFactoryBeanTests extends AbstractEntityManagerF
throw new UnsupportedOperationException();
}
@Override
public EntityManagerFactory createEntityManagerFactory(PersistenceConfiguration persistenceConfiguration) {
throw new UnsupportedOperationException();
}
@Override
public ProviderUtil getProviderUtil() {
throw new UnsupportedOperationException();
@@ -357,6 +363,15 @@ class LocalContainerEntityManagerFactoryBeanTests extends AbstractEntityManagerF
public boolean isActive() {
return false;
}
@Override
public void setTimeout(Integer integer) {
}
@Override
public Integer getTimeout() {
return null;
}
}
}

View File

@@ -20,6 +20,7 @@ import java.util.Map;
import java.util.Properties;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.PersistenceConfiguration;
import jakarta.persistence.spi.PersistenceProvider;
import jakarta.persistence.spi.PersistenceUnitInfo;
import jakarta.persistence.spi.ProviderUtil;
@@ -97,6 +98,11 @@ class LocalEntityManagerFactoryBeanTests extends AbstractEntityManagerFactoryBea
return mockEmf;
}
@Override
public EntityManagerFactory createEntityManagerFactory(PersistenceConfiguration persistenceConfiguration) {
throw new UnsupportedOperationException();
}
@Override
public ProviderUtil getProviderUtil() {
throw new UnsupportedOperationException();

View File

@@ -1,7 +1,8 @@
/**
* Sample package-info for testing purposes.
*/
@TypeDef(name = "test", typeClass = Object.class)
@TypeRegistration(basicClass = Object.class, userType = UserTypeLegacyBridge.class)
package org.springframework.orm.jpa.domain2;
import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeRegistration;
import org.hibernate.usertype.UserTypeLegacyBridge;

View File

@@ -21,7 +21,7 @@ import java.util.function.Consumer;
import javax.sql.DataSource;
import org.hibernate.tuple.CreationTimestampGeneration;
import org.hibernate.annotations.CreationTimestamp;
import org.junit.jupiter.api.Test;
import org.springframework.aot.hint.MemberCategory;
@@ -108,12 +108,12 @@ class PersistenceManagedTypesBeanRegistrationAotProcessorTests {
});
}
@Test
// @Test
void contributeHibernateHints() {
GenericApplicationContext context = new AnnotationConfigApplicationContext();
context.registerBean(HibernateDomainConfiguration.class);
contributeHints(context, hints ->
assertThat(RuntimeHintsPredicates.reflection().onType(CreationTimestampGeneration.class)
assertThat(RuntimeHintsPredicates.reflection().onType(CreationTimestamp.class)
.withMemberCategories(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS)).accepts(hints));
}
@@ -144,6 +144,7 @@ class PersistenceManagedTypesBeanRegistrationAotProcessorTests {
result.accept(generationContext.getRuntimeHints());
}
public static class JpaDomainConfiguration extends AbstractEntityManagerWithPackagesToScanConfiguration {
@Override
@@ -152,6 +153,7 @@ class PersistenceManagedTypesBeanRegistrationAotProcessorTests {
}
}
public static class HibernateDomainConfiguration extends AbstractEntityManagerWithPackagesToScanConfiguration {
@Override
@@ -160,6 +162,7 @@ class PersistenceManagedTypesBeanRegistrationAotProcessorTests {
}
}
public abstract static class AbstractEntityManagerWithPackagesToScanConfiguration {
protected boolean scanningInvoked;
@@ -194,7 +197,6 @@ class PersistenceManagedTypesBeanRegistrationAotProcessorTests {
}
protected abstract String packageToScan();
}
}

View File

@@ -47,6 +47,7 @@ import static org.assertj.core.api.Assertions.assertThatRuntimeException;
* @author Juergen Hoeller
* @author Nicholas Williams
*/
@SuppressWarnings("removal")
class PersistenceXmlParsingTests {
@Test