Skip to content

Commit af5e6de

Browse files
committed
Update to leverage @RegisterReflectionForBinding
See spring-projects/spring-framework#28979
1 parent 444a022 commit af5e6de

File tree

8 files changed

+10
-78
lines changed

8 files changed

+10
-78
lines changed
Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,19 @@
11
package com.example.data.redis.reactive;
22

3-
import com.example.data.redis.reactive.DataRedisReactiveApplication.PersonRuntimeHints;
4-
5-
import org.springframework.aot.hint.RuntimeHints;
6-
import org.springframework.aot.hint.RuntimeHintsRegistrar;
3+
import org.springframework.aot.hint.annotation.RegisterReflectionForBinding;
74
import org.springframework.aot.smoketest.thirdpartyhints.NettyRuntimeHints;
85
import org.springframework.boot.SpringApplication;
96
import org.springframework.boot.autoconfigure.SpringBootApplication;
107
import org.springframework.context.annotation.ImportRuntimeHints;
11-
import org.springframework.context.aot.BindingReflectionHintsRegistrar;
128

139
@SpringBootApplication
14-
@ImportRuntimeHints({ NettyRuntimeHints.class, PersonRuntimeHints.class })
10+
@ImportRuntimeHints(NettyRuntimeHints.class)
11+
@RegisterReflectionForBinding(Person.class)
1512
public class DataRedisReactiveApplication {
1613

1714
public static void main(String[] args) throws InterruptedException {
1815
SpringApplication.run(DataRedisReactiveApplication.class, args);
1916
Thread.currentThread().join(); // To be able to measure memory consumption
2017
}
2118

22-
static class PersonRuntimeHints implements RuntimeHintsRegistrar {
23-
24-
private final BindingReflectionHintsRegistrar bindingReflectionHintsRegistrar = new BindingReflectionHintsRegistrar();
25-
26-
@Override
27-
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
28-
this.bindingReflectionHintsRegistrar.registerReflectionHints(hints.reflection(), Person.class);
29-
}
30-
31-
}
32-
3319
}
Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,14 @@
11
package com.example.quartz;
22

3-
import java.util.function.Consumer;
4-
5-
import com.example.quartz.QuartzApplication.QuartzApplicationHints;
6-
7-
import org.springframework.aot.hint.MemberCategory;
8-
import org.springframework.aot.hint.RuntimeHints;
9-
import org.springframework.aot.hint.RuntimeHintsRegistrar;
10-
import org.springframework.aot.hint.TypeHint.Builder;
113
import org.springframework.boot.SpringApplication;
124
import org.springframework.boot.autoconfigure.SpringBootApplication;
13-
import org.springframework.context.annotation.ImportRuntimeHints;
145

156
@SpringBootApplication
16-
@ImportRuntimeHints({ QuartzApplicationHints.class })
177
public class QuartzApplication {
188

199
public static void main(String[] args) throws InterruptedException {
2010
SpringApplication.run(QuartzApplication.class, args);
2111
Thread.currentThread().join(); // To be able to measure memory consumption
2212
}
2313

24-
static class QuartzApplicationHints implements RuntimeHintsRegistrar {
25-
26-
private static final Consumer<Builder> ALL_REFLECTION_HINTS = (builder) -> builder.withMembers(
27-
MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.INVOKE_PUBLIC_METHODS,
28-
MemberCategory.DECLARED_FIELDS);
29-
30-
@Override
31-
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
32-
hints.reflection().registerType(SimpleJob.class, ALL_REFLECTION_HINTS);
33-
}
34-
35-
}
36-
3714
}

quartz/src/main/java/com/example/quartz/QuartzConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@
66
import org.quartz.Trigger;
77
import org.quartz.TriggerBuilder;
88

9+
import org.springframework.aot.hint.annotation.RegisterReflectionForBinding;
910
import org.springframework.context.annotation.Bean;
1011
import org.springframework.context.annotation.Configuration;
1112

