|
1 | 1 | /* |
2 | | - * Copyright 2022-2023 the original author or authors. |
| 2 | + * Copyright 2022-2025 the original author or authors. |
3 | 3 | * |
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | 5 | * you may not use this file except in compliance with the License. |
|
26 | 26 | import de.codecentric.spring.boot.chaos.monkey.watcher.advice.filter.ChaosMonkeyBaseClassFilter; |
27 | 27 | import de.codecentric.spring.boot.chaos.monkey.watcher.advice.filter.MethodNameFilter; |
28 | 28 | import de.codecentric.spring.boot.chaos.monkey.watcher.advice.filter.RepositoryAnnotatedClassFilter; |
| 29 | +import de.codecentric.spring.boot.chaos.monkey.watcher.advice.filter.RepositoryClassFilter; |
29 | 30 | import de.codecentric.spring.boot.chaos.monkey.watcher.advice.filter.SpringHookMethodsFilter; |
30 | 31 | import lombok.RequiredArgsConstructor; |
31 | 32 | import lombok.val; |
| 33 | +import org.springframework.aop.ClassFilter; |
32 | 34 | import org.springframework.aop.support.ClassFilters; |
33 | 35 | import org.springframework.aop.support.RootClassFilter; |
34 | 36 | import org.springframework.aop.support.annotation.AnnotationClassFilter; |
@@ -90,26 +92,17 @@ public ChaosMonkeyPointcutAdvisor componentPointcutAdvisor(ChaosMonkeyBaseClassF |
90 | 92 | } |
91 | 93 |
|
92 | 94 | @Bean |
93 | | - @ConditionalOnMissingBean(name = "jpaRepositoryPointcutAdvisor") |
| 95 | + @ConditionalOnMissingBean(name = "repositoryPointcutAdvisor") |
94 | 96 | @ConditionalOnClass(name = "org.springframework.data.repository.Repository") |
95 | | - public ChaosMonkeyPointcutAdvisor jpaRepositoryPointcutAdvisor(ChaosMonkeyBaseClassFilter baseClassFilter, ChaosMonkeyRequestScope requestScope, |
| 97 | + public ChaosMonkeyPointcutAdvisor repositoryPointcutAdvisor(ChaosMonkeyBaseClassFilter baseClassFilter, ChaosMonkeyRequestScope requestScope, |
96 | 98 | MetricEventPublisher eventPublisher) throws ClassNotFoundException { |
97 | 99 | @SuppressWarnings("unchecked") |
98 | 100 | val repositoryDefinition = (Class<? extends Annotation>) Class.forName("org.springframework.data.repository.RepositoryDefinition"); |
99 | | - Class<?> repository = Class.forName("org.springframework.data.repository.Repository"); |
100 | | - return new ChaosMonkeyPointcutAdvisor(baseClassFilter, |
101 | | - new ChaosMonkeyDefaultAdvice(requestScope, eventPublisher, ChaosTarget.REPOSITORY, watcherProperties::isRepository), |
102 | | - ClassFilters.union(new AnnotationClassFilter(repositoryDefinition, false), new RootClassFilter(repository)), |
103 | | - SpringHookMethodsFilter.INSTANCE); |
104 | | - } |
105 | 101 |
|
106 | | - @Bean |
107 | | - @ConditionalOnMissingBean(name = "jdbcRepositoryPointcutAdvisor") |
108 | | - public ChaosMonkeyPointcutAdvisor jdbcRepositoryPointcutAdvisor(ChaosMonkeyBaseClassFilter baseClassFilter, ChaosMonkeyRequestScope requestScope, |
109 | | - MetricEventPublisher eventPublisher) { |
| 102 | + ClassFilter[] filters = {new RepositoryClassFilter(), new RepositoryAnnotatedClassFilter(), new AnnotationClassFilter(repositoryDefinition)}; |
110 | 103 | return new ChaosMonkeyPointcutAdvisor(baseClassFilter, |
111 | 104 | new ChaosMonkeyDefaultAdvice(requestScope, eventPublisher, ChaosTarget.REPOSITORY, watcherProperties::isRepository), |
112 | | - new RepositoryAnnotatedClassFilter()); |
| 105 | + ClassFilters.union(filters), SpringHookMethodsFilter.INSTANCE); |
113 | 106 | } |
114 | 107 |
|
115 | 108 | @Bean |
|
0 commit comments