From 9f0af71c92bbb99fff125da559347a7b7b26f5d4 Mon Sep 17 00:00:00 2001 From: Slawomir Jaranowski Date: Fri, 10 Oct 2025 23:37:29 +0200 Subject: [PATCH] Use internal Nullable annotation, allow drop sisu-inject from runtime dependencies org.eclipse.sisu.inject is not exported by Maven Core ... so plugins must add it to own dependency only for this one annotation Own implementation avoid such situation --- pom.xml | 3 ++- .../internal/DefaultVelocityComponent.java | 1 - .../plexus/velocity/internal/Nullable.java | 18 ++++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/codehaus/plexus/velocity/internal/Nullable.java diff --git a/pom.xml b/pom.xml index 9e11405..f85d5a8 100644 --- a/pom.xml +++ b/pom.xml @@ -73,11 +73,12 @@ limitations under the License. 1 provided + org.eclipse.sisu org.eclipse.sisu.inject 0.9.0.M4 - provided + test diff --git a/src/main/java/org/codehaus/plexus/velocity/internal/DefaultVelocityComponent.java b/src/main/java/org/codehaus/plexus/velocity/internal/DefaultVelocityComponent.java index 4e30c28..b8984ca 100644 --- a/src/main/java/org/codehaus/plexus/velocity/internal/DefaultVelocityComponent.java +++ b/src/main/java/org/codehaus/plexus/velocity/internal/DefaultVelocityComponent.java @@ -25,7 +25,6 @@ import org.apache.velocity.app.VelocityEngine; import org.codehaus.plexus.velocity.VelocityComponent; import org.codehaus.plexus.velocity.VelocityComponentConfigurator; -import org.eclipse.sisu.Nullable; /** * Default component implementation. The presence of {@link VelocityComponentConfigurator} is optional. diff --git a/src/main/java/org/codehaus/plexus/velocity/internal/Nullable.java b/src/main/java/org/codehaus/plexus/velocity/internal/Nullable.java new file mode 100644 index 0000000..34e9065 --- /dev/null +++ b/src/main/java/org/codehaus/plexus/velocity/internal/Nullable.java @@ -0,0 +1,18 @@ +package org.codehaus.plexus.velocity.internal; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Internal Nullable annotation to mark parameters that can be null. + *

+ * Guice allow any Nullable annotation, so this one can be used instead of adding a dependency to sisu-inject. + * UseNullable + */ +@Target({ElementType.PARAMETER}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@interface Nullable {}