X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fplugins%2Fhibernate4%2FHbm2DdlMojo.java;h=9a61cd61ab7728e1e3cf7ee7d24ad7abcccd30cc;hb=f2955fc974239cbb266922c04e8e11101d7e9dd9;hp=f09cbd676b5d20aaee67832efb691ec8a37c2929;hpb=99a7eaddd1301df0d151f01791e3d177297670aa;p=hibernate4-maven-plugin
diff --git a/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java b/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java
index f09cbd67..9a61cd61 100644
--- a/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java
+++ b/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java
@@ -88,7 +88,7 @@ public class Hbm2DdlMojo extends AbstractMojo
public final static String NAMING_STRATEGY="hibernate.ejb.naming_strategy";
public final static String ENVERS = "hibernate.export.envers";
- public final static String MD5S = "schema.md5s";
+ public final static String MD5S = "hibernate4-generatedschema.md5s";
private final static Pattern split = Pattern.compile("[^,\\s]+");
@@ -119,7 +119,7 @@ public class Hbm2DdlMojo extends AbstractMojo
* Classes-Directory to scan.
*
* This parameter defaults to the maven build-output-directory for classes.
- * Additonally, all dependencies are scanned for annotated classes.
+ * Additionally, all dependencies are scanned for annotated classes.
*
* @parameter property="project.build.outputDirectory"
* @since 1.0
@@ -127,7 +127,7 @@ public class Hbm2DdlMojo extends AbstractMojo
private String outputDirectory;
/**
- * Wether to scan test-classes too, or not.
+ * Whether to scan test-classes too, or not.
*
* If this parameter is set to true
the test-classes of the
* artifact will be scanned for hibernate-annotated classes additionally.
@@ -172,13 +172,13 @@ public class Hbm2DdlMojo extends AbstractMojo
*
* If set to true
, the execution is skipped.
*
- * A skipped excecution is signaled via the maven-property
+ * A skipped execution is signaled via the maven-property
* ${hibernate.export.skipped}
.
*
- * The excecution is skipped automatically, if no modified or newly added
+ * The execution is skipped automatically, if no modified or newly added
* annotated classes are found and the dialect was not changed.
*
- * @parameter property="maven.test.skip" default-value="false"
+ * @parameter property="hibernate.skip" default-value="${maven.test.skip}"
* @since 1.0
*/
private boolean skip;
@@ -264,14 +264,14 @@ public class Hbm2DdlMojo extends AbstractMojo
/**
* Target of execution:
*
- * - NONE only export schema to SQL-script (forces excecution, signals skip)
- * - EXPORT create database (DEFAULT!). forces excecution, signals skip)
+ * - NONE only export schema to SQL-script (forces execution, signals skip)
+ * - EXPORT create database (DEFAULT!). forces execution, signals skip)
* - SCRIPT export schema to SQL-script and print it to STDOUT
* - BOTH
*
*
- * A databaseconnection is only needed for EXPORT and BOTH, but a
- * Hibernate-Dialect must always be choosen.
+ * A database connection is only needed for EXPORT and BOTH, but a
+ * Hibernate-Dialect must always be chosen.
*
* @parameter property="hibernate.export.target" default-value="EXPORT"
* @since 1.0
@@ -335,7 +335,7 @@ public class Hbm2DdlMojo extends AbstractMojo
{
if (skip)
{
- getLog().info("Exectuion of hibernate4-maven-plugin:export was skipped!");
+ getLog().info("Execution of hibernate4-maven-plugin:export was skipped!");
project.getProperties().setProperty(EXPORT_SKIPPED_PROPERTY, "true");
return;
}
@@ -344,7 +344,7 @@ public class Hbm2DdlMojo extends AbstractMojo
boolean modified = false;
File saved = new File(buildDirectory + File.separator + MD5S);
- if (saved.exists())
+ if (saved.isFile() && saved.length() > 0)
{
try
{
@@ -536,7 +536,7 @@ public class Hbm2DdlMojo extends AbstractMojo
throw new MojoExecutionException(e.getMessage());
}
- /** Overwrite values from propertie-file or set, if given */
+ /** Overwrite values from properties-file or set, if given */
if (driverClassName != null)
{
if (properties.containsKey(DRIVER_CLASS))
@@ -667,7 +667,7 @@ public class Hbm2DdlMojo extends AbstractMojo
if (properties.isEmpty())
{
getLog().error("No properties set!");
- throw new MojoFailureException("Hibernate-Configuration is missing!");
+ throw new MojoFailureException("Hibernate configuration is missing!");
}
Configuration config = new Configuration();
@@ -747,15 +747,15 @@ public class Hbm2DdlMojo extends AbstractMojo
}
catch (NoSuchAlgorithmException e)
{
- throw new MojoFailureException("Cannot calculate MD5-summs!", e);
+ throw new MojoFailureException("Cannot calculate MD5 sums!", e);
}
catch (FileNotFoundException e)
{
- throw new MojoFailureException("Cannot calculate MD5-summs!", e);
+ throw new MojoFailureException("Cannot calculate MD5 sums!", e);
}
catch (IOException e)
{
- throw new MojoFailureException("Cannot calculate MD5-summs!", e);
+ throw new MojoFailureException("Cannot calculate MD5 sums!", e);
}
}
@@ -875,9 +875,34 @@ public class Hbm2DdlMojo extends AbstractMojo
}
SchemaExport export = new SchemaExport(config, connection);
- export.setOutputFile(outputFile);
export.setDelimiter(delimiter);
export.setFormat(format);
+
+ File outF = new File(outputFile);
+
+ if (!outF.isAbsolute())
+ {
+ // Interpret relative file path relative to build directory
+ outF = new File(buildDirectory, outputFile);
+ getLog().info("Adjusted relative path, resulting path is " + outF.getPath());
+ }
+
+ // Ensure that directory path for specified file exists
+ File outFileParentDir = outF.getParentFile();
+ if (null != outFileParentDir && !outFileParentDir.exists())
+ {
+ try
+ {
+ getLog().info("Creating directory path for output file:" + outFileParentDir.getPath());
+ outFileParentDir.mkdirs();
+ }
+ catch (Exception e)
+ {
+ getLog().error("Error creating directory path for output file: " + e.getLocalizedMessage());
+ }
+ }
+
+ export.setOutputFile(outF.getPath());
export.execute(target, type);
for (Object exception : export.getExceptions())