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