Harmonize RuntimeHintsRegistrar implementations

Closes gh-28801
This commit is contained in:
Stephane Nicoll
2022-07-12 18:26:10 +02:00
parent 44d7e2775f
commit 2c92d7da8f
26 changed files with 76 additions and 121 deletions

View File

@@ -38,7 +38,7 @@ import org.springframework.transaction.interceptor.TransactionInterceptor;
*/
@Configuration(proxyBeanMethods = false)
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
@ImportRuntimeHints(TransactionRuntimeHintsRegistrar.class)
@ImportRuntimeHints(TransactionRuntimeHints.class)
public class ProxyTransactionManagementConfiguration extends AbstractTransactionManagementConfiguration {
@Bean(name = TransactionManagementConfigUtils.TRANSACTION_ADVISOR_BEAN_NAME)

View File

@@ -39,9 +39,9 @@ import org.springframework.util.ReflectionUtils;
*
* @author Sebastien Deleuze
* @since 6.0
* @see TransactionRuntimeHintsRegistrar
* @see TransactionRuntimeHints
*/
public class TransactionBeanRegistrationAotProcessor implements BeanRegistrationAotProcessor {
class TransactionBeanRegistrationAotProcessor implements BeanRegistrationAotProcessor {
private final static String JAKARTA_TRANSACTIONAL_CLASS_NAME = "jakarta.transaction.Transactional";
@@ -70,7 +70,7 @@ public class TransactionBeanRegistrationAotProcessor implements BeanRegistration
private static class TransactionBeanRegistrationAotContribution implements BeanRegistrationAotContribution {
private Class<?> beanClass;
private final Class<?> beanClass;
public TransactionBeanRegistrationAotContribution(Class<?> beanClass) {
this.beanClass = beanClass;

View File

@@ -16,13 +16,14 @@
package org.springframework.transaction.annotation;
import java.util.List;
import org.springframework.aot.hint.MemberCategory;
import org.springframework.aot.hint.RuntimeHints;
import org.springframework.aot.hint.RuntimeHintsRegistrar;
import org.springframework.aot.hint.TypeReference;
import org.springframework.aot.hint.support.RuntimeHintsUtils;
import static java.util.Arrays.asList;
import org.springframework.transaction.TransactionDefinition;
/**
* {@link RuntimeHintsRegistrar} implementation that registers runtime hints for
@@ -32,17 +33,16 @@ import static java.util.Arrays.asList;
* @since 6.0
* @see TransactionBeanRegistrationAotProcessor
*/
public class TransactionRuntimeHintsRegistrar implements RuntimeHintsRegistrar {
class TransactionRuntimeHints implements RuntimeHintsRegistrar {
@Override
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
RuntimeHintsUtils.registerAnnotation(hints, org.springframework.transaction.annotation.Transactional.class);
RuntimeHintsUtils.registerAnnotation(hints, Transactional.class);
hints.reflection()
.registerTypes(asList(
TypeReference.of(org.springframework.transaction.annotation.Isolation.class),
TypeReference.of(org.springframework.transaction.annotation.Propagation.class),
TypeReference.of(org.springframework.transaction.TransactionDefinition.class)),
.registerTypes(List.of(
TypeReference.of(Isolation.class),
TypeReference.of(Propagation.class),
TypeReference.of(TransactionDefinition.class)),
builder -> builder.withMembers(MemberCategory.DECLARED_FIELDS));
}
}