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