Introduce ProxyHints.registerJdkProxy(String...)

Since users might not have a concrete need to work with TypeReference,
this commit introduces ProxyHints.registerJdkProxy(String...) to
simplify use of the API for registering a dynamic proxy based on fully
qualified class names of the required interfaces.

Closes gh-28781
This commit is contained in:
Sam Brannen
2022-07-10 18:51:49 +02:00
parent 9db43037fe
commit b560c10d4c
3 changed files with 39 additions and 2 deletions

View File

@@ -32,6 +32,7 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
* Tests for {@link ProxyHints}.
*
* @author Stephane Nicoll
* @author Sam Brannen
*/
class ProxyHintsTests {
@@ -52,10 +53,17 @@ class ProxyHintsTests {
@Test
void registerJdkProxyWithInterfaceClassNames() {
this.proxyHints.registerJdkProxy(Function.class.getName(), "com.example.Advised");
assertThat(this.proxyHints.jdkProxies()).singleElement()
.satisfies(proxiedInterfaces(Function.class.getName(), "com.example.Advised"));
}
@Test
void registerJdkProxyWithTypeReferences() {
this.proxyHints.registerJdkProxy(TypeReference.of(Function.class),
TypeReference.of("com.example.Advised"));
assertThat(this.proxyHints.jdkProxies()).singleElement().satisfies(proxiedInterfaces(
Function.class.getName(), "com.example.Advised"));
assertThat(this.proxyHints.jdkProxies()).singleElement()
.satisfies(proxiedInterfaces(Function.class.getName(), "com.example.Advised"));
}
@Test