Skip to content

Commit 74a9771

Browse files
committed
Refine type hints for Cassandra observability.
See #1321
1 parent b68956e commit 74a9771

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

spring-data-cassandra/src/main/java/org/springframework/data/cassandra/aot/CassandraRuntimeHints.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,17 @@
1818
import java.util.Arrays;
1919
import java.util.List;
2020

21+
import org.springframework.aop.SpringProxy;
22+
import org.springframework.aop.framework.Advised;
2123
import org.springframework.aot.hint.MemberCategory;
2224
import org.springframework.aot.hint.RuntimeHintsRegistrar;
2325
import org.springframework.aot.hint.TypeReference;
26+
import org.springframework.core.DecoratingProxy;
2427
import org.springframework.data.cassandra.core.mapping.event.BeforeConvertCallback;
2528
import org.springframework.data.cassandra.core.mapping.event.BeforeSaveCallback;
2629
import org.springframework.data.cassandra.core.mapping.event.ReactiveBeforeConvertCallback;
2730
import org.springframework.data.cassandra.core.mapping.event.ReactiveBeforeSaveCallback;
31+
import org.springframework.data.cassandra.observability.CassandraObservationSupplier;
2832
import org.springframework.data.cassandra.repository.support.SimpleCassandraRepository;
2933
import org.springframework.data.cassandra.repository.support.SimpleReactiveCassandraRepository;
3034
import org.springframework.data.repository.util.ReactiveWrappers;
@@ -37,7 +41,6 @@
3741
import com.datastax.oss.driver.api.core.cql.PreparedStatement;
3842
import com.datastax.oss.driver.api.core.cql.SimpleStatement;
3943
import com.datastax.oss.driver.api.core.cql.Statement;
40-
import com.datastax.oss.driver.api.core.session.Request;
4144

4245
/**
4346
* {@link RuntimeHintsRegistrar} for repository types and entity callbacks.
@@ -79,18 +82,15 @@ public void registerHints(org.springframework.aot.hint.RuntimeHints hints, @Null
7982
hints.reflection().registerTypes(statementInterfaces.stream().map(TypeReference::of).toList(), builder -> builder
8083
.withMembers(MemberCategory.INTROSPECT_DECLARED_METHODS, MemberCategory.INVOKE_PUBLIC_METHODS));
8184

82-
TypeReference obsSupplier = TypeReference
83-
.of("org.springframework.data.cassandra.observability.CassandraObservationSupplier");
84-
hints.reflection().registerTypes(List.of(obsSupplier), builder -> builder
85+
hints.reflection().registerTypes(List.of(TypeReference.of(CassandraObservationSupplier.class)), builder -> builder
8586
.withMembers(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.INVOKE_PUBLIC_METHODS));
8687

8788
for (Class<?> statementInterface : statementInterfaces) {
88-
hints.proxies().registerJdkProxy(TypeReference.of(statementInterface), TypeReference.of(Request.class),
89-
obsSupplier);
89+
hints.proxies().registerJdkProxy(statementInterface, CassandraObservationSupplier.class, SpringProxy.class,
90+
Advised.class, DecoratingProxy.class);
9091
}
9192

92-
hints.proxies().registerJdkProxy(CqlSession.class);
93+
hints.proxies().registerJdkProxy(CqlSession.class, SpringProxy.class, Advised.class, DecoratingProxy.class);
9394
}
94-
9595
}
9696
}

0 commit comments

Comments
 (0)