diff --git a/catalog-core/src/main/java/uk/gov/justice/schema/catalog/SchemaCatalogException.java b/catalog-core/src/main/java/uk/gov/justice/schema/catalog/SchemaCatalogException.java index 77be3fe..ff4871a 100644 --- a/catalog-core/src/main/java/uk/gov/justice/schema/catalog/SchemaCatalogException.java +++ b/catalog-core/src/main/java/uk/gov/justice/schema/catalog/SchemaCatalogException.java @@ -2,10 +2,6 @@ public class SchemaCatalogException extends RuntimeException { - public SchemaCatalogException(final String message) { - super(message); - } - public SchemaCatalogException(final String message, final Throwable cause) { super(message, cause); } diff --git a/catalog-generation-plugin-it/pom.xml b/catalog-generation-plugin-it/pom.xml index 1b66ed6..24e07ff 100644 --- a/catalog-generation-plugin-it/pom.xml +++ b/catalog-generation-plugin-it/pom.xml @@ -30,7 +30,7 @@ uk.gov.justice.events.pojo ${basedir}/src/raml/json/schema - ${project.build.directory}/generated-sources + ${project.build.directory}/generated-resources **/*.json diff --git a/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationContext.java b/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationContext.java index f241a8d..a5cd1c7 100644 --- a/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationContext.java +++ b/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationContext.java @@ -2,20 +2,10 @@ public class CatalogGenerationContext { - private static final String CATALOG_GENERATION_ROOT = "target/generated-catalogs"; - private static final String CATALOG_PATH = "json/schema/catalog"; private static final String CATALOG_FILENAME = "schema_catalog.json"; private static final String JSON_SCHEMA_PATH = "raml/json/schema/"; public static final String AN_EMPTY_STRING = ""; - public String getCatalogGenerationRoot() { - return CATALOG_GENERATION_ROOT; - } - - public String getCatalogPath() { - return CATALOG_PATH; - } - public String getCatalogFilename() { return CATALOG_FILENAME; } diff --git a/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationException.java b/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationException.java index 1a5c44b..11c8b74 100644 --- a/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationException.java +++ b/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationException.java @@ -1,8 +1,6 @@ package uk.gov.justice.schema.catalog.generation; -import uk.gov.justice.schema.catalog.SchemaCatalogException; - -public class CatalogGenerationException extends SchemaCatalogException { +public class CatalogGenerationException extends RuntimeException { public CatalogGenerationException(final String message) { super(message); diff --git a/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationRunner.java b/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationRunner.java index 065e180..65ebbcd 100644 --- a/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationRunner.java +++ b/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationRunner.java @@ -7,6 +7,7 @@ import java.net.URI; import java.net.URL; +import java.nio.file.Path; import java.util.List; public class CatalogGenerationRunner { @@ -24,13 +25,13 @@ public CatalogGenerationRunner( this.urlConverter = urlConverter; } - public void generateCatalog(final String catalogName, final List schemaFiles) { + public void generateCatalog(final String catalogName, final List schemaFiles, final Path catalogGenerationPath) { final Catalog catalog = catalogObjectGenerator.generate( catalogName, asUrls(schemaFiles)); - catalogWriter.write(catalog); + catalogWriter.write(catalog, catalogGenerationPath); } private List asUrls(final List schemaFiles) { diff --git a/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogWriter.java b/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogWriter.java index 09a3aeb..919d36d 100644 --- a/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogWriter.java +++ b/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/CatalogWriter.java @@ -7,6 +7,7 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.nio.file.Path; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -14,6 +15,8 @@ public class CatalogWriter { + private static final String CATALOG_SUB_DIRECTORY = "json/schema"; + private final ObjectMapper objectMapper; private final CatalogGenerationContext catalogGenerationContext; @@ -23,13 +26,11 @@ public CatalogWriter(final ObjectMapper objectMapper, final CatalogGenerationCon } @SuppressWarnings("ResultOfMethodCallIgnored") - public void write(final Catalog catalog) { + public void write(final Catalog catalog, final Path catalogGenerationPath) { - final String catalogJson = writeAsString(catalog); - final String catalogGenerationRoot = catalogGenerationContext.getCatalogGenerationRoot(); - final String catalogPath = catalogGenerationContext.getCatalogPath(); - final File outputDirectory = new File(catalogGenerationRoot, catalogPath); + final String catalogJson = writeAsString(catalog); + final File outputDirectory = catalogGenerationPath.resolve(CATALOG_SUB_DIRECTORY).toFile(); outputDirectory.mkdirs(); final File outputFile = new File(outputDirectory, catalogGenerationContext.getCatalogFilename()); diff --git a/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/MavenCatalogGenerator.java b/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/MavenCatalogGenerator.java index c0dcf79..861bed3 100644 --- a/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/MavenCatalogGenerator.java +++ b/catalog-generation/src/main/java/uk/gov/justice/schema/catalog/generation/MavenCatalogGenerator.java @@ -5,6 +5,7 @@ import uk.gov.justice.schema.catalog.generation.maven.CatalogGeneratorProperties; import java.net.URI; +import java.nio.file.Path; import java.util.List; import com.google.common.annotations.VisibleForTesting; @@ -25,12 +26,14 @@ public MavenCatalogGenerator(final ObjectFactory objectFactory) { @Override public void run(final List schemaFiles, final GeneratorConfig generatorConfig) { + final Path catalogGenerationPath = generatorConfig.getOutputDirectory(); + final CatalogGenerationRunner catalogGenerationRunner = objectFactory.catalogGenerationRunner(); final CatalogGeneratorProperties generatorProperties = (CatalogGeneratorProperties) generatorConfig.getGeneratorProperties(); final String catalogName = generatorProperties.getCatalogName(); - catalogGenerationRunner.generateCatalog(catalogName, schemaFiles); + catalogGenerationRunner.generateCatalog(catalogName, schemaFiles, catalogGenerationPath); } } diff --git a/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationContextTest.java b/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationContextTest.java index 0879fba..a6688e0 100644 --- a/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationContextTest.java +++ b/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationContextTest.java @@ -14,16 +14,6 @@ public class CatalogGenerationContextTest { @InjectMocks private CatalogGenerationContext catalogGenerationContext; - @Test - public void shouldGetCatalogGenerationRoot() throws Exception { - assertThat(catalogGenerationContext.getCatalogGenerationRoot(), is("target/generated-catalogs")); - } - - @Test - public void shouldGetCatalogPath() throws Exception { - assertThat(catalogGenerationContext.getCatalogPath(), is("json/schema/catalog")); - } - @Test public void shouldGetCatalogFilename() throws Exception { assertThat(catalogGenerationContext.getCatalogFilename(), is("schema_catalog.json")); diff --git a/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationRunnerTest.java b/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationRunnerTest.java index cb1f9b6..00d1572 100644 --- a/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationRunnerTest.java +++ b/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/CatalogGenerationRunnerTest.java @@ -10,6 +10,8 @@ import java.net.URI; import java.net.URL; +import java.nio.file.Path; +import java.nio.file.Paths; import org.junit.Test; import org.junit.runner.RunWith; @@ -38,6 +40,7 @@ public void shouldGenerateACatalogFile() throws Exception { final String catalogName = "catalog name"; final URI schemaFile = new URI("file:/schemaFile.json"); final URL schemaFileUrl = schemaFile.toURL(); + final Path catalogGenerationPath = Paths.get(new URI("file:/path/to/catalog/generation/directory")); final Catalog catalog = mock(Catalog.class); @@ -46,8 +49,8 @@ public void shouldGenerateACatalogFile() throws Exception { catalogName, singletonList(schemaFileUrl))).thenReturn(catalog); - catalogGenerationRunner.generateCatalog(catalogName, singletonList(schemaFile)); + catalogGenerationRunner.generateCatalog(catalogName, singletonList(schemaFile), catalogGenerationPath); - verify(catalogWriter).write(catalog); + verify(catalogWriter).write(catalog, catalogGenerationPath); } } diff --git a/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/CatalogWriterTest.java b/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/CatalogWriterTest.java index 1a7c2e3..6611b63 100644 --- a/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/CatalogWriterTest.java +++ b/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/CatalogWriterTest.java @@ -21,7 +21,8 @@ public class CatalogWriterTest { - private static final File GENERATED_CATALOG_FILE = new File(new File("target/generated-catalogs", "json/schema/catalog"), "schema_catalog.json"); + private static final File CATALOG_GENERATION_PATH = new File("target/test-output-directory"); + private static final File GENERATED_CATALOG_FILE = new File(CATALOG_GENERATION_PATH + "/json/schema", "schema_catalog.json"); private final ObjectMapper objectMapper = new ObjectMapperProducer().objectMapper(); @@ -55,7 +56,7 @@ public void shouldGenerateACatalogInTheCorrectLocationFromTheCatalogDomainObject ) ); - catalogWriter.write(catalog); + catalogWriter.write(catalog, CATALOG_GENERATION_PATH.toPath()); assertThat(GENERATED_CATALOG_FILE.exists(), is(true)); diff --git a/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/MavenCatalogGeneratorTest.java b/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/MavenCatalogGeneratorTest.java index 6a81b1d..d3ae5fe 100644 --- a/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/MavenCatalogGeneratorTest.java +++ b/catalog-generation/src/test/java/uk/gov/justice/schema/catalog/generation/MavenCatalogGeneratorTest.java @@ -12,6 +12,8 @@ import uk.gov.justice.schema.catalog.generation.maven.CatalogGeneratorProperties; import java.net.URI; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.List; import org.junit.Test; @@ -34,18 +36,20 @@ public void shouldInstantiateAndRunTheCatalogGeneration() throws Exception { final String catalogName = "my catalog"; final List schemaFiles = singletonList(new URI("/a-schema-file.json")); + final Path catalogGenerationPath = Paths.get(new URI("file:/path/to/catalog/generation/directory")); final CatalogGenerationRunner catalogGenerationRunner = mock(CatalogGenerationRunner.class); final GeneratorConfig generatorConfig = mock(GeneratorConfig.class); final CatalogGeneratorProperties catalogGeneratorProperties = mock(CatalogGeneratorProperties.class); + when(generatorConfig.getOutputDirectory()).thenReturn(catalogGenerationPath); when(objectFactory.catalogGenerationRunner()).thenReturn(catalogGenerationRunner); when(generatorConfig.getGeneratorProperties()).thenReturn(catalogGeneratorProperties); when(catalogGeneratorProperties.getCatalogName()).thenReturn(catalogName); mavenCatalogGenerator.run(schemaFiles, generatorConfig); - verify(catalogGenerationRunner).generateCatalog(catalogName, schemaFiles); + verify(catalogGenerationRunner).generateCatalog(catalogName, schemaFiles, catalogGenerationPath); } @Test