@@ -32,6 +32,7 @@ static final class Ctx {
32
32
private final List <ModuleData > modules = new ArrayList <>();
33
33
private final List <TypeElement > delayQueue = new ArrayList <>();
34
34
private final Set <String > spiServices = new TreeSet <>();
35
+ private final Set <String > externalSpi = new TreeSet <>();
35
36
private boolean strictWiring ;
36
37
private final boolean mergeServices = APContext .getOption ("mergeServices" ).map (Boolean ::valueOf ).orElse (true );
37
38
@@ -49,7 +50,7 @@ static void registerProvidedTypes(Set<String> moduleFileProvided) {
49
50
private static void addEventSPI () {
50
51
try {
51
52
if (typeElement (EVENTS_SPI ) != null || Class .forName (EVENTS_SPI ) != null ) {
52
- addInjectSPI (EVENTS_SPI );
53
+ addExternalInjectSPI (EVENTS_SPI );
53
54
}
54
55
} catch (final ClassNotFoundException e ) {
55
56
// nothing
@@ -107,7 +108,7 @@ static void addInjectSPI(String type) {
107
108
108
109
static void addExternalInjectSPI (String type ) {
109
110
if (CTX .get ().mergeServices ) {
110
- CTX .get ().spiServices .add (type );
111
+ CTX .get ().externalSpi .add (type );
111
112
}
112
113
}
113
114
@@ -158,10 +159,11 @@ static void addImportedAspects(Map<String, AspectImportPrism> importedMap) {
158
159
}
159
160
160
161
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 ));
165
167
}
166
168
167
169
static Optional <AspectImportPrism > getImportedAspect (String type ) {
@@ -220,7 +222,8 @@ static void writeSPIServicesFile() {
220
222
FileObject jfo = createMetaInfWriterFor (Constants .META_INF_SPI );
221
223
if (jfo != null ) {
222
224
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 ) {
224
227
writer .append (service ).eol ();
225
228
}
226
229
writer .close ();
@@ -244,7 +247,7 @@ private static void readExistingMetaInfServices() {
244
247
line .replaceAll ("\\ s" , "" )
245
248
.replace ("," , "\n " )
246
249
.lines ()
247
- .forEach (ProcessingContext ::addInjectSPI );
250
+ .forEach (ProcessingContext ::addExternalInjectSPI );
248
251
}
249
252
} catch (Exception e ) {
250
253
// not a critical error
0 commit comments