From 50fbfa6f4b8249beda2d803f85990a8436ae7318 Mon Sep 17 00:00:00 2001 From: Josiah Noel <32279667+SentryMan@users.noreply.github.com> Date: Sat, 12 Jul 2025 23:04:17 -0400 Subject: [PATCH 1/2] `@PluginProvides` Annotation with maven plugin now will read the plugin provides annotation values with the maven/gradle plugin --- .../io/avaje/inject/plugin/AvajeInjectPlugin.java | 12 ++++++++++++ .../io/avaje/inject/mojo/AutoProvidesMojo.java | 15 +++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/inject-gradle-plugin/src/main/java/io/avaje/inject/plugin/AvajeInjectPlugin.java b/inject-gradle-plugin/src/main/java/io/avaje/inject/plugin/AvajeInjectPlugin.java index 8fa751ab8..ffb62478c 100644 --- a/inject-gradle-plugin/src/main/java/io/avaje/inject/plugin/AvajeInjectPlugin.java +++ b/inject-gradle-plugin/src/main/java/io/avaje/inject/plugin/AvajeInjectPlugin.java @@ -80,6 +80,18 @@ private void writeProvidedPlugins(ClassLoader classLoader, FileWriter pluginWrit for (final var provide : plugin.providesAspects()) { provides.add(wrapAspect(provide.getCanonicalName())); } + Optional.ofNullable(plugin.getClass().getAnnotation(PluginProvides.class)) + .ifPresent( + p -> { + for (final var provide : p.value()) { + provides.add(provide.getTypeName()); + } + Collections.addAll(provides, p.providesStrings()); + for (final var provide : p.providesAspects()) { + provides.add(wrapAspect(provide.getCanonicalName())); + } + p.providesStrings(); + }); pluginEntries.put(typeName, provides); } diff --git a/inject-maven-plugin/src/main/java/io/avaje/inject/mojo/AutoProvidesMojo.java b/inject-maven-plugin/src/main/java/io/avaje/inject/mojo/AutoProvidesMojo.java index 2f15349e0..ac3908f67 100644 --- a/inject-maven-plugin/src/main/java/io/avaje/inject/mojo/AutoProvidesMojo.java +++ b/inject-maven-plugin/src/main/java/io/avaje/inject/mojo/AutoProvidesMojo.java @@ -11,9 +11,11 @@ import java.net.URLClassLoader; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.ServiceLoader; import java.util.ServiceLoader.Provider; @@ -31,6 +33,7 @@ import io.avaje.inject.spi.AvajeModule; import io.avaje.inject.spi.InjectExtension; import io.avaje.inject.spi.InjectPlugin; +import io.avaje.inject.spi.PluginProvides; /** * Plugin that generates target/avaje-module-provides.txt and @@ -113,6 +116,18 @@ private void writeProvidedPlugins(URLClassLoader newClassLoader, FileWriter plug for (final var provide : plugin.providesAspects()) { provides.add(wrapAspect(provide.getCanonicalName())); } + Optional.ofNullable(plugin.getClass().getAnnotation(PluginProvides.class)) + .ifPresent( + p -> { + for (final var provide : p.value()) { + provides.add(provide.getTypeName()); + } + Collections.addAll(provides, p.providesStrings()); + for (final var provide : p.providesAspects()) { + provides.add(wrapAspect(provide.getCanonicalName())); + } + p.providesStrings(); + }); pluginEntries.put(typeName, provides); } From 27da065e669ab6ccb0564f6ae3e4964096688b84 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Mon, 14 Jul 2025 08:02:45 +1200 Subject: [PATCH 2/2] Format only --- .../inject/plugin/AvajeInjectPlugin.java | 21 +++++++++---------- .../avaje/inject/mojo/AutoProvidesMojo.java | 21 +++++++++---------- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/inject-gradle-plugin/src/main/java/io/avaje/inject/plugin/AvajeInjectPlugin.java b/inject-gradle-plugin/src/main/java/io/avaje/inject/plugin/AvajeInjectPlugin.java index ffb62478c..440383809 100644 --- a/inject-gradle-plugin/src/main/java/io/avaje/inject/plugin/AvajeInjectPlugin.java +++ b/inject-gradle-plugin/src/main/java/io/avaje/inject/plugin/AvajeInjectPlugin.java @@ -81,17 +81,16 @@ private void writeProvidedPlugins(ClassLoader classLoader, FileWriter pluginWrit provides.add(wrapAspect(provide.getCanonicalName())); } Optional.ofNullable(plugin.getClass().getAnnotation(PluginProvides.class)) - .ifPresent( - p -> { - for (final var provide : p.value()) { - provides.add(provide.getTypeName()); - } - Collections.addAll(provides, p.providesStrings()); - for (final var provide : p.providesAspects()) { - provides.add(wrapAspect(provide.getCanonicalName())); - } - p.providesStrings(); - }); + .ifPresent(p -> { + for (final var provide : p.value()) { + provides.add(provide.getTypeName()); + } + Collections.addAll(provides, p.providesStrings()); + for (final var provide : p.providesAspects()) { + provides.add(wrapAspect(provide.getCanonicalName())); + } + p.providesStrings(); + }); pluginEntries.put(typeName, provides); } diff --git a/inject-maven-plugin/src/main/java/io/avaje/inject/mojo/AutoProvidesMojo.java b/inject-maven-plugin/src/main/java/io/avaje/inject/mojo/AutoProvidesMojo.java index ac3908f67..f6769e463 100644 --- a/inject-maven-plugin/src/main/java/io/avaje/inject/mojo/AutoProvidesMojo.java +++ b/inject-maven-plugin/src/main/java/io/avaje/inject/mojo/AutoProvidesMojo.java @@ -117,17 +117,16 @@ private void writeProvidedPlugins(URLClassLoader newClassLoader, FileWriter plug provides.add(wrapAspect(provide.getCanonicalName())); } Optional.ofNullable(plugin.getClass().getAnnotation(PluginProvides.class)) - .ifPresent( - p -> { - for (final var provide : p.value()) { - provides.add(provide.getTypeName()); - } - Collections.addAll(provides, p.providesStrings()); - for (final var provide : p.providesAspects()) { - provides.add(wrapAspect(provide.getCanonicalName())); - } - p.providesStrings(); - }); + .ifPresent(p -> { + for (final var provide : p.value()) { + provides.add(provide.getTypeName()); + } + Collections.addAll(provides, p.providesStrings()); + for (final var provide : p.providesAspects()) { + provides.add(wrapAspect(provide.getCanonicalName())); + } + p.providesStrings(); + }); pluginEntries.put(typeName, provides); }