Skip to content

Commit 20b7e71

Browse files
committed
GH-1493 - Explicitly use JDK proxies for JdbcEventPublicationRepositoryV2.
1 parent cc64d53 commit 20b7e71

File tree

3 files changed

+19
-2
lines changed

3 files changed

+19
-2
lines changed

spring-modulith-events/spring-modulith-events-jdbc/src/main/java/org/springframework/modulith/events/jdbc/JdbcEventPublicationAutoConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
import org.springframework.boot.context.properties.EnableConfigurationProperties;
2626
import org.springframework.context.annotation.Bean;
2727
import org.springframework.context.annotation.Configuration;
28+
import org.springframework.context.annotation.ProxyType;
29+
import org.springframework.context.annotation.Proxyable;
2830
import org.springframework.core.env.Environment;
2931
import org.springframework.core.io.ResourceLoader;
3032
import org.springframework.jdbc.core.JdbcTemplate;
@@ -60,6 +62,7 @@ JdbcRepositorySettings jdbcEventPublicationRepositorySettings(DatabaseType datab
6062
}
6163

6264
@Bean
65+
@Proxyable(ProxyType.INTERFACES)
6366
EventPublicationRepository jdbcEventPublicationRepository(JdbcTemplate jdbcTemplate,
6467
EventSerializer serializer, JdbcRepositorySettings settings) {
6568

spring-modulith-events/spring-modulith-events-jdbc/src/test/java/org/springframework/modulith/events/jdbc/JdbcEventPublicationRepositoryIntegrationTests.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,12 @@
3333
import org.junit.jupiter.api.BeforeEach;
3434
import org.junit.jupiter.api.Nested;
3535
import org.junit.jupiter.api.Test;
36+
import org.springframework.aop.support.AopUtils;
3637
import org.springframework.beans.factory.annotation.Autowired;
3738
import org.springframework.boot.jdbc.test.autoconfigure.JdbcTest;
3839
import org.springframework.context.annotation.Import;
3940
import org.springframework.jdbc.core.JdbcOperations;
41+
import org.springframework.modulith.events.core.EventPublicationRepository;
4042
import org.springframework.modulith.events.core.EventSerializer;
4143
import org.springframework.modulith.events.core.PublicationTargetIdentifier;
4244
import org.springframework.modulith.events.core.TargetEventPublication;
@@ -68,7 +70,7 @@ class JdbcEventPublicationRepositoryIntegrationTests {
6870
static abstract class TestBase {
6971

7072
@Autowired JdbcOperations operations;
71-
@Autowired JdbcEventPublicationRepository repository;
73+
@Autowired EventPublicationRepository repository;
7274
@Autowired JdbcRepositorySettings properties;
7375

7476
@MockitoBean EventSerializer serializer;
@@ -84,6 +86,11 @@ void cleanUp() {
8486
}
8587
}
8688

89+
@Test // GH-1493
90+
void createsJdkProxyForRepository() {
91+
assertThat(AopUtils.isJdkDynamicProxy(repository)).isTrue();
92+
}
93+
8794
@Test // GH-3
8895
void shouldPersistAndUpdateEventPublication() {
8996

spring-modulith-events/spring-modulith-events-jdbc/src/test/java/org/springframework/modulith/events/jdbc/JdbcEventPublicationRepositoryV2IntegrationTests.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,13 @@
3333
import org.junit.jupiter.api.BeforeEach;
3434
import org.junit.jupiter.api.Nested;
3535
import org.junit.jupiter.api.Test;
36+
import org.springframework.aop.support.AopUtils;
3637
import org.springframework.beans.factory.annotation.Autowired;
3738
import org.springframework.boot.jdbc.test.autoconfigure.JdbcTest;
3839
import org.springframework.context.annotation.Import;
3940
import org.springframework.jdbc.core.JdbcOperations;
4041
import org.springframework.modulith.events.EventPublication.Status;
42+
import org.springframework.modulith.events.core.EventPublicationRepository;
4143
import org.springframework.modulith.events.core.EventPublicationRepository.FailedCriteria;
4244
import org.springframework.modulith.events.core.EventSerializer;
4345
import org.springframework.modulith.events.core.PublicationTargetIdentifier;
@@ -68,7 +70,7 @@ class JdbcEventPublicationRepositoryV2IntegrationTests {
6870
static abstract class TestBase {
6971

7072
@Autowired JdbcOperations operations;
71-
@Autowired JdbcEventPublicationRepositoryV2 repository;
73+
@Autowired EventPublicationRepository repository;
7274
@Autowired JdbcRepositorySettings properties;
7375

7476
@MockitoBean EventSerializer serializer;
@@ -84,6 +86,11 @@ void cleanUp() {
8486
}
8587
}
8688

89+
@Test // GH-1493
90+
void createsJdkProxyForRepository() {
91+
assertThat(AopUtils.isJdkDynamicProxy(repository)).isTrue();
92+
}
93+
8794
@Test // GH-3
8895
void shouldPersistAndUpdateEventPublication() {
8996

0 commit comments

Comments
 (0)