From ce57e16bc1d02471589e31c8d04cc7baa75df1f2 Mon Sep 17 00:00:00 2001 From: Josiah Noel <32279667+SentryMan@users.noreply.github.com> Date: Thu, 26 Jun 2025 22:38:16 -0400 Subject: [PATCH] fix factory method list soft dependencies fixes an issue where factory methods threw compilation exceptions for empty lists --- .../src/main/java/org/example/myapp/ListFactory.java | 2 +- .../src/main/java/io/avaje/inject/generator/MethodReader.java | 2 +- .../io/avaje/inject/generator/models/valid/ListFactory.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/blackbox-test-inject/src/main/java/org/example/myapp/ListFactory.java b/blackbox-test-inject/src/main/java/org/example/myapp/ListFactory.java index 7ec52917e..f2e8dae6d 100644 --- a/blackbox-test-inject/src/main/java/org/example/myapp/ListFactory.java +++ b/blackbox-test-inject/src/main/java/org/example/myapp/ListFactory.java @@ -12,7 +12,7 @@ public class ListFactory { @Bean - List test() { + List test(List emptyList) { return List.of("test1", "test2"); } 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 d5a6f7b89..56925ad62 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 @@ -204,7 +204,7 @@ MetaData createMeta() { for (final MethodParam param : params) { var dep = Util.addQualifierSuffix(param.named, Util.trimWildcard(param.paramType)); - dependsOn.add(dep); + dependsOn.add(param.utilType.isCollection() ? Constants.SOFT_DEPENDENCY + dep : dep); } metaData.setDependsOn(dependsOn); metaData.setProvides( diff --git a/inject-generator/src/test/java/io/avaje/inject/generator/models/valid/ListFactory.java b/inject-generator/src/test/java/io/avaje/inject/generator/models/valid/ListFactory.java index 3389b0c82..3b9061a0b 100644 --- a/inject-generator/src/test/java/io/avaje/inject/generator/models/valid/ListFactory.java +++ b/inject-generator/src/test/java/io/avaje/inject/generator/models/valid/ListFactory.java @@ -9,7 +9,7 @@ public class ListFactory { @Bean(initMethod = "postConstruct") - List userId() { + List userId(List shortyList) { return List.of(new Something()); }