Skip to content

Commit 9191a6f

Browse files
authored
Merge pull request #740 from SentryMan/module-validation
Fix Module Validation
1 parent 6df90cf commit 9191a6f

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

inject-generator/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<name>avaje inject generator</name>
1414
<description>annotation processor generating source code for avaje-inject dependency injection</description>
1515
<properties>
16-
<avaje.prisms.version>1.35</avaje.prisms.version>
16+
<avaje.prisms.version>1.36</avaje.prisms.version>
1717
<!-- VALHALLA-START ___
1818
<maven.compiler.enablePreview>false</maven.compiler.enablePreview>
1919
____ VALHALLA-END -->
@@ -39,15 +39,15 @@
3939
<artifactId>avaje-spi-service</artifactId>
4040
<version>2.8</version>
4141
</dependency>
42-
42+
4343
<dependency>
4444
<groupId>io.avaje</groupId>
4545
<artifactId>avaje-http-api</artifactId>
4646
<version>2.8</version>
4747
<optional>true</optional>
4848
<scope>provided</scope>
4949
</dependency>
50-
50+
5151
<!-- test dependencies -->
5252
<dependency>
5353
<groupId>io.avaje</groupId>

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

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ static final class Ctx {
3232
private final List<ModuleData> modules = new ArrayList<>();
3333
private final List<TypeElement> delayQueue = new ArrayList<>();
3434
private final Set<String> spiServices = new TreeSet<>();
35+
private final Set<String> externalSpi = new TreeSet<>();
3536
private boolean strictWiring;
3637
private final boolean mergeServices = APContext.getOption("mergeServices").map(Boolean::valueOf).orElse(true);
3738

@@ -49,7 +50,7 @@ static void registerProvidedTypes(Set<String> moduleFileProvided) {
4950
private static void addEventSPI() {
5051
try {
5152
if (typeElement(EVENTS_SPI) != null || Class.forName(EVENTS_SPI) != null) {
52-
addInjectSPI(EVENTS_SPI);
53+
addExternalInjectSPI(EVENTS_SPI);
5354
}
5455
} catch (final ClassNotFoundException e) {
5556
// nothing
@@ -107,7 +108,7 @@ static void addInjectSPI(String type) {
107108

108109
static void addExternalInjectSPI(String type) {
109110
if (CTX.get().mergeServices) {
110-
CTX.get().spiServices.add(type);
111+
CTX.get().externalSpi.add(type);
111112
}
112113
}
113114

@@ -158,10 +159,11 @@ static void addImportedAspects(Map<String, AspectImportPrism> importedMap) {
158159
}
159160

160161
static void validateModule() {
161-
APContext.moduleInfoReader().ifPresent(reader -> {
162-
CTX.get().spiServices.remove(EVENTS_SPI);
163-
reader.validateServices("io.avaje.inject.spi.InjectExtension", CTX.get().spiServices);
164-
});
162+
APContext.moduleInfoReader()
163+
.ifPresent(
164+
reader ->
165+
reader.validateServices(
166+
"io.avaje.inject.spi.InjectExtension", CTX.get().spiServices));
165167
}
166168

167169
static Optional<AspectImportPrism> getImportedAspect(String type) {
@@ -220,7 +222,8 @@ static void writeSPIServicesFile() {
220222
FileObject jfo = createMetaInfWriterFor(Constants.META_INF_SPI);
221223
if (jfo != null) {
222224
var writer = new Append(jfo.openWriter());
223-
for (var service : CTX.get().spiServices) {
225+
CTX.get().externalSpi.addAll(CTX.get().spiServices);
226+
for (var service : CTX.get().externalSpi) {
224227
writer.append(service).eol();
225228
}
226229
writer.close();
@@ -244,7 +247,7 @@ private static void readExistingMetaInfServices() {
244247
line.replaceAll("\\s", "")
245248
.replace(",", "\n")
246249
.lines()
247-
.forEach(ProcessingContext::addInjectSPI);
250+
.forEach(ProcessingContext::addExternalInjectSPI);
248251
}
249252
} catch (Exception e) {
250253
// not a critical error

0 commit comments

Comments
 (0)