Browse Source

Polishing

pull/35672/head
Juergen Hoeller 2 months ago
parent
commit
765e30c3a6
  1. 2
      spring-aop/src/main/java/org/springframework/aop/framework/CoroutinesUtils.java
  2. 11
      spring-orm/src/main/java/org/springframework/orm/jpa/LocalContainerEntityManagerFactoryBean.java
  3. 34
      spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java
  4. 7
      spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/MutablePersistenceUnitInfo.java
  5. 1
      spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/PersistenceManagedTypes.java
  6. 2
      spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/SimplePersistenceManagedTypes.java
  7. 20
      spring-orm/src/test/java/org/springframework/orm/jpa/AbstractEntityManagerFactoryBeanTests.java
  8. 41
      spring-orm/src/test/java/org/springframework/orm/jpa/persistenceunit/PersistenceXmlParsingTests.java

2
spring-aop/src/main/java/org/springframework/aop/framework/CoroutinesUtils.java

@ -41,8 +41,8 @@ abstract class CoroutinesUtils {
} }
} }
@SuppressWarnings({"rawtypes", "unchecked"})
@Nullable @Nullable
@SuppressWarnings({"unchecked", "rawtypes"})
static Object awaitSingleOrNull(@Nullable Object value, Object continuation) { static Object awaitSingleOrNull(@Nullable Object value, Object continuation) {
return MonoKt.awaitSingleOrNull(value instanceof Mono mono ? mono : Mono.justOrEmpty(value), return MonoKt.awaitSingleOrNull(value instanceof Mono mono ? mono : Mono.justOrEmpty(value),
(Continuation<Object>) continuation); (Continuation<Object>) continuation);

11
spring-orm/src/main/java/org/springframework/orm/jpa/LocalContainerEntityManagerFactoryBean.java

@ -398,15 +398,16 @@ public class LocalContainerEntityManagerFactoryBean extends AbstractEntityManage
* Determine the PersistenceUnitInfo to use for the EntityManagerFactory * Determine the PersistenceUnitInfo to use for the EntityManagerFactory
* created by this bean. * created by this bean.
* <p>The default implementation reads in all persistence unit infos from * <p>The default implementation reads in all persistence unit infos from
* {@code persistence.xml}, as defined in the JPA specification. * {@code persistence.xml}, as defined in the JPA specification, selecting a unit
* If no entity manager name was specified, it takes the first info in the * by name. If no persistence unit name was specified, it takes the default one
* array as returned by the reader. Otherwise, it checks for a matching name. * if configured, or otherwise the first persistence unit as found by the reader.
* @param persistenceUnitManager the PersistenceUnitManager to obtain from * @param persistenceUnitManager the PersistenceUnitManager to obtain from
* @return the chosen PersistenceUnitInfo * @return the chosen PersistenceUnitInfo
*/ */
protected PersistenceUnitInfo determinePersistenceUnitInfo(PersistenceUnitManager persistenceUnitManager) { protected PersistenceUnitInfo determinePersistenceUnitInfo(PersistenceUnitManager persistenceUnitManager) {
if (getPersistenceUnitName() != null) { String persistenceUnitName = getPersistenceUnitName();
return persistenceUnitManager.obtainPersistenceUnitInfo(getPersistenceUnitName()); if (persistenceUnitName != null) {
return persistenceUnitManager.obtainPersistenceUnitInfo(persistenceUnitName);
} }
else { else {
return persistenceUnitManager.obtainDefaultPersistenceUnitInfo(); return persistenceUnitManager.obtainDefaultPersistenceUnitInfo();

34
spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java

@ -193,7 +193,7 @@ public class DefaultPersistenceUnitManager
/** /**
* Set the {@link PersistenceManagedTypes} to use to build the list of managed types * Set the {@link PersistenceManagedTypes} to use to build the list of managed types
* as an alternative to entity scanning. * for the default persistence unit, as an alternative to entity scanning.
* @param managedTypes the managed types * @param managedTypes the managed types
* @since 6.0 * @since 6.0
*/ */
@ -540,33 +540,33 @@ public class DefaultPersistenceUnitManager
* @see #setPackagesToScan * @see #setPackagesToScan
*/ */
private SpringPersistenceUnitInfo buildDefaultPersistenceUnitInfo() { private SpringPersistenceUnitInfo buildDefaultPersistenceUnitInfo() {
SpringPersistenceUnitInfo scannedUnit = new SpringPersistenceUnitInfo(); SpringPersistenceUnitInfo defaultUnit = new SpringPersistenceUnitInfo();
if (this.defaultPersistenceUnitName != null) { if (this.defaultPersistenceUnitName != null) {
scannedUnit.setPersistenceUnitName(this.defaultPersistenceUnitName); defaultUnit.setPersistenceUnitName(this.defaultPersistenceUnitName);
} }
scannedUnit.setExcludeUnlistedClasses(true); defaultUnit.setExcludeUnlistedClasses(true);
if (this.managedTypes != null) { if (this.managedTypes != null) {
applyManagedTypes(scannedUnit, this.managedTypes); applyManagedTypes(defaultUnit, this.managedTypes);
} }
else if (this.packagesToScan != null) { else if (this.packagesToScan != null) {
PersistenceManagedTypesScanner scanner = new PersistenceManagedTypesScanner( PersistenceManagedTypesScanner scanner = new PersistenceManagedTypesScanner(
this.resourcePatternResolver, this.managedClassNameFilter); this.resourcePatternResolver, this.managedClassNameFilter);
applyManagedTypes(scannedUnit, scanner.scan(this.packagesToScan)); applyManagedTypes(defaultUnit, scanner.scan(this.packagesToScan));
} }
if (this.mappingResources != null) { if (this.mappingResources != null) {
for (String mappingFileName : this.mappingResources) { for (String mappingFileName : this.mappingResources) {
scannedUnit.addMappingFileName(mappingFileName); defaultUnit.addMappingFileName(mappingFileName);
} }
} }
else { else {
Resource ormXml = getOrmXmlForDefaultPersistenceUnit(); Resource ormXml = getOrmXmlForDefaultPersistenceUnit();
if (ormXml != null) { if (ormXml != null) {
scannedUnit.addMappingFileName(DEFAULT_ORM_XML_RESOURCE); defaultUnit.addMappingFileName(DEFAULT_ORM_XML_RESOURCE);
if (scannedUnit.getPersistenceUnitRootUrl() == null) { if (defaultUnit.getPersistenceUnitRootUrl() == null) {
try { try {
scannedUnit.setPersistenceUnitRootUrl( defaultUnit.setPersistenceUnitRootUrl(
PersistenceUnitReader.determinePersistenceUnitRootUrl(ormXml)); PersistenceUnitReader.determinePersistenceUnitRootUrl(ormXml));
} }
catch (IOException ex) { catch (IOException ex) {
@ -576,7 +576,7 @@ public class DefaultPersistenceUnitManager
} }
} }
return scannedUnit; return defaultUnit;
} }
private void applyManagedTypes(SpringPersistenceUnitInfo scannedUnit, PersistenceManagedTypes managedTypes) { private void applyManagedTypes(SpringPersistenceUnitInfo scannedUnit, PersistenceManagedTypes managedTypes) {
@ -639,9 +639,9 @@ public class DefaultPersistenceUnitManager
/** /**
* Return the specified PersistenceUnitInfo from this manager's cache * Return the specified {@link MutablePersistenceUnitInfo} from this manager's cache
* of processed persistence units, keeping it in the cache (i.e. not * of processed persistence units, keeping it in the cache (i.e. not 'obtaining' it
* 'obtaining' it for use but rather just accessing it for post-processing). * for use but rather just accessing it for post-processing).
* <p>This can be used in {@link #postProcessPersistenceUnitInfo} implementations, * <p>This can be used in {@link #postProcessPersistenceUnitInfo} implementations,
* detecting existing persistence units of the same name and potentially merging them. * detecting existing persistence units of the same name and potentially merging them.
* @param persistenceUnitName the name of the desired persistence unit * @param persistenceUnitName the name of the desired persistence unit
@ -654,12 +654,12 @@ public class DefaultPersistenceUnitManager
} }
/** /**
* Hook method allowing subclasses to customize each PersistenceUnitInfo. * Hook method allowing subclasses to customize each {@link MutablePersistenceUnitInfo}.
* <p>The default implementation delegates to all registered PersistenceUnitPostProcessors. * <p>The default implementation delegates to all registered PersistenceUnitPostProcessors.
* It is usually preferable to register further entity classes, jar files etc there * It is usually preferable to register further entity classes, jar files etc there
* rather than in a subclass of this manager, to be able to reuse the post-processors. * rather than in a subclass of this manager, to be able to reuse the post-processors.
* @param pui the chosen PersistenceUnitInfo, as read from {@code persistence.xml}. * @param pui the chosen persistence unit configuration, as read from
* Passed in as MutablePersistenceUnitInfo. * {@code persistence.xml}. Passed in as MutablePersistenceUnitInfo.
* @see #setPersistenceUnitPostProcessors * @see #setPersistenceUnitPostProcessors
*/ */
protected void postProcessPersistenceUnitInfo(MutablePersistenceUnitInfo pui) { protected void postProcessPersistenceUnitInfo(MutablePersistenceUnitInfo pui) {

7
spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/MutablePersistenceUnitInfo.java

@ -33,9 +33,10 @@ import org.springframework.util.Assert;
import org.springframework.util.ClassUtils; import org.springframework.util.ClassUtils;
/** /**
* Spring's base implementation of the JPA * Spring's mutable equivalent of the JPA
* {@link jakarta.persistence.spi.PersistenceUnitInfo} interface, * {@link jakarta.persistence.spi.PersistenceUnitInfo} interface,
* used to bootstrap an {@code EntityManagerFactory} in a container. * used to bootstrap an {@code EntityManagerFactory} in a container.
* This is the type exposed to {@link PersistenceUnitPostProcessor}.
* *
* <p>This implementation is largely a JavaBean, offering mutators * <p>This implementation is largely a JavaBean, offering mutators
* for all standard {@code PersistenceUnitInfo} properties. * for all standard {@code PersistenceUnitInfo} properties.
@ -57,10 +58,10 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
private PersistenceUnitTransactionType transactionType; private PersistenceUnitTransactionType transactionType;
@Nullable @Nullable
private DataSource nonJtaDataSource; private DataSource jtaDataSource;
@Nullable @Nullable
private DataSource jtaDataSource; private DataSource nonJtaDataSource;
private final List<String> mappingFileNames = new ArrayList<>(); private final List<String> mappingFileNames = new ArrayList<>();

1
spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/PersistenceManagedTypes.java

@ -57,6 +57,7 @@ public interface PersistenceManagedTypes {
@Nullable @Nullable
URL getPersistenceUnitRootUrl(); URL getPersistenceUnitRootUrl();
/** /**
* Create an instance using the specified managed class names. * Create an instance using the specified managed class names.
* @param managedClassNames the managed class names * @param managedClassNames the managed class names

2
spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/SimplePersistenceManagedTypes.java

@ -40,6 +40,7 @@ class SimplePersistenceManagedTypes implements PersistenceManagedTypes {
SimplePersistenceManagedTypes(List<String> managedClassNames, List<String> managedPackages, SimplePersistenceManagedTypes(List<String> managedClassNames, List<String> managedPackages,
@Nullable URL persistenceUnitRootUrl) { @Nullable URL persistenceUnitRootUrl) {
this.managedClassNames = managedClassNames; this.managedClassNames = managedClassNames;
this.managedPackages = managedPackages; this.managedPackages = managedPackages;
this.persistenceUnitRootUrl = persistenceUnitRootUrl; this.persistenceUnitRootUrl = persistenceUnitRootUrl;
@ -49,6 +50,7 @@ class SimplePersistenceManagedTypes implements PersistenceManagedTypes {
this(managedClassNames, managedPackages, null); this(managedClassNames, managedPackages, null);
} }
@Override @Override
public List<String> getManagedClassNames() { public List<String> getManagedClassNames() {
return this.managedClassNames; return this.managedClassNames;

20
spring-orm/src/test/java/org/springframework/orm/jpa/AbstractEntityManagerFactoryBeanTests.java

@ -39,27 +39,27 @@ public abstract class AbstractEntityManagerFactoryBeanTests {
protected static EntityManagerFactory mockEmf; protected static EntityManagerFactory mockEmf;
@BeforeEach @BeforeEach
void setUp() { void setup() {
mockEmf = mock(); mockEmf = mock();
} }
@AfterEach @AfterEach
void tearDown() { void cleanup() {
assertThat(TransactionSynchronizationManager.getResourceMap()).isEmpty(); assertThat(TransactionSynchronizationManager.getResourceMap()).isEmpty();
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse(); assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
assertThat(TransactionSynchronizationManager.isCurrentTransactionReadOnly()).isFalse(); assertThat(TransactionSynchronizationManager.isCurrentTransactionReadOnly()).isFalse();
assertThat(TransactionSynchronizationManager.isActualTransactionActive()).isFalse(); assertThat(TransactionSynchronizationManager.isActualTransactionActive()).isFalse();
} }
protected void checkInvariants(AbstractEntityManagerFactoryBean demf) { protected void checkInvariants(AbstractEntityManagerFactoryBean emfb) {
assertThat(EntityManagerFactory.class.isAssignableFrom(demf.getObjectType())).isTrue(); assertThat(EntityManagerFactory.class.isAssignableFrom(emfb.getObjectType())).isTrue();
Object gotObject = demf.getObject(); EntityManagerFactory emf = emfb.getObject();
boolean condition = gotObject instanceof EntityManagerFactoryInfo; assertThat(emf instanceof EntityManagerFactoryInfo).as("Object created by factory implements EntityManagerFactoryInfo").isTrue();
assertThat(condition).as("Object created by factory implements EntityManagerFactoryInfo").isTrue(); EntityManagerFactoryInfo emfi = (EntityManagerFactoryInfo) emf;
EntityManagerFactoryInfo emfi = (EntityManagerFactoryInfo) demf.getObject(); assertThat(emfb.getObject()).as("Successive invocations of getObject() return same object").isSameAs(emfi);
assertThat(demf.getObject()).as("Successive invocations of getObject() return same object").isSameAs(emfi); assertThat(emfb.getObject()).isSameAs(emfi);
assertThat(demf.getObject()).isSameAs(emfi);
assertThat(mockEmf).isSameAs(emfi.getNativeEntityManagerFactory()); assertThat(mockEmf).isSameAs(emfi.getNativeEntityManagerFactory());
} }

41
spring-orm/src/test/java/org/springframework/orm/jpa/persistenceunit/PersistenceXmlParsingTests.java

@ -22,7 +22,6 @@ import java.util.Map;
import javax.sql.DataSource; import javax.sql.DataSource;
import jakarta.persistence.spi.PersistenceUnitInfo;
import jakarta.persistence.spi.PersistenceUnitTransactionType; import jakarta.persistence.spi.PersistenceUnitTransactionType;
import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@ -54,7 +53,7 @@ class PersistenceXmlParsingTests {
PersistenceUnitReader reader = new PersistenceUnitReader( PersistenceUnitReader reader = new PersistenceUnitReader(
new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup()); new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup());
String resource = "/org/springframework/orm/jpa/META-INF/persistence.xml"; String resource = "/org/springframework/orm/jpa/META-INF/persistence.xml";
PersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource); SpringPersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource);
assertThat(info).isNotNull(); assertThat(info).isNotNull();
assertThat(info).hasSize(1); assertThat(info).hasSize(1);
@ -71,7 +70,7 @@ class PersistenceXmlParsingTests {
PersistenceUnitReader reader = new PersistenceUnitReader( PersistenceUnitReader reader = new PersistenceUnitReader(
new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup()); new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup());
String resource = "/org/springframework/orm/jpa/persistence-example1.xml"; String resource = "/org/springframework/orm/jpa/persistence-example1.xml";
PersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource); SpringPersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource);
assertThat(info).isNotNull(); assertThat(info).isNotNull();
assertThat(info).hasSize(1); assertThat(info).hasSize(1);
@ -85,7 +84,7 @@ class PersistenceXmlParsingTests {
PersistenceUnitReader reader = new PersistenceUnitReader( PersistenceUnitReader reader = new PersistenceUnitReader(
new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup()); new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup());
String resource = "/org/springframework/orm/jpa/persistence-example2.xml"; String resource = "/org/springframework/orm/jpa/persistence-example2.xml";
PersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource); SpringPersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource);
assertThat(info).isNotNull(); assertThat(info).isNotNull();
assertThat(info).hasSize(1); assertThat(info).hasSize(1);
@ -103,7 +102,7 @@ class PersistenceXmlParsingTests {
PersistenceUnitReader reader = new PersistenceUnitReader( PersistenceUnitReader reader = new PersistenceUnitReader(
new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup()); new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup());
String resource = "/org/springframework/orm/jpa/persistence-example3.xml"; String resource = "/org/springframework/orm/jpa/persistence-example3.xml";
PersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource); SpringPersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource);
assertThat(info).isNotNull(); assertThat(info).isNotNull();
assertThat(info).hasSize(1); assertThat(info).hasSize(1);
@ -129,7 +128,7 @@ class PersistenceXmlParsingTests {
PersistenceUnitReader reader = new PersistenceUnitReader( PersistenceUnitReader reader = new PersistenceUnitReader(
new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup()); new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup());
String resource = "/org/springframework/orm/jpa/persistence-example4.xml"; String resource = "/org/springframework/orm/jpa/persistence-example4.xml";
PersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource); SpringPersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource);
assertThat(info).isNotNull(); assertThat(info).isNotNull();
assertThat(info).hasSize(1); assertThat(info).hasSize(1);
@ -153,7 +152,7 @@ class PersistenceXmlParsingTests {
PersistenceUnitReader reader = new PersistenceUnitReader( PersistenceUnitReader reader = new PersistenceUnitReader(
new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup()); new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup());
String resource = "/org/springframework/orm/jpa/persistence-example5.xml"; String resource = "/org/springframework/orm/jpa/persistence-example5.xml";
PersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource); SpringPersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource);
assertThat(info).isNotNull(); assertThat(info).isNotNull();
assertThat(info).hasSize(1); assertThat(info).hasSize(1);
@ -183,11 +182,11 @@ class PersistenceXmlParsingTests {
dataSourceLookup.setDataSources(dataSources); dataSourceLookup.setDataSources(dataSources);
PersistenceUnitReader reader = new PersistenceUnitReader( PersistenceUnitReader reader = new PersistenceUnitReader(
new PathMatchingResourcePatternResolver(), dataSourceLookup); new PathMatchingResourcePatternResolver(), dataSourceLookup);
PersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource); SpringPersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource);
assertThat(info).hasSize(2); assertThat(info).hasSize(2);
PersistenceUnitInfo pu1 = info[0]; SpringPersistenceUnitInfo pu1 = info[0];
assertThat(pu1.getPersistenceUnitName()).isEqualTo("pu1"); assertThat(pu1.getPersistenceUnitName()).isEqualTo("pu1");
@ -210,7 +209,7 @@ class PersistenceXmlParsingTests {
assertThat(pu1.excludeUnlistedClasses()).as("Exclude unlisted should default false in 1.0.").isFalse(); assertThat(pu1.excludeUnlistedClasses()).as("Exclude unlisted should default false in 1.0.").isFalse();
PersistenceUnitInfo pu2 = info[1]; SpringPersistenceUnitInfo pu2 = info[1];
assertThat(pu2.getTransactionType()).isSameAs(PersistenceUnitTransactionType.JTA); assertThat(pu2.getTransactionType()).isSameAs(PersistenceUnitTransactionType.JTA);
assertThat(pu2.getPersistenceProviderClassName()).isEqualTo("com.acme.AcmePersistence"); assertThat(pu2.getPersistenceProviderClassName()).isEqualTo("com.acme.AcmePersistence");
@ -234,7 +233,7 @@ class PersistenceXmlParsingTests {
PersistenceUnitReader reader = new PersistenceUnitReader( PersistenceUnitReader reader = new PersistenceUnitReader(
new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup()); new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup());
String resource = "/org/springframework/orm/jpa/persistence-example6.xml"; String resource = "/org/springframework/orm/jpa/persistence-example6.xml";
PersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource); SpringPersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource);
assertThat(info).hasSize(1); assertThat(info).hasSize(1);
assertThat(info[0].getPersistenceUnitName()).isEqualTo("pu"); assertThat(info[0].getPersistenceUnitName()).isEqualTo("pu");
assertThat(info[0].getProperties()).isEmpty(); assertThat(info[0].getProperties()).isEmpty();
@ -286,27 +285,27 @@ class PersistenceXmlParsingTests {
PersistenceUnitReader reader = new PersistenceUnitReader( PersistenceUnitReader reader = new PersistenceUnitReader(
new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup()); new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup());
String resource = "/org/springframework/orm/jpa/persistence-exclude-1.0.xml"; String resource = "/org/springframework/orm/jpa/persistence-exclude-1.0.xml";
PersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource); SpringPersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource);
assertThat(info).isNotNull(); assertThat(info).isNotNull();
assertThat(info.length).as("The number of persistence units is incorrect.").isEqualTo(4); assertThat(info.length).as("The number of persistence units is incorrect.").isEqualTo(4);
PersistenceUnitInfo noExclude = info[0]; SpringPersistenceUnitInfo noExclude = info[0];
assertThat(noExclude).as("noExclude should not be null.").isNotNull(); assertThat(noExclude).as("noExclude should not be null.").isNotNull();
assertThat(noExclude.getPersistenceUnitName()).as("noExclude name is not correct.").isEqualTo("NoExcludeElement"); assertThat(noExclude.getPersistenceUnitName()).as("noExclude name is not correct.").isEqualTo("NoExcludeElement");
assertThat(noExclude.excludeUnlistedClasses()).as("Exclude unlisted should default false in 1.0.").isFalse(); assertThat(noExclude.excludeUnlistedClasses()).as("Exclude unlisted should default false in 1.0.").isFalse();
PersistenceUnitInfo emptyExclude = info[1]; SpringPersistenceUnitInfo emptyExclude = info[1];
assertThat(emptyExclude).as("emptyExclude should not be null.").isNotNull(); assertThat(emptyExclude).as("emptyExclude should not be null.").isNotNull();
assertThat(emptyExclude.getPersistenceUnitName()).as("emptyExclude name is not correct.").isEqualTo("EmptyExcludeElement"); assertThat(emptyExclude.getPersistenceUnitName()).as("emptyExclude name is not correct.").isEqualTo("EmptyExcludeElement");
assertThat(emptyExclude.excludeUnlistedClasses()).as("emptyExclude should be true.").isTrue(); assertThat(emptyExclude.excludeUnlistedClasses()).as("emptyExclude should be true.").isTrue();
PersistenceUnitInfo trueExclude = info[2]; SpringPersistenceUnitInfo trueExclude = info[2];
assertThat(trueExclude).as("trueExclude should not be null.").isNotNull(); assertThat(trueExclude).as("trueExclude should not be null.").isNotNull();
assertThat(trueExclude.getPersistenceUnitName()).as("trueExclude name is not correct.").isEqualTo("TrueExcludeElement"); assertThat(trueExclude.getPersistenceUnitName()).as("trueExclude name is not correct.").isEqualTo("TrueExcludeElement");
assertThat(trueExclude.excludeUnlistedClasses()).as("trueExclude should be true.").isTrue(); assertThat(trueExclude.excludeUnlistedClasses()).as("trueExclude should be true.").isTrue();
PersistenceUnitInfo falseExclude = info[3]; SpringPersistenceUnitInfo falseExclude = info[3];
assertThat(falseExclude).as("falseExclude should not be null.").isNotNull(); assertThat(falseExclude).as("falseExclude should not be null.").isNotNull();
assertThat(falseExclude.getPersistenceUnitName()).as("falseExclude name is not correct.").isEqualTo("FalseExcludeElement"); assertThat(falseExclude.getPersistenceUnitName()).as("falseExclude name is not correct.").isEqualTo("FalseExcludeElement");
assertThat(falseExclude.excludeUnlistedClasses()).as("falseExclude should be false.").isFalse(); assertThat(falseExclude.excludeUnlistedClasses()).as("falseExclude should be false.").isFalse();
@ -317,27 +316,27 @@ class PersistenceXmlParsingTests {
PersistenceUnitReader reader = new PersistenceUnitReader( PersistenceUnitReader reader = new PersistenceUnitReader(
new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup()); new PathMatchingResourcePatternResolver(), new JndiDataSourceLookup());
String resource = "/org/springframework/orm/jpa/persistence-exclude-2.0.xml"; String resource = "/org/springframework/orm/jpa/persistence-exclude-2.0.xml";
PersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource); SpringPersistenceUnitInfo[] info = reader.readPersistenceUnitInfos(resource);
assertThat(info).isNotNull(); assertThat(info).isNotNull();
assertThat(info.length).as("The number of persistence units is incorrect.").isEqualTo(4); assertThat(info.length).as("The number of persistence units is incorrect.").isEqualTo(4);
PersistenceUnitInfo noExclude = info[0]; SpringPersistenceUnitInfo noExclude = info[0];
assertThat(noExclude).as("noExclude should not be null.").isNotNull(); assertThat(noExclude).as("noExclude should not be null.").isNotNull();
assertThat(noExclude.getPersistenceUnitName()).as("noExclude name is not correct.").isEqualTo("NoExcludeElement"); assertThat(noExclude.getPersistenceUnitName()).as("noExclude name is not correct.").isEqualTo("NoExcludeElement");
assertThat(noExclude.excludeUnlistedClasses()).as("Exclude unlisted still defaults to false in 2.0.").isFalse(); assertThat(noExclude.excludeUnlistedClasses()).as("Exclude unlisted still defaults to false in 2.0.").isFalse();
PersistenceUnitInfo emptyExclude = info[1]; SpringPersistenceUnitInfo emptyExclude = info[1];
assertThat(emptyExclude).as("emptyExclude should not be null.").isNotNull(); assertThat(emptyExclude).as("emptyExclude should not be null.").isNotNull();
assertThat(emptyExclude.getPersistenceUnitName()).as("emptyExclude name is not correct.").isEqualTo("EmptyExcludeElement"); assertThat(emptyExclude.getPersistenceUnitName()).as("emptyExclude name is not correct.").isEqualTo("EmptyExcludeElement");
assertThat(emptyExclude.excludeUnlistedClasses()).as("emptyExclude should be true.").isTrue(); assertThat(emptyExclude.excludeUnlistedClasses()).as("emptyExclude should be true.").isTrue();
PersistenceUnitInfo trueExclude = info[2]; SpringPersistenceUnitInfo trueExclude = info[2];
assertThat(trueExclude).as("trueExclude should not be null.").isNotNull(); assertThat(trueExclude).as("trueExclude should not be null.").isNotNull();
assertThat(trueExclude.getPersistenceUnitName()).as("trueExclude name is not correct.").isEqualTo("TrueExcludeElement"); assertThat(trueExclude.getPersistenceUnitName()).as("trueExclude name is not correct.").isEqualTo("TrueExcludeElement");
assertThat(trueExclude.excludeUnlistedClasses()).as("trueExclude should be true.").isTrue(); assertThat(trueExclude.excludeUnlistedClasses()).as("trueExclude should be true.").isTrue();
PersistenceUnitInfo falseExclude = info[3]; SpringPersistenceUnitInfo falseExclude = info[3];
assertThat(falseExclude).as("falseExclude should not be null.").isNotNull(); assertThat(falseExclude).as("falseExclude should not be null.").isNotNull();
assertThat(falseExclude.getPersistenceUnitName()).as("falseExclude name is not correct.").isEqualTo("FalseExcludeElement"); assertThat(falseExclude.getPersistenceUnitName()).as("falseExclude name is not correct.").isEqualTo("FalseExcludeElement");
assertThat(falseExclude.excludeUnlistedClasses()).as("falseExclude should be false.").isFalse(); assertThat(falseExclude.excludeUnlistedClasses()).as("falseExclude should be false.").isFalse();

Loading…
Cancel
Save