Skip to content

Commit b749e72

Browse files
committed
Tidy internals Processor and ExternalProvider only
1 parent b071ebc commit b749e72

File tree

2 files changed

+40
-46
lines changed

2 files changed

+40
-46
lines changed

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package io.avaje.inject.generator;
22

3-
import java.util.*;
4-
53
import io.avaje.inject.spi.Module;
64

5+
import java.util.*;
6+
77
/**
88
* The types provided by other modules in the classpath at compile time.
99
*
@@ -14,12 +14,9 @@ final class ExternalProvider {
1414
private final Set<String> providedTypes = new HashSet<>();
1515

1616
void init(Set<String> moduleFileProvided) {
17-
1817
providedTypes.addAll(moduleFileProvided);
19-
ServiceLoader<Module> load =
20-
ServiceLoader.load(Module.class, ExternalProvider.class.getClassLoader());
18+
ServiceLoader<Module> load = ServiceLoader.load(Module.class, ExternalProvider.class.getClassLoader());
2119
Iterator<Module> iterator = load.iterator();
22-
2320
while (iterator.hasNext()) {
2421
try {
2522
Module module = iterator.next();

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

Lines changed: 37 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package io.avaje.inject.generator;
22

3-
import java.io.BufferedReader;
4-
import java.io.IOException;
5-
import java.io.InputStreamReader;
6-
import java.net.URL;
7-
import java.util.HashSet;
8-
import java.util.LinkedHashSet;
9-
import java.util.ServiceLoader;
10-
import java.util.Set;
3+
import io.avaje.inject.Component;
4+
import io.avaje.inject.Factory;
5+
import io.avaje.inject.InjectModule;
6+
import io.avaje.inject.Prototype;
7+
import io.avaje.inject.spi.Plugin;
8+
import io.avaje.inject.spi.Proxy;
9+
import jakarta.inject.Scope;
10+
import jakarta.inject.Singleton;
1111

1212
import javax.annotation.processing.AbstractProcessor;
1313
import javax.annotation.processing.Filer;
@@ -20,15 +20,13 @@
2020
import javax.lang.model.element.TypeElement;
2121
import javax.lang.model.util.Elements;
2222
import javax.tools.StandardLocation;
23-
24-
import io.avaje.inject.Component;
25-
import io.avaje.inject.Factory;
26-
import io.avaje.inject.InjectModule;
27-
import io.avaje.inject.Prototype;
28-
import io.avaje.inject.spi.Plugin;
29-
import io.avaje.inject.spi.Proxy;
30-
import jakarta.inject.Scope;
31-
import jakarta.inject.Singleton;
23+
import java.io.BufferedReader;
24+
import java.io.IOException;
25+
import java.io.InputStreamReader;
26+
import java.net.URL;
27+
import java.util.*;
28+
import java.util.stream.Collectors;
29+
import java.util.stream.Stream;
3230

3331
public final class Processor extends AbstractProcessor {
3432

@@ -56,38 +54,37 @@ public synchronized void init(ProcessingEnvironment processingEnv) {
5654
registerPluginProvidedTypes();
5755
}
5856

59-
/** Loads provider files generated by auto-requires-plugin */
57+
/**
58+
* Loads provider files generated by avaje-inject-maven-plugin
59+
*/
6060
void loadProvidedFiles(Filer filer) {
61+
targetProvidesLines(filer, "target/avaje-plugin-provides.txt")
62+
.forEach(pluginFileProvided::add);
6163

62-
try {
63-
final var resource =
64-
filer
65-
.getResource(StandardLocation.CLASS_OUTPUT, "", "target/avaje-plugin-provides.txt")
66-
.toUri()
67-
.toString()
68-
.replace("/target/classes", "");
69-
try (var inputStream = new URL(resource).openStream();
70-
var reader = new BufferedReader(new InputStreamReader(inputStream))) {
71-
reader.lines().forEach(pluginFileProvided::add);
72-
}
73-
} catch (final IOException e2) {
74-
}
64+
targetProvidesLines(filer, "target/avaje-module-provides.txt")
65+
.forEach(moduleFileProvided::add);
66+
}
7567

68+
private static List<String> targetProvidesLines(Filer filer, String relativeName) {
7669
try {
77-
final var resource =
78-
filer
79-
.getResource(StandardLocation.CLASS_OUTPUT, "", "target/avaje-module-provides.txt")
80-
.toUri()
81-
.toString()
82-
.replace("/target/classes", "");
70+
final String resource = targetProvides(filer, relativeName);
8371
try (var inputStream = new URL(resource).openStream();
84-
var reader = new BufferedReader(new InputStreamReader(inputStream))) {
85-
reader.lines().forEach(moduleFileProvided::add);
72+
var reader = new BufferedReader(new InputStreamReader(inputStream))) {
73+
return reader.lines().collect(Collectors.toList());
8674
}
87-
} catch (final IOException e2) {
75+
} catch (final IOException e) {
76+
return Collections.emptyList();
8877
}
8978
}
9079

80+
private static String targetProvides(Filer filer, String relativeName) throws IOException {
81+
return filer
82+
.getResource(StandardLocation.CLASS_OUTPUT, "", relativeName)
83+
.toUri()
84+
.toString()
85+
.replace("/target/classes", "");
86+
}
87+
9188
/**
9289
* Register types provided by the plugin so no compiler error when we have a dependency
9390
* on these types and the only thing providing them is the plugin.

0 commit comments

Comments
 (0)