Skip to content
This repository was archived by the owner on Feb 23, 2023. It is now read-only.

Commit 0657807

Browse files
committed
Refine Spring Data repositories triggers
This commits changes Spring Data repositories hint triggers to use more "robust" bean types. It also moves Log4j hints used for ElasticSearch to Log4jApiHints. Closes gh-1504 Closes gh-1492
1 parent 0e369dd commit 0657807

File tree

10 files changed

+22
-23
lines changed

10 files changed

+22
-23
lines changed

spring-native-configuration/src/main/java/org/apache/logging/Log4jApiHints.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
import org.apache.logging.log4j.LogManager;
44
import org.apache.logging.log4j.message.DefaultFlowMessageFactory;
5+
import org.apache.logging.log4j.message.ParameterizedMessageFactory;
56
import org.apache.logging.log4j.message.ReusableMessageFactory;
67

78
import org.springframework.nativex.hint.NativeHint;
9+
import org.springframework.nativex.hint.TypeAccess;
810
import org.springframework.nativex.hint.TypeHint;
911
import org.springframework.nativex.type.NativeConfiguration;
1012

@@ -16,7 +18,7 @@
1618
@NativeHint(
1719
trigger = LogManager.class,
1820
types = @TypeHint(types = {
19-
ReusableMessageFactory.class, DefaultFlowMessageFactory.class
21+
ReusableMessageFactory.class, DefaultFlowMessageFactory.class, ParameterizedMessageFactory.class, ReusableMessageFactory.class
2022
})
2123
)
2224
public class Log4jApiHints implements NativeConfiguration {

spring-native-configuration/src/main/java/org/springframework/boot/autoconfigure/data/elasticsearch/ElasticsearchRepositoriesHints.java

+3-8
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
* @author Christoph Strobl
4646
* @author Sebastien Deleuze
4747
*/
48-
@NativeHint(trigger = ElasticsearchRepositoriesAutoConfiguration.class,
48+
@NativeHint(trigger = ElasticsearchRepositoryFactoryBean.class,
4949
types = {
5050
@TypeHint(types = {
5151
ElasticsearchRepositoryFactoryBean.class,
@@ -62,7 +62,7 @@
6262
}, access = { TypeAccess.DECLARED_CONSTRUCTORS, TypeAccess.DECLARED_METHODS, TypeAccess.PUBLIC_METHODS})
6363
},
6464
resources = @ResourceHint(patterns = "versions.properties"))
65-
@NativeHint(trigger = ReactiveElasticsearchRepositoriesAutoConfiguration.class,
65+
@NativeHint(trigger = ReactiveElasticsearchRepositoryFactoryBean.class,
6666
imports = SpringDataReactiveHints.class,
6767
types = {
6868
@TypeHint(
@@ -105,13 +105,8 @@
105105
)
106106

107107
// org.elasticsearch.client.RestClient - required logging configuration
108-
@NativeHint(trigger = ElasticsearchRepositoriesAutoConfiguration.class,
108+
@NativeHint(trigger = ReactiveElasticsearchRepositoryFactoryBean.class,
109109
types = {
110-
@TypeHint(types = {
111-
org.apache.logging.log4j.message.DefaultFlowMessageFactory.class,
112-
org.apache.logging.log4j.message.ParameterizedMessageFactory.class,
113-
org.apache.logging.log4j.message.ReusableMessageFactory.class
114-
}, access = TypeAccess.DECLARED_CONSTRUCTORS),
115110
@TypeHint(typeNames = {
116111
// those cause a lot of errors and warnings in logs if not present
117112
"io.netty.buffer.AbstractByteBufAllocator",

spring-native-configuration/src/main/java/org/springframework/boot/autoconfigure/data/jdbc/JdbcRepositoriesHints.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
/**
3030
* @author Christoph Strobl
3131
*/
32-
@NativeHint(trigger = JdbcRepositoriesAutoConfiguration.class, //
32+
@NativeHint(trigger = JdbcRepositoryFactoryBean.class,
3333
types = {
3434
@TypeHint(types = {
3535
JdbcRepositoryFactoryBean.class,

spring-native-configuration/src/main/java/org/springframework/boot/autoconfigure/data/jpa/JpaRepositoriesHints.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import org.springframework.nativex.hint.TypeHint;
2828
import org.springframework.orm.jpa.SharedEntityManagerCreator;
2929

30-
@NativeHint(trigger = JpaRepositoriesAutoConfiguration.class,
30+
@NativeHint(trigger = JpaRepositoryFactoryBean.class,
3131
resources = @ResourceHint(patterns = "META-INF/jpa-named-queries.properties"),
3232
types = @TypeHint(types = {
3333
SharedEntityManagerCreator.class, // TODO is this one in the right place?

spring-native-configuration/src/main/java/org/springframework/boot/autoconfigure/data/mongodb/MongoDataHints.java spring-native-configuration/src/main/java/org/springframework/boot/autoconfigure/data/mongodb/MongoRepositoriesHints.java

+5-6
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
import org.springframework.boot.autoconfigure.data.SpringDataReactiveHints;
2727
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
2828
import org.springframework.boot.autoconfigure.data.mongo.MongoReactiveDataAutoConfiguration;
29-
import org.springframework.data.mongodb.config.MongoConfigurationSupport;
29+
import org.springframework.data.mongodb.core.MongoDatabaseFactorySupport;
30+
import org.springframework.data.mongodb.core.SimpleReactiveMongoDatabaseFactory;
3031
import org.springframework.data.mongodb.core.mapping.event.AfterConvertCallback;
3132
import org.springframework.data.mongodb.core.mapping.event.AfterSaveCallback;
3233
import org.springframework.data.mongodb.core.mapping.event.BeforeConvertCallback;
@@ -35,8 +36,6 @@
3536
import org.springframework.data.mongodb.core.mapping.event.ReactiveAfterSaveCallback;
3637
import org.springframework.data.mongodb.core.mapping.event.ReactiveBeforeConvertCallback;
3738
import org.springframework.data.mongodb.core.mapping.event.ReactiveBeforeSaveCallback;
38-
import org.springframework.data.mongodb.repository.config.ReactiveMongoRepositoryConfigurationExtension;
39-
import org.springframework.data.mongodb.repository.support.ReactiveMongoRepositoryFactoryBean;
4039
import org.springframework.data.mongodb.repository.support.SimpleMongoRepository;
4140
import org.springframework.data.mongodb.repository.support.SimpleReactiveMongoRepository;
4241
import org.springframework.nativex.domain.proxies.AotProxyDescriptor;
@@ -53,7 +52,7 @@
5352
import org.springframework.util.ClassUtils;
5453

5554

56-
@NativeHint(trigger = MongoDataAutoConfiguration.class, types = {
55+
@NativeHint(trigger = MongoDatabaseFactorySupport.class, types = {
5756
@TypeHint(types = {
5857
SimpleMongoRepository.class,
5958
BeforeConvertCallback.class,
@@ -62,7 +61,7 @@
6261
AfterConvertCallback.class
6362
}, access = { TypeAccess.DECLARED_CONSTRUCTORS, TypeAccess.PUBLIC_METHODS})
6463
})
65-
@NativeHint(trigger = MongoReactiveDataAutoConfiguration.class,
64+
@NativeHint(trigger = SimpleReactiveMongoDatabaseFactory.class,
6665
imports = SpringDataReactiveHints.class,
6766
types = @TypeHint(types = {
6867
SimpleReactiveMongoRepository.class,
@@ -73,7 +72,7 @@
7372
}, access = { TypeAccess.DECLARED_CONSTRUCTORS, TypeAccess.PUBLIC_METHODS})
7473

7574
)
76-
public class MongoDataHints implements NativeConfiguration, TypeSystemNativeConfiguration {
75+
public class MongoRepositoriesHints implements NativeConfiguration, TypeSystemNativeConfiguration {
7776

7877
@Override
7978
public List<HintDeclaration> computeHints(TypeSystem typeSystem) {

spring-native-configuration/src/main/java/org/springframework/boot/autoconfigure/data/neo4j/Neo4jReactiveRepositoriesHints.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,15 @@
2525
import org.springframework.data.neo4j.repository.ReactiveNeo4jRepository;
2626
import org.springframework.data.neo4j.repository.config.ReactiveNeo4jRepositoryConfigurationExtension;
2727
import org.springframework.data.neo4j.repository.support.Neo4jEvaluationContextExtension;
28+
import org.springframework.data.neo4j.repository.support.ReactiveNeo4jRepositoryFactoryBean;
2829
import org.springframework.data.neo4j.repository.support.SimpleReactiveNeo4jRepository;
2930
import org.springframework.nativex.hint.TypeAccess;
3031
import org.springframework.nativex.type.NativeConfiguration;
3132
import org.springframework.nativex.hint.NativeHint;
3233
import org.springframework.nativex.hint.JdkProxyHint;
3334
import org.springframework.nativex.hint.TypeHint;
3435

35-
@NativeHint(trigger = Neo4jReactiveRepositoriesAutoConfiguration.class,
36+
@NativeHint(trigger = ReactiveNeo4jRepositoryFactoryBean.class,
3637
options = "--enable-https", types = {
3738
@TypeHint(types = {
3839
SimpleReactiveNeo4jRepository.class,

spring-native-configuration/src/main/java/org/springframework/boot/autoconfigure/data/neo4j/Neo4jRepositoriesHints.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import org.springframework.nativex.hint.JdkProxyHint;
3333
import org.springframework.nativex.hint.TypeHint;
3434

35-
@NativeHint(trigger = Neo4jRepositoriesAutoConfiguration.class, types = {
35+
@NativeHint(trigger = Neo4jRepositoryFactoryBean.class, types = {
3636
@TypeHint(types = {
3737
SimpleNeo4jRepository.class,
3838
BeforeBindCallback.class,

spring-native-configuration/src/main/java/org/springframework/boot/autoconfigure/data/r2dbc/R2dbcRepositoriesHints.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import org.springframework.nativex.hint.NativeHint;
2727
import org.springframework.nativex.hint.TypeHint;
2828

29-
@NativeHint(trigger = R2dbcRepositoriesAutoConfiguration.class, types = {
29+
@NativeHint(trigger = R2dbcRepositoryFactoryBean.class, types = {
3030
@TypeHint(types = {
3131
R2dbcRepositoryFactoryBean.class,
3232
R2dbcRepositoryConfigurationExtension.class,

spring-native-configuration/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisDataSupportHints.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package org.springframework.boot.autoconfigure.data.redis;
1818

19+
import org.springframework.data.redis.connection.RedisConnectionFactory;
20+
import org.springframework.data.redis.repository.support.RedisRepositoryFactoryBean;
1921
import org.springframework.nativex.hint.TypeAccess;
2022
import org.springframework.nativex.hint.InitializationHint;
2123
import org.springframework.nativex.hint.InitializationTime;
@@ -28,7 +30,7 @@
2830
* @author Christoph Strobl
2931
* @author Sebastien Deleuze
3032
*/
31-
@NativeHint(trigger = RedisAutoConfiguration.class,
33+
@NativeHint(trigger = RedisConnectionFactory.class,
3234
types = @TypeHint(types = {
3335
org.springframework.data.redis.connection.RedisConnection.class,
3436
org.springframework.data.redis.connection.StringRedisConnection.class,
@@ -92,7 +94,7 @@
9294
})
9395
}
9496
)
95-
@NativeHint(trigger = RedisRepositoriesAutoConfiguration.class,
97+
@NativeHint(trigger = RedisRepositoryFactoryBean.class,
9698
types = {
9799
@TypeHint(types = {
98100
org.springframework.data.keyvalue.annotation.KeySpace.class,

spring-native-configuration/src/main/resources/META-INF/spring.factories

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ org.springframework.boot.autoconfigure.aop.AopHints,\
5151
org.springframework.boot.autoconfigure.data.RepositoriesHints,\
5252
org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesHints,\
5353
org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesHints,\
54-
org.springframework.boot.autoconfigure.data.mongodb.MongoDataHints,\
54+
org.springframework.boot.autoconfigure.data.mongodb.MongoRepositoriesHints,\
5555
org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesHints,\
5656
org.springframework.boot.autoconfigure.data.neo4j.Neo4jReactiveRepositoriesHints,\
5757
org.springframework.boot.autoconfigure.data.redis.RedisDataSupportHints,\

0 commit comments

Comments
 (0)