From 5e625c8d2efc4bdf66ce0cf2c6fa58488486c395 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Thu, 25 May 2023 18:45:32 +0200 Subject: [PATCH] Polishing --- .../BeanValidationBeanRegistrationAotProcessor.java | 7 +++++-- .../persistenceunit/DefaultPersistenceUnitManager.java | 9 ++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/BeanValidationBeanRegistrationAotProcessor.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/BeanValidationBeanRegistrationAotProcessor.java index 05d39d12c3..4be5557655 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/BeanValidationBeanRegistrationAotProcessor.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/BeanValidationBeanRegistrationAotProcessor.java @@ -54,7 +54,7 @@ import org.springframework.util.ClassUtils; */ class BeanValidationBeanRegistrationAotProcessor implements BeanRegistrationAotProcessor { - private static final boolean isBeanValidationPresent = ClassUtils.isPresent( + private static final boolean beanValidationPresent = ClassUtils.isPresent( "jakarta.validation.Validation", BeanValidationBeanRegistrationAotProcessor.class.getClassLoader()); private static final Log logger = LogFactory.getLog(BeanValidationBeanRegistrationAotProcessor.class); @@ -63,13 +63,16 @@ class BeanValidationBeanRegistrationAotProcessor implements BeanRegistrationAotP @Override @Nullable public BeanRegistrationAotContribution processAheadOfTime(RegisteredBean registeredBean) { - if (isBeanValidationPresent) { + if (beanValidationPresent) { return BeanValidationDelegate.processAheadOfTime(registeredBean); } return null; } + /** + * Inner class to avoid a hard dependency on the Bean Validation API at runtime. + */ private static class BeanValidationDelegate { @Nullable diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java b/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java index bc19a2e1df..8e33ba53b9 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2022 the original author or authors. + * Copyright 2002-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -444,9 +444,12 @@ public class DefaultPersistenceUnitManager List puis = readPersistenceUnitInfos(); for (SpringPersistenceUnitInfo pui : puis) { + // Determine default persistence unit root URL if (pui.getPersistenceUnitRootUrl() == null) { pui.setPersistenceUnitRootUrl(determineDefaultPersistenceUnitRootUrl()); } + + // Override DataSource and cache/validation mode if (pui.getJtaDataSource() == null && this.defaultJtaDataSource != null) { pui.setJtaDataSource(this.defaultJtaDataSource); } @@ -459,13 +462,17 @@ public class DefaultPersistenceUnitManager if (this.validationMode != null) { pui.setValidationMode(this.validationMode); } + + // Initialize persistence unit ClassLoader if (this.loadTimeWeaver != null) { pui.init(this.loadTimeWeaver); } else { pui.init(this.resourcePatternResolver.getClassLoader()); } + postProcessPersistenceUnitInfo(pui); + String name = pui.getPersistenceUnitName(); if (!this.persistenceUnitInfoNames.add(name) && !isPersistenceUnitOverrideAllowed()) { StringBuilder msg = new StringBuilder();