Skip to content

Commit fd70a80

Browse files
committed
order custom modules
1 parent f3f9a41 commit fd70a80

File tree

8 files changed

+30
-31
lines changed

8 files changed

+30
-31
lines changed

blackbox-multi-scope/src/main/java/org/multi/scope/CrossCutScope.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import jakarta.inject.Scope;
55

66
@Scope
7-
@InjectModule(requires = {ModAScope.class, ModBScope.class}, strictWiring = true)
8-
public @interface CrossCutScope {
9-
}
7+
@InjectModule(
8+
requires = {ModAScope.class, ModBScope.class},
9+
provides = CrossCutScope.class)
10+
public @interface CrossCutScope {}

blackbox-multi-scope/src/main/java/org/multi/scope/ManyScope.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import jakarta.inject.Scope;
55

66
@Scope
7-
@InjectModule(requires = {ModDScope.class, CrossCutScope.class, ModEScope.class}, strictWiring = true)
8-
public @interface ManyScope {
9-
}
7+
@InjectModule(
8+
requires = {ModDScope.class, CrossCutScope.class, ModEScope.class},
9+
provides = ManyScope.class)
10+
public @interface ManyScope {}

blackbox-multi-scope/src/main/java/org/multi/scope/ModAScope.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,5 @@
44
import jakarta.inject.Scope;
55

66
@Scope
7-
@InjectModule(strictWiring = true)
8-
public @interface ModAScope {
9-
}
7+
@InjectModule(provides = ModAScope.class)
8+
public @interface ModAScope {}

blackbox-multi-scope/src/main/java/org/multi/scope/ModBScope.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,5 @@
44
import jakarta.inject.Scope;
55

66
@Scope
7-
@InjectModule(requires = ModCScope.class, strictWiring = true)
8-
public @interface ModBScope {
9-
}
7+
@InjectModule(requires = ModCScope.class, provides = ModBScope.class)
8+
public @interface ModBScope {}

blackbox-multi-scope/src/main/java/org/multi/scope/ModCScope.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,5 @@
44
import jakarta.inject.Scope;
55

66
@Scope
7-
@InjectModule(strictWiring = true)
8-
public @interface ModCScope {
9-
}
7+
@InjectModule(provides = ModCScope.class)
8+
public @interface ModCScope {}

blackbox-multi-scope/src/main/java/org/multi/scope/ModDScope.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import jakarta.inject.Scope;
55

66
@Scope
7-
@InjectModule(requires = {ModAScope.class}, strictWiring = true)
8-
public @interface ModDScope {
9-
10-
}
7+
@InjectModule(
8+
requires = {ModAScope.class},
9+
provides = ModDScope.class)
10+
public @interface ModDScope {}

blackbox-multi-scope/src/main/java/org/multi/scope/ModEScope.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,5 @@
44
import jakarta.inject.Scope;
55

66
@Scope
7-
@InjectModule(requires = {}, strictWiring = true)
8-
public @interface ModEScope {
9-
10-
}
7+
@InjectModule(provides = ModEScope.class)
8+
public @interface ModEScope {}

inject/src/main/java/io/avaje/inject/DBeanScopeBuilder.java

+10-8
Original file line numberDiff line numberDiff line change
@@ -251,12 +251,15 @@ public BeanScope build() {
251251

252252
// sort factories by dependsOn
253253
ModuleOrdering factoryOrder = new FactoryOrder(parent, includeModules, !suppliedBeans.isEmpty());
254-
var modules = serviceLoader.modules();
255-
if (factoryOrder.isEmpty()) {
254+
255+
if (includeModules.isEmpty()) {
256+
var modules = serviceLoader.modules();
256257
// prefer generated ModuleOrdering if provided
257-
factoryOrder = serviceLoader.moduleOrdering()
258-
.filter(o -> o.supportsExpected(modules))
259-
.orElse(factoryOrder);
258+
factoryOrder =
259+
serviceLoader
260+
.moduleOrdering()
261+
.filter(o -> o.supportsExpected(modules))
262+
.orElse(factoryOrder);
260263
modules.forEach(factoryOrder::add);
261264
}
262265

@@ -313,10 +316,9 @@ static class FactoryOrder implements ModuleOrdering {
313316

314317
FactoryOrder(BeanScope parent, Set<AvajeModule> includeModules, boolean suppliedBeans) {
315318
this.parent = parent;
316-
this.factories.addAll(includeModules);
317319
this.suppliedBeans = suppliedBeans;
318320
for (final AvajeModule includeModule : includeModules) {
319-
moduleNames.add(includeModule.getClass().getName());
321+
add(includeModule);
320322
}
321323
}
322324

@@ -417,7 +419,7 @@ private boolean notProvided(String dependency) {
417419
return false;
418420
}
419421
final var factoryList = providesMap.get(dependency);
420-
return (factoryList == null || !factoryList.allPushed());
422+
return factoryList == null || !factoryList.allPushed();
421423
}
422424

423425
/**

0 commit comments

Comments
 (0)