Merge pull request #103 from sdeleuze/register-reflection-for-binding
Update to leverage `@RegisterReflectionForBinding`
This commit is contained in:
@@ -1,17 +1,14 @@
|
||||
package com.example.data.redis.reactive;
|
||||
|
||||
import com.example.data.redis.reactive.DataRedisReactiveApplication.PersonRuntimeHints;
|
||||
|
||||
import org.springframework.aot.hint.RuntimeHints;
|
||||
import org.springframework.aot.hint.RuntimeHintsRegistrar;
|
||||
import org.springframework.aot.hint.annotation.RegisterReflectionForBinding;
|
||||
import org.springframework.aot.smoketest.thirdpartyhints.NettyRuntimeHints;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.context.annotation.ImportRuntimeHints;
|
||||
import org.springframework.context.aot.BindingReflectionHintsRegistrar;
|
||||
|
||||
@SpringBootApplication
|
||||
@ImportRuntimeHints({ NettyRuntimeHints.class, PersonRuntimeHints.class })
|
||||
@ImportRuntimeHints(NettyRuntimeHints.class)
|
||||
@RegisterReflectionForBinding(Person.class)
|
||||
public class DataRedisReactiveApplication {
|
||||
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
@@ -19,15 +16,4 @@ public class DataRedisReactiveApplication {
|
||||
Thread.currentThread().join(); // To be able to measure memory consumption
|
||||
}
|
||||
|
||||
static class PersonRuntimeHints implements RuntimeHintsRegistrar {
|
||||
|
||||
private final BindingReflectionHintsRegistrar bindingReflectionHintsRegistrar = new BindingReflectionHintsRegistrar();
|
||||
|
||||
@Override
|
||||
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
|
||||
this.bindingReflectionHintsRegistrar.registerReflectionHints(hints.reflection(), Person.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,19 +1,9 @@
|
||||
package com.example.quartz;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import com.example.quartz.QuartzApplication.QuartzApplicationHints;
|
||||
|
||||
import org.springframework.aot.hint.MemberCategory;
|
||||
import org.springframework.aot.hint.RuntimeHints;
|
||||
import org.springframework.aot.hint.RuntimeHintsRegistrar;
|
||||
import org.springframework.aot.hint.TypeHint.Builder;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.context.annotation.ImportRuntimeHints;
|
||||
|
||||
@SpringBootApplication
|
||||
@ImportRuntimeHints({ QuartzApplicationHints.class })
|
||||
public class QuartzApplication {
|
||||
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
@@ -21,17 +11,4 @@ public class QuartzApplication {
|
||||
Thread.currentThread().join(); // To be able to measure memory consumption
|
||||
}
|
||||
|
||||
static class QuartzApplicationHints implements RuntimeHintsRegistrar {
|
||||
|
||||
private static final Consumer<Builder> ALL_REFLECTION_HINTS = (builder) -> builder.withMembers(
|
||||
MemberCategory.INVOKE_DECLARED_CONSTRUCTORS, MemberCategory.INVOKE_PUBLIC_METHODS,
|
||||
MemberCategory.DECLARED_FIELDS);
|
||||
|
||||
@Override
|
||||
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
|
||||
hints.reflection().registerType(SimpleJob.class, ALL_REFLECTION_HINTS);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import org.quartz.SimpleScheduleBuilder;
|
||||
import org.quartz.Trigger;
|
||||
import org.quartz.TriggerBuilder;
|
||||
|
||||
import org.springframework.aot.hint.annotation.RegisterReflectionForBinding;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@@ -13,6 +14,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
class QuartzConfiguration {
|
||||
|
||||
@Bean
|
||||
@RegisterReflectionForBinding(SimpleJob.class)
|
||||
public JobDetail simpleJobDetail() {
|
||||
return JobBuilder.newJob(SimpleJob.class).withIdentity("simpleJob").usingJobData("greeting", "Hello world!")
|
||||
.storeDurably().build();
|
||||
|
||||
@@ -3,16 +3,14 @@ package com.example.resttemplate;
|
||||
import java.net.URI;
|
||||
import java.time.Duration;
|
||||
|
||||
import com.example.resttemplate.DataDto.DataDtoRuntimeHints;
|
||||
|
||||
import org.springframework.aot.hint.annotation.RegisterReflectionForBinding;
|
||||
import org.springframework.boot.CommandLineRunner;
|
||||
import org.springframework.boot.web.client.RestTemplateBuilder;
|
||||
import org.springframework.context.annotation.ImportRuntimeHints;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
@Component
|
||||
@ImportRuntimeHints(DataDtoRuntimeHints.class)
|
||||
@RegisterReflectionForBinding(DataDto.class)
|
||||
class CLR implements CommandLineRunner {
|
||||
|
||||
private final RestTemplateBuilder restTemplateBuilder;
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
package com.example.resttemplate;
|
||||
|
||||
import org.springframework.aot.hint.RuntimeHints;
|
||||
import org.springframework.aot.hint.RuntimeHintsRegistrar;
|
||||
import org.springframework.context.aot.BindingReflectionHintsRegistrar;
|
||||
|
||||
public class DataDto {
|
||||
|
||||
private String url;
|
||||
@@ -34,15 +30,4 @@ public class DataDto {
|
||||
return "DataDto{" + "url='" + url + '\'' + ", method='" + method + '\'' + '}';
|
||||
}
|
||||
|
||||
static class DataDtoRuntimeHints implements RuntimeHintsRegistrar {
|
||||
|
||||
private final BindingReflectionHintsRegistrar bindingReflectionHintsRegistrar = new BindingReflectionHintsRegistrar();
|
||||
|
||||
@Override
|
||||
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
|
||||
this.bindingReflectionHintsRegistrar.registerReflectionHints(hints.reflection(), DataDto.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
Args = --enable-url-protocols=http,https
|
||||
@@ -2,16 +2,14 @@ package com.example.webclient;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import com.example.webclient.DataDto.DataDtoRuntimeHints;
|
||||
|
||||
import org.springframework.aot.hint.annotation.RegisterReflectionForBinding;
|
||||
import org.springframework.boot.CommandLineRunner;
|
||||
import org.springframework.context.annotation.ImportRuntimeHints;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.reactive.function.client.WebClient;
|
||||
import org.springframework.web.reactive.function.client.WebClient.Builder;
|
||||
|
||||
@Component
|
||||
@ImportRuntimeHints(DataDtoRuntimeHints.class)
|
||||
@RegisterReflectionForBinding(DataDto.class)
|
||||
class CLR implements CommandLineRunner {
|
||||
|
||||
private final Builder webClientBuilder;
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
package com.example.webclient;
|
||||
|
||||
import org.springframework.aot.hint.RuntimeHints;
|
||||
import org.springframework.aot.hint.RuntimeHintsRegistrar;
|
||||
import org.springframework.context.aot.BindingReflectionHintsRegistrar;
|
||||
|
||||
public class DataDto {
|
||||
|
||||
private String url;
|
||||
@@ -34,15 +30,4 @@ public class DataDto {
|
||||
return "DataDto{" + "url='" + url + '\'' + ", method='" + method + '\'' + '}';
|
||||
}
|
||||
|
||||
static class DataDtoRuntimeHints implements RuntimeHintsRegistrar {
|
||||
|
||||
private final BindingReflectionHintsRegistrar bindingReflectionHintsRegistrar = new BindingReflectionHintsRegistrar();
|
||||
|
||||
@Override
|
||||
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
|
||||
this.bindingReflectionHintsRegistrar.registerReflectionHints(hints.reflection(), DataDto.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user