From fd3089cbd6349ffdc50442395ed8c8daad5f75c5 Mon Sep 17 00:00:00 2001 From: amckenzie Date: Mon, 11 Sep 2017 16:01:22 +0100 Subject: [PATCH] move the event plugin to it's own module --- integration-test/pom.xml | 5 +++ .../pojo/integration/test/EmptySchemaIT.java | 7 --- .../pojo/integration/utils/GeneratorUtil.java | 16 +++++-- pojo-event-annotation-plugin/pom.xml | 35 +++++++++++++++ .../classgenerator/EventAnnotationPlugin.java | 0 .../EventAnnotationPluginTest.java | 0 .../plugin/DefaultPluginProvider.java | 4 +- .../generation/SchemaPojoGeneratorTest.java | 45 ------------------- .../plugin/DefaultPluginProviderTest.java | 4 +- pojo-plugin-test-provider/pom.xml | 7 ++- pom.xml | 1 + 11 files changed, 62 insertions(+), 62 deletions(-) create mode 100644 pojo-event-annotation-plugin/pom.xml rename {pojo-generator-core => pojo-event-annotation-plugin}/src/main/java/uk/gov/justice/generation/pojo/generators/plugin/classgenerator/EventAnnotationPlugin.java (100%) rename {pojo-generator-core => pojo-event-annotation-plugin}/src/test/java/uk/gov/justice/generation/pojo/generators/plugin/classgenerator/EventAnnotationPluginTest.java (100%) diff --git a/integration-test/pom.xml b/integration-test/pom.xml index a4581df..7f61075 100644 --- a/integration-test/pom.xml +++ b/integration-test/pom.xml @@ -30,6 +30,11 @@ ${project.version} test + + uk.gov.justice.generators + pojo-event-annotation-plugin + ${project.version} + org.everit.json org.everit.json.schema diff --git a/integration-test/src/test/java/uk/gov/justice/generation/pojo/integration/test/EmptySchemaIT.java b/integration-test/src/test/java/uk/gov/justice/generation/pojo/integration/test/EmptySchemaIT.java index 0fa83e9..a56da12 100644 --- a/integration-test/src/test/java/uk/gov/justice/generation/pojo/integration/test/EmptySchemaIT.java +++ b/integration-test/src/test/java/uk/gov/justice/generation/pojo/integration/test/EmptySchemaIT.java @@ -5,7 +5,6 @@ import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; -import uk.gov.justice.domain.annotation.Event; import uk.gov.justice.generation.pojo.integration.utils.GeneratorUtil; import uk.gov.justice.generation.pojo.integration.utils.OutputDirectories; @@ -39,8 +38,6 @@ public void shouldGenerateAnEmptyClassWithAdditionalPropertiesIfNoAdditionalProp assertThat(emptySchemaClass.getDeclaredMethod("getAdditionalProperties"), is(notNullValue())); assertThat(emptySchemaClass.getDeclaredMethod("setAdditionalProperty", String.class, Object.class), is(notNullValue())); - - assertThat(emptySchemaClass.getAnnotation(Event.class), is(notNullValue())); } @Test @@ -56,8 +53,6 @@ public void shouldGenerateAnEmptyClassWithAdditionalPropertiesIfoAdditionalPrope emptySchemaClass.getDeclaredField("additionalProperties").getType().getName(); emptySchemaClass.getDeclaredMethod("getAdditionalProperties"); emptySchemaClass.getDeclaredMethod("setAdditionalProperty", String.class, Object.class); - - assertThat(emptySchemaClass.getAnnotation(Event.class), is(notNullValue())); } @Test @@ -89,8 +84,6 @@ public void shouldGenerateAnEmptyClassWithAdditionalPropertiesIfoAdditionalPrope fail(); } catch (final NoSuchMethodException ignored) { } - - assertThat(emptySchemaClass.getAnnotation(Event.class), is(notNullValue())); } private List> setupAndGenerate(final String fileName) { diff --git a/integration-test/src/test/java/uk/gov/justice/generation/pojo/integration/utils/GeneratorUtil.java b/integration-test/src/test/java/uk/gov/justice/generation/pojo/integration/utils/GeneratorUtil.java index 41e1325..86c4da6 100644 --- a/integration-test/src/test/java/uk/gov/justice/generation/pojo/integration/utils/GeneratorUtil.java +++ b/integration-test/src/test/java/uk/gov/justice/generation/pojo/integration/utils/GeneratorUtil.java @@ -6,6 +6,7 @@ import uk.gov.justice.generation.io.files.loader.SchemaLoader; import uk.gov.justice.generation.pojo.core.GenerationContext; import uk.gov.justice.generation.pojo.core.NameGenerator; +import uk.gov.justice.generation.pojo.generators.ClassGeneratable; import uk.gov.justice.generation.pojo.generators.ClassNameFactory; import uk.gov.justice.generation.pojo.generators.JavaGeneratorFactory; import uk.gov.justice.generation.pojo.generators.TypeNameProvider; @@ -87,10 +88,12 @@ public List> generateAndCompileJavaSource(final File jsonSchemaFile, return javaGeneratorFactory .createClassGeneratorsFor(definitionBuilderVisitor.getDefinitions(), pluginProvider, pluginContext, generationContext) .stream() - .map(classGeneratable -> { - sourceWriter.write(classGeneratable, generationContext); - return classCompiler.compile(classGeneratable, generationContext, outputDirectories.getClassesOutputDirectory().toFile()); - }) + .map(classGeneratable -> writeAndCompile( + outputDirectories, + generationContext, + sourceWriter, + classCompiler, + classGeneratable)) .collect(toList()); } @@ -98,4 +101,9 @@ public void validate(final File schemaFile, final String json) { final Schema schema = schemaLoader.loadFrom(schemaFile); schema.validate(new JSONObject(json)); } + + private Class writeAndCompile(final OutputDirectories outputDirectories, final GenerationContext generationContext, final SourceWriter sourceWriter, final ClassCompiler classCompiler, final ClassGeneratable classGeneratable) { + sourceWriter.write(classGeneratable, generationContext); + return classCompiler.compile(classGeneratable, generationContext, outputDirectories.getClassesOutputDirectory().toFile()); + } } diff --git a/pojo-event-annotation-plugin/pom.xml b/pojo-event-annotation-plugin/pom.xml new file mode 100644 index 0000000..a2687bd --- /dev/null +++ b/pojo-event-annotation-plugin/pom.xml @@ -0,0 +1,35 @@ + + + + jsonschema-pojo-generator + uk.gov.justice.generators + 1.0.0-SNAPSHOT + + 4.0.0 + + pojo-event-annotation-plugin + + + + uk.gov.justice.generators + pojo-generation-core + ${project.version} + + + + + + junit + junit + test + + + org.mockito + mockito-core + test + + + + diff --git a/pojo-generator-core/src/main/java/uk/gov/justice/generation/pojo/generators/plugin/classgenerator/EventAnnotationPlugin.java b/pojo-event-annotation-plugin/src/main/java/uk/gov/justice/generation/pojo/generators/plugin/classgenerator/EventAnnotationPlugin.java similarity index 100% rename from pojo-generator-core/src/main/java/uk/gov/justice/generation/pojo/generators/plugin/classgenerator/EventAnnotationPlugin.java rename to pojo-event-annotation-plugin/src/main/java/uk/gov/justice/generation/pojo/generators/plugin/classgenerator/EventAnnotationPlugin.java diff --git a/pojo-generator-core/src/test/java/uk/gov/justice/generation/pojo/generators/plugin/classgenerator/EventAnnotationPluginTest.java b/pojo-event-annotation-plugin/src/test/java/uk/gov/justice/generation/pojo/generators/plugin/classgenerator/EventAnnotationPluginTest.java similarity index 100% rename from pojo-generator-core/src/test/java/uk/gov/justice/generation/pojo/generators/plugin/classgenerator/EventAnnotationPluginTest.java rename to pojo-event-annotation-plugin/src/test/java/uk/gov/justice/generation/pojo/generators/plugin/classgenerator/EventAnnotationPluginTest.java diff --git a/pojo-generator-core/src/main/java/uk/gov/justice/generation/pojo/generators/plugin/DefaultPluginProvider.java b/pojo-generator-core/src/main/java/uk/gov/justice/generation/pojo/generators/plugin/DefaultPluginProvider.java index 5e05318..0e32dfc 100644 --- a/pojo-generator-core/src/main/java/uk/gov/justice/generation/pojo/generators/plugin/DefaultPluginProvider.java +++ b/pojo-generator-core/src/main/java/uk/gov/justice/generation/pojo/generators/plugin/DefaultPluginProvider.java @@ -3,7 +3,6 @@ import static java.util.Arrays.asList; import uk.gov.justice.generation.pojo.generators.plugin.classgenerator.ClassGeneratorPlugin; -import uk.gov.justice.generation.pojo.generators.plugin.classgenerator.EventAnnotationPlugin; import uk.gov.justice.generation.pojo.generators.plugin.classgenerator.FieldAndMethodPlugin; import uk.gov.justice.generation.pojo.generators.plugin.classgenerator.SerializablePlugin; import uk.gov.justice.generation.pojo.generators.plugin.classgenerator.builder.BuilderGeneratorFactory; @@ -20,7 +19,6 @@ public class DefaultPluginProvider implements PluginProvider { @Override public List pluginClassGenerators() { return asList( - new EventAnnotationPlugin(), new SerializablePlugin(), new FieldAndMethodPlugin(), new BuilderPlugin(new BuilderGeneratorFactory())); @@ -33,4 +31,6 @@ public List typeNamePlugins() { new UuidTypeNamePlugin(), new ZonedDateTimeTypeNamePlugin()); } + + } diff --git a/pojo-generator-core/src/test/java/uk/gov/justice/generation/SchemaPojoGeneratorTest.java b/pojo-generator-core/src/test/java/uk/gov/justice/generation/SchemaPojoGeneratorTest.java index c1b47b2..676cd3b 100644 --- a/pojo-generator-core/src/test/java/uk/gov/justice/generation/SchemaPojoGeneratorTest.java +++ b/pojo-generator-core/src/test/java/uk/gov/justice/generation/SchemaPojoGeneratorTest.java @@ -2,9 +2,7 @@ import static java.nio.file.Paths.get; import static org.apache.commons.io.FileUtils.cleanDirectory; -import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.CoreMatchers.notNullValue; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; @@ -13,14 +11,10 @@ import uk.gov.justice.maven.generator.io.files.parser.core.GeneratorConfig; import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.nio.file.Path; import java.nio.file.Paths; import java.util.HashMap; import java.util.Map; -import org.apache.commons.io.IOUtils; import org.junit.Before; import org.junit.Test; @@ -58,35 +52,6 @@ public void shouldConvertSchemaFileToJavaPojo() throws Exception { assertThat(files, notNullValue()); assertThat(files.length, is(1)); assertThat(files[0].toPath().toString(), is("target/test-generation/uk/gov/justice/generation/pojo/PersonSchema.java")); - - final String javaSource = loadFileAsString(files[0].toPath()); - - assertThat(javaSource, not(containsString("@Event(\"example.events.person-event\")"))); - } - - @Test - public void shouldConvertSchemaFileToJavaPojoWithEventAnnotation() throws Exception { - final File schemaFile = get("src/test/resources/schemas/example.events.person-event.json").toFile(); - final GeneratorConfig generatorConfig = mock(GeneratorConfig.class); - - when(generatorConfig.getOutputDirectory()).thenReturn(sourceOutputDirectory.toPath()); - when(generatorConfig.getBasePackageName()).thenReturn("uk.gov.justice.generation.event"); - - final SchemaPojoGenerator schemaPojoGenerator = new SchemaPojoGenerator(); - - schemaPojoGenerator.run(schemaFile, generatorConfig); - - final File directory = Paths.get("target/test-generation/uk/gov/justice/generation/event").toFile(); - assertThat(directory.exists(), is(true)); - - final File[] files = directory.listFiles(); - assertThat(files, notNullValue()); - assertThat(files.length, is(1)); - assertThat(files[0].toPath().toString(), is("target/test-generation/uk/gov/justice/generation/event/PersonEvent.java")); - - final String javaSource = loadFileAsString(files[0].toPath()); - - assertThat(javaSource, containsString("@Event(\"example.events.person-event\")")); } @Test @@ -111,15 +76,5 @@ public void shouldUsePluginProviderSetInGeneratorConfigAndNotUseEventAnnotationP assertThat(files, notNullValue()); assertThat(files.length, is(1)); assertThat(files[0].toPath().toString(), is("target/test-generation/uk/gov/justice/generation/event/PersonEvent.java")); - - final String javaSource = loadFileAsString(files[0].toPath()); - - assertThat(javaSource, not(containsString("@Event(\"example.events.person-event\")"))); - } - - private String loadFileAsString(final Path path) throws IOException { - try (final FileReader reader = new FileReader(path.toFile())) { - return IOUtils.toString(reader); - } } } diff --git a/pojo-generator-core/src/test/java/uk/gov/justice/generation/pojo/generators/plugin/DefaultPluginProviderTest.java b/pojo-generator-core/src/test/java/uk/gov/justice/generation/pojo/generators/plugin/DefaultPluginProviderTest.java index f4d4137..21ced49 100644 --- a/pojo-generator-core/src/test/java/uk/gov/justice/generation/pojo/generators/plugin/DefaultPluginProviderTest.java +++ b/pojo-generator-core/src/test/java/uk/gov/justice/generation/pojo/generators/plugin/DefaultPluginProviderTest.java @@ -6,7 +6,6 @@ import static org.junit.Assert.assertThat; import uk.gov.justice.generation.pojo.generators.plugin.classgenerator.ClassGeneratorPlugin; -import uk.gov.justice.generation.pojo.generators.plugin.classgenerator.EventAnnotationPlugin; import uk.gov.justice.generation.pojo.generators.plugin.classgenerator.FieldAndMethodPlugin; import uk.gov.justice.generation.pojo.generators.plugin.classgenerator.SerializablePlugin; import uk.gov.justice.generation.pojo.generators.plugin.classgenerator.builder.BuilderPlugin; @@ -26,9 +25,8 @@ public class DefaultPluginProviderTest { public void shouldProvideDefaultListOfPluginClassGenerators() throws Exception { final List pluginClassGenerators = new DefaultPluginProvider().pluginClassGenerators(); - assertThat(pluginClassGenerators.size(), is(4)); + assertThat(pluginClassGenerators.size(), is(3)); assertThat(pluginClassGenerators, hasItems( - instanceOf(EventAnnotationPlugin.class), instanceOf(SerializablePlugin.class), instanceOf(FieldAndMethodPlugin.class), instanceOf(BuilderPlugin.class) diff --git a/pojo-plugin-test-provider/pom.xml b/pojo-plugin-test-provider/pom.xml index 4dacc2f..2532326 100644 --- a/pojo-plugin-test-provider/pom.xml +++ b/pojo-plugin-test-provider/pom.xml @@ -17,6 +17,11 @@ pojo-generation-core ${project.version} + + uk.gov.justice.generators + pojo-event-annotation-plugin + ${project.version} + @@ -25,4 +30,4 @@ test - \ No newline at end of file + diff --git a/pom.xml b/pom.xml index 2d21289..ad0ee69 100644 --- a/pom.xml +++ b/pom.xml @@ -22,6 +22,7 @@ integration-test pojo-plugin-it pojo-plugin-test-provider + pojo-event-annotation-plugin