diff --git a/inject-generator/pom.xml b/inject-generator/pom.xml
index 78ccf883..94e21c4d 100644
--- a/inject-generator/pom.xml
+++ b/inject-generator/pom.xml
@@ -13,7 +13,7 @@
avaje inject generator
annotation processor generating source code for avaje-inject dependency injection
- 1.35
+ 1.36
@@ -39,7 +39,7 @@
avaje-spi-service
2.8
-
+
io.avaje
avaje-http-api
@@ -47,7 +47,7 @@
true
provided
-
+
io.avaje
diff --git a/inject-generator/src/main/java/io/avaje/inject/generator/ProcessingContext.java b/inject-generator/src/main/java/io/avaje/inject/generator/ProcessingContext.java
index 23eb1b5b..ef445771 100644
--- a/inject-generator/src/main/java/io/avaje/inject/generator/ProcessingContext.java
+++ b/inject-generator/src/main/java/io/avaje/inject/generator/ProcessingContext.java
@@ -32,6 +32,7 @@ static final class Ctx {
private final List modules = new ArrayList<>();
private final List delayQueue = new ArrayList<>();
private final Set spiServices = new TreeSet<>();
+ private final Set externalSpi = new TreeSet<>();
private boolean strictWiring;
private final boolean mergeServices = APContext.getOption("mergeServices").map(Boolean::valueOf).orElse(true);
@@ -49,7 +50,7 @@ static void registerProvidedTypes(Set moduleFileProvided) {
private static void addEventSPI() {
try {
if (typeElement(EVENTS_SPI) != null || Class.forName(EVENTS_SPI) != null) {
- addInjectSPI(EVENTS_SPI);
+ addExternalInjectSPI(EVENTS_SPI);
}
} catch (final ClassNotFoundException e) {
// nothing
@@ -107,7 +108,7 @@ static void addInjectSPI(String type) {
static void addExternalInjectSPI(String type) {
if (CTX.get().mergeServices) {
- CTX.get().spiServices.add(type);
+ CTX.get().externalSpi.add(type);
}
}
@@ -158,10 +159,11 @@ static void addImportedAspects(Map importedMap) {
}
static void validateModule() {
- APContext.moduleInfoReader().ifPresent(reader -> {
- CTX.get().spiServices.remove(EVENTS_SPI);
- reader.validateServices("io.avaje.inject.spi.InjectExtension", CTX.get().spiServices);
- });
+ APContext.moduleInfoReader()
+ .ifPresent(
+ reader ->
+ reader.validateServices(
+ "io.avaje.inject.spi.InjectExtension", CTX.get().spiServices));
}
static Optional getImportedAspect(String type) {
@@ -220,7 +222,8 @@ static void writeSPIServicesFile() {
FileObject jfo = createMetaInfWriterFor(Constants.META_INF_SPI);
if (jfo != null) {
var writer = new Append(jfo.openWriter());
- for (var service : CTX.get().spiServices) {
+ CTX.get().externalSpi.addAll(CTX.get().spiServices);
+ for (var service : CTX.get().externalSpi) {
writer.append(service).eol();
}
writer.close();
@@ -244,7 +247,7 @@ private static void readExistingMetaInfServices() {
line.replaceAll("\\s", "")
.replace(",", "\n")
.lines()
- .forEach(ProcessingContext::addInjectSPI);
+ .forEach(ProcessingContext::addExternalInjectSPI);
}
} catch (Exception e) {
// not a critical error