Skip to content

Commit e5ff444

Browse files
authored
Merge pull request #385 from avaje/feature/fix-external-optional
Fix for partial compile failing for external optional Dependency
2 parents 20084e1 + 4c64490 commit e5ff444

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

inject-generator/src/main/java/io/avaje/inject/generator/Dependency.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
final class Dependency {
44

55
private final String name;
6-
private final boolean softDependency;
6+
private boolean softDependency;
77
private final boolean conditionalDependency;
88

99
Dependency(String name) {
@@ -58,4 +58,9 @@ public boolean isConditionalDependency() {
5858
String dependsOn() {
5959
return toString();
6060
}
61+
62+
/** External dependency */
63+
void markExternal() {
64+
softDependency = true;
65+
}
6166
}

inject-generator/src/main/java/io/avaje/inject/generator/MetaData.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
import static io.avaje.inject.generator.ProcessingContext.*;
44

5-
import java.util.ArrayList;
6-
import java.util.List;
7-
import java.util.Set;
5+
import java.util.*;
86
import java.util.stream.Collectors;
97

108

@@ -39,7 +37,7 @@ final class MetaData {
3937

4038
private boolean generateProxy;
4139
private boolean usesExternalDependency;
42-
private String externalDependency;
40+
private Set<String> externalDependencies = new HashSet<>();
4341
private boolean importedComponent;
4442

4543
MetaData(DependencyMetaPrism meta) {
@@ -178,7 +176,7 @@ void buildMethod(Append append) {
178176
return;
179177
}
180178
if (usesExternalDependency) {
181-
append.append(" // uses external dependency ").append(externalDependency).append(NEWLINE);
179+
append.append(" // uses external dependency " + externalDependencies + NEWLINE);
182180
}
183181

184182
final var hasName = name != null;
@@ -280,6 +278,11 @@ void setProvidesAspect(String providesAspect) {
280278
*/
281279
void markWithExternalDependency(String name) {
282280
usesExternalDependency = true;
283-
externalDependency = name;
281+
externalDependencies.add(name);
282+
for (Dependency dependency : dependsOn) {
283+
if (name.equals(dependency.name())) {
284+
dependency.markExternal();
285+
}
286+
}
284287
}
285288
}

0 commit comments

Comments
 (0)