1213
@Configuration
1314
class QuartzConfiguration {
1415

1516
@Bean
17+
@RegisterReflectionForBinding(SimpleJob.class)
1618
public JobDetail simpleJobDetail() {
1719
return JobBuilder.newJob(SimpleJob.class).withIdentity("simpleJob").usingJobData("greeting", "Hello world!")
1820
.storeDurably().build();

rest-template/src/main/java/com/example/resttemplate/CLR.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,14 @@
33
import java.net.URI;
44
import java.time.Duration;
55

6-
import com.example.resttemplate.DataDto.DataDtoRuntimeHints;
7-
6+
import org.springframework.aot.hint.annotation.RegisterReflectionForBinding;
87
import org.springframework.boot.CommandLineRunner;
98
import org.springframework.boot.web.client.RestTemplateBuilder;
10-
import org.springframework.context.annotation.ImportRuntimeHints;
119
import org.springframework.stereotype.Component;
1210
import org.springframework.web.client.RestTemplate;
1311

1412
@Component
15-
@ImportRuntimeHints(DataDtoRuntimeHints.class)
13+
@RegisterReflectionForBinding(DataDto.class)
1614
class CLR implements CommandLineRunner {
1715

1816
private final RestTemplateBuilder restTemplateBuilder;

rest-template/src/main/java/com/example/resttemplate/DataDto.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
package com.example.resttemplate;
22

3-
import org.springframework.aot.hint.RuntimeHints;
4-
import org.springframework.aot.hint.RuntimeHintsRegistrar;
5-
import org.springframework.context.aot.BindingReflectionHintsRegistrar;
6-
73
public class DataDto {
84

95
private String url;
@@ -34,15 +30,4 @@ public String toString() {
3430
return "DataDto{" + "url='" + url + '\'' + ", method='" + method + '\'' + '}';
3531
}
3632

37-
static class DataDtoRuntimeHints implements RuntimeHintsRegistrar {
38-
39-
private final BindingReflectionHintsRegistrar bindingReflectionHintsRegistrar = new BindingReflectionHintsRegistrar();
40-
41-
@Override
42-
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
43-
this.bindingReflectionHintsRegistrar.registerReflectionHints(hints.reflection(), DataDto.class);
44-
}
45-
46-
}
47-
4833
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Args = --enable-url-protocols=http,https

webclient/src/main/java/com/example/webclient/CLR.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@
22

33
import java.time.Duration;
44

5-
import com.example.webclient.DataDto.DataDtoRuntimeHints;
6-
5+
import org.springframework.aot.hint.annotation.RegisterReflectionForBinding;
76
import org.springframework.boot.CommandLineRunner;
8-
import org.springframework.context.annotation.ImportRuntimeHints;
97
import org.springframework.stereotype.Component;
108
import org.springframework.web.reactive.function.client.WebClient;
119
import org.springframework.web.reactive.function.client.WebClient.Builder;
1210

1311
@Component
14-
@ImportRuntimeHints(DataDtoRuntimeHints.class)
12+
@RegisterReflectionForBinding(DataDto.class)
1513
class CLR implements CommandLineRunner {
1614

1715
private final Builder webClientBuilder;

webclient/src/main/java/com/example/webclient/DataDto.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
package com.example.webclient;
22

3-
import org.springframework.aot.hint.RuntimeHints;
4-
import org.springframework.aot.hint.RuntimeHintsRegistrar;
5-
import org.springframework.context.aot.BindingReflectionHintsRegistrar;
6-
73
public class DataDto {
84

95
private String url;
@@ -34,15 +30,4 @@ public String toString() {
3430
return "DataDto{" + "url='" + url + '\'' + ", method='" + method + '\'' + '}';
3531
}
3632

37-
static class DataDtoRuntimeHints implements RuntimeHintsRegistrar {
38-
39-
private final BindingReflectionHintsRegistrar bindingReflectionHintsRegistrar = new BindingReflectionHintsRegistrar();
40-
41-
@Override
42-
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
43-
this.bindingReflectionHintsRegistrar.registerReflectionHints(hints.reflection(), DataDto.class);
44-
}
45-
46-
}
47-
4833
}

0 commit comments

Comments
 (0)