diff --git a/spring-core/src/testFixtures/java/org/springframework/core/testfixture/aot/generate/TestGenerationContext.java b/spring-core/src/testFixtures/java/org/springframework/core/testfixture/aot/generate/TestGenerationContext.java index d00db4917c..38889cb5a0 100644 --- a/spring-core/src/testFixtures/java/org/springframework/core/testfixture/aot/generate/TestGenerationContext.java +++ b/spring-core/src/testFixtures/java/org/springframework/core/testfixture/aot/generate/TestGenerationContext.java @@ -17,6 +17,7 @@ package org.springframework.core.testfixture.aot.generate; import java.io.IOException; +import java.io.UncheckedIOException; import org.springframework.aot.generate.ClassNameGenerator; import org.springframework.aot.generate.DefaultGenerationContext; @@ -24,20 +25,49 @@ import org.springframework.aot.generate.GenerationContext; import org.springframework.aot.generate.InMemoryGeneratedFiles; /** - * Test {@link GenerationContext} implementation that uses - * {@link InMemoryGeneratedFiles} and provides a convenient - * {@link TestTarget} by default. + * {@link GenerationContext} test implementation that uses + * {@link InMemoryGeneratedFiles} by default, with a convenient override of + * {@link #writeGeneratedContent()} that throws {@link UncheckedIOException} + * instead of {@link IOException}. * * @author Stephane Nicoll + * @author Sam Brannen + * @since 6.0 */ public class TestGenerationContext extends DefaultGenerationContext { - public TestGenerationContext(ClassNameGenerator classNameGenerator) { - super(classNameGenerator, new InMemoryGeneratedFiles()); + /** + * Create an instance using {@link TestTarget} as the default target class. + */ + public TestGenerationContext() { + this(TestTarget.class); } - public TestGenerationContext() { - this(new ClassNameGenerator(TestTarget.class)); + /** + * Create an instance using the specified {@code target}. + * @param target the default target class to use + */ + public TestGenerationContext(Class target) { + this(new ClassNameGenerator(target)); + } + + /** + * Create an instance using the specified {@link ClassNameGenerator}. + * @param classNameGenerator the class name generator to use + */ + public TestGenerationContext(ClassNameGenerator classNameGenerator) { + this(classNameGenerator, new InMemoryGeneratedFiles()); + } + + /** + * Create an instance using the specified {@link ClassNameGenerator} and + * {@link InMemoryGeneratedFiles}. + * @param classNameGenerator the class name generator to use + * @param generatedFiles the generated files + */ + public TestGenerationContext(ClassNameGenerator classNameGenerator, + InMemoryGeneratedFiles generatedFiles) { + super(classNameGenerator, generatedFiles); } @Override @@ -51,7 +81,7 @@ public class TestGenerationContext extends DefaultGenerationContext { super.writeGeneratedContent(); } catch (IOException ex) { - throw new IllegalStateException(ex); + throw new UncheckedIOException(ex); } } diff --git a/spring-core/src/testFixtures/java/org/springframework/core/testfixture/aot/generate/TestTarget.java b/spring-core/src/testFixtures/java/org/springframework/core/testfixture/aot/generate/TestTarget.java index d1b5568c28..e7af535f98 100644 --- a/spring-core/src/testFixtures/java/org/springframework/core/testfixture/aot/generate/TestTarget.java +++ b/spring-core/src/testFixtures/java/org/springframework/core/testfixture/aot/generate/TestTarget.java @@ -17,7 +17,7 @@ package org.springframework.core.testfixture.aot.generate; /** - * A target used by tests of code generation. + * A default target class used by tests of code generation. * * @author Stephane Nicoll */ diff --git a/spring-test/src/main/java/org/springframework/test/aot/generate/TestGenerationContext.java b/spring-test/src/main/java/org/springframework/test/aot/generate/TestGenerationContext.java index eb24368089..c52f813b66 100644 --- a/spring-test/src/main/java/org/springframework/test/aot/generate/TestGenerationContext.java +++ b/spring-test/src/main/java/org/springframework/test/aot/generate/TestGenerationContext.java @@ -17,6 +17,7 @@ package org.springframework.test.aot.generate; import java.io.IOException; +import java.io.UncheckedIOException; import org.springframework.aot.generate.ClassNameGenerator; import org.springframework.aot.generate.DefaultGenerationContext; @@ -26,21 +27,15 @@ import org.springframework.aot.generate.InMemoryGeneratedFiles; /** * {@link GenerationContext} test implementation that uses * {@link InMemoryGeneratedFiles} by default, with a convenient override of - * {@link #writeGeneratedContent()} that does not throw {@link IOException}. + * {@link #writeGeneratedContent()} that throws {@link UncheckedIOException} + * instead of {@link IOException}. * * @author Stephane Nicoll + * @author Sam Brannen * @since 6.0 */ public class TestGenerationContext extends DefaultGenerationContext { - /** - * Create an instance using the specified {@link ClassNameGenerator}. - * @param classNameGenerator the class name generator to use. - */ - public TestGenerationContext(ClassNameGenerator classNameGenerator) { - super(classNameGenerator, new InMemoryGeneratedFiles()); - } - /** * Create an instance using the specified {@code target}. * @param target the default target class to use @@ -49,6 +44,25 @@ public class TestGenerationContext extends DefaultGenerationContext { this(new ClassNameGenerator(target)); } + /** + * Create an instance using the specified {@link ClassNameGenerator}. + * @param classNameGenerator the class name generator to use + */ + public TestGenerationContext(ClassNameGenerator classNameGenerator) { + this(classNameGenerator, new InMemoryGeneratedFiles()); + } + + /** + * Create an instance using the specified {@link ClassNameGenerator} and + * {@link InMemoryGeneratedFiles}. + * @param classNameGenerator the class name generator to use + * @param generatedFiles the generated files + */ + public TestGenerationContext(ClassNameGenerator classNameGenerator, + InMemoryGeneratedFiles generatedFiles) { + super(classNameGenerator, generatedFiles); + } + @Override public InMemoryGeneratedFiles getGeneratedFiles() { return (InMemoryGeneratedFiles) super.getGeneratedFiles(); @@ -60,7 +74,7 @@ public class TestGenerationContext extends DefaultGenerationContext { super.writeGeneratedContent(); } catch (IOException ex) { - throw new IllegalStateException(ex); + throw new UncheckedIOException(ex); } }