diff --git a/generators/server/templates/src/main/java/package/config/neo4j/Neo4jMigrations.java.ejs b/generators/server/templates/src/main/java/package/config/neo4j/Neo4jMigrations.java.ejs index 525d7ddac3f..7560d86f5ea 100644 --- a/generators/server/templates/src/main/java/package/config/neo4j/Neo4jMigrations.java.ejs +++ b/generators/server/templates/src/main/java/package/config/neo4j/Neo4jMigrations.java.ejs @@ -20,6 +20,7 @@ package <%= packageName %>.config.neo4j; import ac.simons.neo4j.migrations.core.JavaBasedMigration; import ac.simons.neo4j.migrations.core.MigrationContext; +import ac.simons.neo4j.migrations.core.MigrationsException; import java.io.IOException; import java.util.List; @@ -46,11 +47,16 @@ final class Neo4jMigrations { static class V0001__CreateUsers implements JavaBasedMigration { @Override - public void apply(MigrationContext context) throws IOException { + public void apply(MigrationContext context) { ObjectMapper om = new ObjectMapper(); ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver(); - Resource[] resources = resourcePatternResolver.getResources("classpath:config/neo4j/migrations/user__*.json"); + Resource[] resources; + try { + resources = resourcePatternResolver.getResources("classpath:config/neo4j/migrations/user__*.json"); + } catch (IOException e) { + throw new MigrationsException("Could not load user definition resources.", e); + } JavaType type = om.getTypeFactory(). constructMapType(Map.class, String.class, Object.class); @@ -69,13 +75,17 @@ final class Neo4jMigrations { try (Session session = context.getSession()) { for (Resource resource : resources) { - Map user = om.readValue(resource.getInputStream(), type); - user.put("user_id", UUID.randomUUID().toString()); - List authorities = (List) user.remove("authorities"); - user.remove("_class"); - - session.writeTransaction( - t -> t.run(query, Values.parameters("user", user, "authorities", authorities)).consume()); + try { + Map user = om.readValue(resource.getInputStream(), type); + user.put("user_id", UUID.randomUUID().toString()); + List authorities = (List) user.remove("authorities"); + user.remove("_class"); + + session.writeTransaction( + t -> t.run(query, Values.parameters("user", user, "authorities", authorities)).consume()); + } catch (IOException e) { + throw new MigrationsException("Could not load resource " + resource.getDescription() + ".", e); + } } } }