X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fplugins%2Fhibernate%2FAbstractSchemaMojo.java;h=06024c212756577ca84a6876da7d8e5428702076;hb=a20fb5535864f495b8117891e155f636a83f73bc;hp=6f224b09668f5cde13426918d71a84b92162fce3;hpb=149a94d09dfb678e4be39aefb20dbf86ef28c416;p=hibernate-maven-plugin diff --git a/src/main/java/de/juplo/plugins/hibernate/AbstractSchemaMojo.java b/src/main/java/de/juplo/plugins/hibernate/AbstractSchemaMojo.java index 6f224b09..06024c21 100644 --- a/src/main/java/de/juplo/plugins/hibernate/AbstractSchemaMojo.java +++ b/src/main/java/de/juplo/plugins/hibernate/AbstractSchemaMojo.java @@ -10,6 +10,7 @@ import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.security.NoSuchAlgorithmException; +import java.time.ZonedDateTime; import java.util.Collections; import java.util.EnumSet; import java.util.HashMap; @@ -95,6 +96,7 @@ public abstract class AbstractSchemaMojo extends AbstractMojo public final static String SCAN_TESTCLASSES = "hibernate.schema.scan.test_classes"; public final static String TEST_OUTPUTDIRECTORY = "project.build.testOutputDirectory"; public final static String SKIPPED = "hibernate.schema.skipped"; + public final static String SCRIPT = "hibernate.schema.script"; private final static Pattern SPLIT = Pattern.compile("[^,\\s]+"); @@ -504,6 +506,8 @@ public abstract class AbstractSchemaMojo extends AbstractMojo /** Check, that the outputfile is writable */ final File output = getOutputFile(filename); + /** Check, if the outputfile is missing or was changed */ + checkOutputFile(output, tracker); /** Configure Hibernate */ final StandardServiceRegistry serviceRegistry = @@ -735,6 +739,8 @@ public abstract class AbstractSchemaMojo extends AbstractMojo thread.setContextClassLoader(contextClassLoader); for (Exception e : handler.getExceptions()) getLog().error(e.getMessage()); + /** Track, the content of the generated script */ + checkOutputFile(output, tracker); } } catch (MojoExecutionException e) @@ -1006,14 +1012,22 @@ public abstract class AbstractSchemaMojo extends AbstractMojo if (value != null) { if (properties.containsKey(key)) - getLog().info( - "Overwriting property " + key + "=\"" + - properties.getProperty(key) + - "\" with value \"" + value + "\"" - ); + { + if (!properties.getProperty(key).equals(value)) + { + getLog().info( + "Overwriting property " + key + "=\"" + + properties.getProperty(key) + + "\" with value \"" + value + "\"" + ); + properties.setProperty(key, value); + } + } else + { getLog().debug("Using value \"" + value + "\" for property " + key); - properties.setProperty(key, value); + properties.setProperty(key, value); + } } } @@ -1078,6 +1092,26 @@ public abstract class AbstractSchemaMojo extends AbstractMojo return output; } + private void checkOutputFile(File output, ModificationTracker tracker) + throws + MojoExecutionException + { + try + { + if (output.exists()) + tracker.track(SCRIPT, new FileInputStream(output)); + else + tracker.track(SCRIPT, ZonedDateTime.now().toString()); + } + catch (IOException e) + { + String error = + "Error while checking the generated script: " + e.getMessage(); + getLog().error(error); + throw new MojoExecutionException(error); + } + } + private void addMappings(MetadataSources sources, ModificationTracker tracker) throws MojoFailureException {