diff --git a/modules/jooby-apt/src/main/resources/io/jooby/internal/apt/Source.java b/modules/jooby-apt/src/main/resources/io/jooby/internal/apt/Source.java index 8beea1cc6c..3a5f01e5a6 100644 --- a/modules/jooby-apt/src/main/resources/io/jooby/internal/apt/Source.java +++ b/modules/jooby-apt/src/main/resources/io/jooby/internal/apt/Source.java @@ -9,7 +9,7 @@ public class ${generatedClassName} implements io.jooby.MvcExtension { } public ${generatedClassName}(java.util.function.Supplier<${className}> provider) { - this(ctx -> provider.get()); + this(ctx -> (${className}) provider.get()); } public ${generatedClassName}(java.util.function.Function factory) { diff --git a/tests/src/test/java/io/jooby/i3756/C3756.java b/tests/src/test/java/io/jooby/i3756/C3756.java new file mode 100644 index 0000000000..47125737e9 --- /dev/null +++ b/tests/src/test/java/io/jooby/i3756/C3756.java @@ -0,0 +1,25 @@ +/* + * Jooby https://jooby.io + * Apache License Version 2.0 https://jooby.io/LICENSE.txt + * Copyright 2014 Edgar Espina + */ +package io.jooby.i3756; + +import io.jooby.annotation.GET; +import io.jooby.annotation.Path; + +@Path("/C3756") +public class C3756 { + private final S3756 s3756; + + public C3756(S3756 s3756) { + super(); + this.s3756 = s3756; + } + + @GET + public String handle() { + s3756.accept("hello"); + return "hello"; + } +} diff --git a/tests/src/test/java/io/jooby/i3756/S3756.java b/tests/src/test/java/io/jooby/i3756/S3756.java new file mode 100644 index 0000000000..2afbf013b5 --- /dev/null +++ b/tests/src/test/java/io/jooby/i3756/S3756.java @@ -0,0 +1,11 @@ +/* + * Jooby https://jooby.io + * Apache License Version 2.0 https://jooby.io/LICENSE.txt + * Copyright 2014 Edgar Espina + */ +package io.jooby.i3756; + +public interface S3756 { + + void accept(String s); +}