From 550369ec3fb35dda57b0f04b9a471fdc3355a518 Mon Sep 17 00:00:00 2001 From: Andy Boothe Date: Tue, 7 Jan 2025 16:39:21 -0600 Subject: [PATCH] environment variable implementation now compiles and runs against required classpath --- pom.xml | 12 +-- .../test/java/rapier/core/DaggerTestBase.java | 78 +++++++++++++++---- .../src/test/java/rapier/core/util/Maven.java | 7 +- .../pom.xml | 9 ++- .../EnvironmentVariableProcessor.java | 8 +- .../rapier/envvar/compiler}/ParameterKey.java | 6 +- .../envvar/compiler}/ParameterMetadata.java | 2 +- .../envvar/compiler}/RepresentationKey.java | 6 +- .../compiler}/RepresentationMetadata.java | 2 +- .../compiler}/util/EnvironmentVariables.java | 4 +- .../EnvironmentVariableProcessorTest.java | 38 +++++---- rapier-environment-variable/pom.xml | 20 +++++ .../rapier}/envvar/EnvironmentVariable.java | 2 +- 13 files changed, 138 insertions(+), 56 deletions(-) rename {rapier-processor-environment-variable => rapier-environment-variable-compiler}/pom.xml (81%) rename {rapier-processor-environment-variable/src/main/java/rapier/processor/envvar => rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler}/EnvironmentVariableProcessor.java (98%) rename {rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model => rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler}/ParameterKey.java (94%) rename {rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model => rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler}/ParameterMetadata.java (97%) rename {rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model => rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler}/RepresentationKey.java (96%) rename {rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model => rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler}/RepresentationMetadata.java (97%) rename {rapier-processor-environment-variable/src/main/java/rapier/processor/envvar => rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler}/util/EnvironmentVariables.java (97%) rename {rapier-processor-environment-variable/src/test/java/rapier/processor/envvar => rapier-environment-variable-compiler/src/test/java/rapier/envvar/compiler}/EnvironmentVariableProcessorTest.java (90%) create mode 100644 rapier-environment-variable/pom.xml rename {rapier-processor-environment-variable/src/main/java/rapier/processor => rapier-environment-variable/src/main/java/rapier}/envvar/EnvironmentVariable.java (98%) diff --git a/pom.xml b/pom.xml index 5197fca..d8c1e7d 100644 --- a/pom.xml +++ b/pom.xml @@ -87,10 +87,11 @@ jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED - ${dagger.version} - ${javax.inject.version} - ${jakarta.inject-api.version} - ${jsr305.version} + ${dagger.version} + ${javax.inject.version} + ${jakarta.inject-api.version} + ${jsr305.version} + ${project.basedir} @@ -250,7 +251,8 @@ rapier-core - rapier-processor-environment-variable + rapier-environment-variable + rapier-environment-variable-compiler rapier-processor-system-property rapier-processor-aws-ssm rapier-processor-cli diff --git a/rapier-core/src/test/java/rapier/core/DaggerTestBase.java b/rapier-core/src/test/java/rapier/core/DaggerTestBase.java index 36f3035..850bd61 100644 --- a/rapier-core/src/test/java/rapier/core/DaggerTestBase.java +++ b/rapier-core/src/test/java/rapier/core/DaggerTestBase.java @@ -19,9 +19,11 @@ */ package rapier.core; +import static java.util.Collections.emptyList; import static java.util.stream.Collectors.joining; import java.io.ByteArrayOutputStream; import java.io.File; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintStream; import java.io.PrintWriter; @@ -96,13 +98,23 @@ protected String compileAndRunSourceCode(List compilationUnitSourceCodes return compileAndRunSourceCode(compilationUnitSourceCodes, DEFAULT_ANNOTATION_PROCESSORS); } + /** * Compiles a given source code, runs the main method and returns the output from stdout. */ protected String compileAndRunSourceCode(List compilationUnitSourceCodes, List annotationProcessors) throws IOException { - try (TempDir tempDir = TempDir.createTempDirectory("dagger_test")) { - String errors = compileSourceCode(tempDir, compilationUnitSourceCodes, annotationProcessors); + return compileAndRunSourceCode(compilationUnitSourceCodes, annotationProcessors, emptyList()); + } + + /** + * Compiles a given source code, runs the main method and returns the output from stdout. + */ + protected String compileAndRunSourceCode(List compilationUnitSourceCodes, + List annotationProcessors, List additionalClasspathEntries) throws IOException { + try (TempDir tempDir = TempDir.createTempDirectory("rapier_test")) { + String errors = compileSourceCode(tempDir, compilationUnitSourceCodes, annotationProcessors, + additionalClasspathEntries); if (!errors.isBlank()) { throw new IllegalArgumentException( "Compilation of invalid compilation units failed with errors: " + errors); @@ -127,6 +139,8 @@ protected String compileAndRunSourceCode(List compilationUnitSourceCodes for (File simulationClasspathEntry : simulationClasspath()) classpath.add(simulationClasspathEntry.toURI().toURL()); classpath.add(tempDir.toURI().toURL()); + if (additionalClasspathEntries != null) + classpath.addAll(additionalClasspathEntries); try (URLClassLoader classLoader = new URLClassLoader(classpath.toArray(URL[]::new), ClassLoader.getPlatformClassLoader())) { @@ -198,6 +212,21 @@ private String compileSourceCode(File tempDir, List compilationUnitSourc */ private String compileSourceCode(File tempDir, List compilationUnitSourceCodes, List annotationProcessors) throws IOException { + return compileSourceCode(tempDir, compilationUnitSourceCodes, annotationProcessors, + emptyList()); + } + + /** + * Compiles a given source code string and returns any compilation errors. + * + * @param tempDir the temporary directory to store the generated source files + * @param compilationUnitSourceCodes the source code strings to compile + * @return any compilation errors + * + * @throws IOException if an I/O error occurs + */ + private String compileSourceCode(File tempDir, List compilationUnitSourceCodes, + List annotationProcessors, List additionalClasspathEntries) throws IOException { // Get the system Java compiler final JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); if (compiler == null) { @@ -226,8 +255,12 @@ private String compileSourceCode(File tempDir, List compilationUnitSourc DiagnosticCollector diagnostics = new DiagnosticCollector<>(); // Set up our classpath - final String classpath = simulationClasspath().stream().map(File::getAbsolutePath) - .collect(joining(File.pathSeparator)); + final List classpathEntries = new ArrayList<>(); + classpathEntries.addAll(simulationClasspath()); + for (URL additionalClasspathEntry : additionalClasspathEntries) + classpathEntries.add(new File(additionalClasspathEntry.getFile())); + final String classpath = + classpathEntries.stream().map(File::getAbsolutePath).collect(joining(File.pathSeparator)); // Configure annotation processors (include Dagger's processor) List options = List.of("-cp", classpath, "-processor", @@ -255,14 +288,28 @@ private String compileSourceCode(File tempDir, List compilationUnitSourc } } + /** + * The root directory of the current Maven module + */ + private static final File MAVEN_PROJECT_BASEDIR = + Optional.ofNullable(System.getProperty("maven.project.basedir")).map(File::new).orElseThrow( + () -> new IllegalStateException("maven.project.basedir system property not set")); + + protected File resolveProjectFile(String path) throws FileNotFoundException { + final File result = new File(MAVEN_PROJECT_BASEDIR, path); + if (!result.exists()) + throw new FileNotFoundException(result.toString()); + return result; + } + /** * The Dagger version to use for compiling test code. This should be passed by * maven-surefire-plugin using the exact dagger version from the POM. See the root POM for the * specific details of the setup. */ private static final String DAGGER_VERSION = - Optional.ofNullable(System.getProperty("dagger.version")) - .orElseThrow(() -> new IllegalStateException("dagger.version system property not set")); + Optional.ofNullable(System.getProperty("maven.dagger.version")).orElseThrow( + () -> new IllegalStateException("maven.dagger.version system property not set")); /** * The javax.inject version to use for compiling test code. This should be passed by @@ -270,8 +317,8 @@ private String compileSourceCode(File tempDir, List compilationUnitSourc * the specific details of the setup. */ private static final String JAVAX_INJECT_VERSION = - Optional.ofNullable(System.getProperty("javax.inject.version")).orElseThrow( - () -> new IllegalStateException("javax.inject.version system property not set")); + Optional.ofNullable(System.getProperty("maven.javax.inject.version")).orElseThrow( + () -> new IllegalStateException("maven.javax.inject.version system property not set")); /** * The Jakarta Inject API version to use for compiling test code. This should be passed by @@ -279,23 +326,24 @@ private String compileSourceCode(File tempDir, List compilationUnitSourc * for the specific details */ private static final String JAKARTA_INJECT_API_VERSION = - Optional.ofNullable(System.getProperty("jakarta.inject-api.version")).orElseThrow( - () -> new IllegalStateException("jakarta.inject-api.version system property not set")); + Optional.ofNullable(System.getProperty("maven.jakarta.inject-api.version")) + .orElseThrow(() -> new IllegalStateException( + "maven.jakarta.inject-api.version system property not set")); private static final String JSR_305_VERSION = - Optional.ofNullable(System.getProperty("jsr305.version")).orElseThrow( - () -> new IllegalStateException("jsr305.version system property not set")); + Optional.ofNullable(System.getProperty("maven.jsr305.version")).orElseThrow( + () -> new IllegalStateException("maven.jsr305.version system property not set")); - private List simulationClasspath() { + private List simulationClasspath() throws FileNotFoundException { final File daggerJar = Maven.findJarInLocalRepository("com.google.dagger", "dagger", DAGGER_VERSION); final File javaxInjectJar = Maven.findJarInLocalRepository("javax.inject", "javax.inject", JAVAX_INJECT_VERSION); final File jakartaInjectApiJar = Maven.findJarInLocalRepository("jakarta.inject", "jakarta.inject-api", JAKARTA_INJECT_API_VERSION); - final File jsr305Jar = Maven.findJarInLocalRepository("com.google.code.findbugs", - "jsr305", JSR_305_VERSION); + final File jsr305Jar = + Maven.findJarInLocalRepository("com.google.code.findbugs", "jsr305", JSR_305_VERSION); return List.of(daggerJar, javaxInjectJar, jakartaInjectApiJar, jsr305Jar); } } diff --git a/rapier-core/src/test/java/rapier/core/util/Maven.java b/rapier-core/src/test/java/rapier/core/util/Maven.java index 7297957..275f0bf 100644 --- a/rapier-core/src/test/java/rapier/core/util/Maven.java +++ b/rapier-core/src/test/java/rapier/core/util/Maven.java @@ -1,6 +1,7 @@ package rapier.core.util; import java.io.File; +import java.io.FileNotFoundException; public final class Maven { private Maven() {} @@ -17,8 +18,10 @@ private Maven() {} * @param artifactId The artifact ID of the artifact * @param version The version of the artifact * @return An Optional containing the JAR file if it exists, or an empty Optional otherwise + * @throws FileNotFoundException if the JAR file does not exist */ - public static File findJarInLocalRepository(String groupId, String artifactId, String version) { + public static File findJarInLocalRepository(String groupId, String artifactId, String version) + throws FileNotFoundException { // Convert groupId to directory path (e.g., org.apache.maven -> org/apache/maven) final String groupPath = groupId.replace('.', '/'); @@ -30,7 +33,7 @@ public static File findJarInLocalRepository(String groupId, String artifactId, S final File jarFile = new File(jarPath); if (!jarFile.exists()) - throw new IllegalArgumentException("JAR file does not exist: " + jarFile); + throw new FileNotFoundException(jarFile.getAbsolutePath()); return jarFile; } diff --git a/rapier-processor-environment-variable/pom.xml b/rapier-environment-variable-compiler/pom.xml similarity index 81% rename from rapier-processor-environment-variable/pom.xml rename to rapier-environment-variable-compiler/pom.xml index 8b1a7b4..ab9c35e 100644 --- a/rapier-processor-environment-variable/pom.xml +++ b/rapier-environment-variable-compiler/pom.xml @@ -7,8 +7,8 @@ 0.0.0-b0-SNAPSHOT - rapier-processor-environment-variable - rapier-processor-environment-variable + rapier-environment-variable-compiler + rapier-environment-variable-compiler jar @@ -17,6 +17,11 @@ rapier-core ${project.version} + + com.sigpwned + rapier-environment-variable + ${project.version} + com.google.dagger diff --git a/rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/EnvironmentVariableProcessor.java b/rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/EnvironmentVariableProcessor.java similarity index 98% rename from rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/EnvironmentVariableProcessor.java rename to rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/EnvironmentVariableProcessor.java index 730dbaf..b57c833 100644 --- a/rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/EnvironmentVariableProcessor.java +++ b/rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/EnvironmentVariableProcessor.java @@ -17,7 +17,7 @@ * limitations under the License. * ==================================LICENSE_END=================================== */ -package rapier.processor.envvar; +package rapier.envvar.compiler; import static java.util.Collections.unmodifiableSet; import static java.util.stream.Collectors.groupingBy; @@ -64,10 +64,8 @@ import rapier.core.util.CaseFormat; import rapier.core.util.Java; import rapier.core.util.MoreSets; -import rapier.processor.envvar.model.ParameterKey; -import rapier.processor.envvar.model.ParameterMetadata; -import rapier.processor.envvar.model.RepresentationKey; -import rapier.processor.envvar.util.EnvironmentVariables; +import rapier.envvar.EnvironmentVariable; +import rapier.envvar.compiler.util.EnvironmentVariables; @SupportedAnnotationTypes("dagger.Component") @SupportedSourceVersion(SourceVersion.RELEASE_11) diff --git a/rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model/ParameterKey.java b/rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/ParameterKey.java similarity index 94% rename from rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model/ParameterKey.java rename to rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/ParameterKey.java index f2604e8..993354d 100644 --- a/rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model/ParameterKey.java +++ b/rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/ParameterKey.java @@ -17,14 +17,14 @@ * limitations under the License. * ==================================LICENSE_END=================================== */ -package rapier.processor.envvar.model; +package rapier.envvar.compiler; import static java.util.Objects.requireNonNull; import java.util.Objects; import javax.lang.model.element.AnnotationMirror; import rapier.core.model.DaggerInjectionSite; -import rapier.processor.envvar.EnvironmentVariable; -import rapier.processor.envvar.util.EnvironmentVariables; +import rapier.envvar.EnvironmentVariable; +import rapier.envvar.compiler.util.EnvironmentVariables; /** * A grouping key for the physical parameter provided by the user diff --git a/rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model/ParameterMetadata.java b/rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/ParameterMetadata.java similarity index 97% rename from rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model/ParameterMetadata.java rename to rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/ParameterMetadata.java index dd89001..2465962 100644 --- a/rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model/ParameterMetadata.java +++ b/rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/ParameterMetadata.java @@ -17,7 +17,7 @@ * limitations under the License. * ==================================LICENSE_END=================================== */ -package rapier.processor.envvar.model; +package rapier.envvar.compiler; import java.util.Objects; diff --git a/rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model/RepresentationKey.java b/rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/RepresentationKey.java similarity index 96% rename from rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model/RepresentationKey.java rename to rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/RepresentationKey.java index 3a7f13a..feaa0be 100644 --- a/rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model/RepresentationKey.java +++ b/rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/RepresentationKey.java @@ -17,7 +17,7 @@ * limitations under the License. * ==================================LICENSE_END=================================== */ -package rapier.processor.envvar.model; +package rapier.envvar.compiler; import static java.util.Objects.requireNonNull; import java.util.Comparator; @@ -26,8 +26,8 @@ import javax.lang.model.element.AnnotationMirror; import javax.lang.model.type.TypeMirror; import rapier.core.model.DaggerInjectionSite; -import rapier.processor.envvar.EnvironmentVariable; -import rapier.processor.envvar.util.EnvironmentVariables; +import rapier.envvar.EnvironmentVariable; +import rapier.envvar.compiler.util.EnvironmentVariables; /** * A grouping key for the JSR 330 representation of an environment variable, namely type and diff --git a/rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model/RepresentationMetadata.java b/rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/RepresentationMetadata.java similarity index 97% rename from rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model/RepresentationMetadata.java rename to rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/RepresentationMetadata.java index 1860bd0..334c0dc 100644 --- a/rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/model/RepresentationMetadata.java +++ b/rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/RepresentationMetadata.java @@ -17,7 +17,7 @@ * limitations under the License. * ==================================LICENSE_END=================================== */ -package rapier.processor.envvar.model; +package rapier.envvar.compiler; import java.util.Objects; diff --git a/rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/util/EnvironmentVariables.java b/rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/util/EnvironmentVariables.java similarity index 97% rename from rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/util/EnvironmentVariables.java rename to rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/util/EnvironmentVariables.java index a829a66..4249784 100644 --- a/rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/util/EnvironmentVariables.java +++ b/rapier-environment-variable-compiler/src/main/java/rapier/envvar/compiler/util/EnvironmentVariables.java @@ -17,12 +17,12 @@ * limitations under the License. * ==================================LICENSE_END=================================== */ -package rapier.processor.envvar.util; +package rapier.envvar.compiler.util; import java.util.Map; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.util.SimpleAnnotationValueVisitor8; -import rapier.processor.envvar.EnvironmentVariable; +import rapier.envvar.EnvironmentVariable; public final class EnvironmentVariables { private EnvironmentVariables() {} diff --git a/rapier-processor-environment-variable/src/test/java/rapier/processor/envvar/EnvironmentVariableProcessorTest.java b/rapier-environment-variable-compiler/src/test/java/rapier/envvar/compiler/EnvironmentVariableProcessorTest.java similarity index 90% rename from rapier-processor-environment-variable/src/test/java/rapier/processor/envvar/EnvironmentVariableProcessorTest.java rename to rapier-environment-variable-compiler/src/test/java/rapier/envvar/compiler/EnvironmentVariableProcessorTest.java index 27f0573..11c3142 100644 --- a/rapier-processor-environment-variable/src/test/java/rapier/processor/envvar/EnvironmentVariableProcessorTest.java +++ b/rapier-environment-variable-compiler/src/test/java/rapier/envvar/compiler/EnvironmentVariableProcessorTest.java @@ -17,7 +17,7 @@ * limitations under the License. * ==================================LICENSE_END=================================== */ -package rapier.processor.envvar; +package rapier.envvar.compiler; import static com.google.testing.compile.CompilationSubject.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -42,7 +42,7 @@ public void givenSimpleComponentWithEnvironmentVariableWithoutDefaultValue_whenC @dagger.Component public interface ExampleComponent { - @rapier.processor.envvar.EnvironmentVariable("FOO_BAR") + @rapier.envvar.EnvironmentVariable("FOO_BAR") public Integer provisionFooBarAsInt(); } """); @@ -62,7 +62,7 @@ public interface ExampleComponent { import static java.util.Collections.unmodifiableMap; - import rapier.processor.envvar.EnvironmentVariable; + import rapier.envvar.EnvironmentVariable; import dagger.Module; import dagger.Provides; import java.util.Map; @@ -119,7 +119,7 @@ public void givenSimpleComponentWithEnvironmentVariableWithDefaultValue_whenComp @dagger.Component public interface ExampleComponent { - @rapier.processor.envvar.EnvironmentVariable(value="FOO_BAR", defaultValue="42") + @rapier.envvar.EnvironmentVariable(value="FOO_BAR", defaultValue="42") public Integer provisionFooBarAsInt(); } """); @@ -139,7 +139,7 @@ public interface ExampleComponent { import static java.util.Collections.unmodifiableMap; - import rapier.processor.envvar.EnvironmentVariable; + import rapier.envvar.EnvironmentVariable; import dagger.Module; import dagger.Provides; import java.util.Map; @@ -188,7 +188,7 @@ public void givenSimpleComponentWithEnvironmentVariableWithGivenValue_whenCompil @dagger.Component(modules={RapierExampleComponentEnvironmentVariableModule.class}) public interface ExampleComponent { @javax.annotation.Nullable - @rapier.processor.envvar.EnvironmentVariable("FOO_BAR") + @rapier.envvar.EnvironmentVariable("FOO_BAR") public Integer provisionFooBarAsInt(); } """; @@ -208,8 +208,11 @@ public static void main(String[] args) { """; final String output = compileAndRunSourceCode(List.of(componentSource, appSource), - List.of("rapier.processor.envvar.EnvironmentVariableProcessor", - DAGGER_COMPONENT_ANNOTATION_PROCESSOR)).trim(); + List.of("rapier.envvar.compiler.EnvironmentVariableProcessor", + DAGGER_COMPONENT_ANNOTATION_PROCESSOR), + List.of( + resolveProjectFile("../rapier-environment-variable/target/classes").toURI().toURL())) + .trim(); assertEquals("42", output); } @@ -221,7 +224,7 @@ public void givenSimpleComponentWithEnvironmentVariableWithDefaultValue_whenComp final String componentSource = """ @dagger.Component(modules={RapierExampleComponentEnvironmentVariableModule.class}) public interface ExampleComponent { - @rapier.processor.envvar.EnvironmentVariable(value="FOO_BAR", defaultValue="43") + @rapier.envvar.EnvironmentVariable(value="FOO_BAR", defaultValue="43") public Integer provisionFooBarAsInt(); } """; @@ -240,9 +243,12 @@ public static void main(String[] args) { } """; - final String output = compileAndRunSourceCode(List.of(componentSource, appSource), List - .of(EnvironmentVariableProcessor.class.getName(), DAGGER_COMPONENT_ANNOTATION_PROCESSOR)) - .trim(); + final String output = compileAndRunSourceCode(List.of(componentSource, appSource), + List.of(EnvironmentVariableProcessor.class.getName(), + DAGGER_COMPONENT_ANNOTATION_PROCESSOR), + List.of( + resolveProjectFile("../rapier-environment-variable/target/classes").toURI().toURL())) + .trim(); assertEquals("43", output); } @@ -258,10 +264,10 @@ public void givenComponentWithInconsistentEnvironmentVariableParameterRequiredne @dagger.Component(modules={RapierExampleComponentEnvironmentVariableModule.class}) public interface ExampleComponent { @javax.annotation.Nullable - @rapier.processor.envvar.EnvironmentVariable(value="FOO_BAR") + @rapier.envvar.EnvironmentVariable(value="FOO_BAR") public Integer provisionFooBarAsInt(); - @rapier.processor.envvar.EnvironmentVariable(value="FOO_BAR") + @rapier.envvar.EnvironmentVariable(value="FOO_BAR") public String provisionFooBarAsString(); } """); @@ -290,10 +296,10 @@ public void givenComponentWithInconsistentEnvironmentVariableParameterRequiredne @dagger.Component(modules={RapierExampleComponentEnvironmentVariableModule.class}) public interface ExampleComponent { - @rapier.processor.envvar.EnvironmentVariable(value="FOO_BAR") + @rapier.envvar.EnvironmentVariable(value="FOO_BAR") public Integer provisionFooBarAsInt(); - @rapier.processor.envvar.EnvironmentVariable(value="FOO_BAR", defaultValue="42") + @rapier.envvar.EnvironmentVariable(value="FOO_BAR", defaultValue="42") public String provisionFooBarAsString(); } """); diff --git a/rapier-environment-variable/pom.xml b/rapier-environment-variable/pom.xml new file mode 100644 index 0000000..10eb23d --- /dev/null +++ b/rapier-environment-variable/pom.xml @@ -0,0 +1,20 @@ + + 4.0.0 + + + com.sigpwned + rapier + 0.0.0-b0-SNAPSHOT + + + rapier-environment-variable + rapier-environment-variable + jar + + + + com.google.dagger + dagger + + + diff --git a/rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/EnvironmentVariable.java b/rapier-environment-variable/src/main/java/rapier/envvar/EnvironmentVariable.java similarity index 98% rename from rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/EnvironmentVariable.java rename to rapier-environment-variable/src/main/java/rapier/envvar/EnvironmentVariable.java index 824e8e9..0a35f3b 100644 --- a/rapier-processor-environment-variable/src/main/java/rapier/processor/envvar/EnvironmentVariable.java +++ b/rapier-environment-variable/src/main/java/rapier/envvar/EnvironmentVariable.java @@ -17,7 +17,7 @@ * limitations under the License. * ==================================LICENSE_END=================================== */ -package rapier.processor.envvar; +package rapier.envvar; import java.lang.annotation.ElementType; import java.lang.annotation.Retention;