diff --git a/blackbox-test-inject/src/main/java/org/example/myapp/config/MyAopProviderConsumer.java b/blackbox-test-inject/src/main/java/org/example/myapp/config/MyAopProviderConsumer.java new file mode 100644 index 000000000..77c6a9b78 --- /dev/null +++ b/blackbox-test-inject/src/main/java/org/example/myapp/config/MyAopProviderConsumer.java @@ -0,0 +1,20 @@ +package org.example.myapp.config; + +import io.avaje.inject.Component; +import jakarta.inject.Provider; +import org.example.myapp.aspect.MyTimed; + +@Component +@MyTimed +public class MyAopProviderConsumer { + + final Provider builderProvider; + + public MyAopProviderConsumer(Provider builderProvider) { + this.builderProvider = builderProvider; + } + + public AppConfig.Builder doStuff() { + return builderProvider.get(); + } +} diff --git a/blackbox-test-inject/src/test/java/org/example/myapp/config/MyAopProviderConsumerTest.java b/blackbox-test-inject/src/test/java/org/example/myapp/config/MyAopProviderConsumerTest.java new file mode 100644 index 000000000..f8c34a749 --- /dev/null +++ b/blackbox-test-inject/src/test/java/org/example/myapp/config/MyAopProviderConsumerTest.java @@ -0,0 +1,23 @@ +package org.example.myapp.config; + +import io.avaje.inject.test.InjectTest; +import jakarta.inject.Inject; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +@InjectTest +class MyAopProviderConsumerTest { + + @Inject MyAopProviderConsumer consumer; + + @Test + void doStuff() { + AppConfig.Builder builder1 = consumer.doStuff(); + AppConfig.Builder builder2 = consumer.doStuff(); + + assertThat(builder1).isNotNull(); + assertThat(builder2).isNotNull(); + assertThat(builder2).isNotSameAs(builder1); + } +} diff --git a/inject-generator/src/main/java/io/avaje/inject/generator/MethodReader.java b/inject-generator/src/main/java/io/avaje/inject/generator/MethodReader.java index dfc31234e..a58b345b8 100644 --- a/inject-generator/src/main/java/io/avaje/inject/generator/MethodReader.java +++ b/inject-generator/src/main/java/io/avaje/inject/generator/MethodReader.java @@ -669,10 +669,10 @@ void writeMethodParam(Append writer) { if (nullable) { writer.append("@Nullable "); } - if (genericType.isGeneric()) { - writer.append(genericType.shortWithoutAnnotations()); + if (fullUType.isGeneric()) { + writer.append(fullUType.shortWithoutAnnotations()); } else { - writer.append(Util.shortName(genericType.mainType())); + writer.append(Util.shortName(fullUType.mainType())); } writer.append(" ").append(simpleName); }