Skip to content

Commit 64f5293

Browse files
authored
@PluginProvides Annotation with maven plugin (#855)
now will read the plugin provides annotation values with the maven/gradle plugin
1 parent fd86c8c commit 64f5293

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

inject-gradle-plugin/src/main/java/io/avaje/inject/plugin/AvajeInjectPlugin.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,17 @@ private void writeProvidedPlugins(ClassLoader classLoader, FileWriter pluginWrit
8080
for (final var provide : plugin.providesAspects()) {
8181
provides.add(wrapAspect(provide.getCanonicalName()));
8282
}
83+
Optional.ofNullable(plugin.getClass().getAnnotation(PluginProvides.class))
84+
.ifPresent(p -> {
85+
for (final var provide : p.value()) {
86+
provides.add(provide.getTypeName());
87+
}
88+
Collections.addAll(provides, p.providesStrings());
89+
for (final var provide : p.providesAspects()) {
90+
provides.add(wrapAspect(provide.getCanonicalName()));
91+
}
92+
p.providesStrings();
93+
});
8394
pluginEntries.put(typeName, provides);
8495
}
8596

inject-maven-plugin/src/main/java/io/avaje/inject/mojo/AutoProvidesMojo.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
import java.net.URLClassLoader;
1212
import java.util.ArrayList;
1313
import java.util.Arrays;
14+
import java.util.Collections;
1415
import java.util.HashMap;
1516
import java.util.List;
1617
import java.util.Map;
18+
import java.util.Optional;
1719
import java.util.ServiceLoader;
1820
import java.util.ServiceLoader.Provider;
1921

@@ -31,6 +33,7 @@
3133
import io.avaje.inject.spi.AvajeModule;
3234
import io.avaje.inject.spi.InjectExtension;
3335
import io.avaje.inject.spi.InjectPlugin;
36+
import io.avaje.inject.spi.PluginProvides;
3437

3538
/**
3639
* Plugin that generates <code>target/avaje-module-provides.txt</code> and <code>
@@ -113,6 +116,17 @@ private void writeProvidedPlugins(URLClassLoader newClassLoader, FileWriter plug
113116
for (final var provide : plugin.providesAspects()) {
114117
provides.add(wrapAspect(provide.getCanonicalName()));
115118
}
119+
Optional.ofNullable(plugin.getClass().getAnnotation(PluginProvides.class))
120+
.ifPresent(p -> {
121+
for (final var provide : p.value()) {
122+
provides.add(provide.getTypeName());
123+
}
124+
Collections.addAll(provides, p.providesStrings());
125+
for (final var provide : p.providesAspects()) {
126+
provides.add(wrapAspect(provide.getCanonicalName()));
127+
}
128+
p.providesStrings();
129+
});
116130
pluginEntries.put(typeName, provides);
117131
}
118132

0 commit comments

Comments
 (0)