Skip to content

Commit baed403

Browse files
Polish SessionJdbcRuntimeHints
Issue gh-2103
1 parent cd51c36 commit baed403

File tree

3 files changed

+40
-4
lines changed

3 files changed

+40
-4
lines changed

spring-session-jdbc/spring-session-jdbc.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ dependencies {
1515
testImplementation "org.springframework:spring-web"
1616
testImplementation "org.springframework.security:spring-security-core"
1717
testImplementation "org.junit.jupiter:junit-jupiter-api"
18+
testImplementation "org.junit.jupiter:junit-jupiter-params"
1819
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine"
1920

2021
integrationTestCompile "com.h2database:h2"

spring-session-jdbc/src/main/java/org/springframework/session/jdbc/aot/hint/SessionJdbcRuntimeHints.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,26 @@ class SessionJdbcRuntimeHints implements RuntimeHintsRegistrar {
3232
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
3333
hints.reflection().registerType(TypeReference.of("javax.sql.DataSource"),
3434
(hint) -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS));
35-
hints.resources().registerPattern("org/springframework/session/jdbc/*.sql");
35+
hints.resources().registerPattern("org/springframework/session/jdbc/schema-db2.sql")
36+
.registerPattern("org/springframework/session/jdbc/schema-derby.sql")
37+
.registerPattern("org/springframework/session/jdbc/schema-drop-db2.sql")
38+
.registerPattern("org/springframework/session/jdbc/schema-drop-derby.sql")
39+
.registerPattern("org/springframework/session/jdbc/schema-drop-h2.sql")
40+
.registerPattern("org/springframework/session/jdbc/schema-drop-hsqldb.sql")
41+
.registerPattern("org/springframework/session/jdbc/schema-drop-mysql.sql")
42+
.registerPattern("org/springframework/session/jdbc/schema-drop-oracle.sql")
43+
.registerPattern("org/springframework/session/jdbc/schema-drop-postgresql.sql")
44+
.registerPattern("org/springframework/session/jdbc/schema-drop-sqlite.sql")
45+
.registerPattern("org/springframework/session/jdbc/schema-drop-sqlserver.sql")
46+
.registerPattern("org/springframework/session/jdbc/schema-drop-sybase.sql")
47+
.registerPattern("org/springframework/session/jdbc/schema-h2.sql")
48+
.registerPattern("org/springframework/session/jdbc/schema-hsqldb.sql")
49+
.registerPattern("org/springframework/session/jdbc/schema-mysql.sql")
50+
.registerPattern("org/springframework/session/jdbc/schema-oracle.sql")
51+
.registerPattern("org/springframework/session/jdbc/schema-postgresql.sql")
52+
.registerPattern("org/springframework/session/jdbc/schema-sqlite.sql")
53+
.registerPattern("org/springframework/session/jdbc/schema-sqlserver.sql")
54+
.registerPattern("org/springframework/session/jdbc/schema-sybase.sql");
3655
}
3756

3857
}

spring-session-jdbc/src/test/java/org/springframework/session/jdbc/aot/hint/SessionJdbcRuntimeHintsTests.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,20 @@
1616

1717
package org.springframework.session.jdbc.aot.hint;
1818

19+
import java.io.IOException;
20+
import java.util.Arrays;
21+
import java.util.stream.Stream;
22+
1923
import org.junit.jupiter.api.Test;
24+
import org.junit.jupiter.params.ParameterizedTest;
25+
import org.junit.jupiter.params.provider.MethodSource;
2026

2127
import org.springframework.aot.hint.RuntimeHints;
2228
import org.springframework.aot.hint.RuntimeHintsRegistrar;
2329
import org.springframework.aot.hint.TypeReference;
2430
import org.springframework.aot.hint.predicate.RuntimeHintsPredicates;
31+
import org.springframework.core.io.Resource;
32+
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
2533
import org.springframework.core.io.support.SpringFactoriesLoader;
2634

2735
import static org.assertj.core.api.Assertions.assertThat;
@@ -45,13 +53,21 @@ void aotFactoriesContainsRegistrar() {
4553
assertThat(match).isTrue();
4654
}
4755

48-
@Test
49-
void jdbcSchemasHasHints() {
56+
@ParameterizedTest
57+
@MethodSource("getSchemaFileNames")
58+
void jdbcSchemasHasHints(String schemaFileName) {
5059
this.sessionJdbcRuntimeHints.registerHints(this.hints, getClass().getClassLoader());
51-
assertThat(RuntimeHintsPredicates.resource().forResource("org/springframework/session/jdbc/schema.sql"))
60+
assertThat(RuntimeHintsPredicates.resource().forResource("org/springframework/session/jdbc/" + schemaFileName))
5261
.accepts(this.hints);
5362
}
5463

64+
private static Stream<String> getSchemaFileNames() throws IOException {
65+
return Arrays
66+
.stream(new PathMatchingResourcePatternResolver()
67+
.getResources("classpath*:org/springframework/session/jdbc/schema-*.sql"))
68+
.map(Resource::getFilename);
69+
}
70+
5571
@Test
5672
void dataSourceHasHints() {
5773
this.sessionJdbcRuntimeHints.registerHints(this.hints, getClass().getClassLoader());

0 commit comments

Comments
 (0)