Skip to content

Commit 580bd30

Browse files
committed
update GraalVM runtime hints (spring-projects#4844)
Signed-off-by: Andrey Litvitski <[email protected]>
1 parent 08c4cb1 commit 580bd30

File tree

2 files changed

+23
-32
lines changed

2 files changed

+23
-32
lines changed

spring-batch-core/src/main/java/org/springframework/batch/core/aot/CoreRuntimeHints.java

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
* @author Glenn Renfro
7070
* @author Mahmoud Ben Hassine
7171
* @author Alexander Arshavskiy
72+
* @author Andrey Litvitski
7273
* @since 5.0
7374
*/
7475
public class CoreRuntimeHints implements RuntimeHintsRegistrar {
@@ -83,18 +84,9 @@ public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
8384
"java.util.concurrent.ConcurrentHashMap$Segment");
8485

8586
// resource hints
86-
hints.resources().registerPattern("org/springframework/batch/core/schema-h2.sql");
87-
hints.resources().registerPattern("org/springframework/batch/core/schema-derby.sql");
88-
hints.resources().registerPattern("org/springframework/batch/core/schema-hsqldb.sql");
89-
hints.resources().registerPattern("org/springframework/batch/core/schema-sqlite.sql");
90-
hints.resources().registerPattern("org/springframework/batch/core/schema-db2.sql");
91-
hints.resources().registerPattern("org/springframework/batch/core/schema-hana.sql");
92-
hints.resources().registerPattern("org/springframework/batch/core/schema-mysql.sql");
93-
hints.resources().registerPattern("org/springframework/batch/core/schema-mariadb.sql");
94-
hints.resources().registerPattern("org/springframework/batch/core/schema-oracle.sql");
95-
hints.resources().registerPattern("org/springframework/batch/core/schema-postgresql.sql");
96-
hints.resources().registerPattern("org/springframework/batch/core/schema-sqlserver.sql");
97-
hints.resources().registerPattern("org/springframework/batch/core/schema-sybase.sql");
87+
hints.resources().registerPattern(
88+
"org/springframework/batch/core/schema-{h2,derby,hsqldb,sqlite,db2,hana,mysql,mariadb,oracle,postgresql,sqlserver,sybase}.sql"
89+
);
9890

9991
// proxy hints
10092
hints.proxies()
@@ -130,19 +122,19 @@ public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
130122
.proxiedInterfaces(SpringProxy.class, Advised.class, DecoratingProxy.class));
131123

132124
// reflection hints
133-
hints.reflection().registerType(Types.class, MemberCategory.DECLARED_FIELDS);
134-
hints.reflection().registerType(JobContext.class, MemberCategory.INVOKE_PUBLIC_METHODS);
135-
hints.reflection().registerType(StepContext.class, MemberCategory.INVOKE_PUBLIC_METHODS);
136-
hints.reflection().registerType(JobParameter.class, MemberCategory.values());
137-
hints.reflection().registerType(JobParameters.class, MemberCategory.values());
138-
hints.reflection().registerType(ExitStatus.class, MemberCategory.values());
139-
hints.reflection().registerType(JobInstance.class, MemberCategory.values());
140-
hints.reflection().registerType(JobExecution.class, MemberCategory.values());
141-
hints.reflection().registerType(StepExecution.class, MemberCategory.values());
142-
hints.reflection().registerType(StepContribution.class, MemberCategory.values());
143-
hints.reflection().registerType(Entity.class, MemberCategory.values());
144-
hints.reflection().registerType(ExecutionContext.class, MemberCategory.values());
145-
hints.reflection().registerType(Chunk.class, MemberCategory.values());
125+
hints.reflection().registerType(Types.class);
126+
hints.reflection().registerType(JobContext.class);
127+
hints.reflection().registerType(StepContext.class);
128+
hints.reflection().registerType(JobParameter.class);
129+
hints.reflection().registerType(JobParameters.class);
130+
hints.reflection().registerType(ExitStatus.class);
131+
hints.reflection().registerType(JobInstance.class);
132+
hints.reflection().registerType(JobExecution.class);
133+
hints.reflection().registerType(StepExecution.class);
134+
hints.reflection().registerType(StepContribution.class);
135+
hints.reflection().registerType(Entity.class);
136+
hints.reflection().registerType(ExecutionContext.class);
137+
hints.reflection().registerType(Chunk.class);
146138
jdkTypes.stream()
147139
.map(TypeReference::of)
148140
.forEach(type -> hints.reflection().registerType(type, MemberCategory.values()));

spring-batch-integration/src/main/java/org/springframework/batch/integration/aot/IntegrationRuntimeHints.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2023-2024 the original author or authors.
2+
* Copyright 2023-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -15,7 +15,6 @@
1515
*/
1616
package org.springframework.batch.integration.aot;
1717

18-
import org.springframework.aot.hint.MemberCategory;
1918
import org.springframework.aot.hint.RuntimeHints;
2019
import org.springframework.aot.hint.RuntimeHintsRegistrar;
2120
import org.springframework.batch.integration.chunk.ChunkRequest;
@@ -28,18 +27,18 @@
2827
* AOT hints for Spring Batch integration module.
2928
*
3029
* @author Mahmoud Ben Hassine
30+
* @author Andrey Litvitski
3131
* @since 5.0.1
3232
*/
3333
public class IntegrationRuntimeHints implements RuntimeHintsRegistrar {
3434

3535
@Override
3636
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
3737
// reflection hints
38-
MemberCategory[] memberCategories = MemberCategory.values();
39-
hints.reflection().registerType(ChunkRequest.class, memberCategories);
40-
hints.reflection().registerType(ChunkResponse.class, memberCategories);
41-
hints.reflection().registerType(StepExecutionRequestHandler.class, memberCategories);
42-
hints.reflection().registerType(MessageChannelPartitionHandler.class, memberCategories);
38+
hints.reflection().registerType(ChunkRequest.class);
39+
hints.reflection().registerType(ChunkResponse.class);
40+
hints.reflection().registerType(StepExecutionRequestHandler.class);
41+
hints.reflection().registerType(MessageChannelPartitionHandler.class);
4342

4443
// serialization hints
4544
hints.serialization().registerType(ChunkRequest.class);

0 commit comments

Comments
 (0)