*/
public class Hbm2DdlMojo extends AbstractMojo
{
+ public final static String EXPORT_SKIPPED_PROPERTY = "hibernate.export.skipped";
+
public final static String DRIVER_CLASS = "hibernate.connection.driver_class";
public final static String URL = "hibernate.connection.url";
public final static String USERNAME = "hibernate.connection.username";
*/
private boolean skip;
+ /**
+ * Force execution
+ * <p>
+ * Force execution, even if no modified or newly added annotated classes
+ * where found. <code>skip</code> takes precedence over <code>force</code>.
+ *
+ * @parameter expression="${hibernate.export.force}" default-value="false"
+ */
+ private boolean force;
+
/**
* SQL-Driver name.
*
if (skip)
{
getLog().info("Exectuion of hibernate4-maven-plugin:export was skipped!");
+ project.getProperties().setProperty(EXPORT_SKIPPED_PROPERTY, "true");
return;
}
md5s.put(DIALECT, properties.getProperty(DIALECT));
}
- if (!modified)
- {
- getLog().info("No modified annotated classes found and dialect unchanged.");
- getLog().info("Skipping schema generation!");
- project.getProperties().setProperty("hibernate.export.skipped", "true");
- return;
- }
-
- getLog().info("Gathered hibernate-configuration (turn on debugging for details):");
if (properties.isEmpty())
{
getLog().error("No properties set!");
throw new MojoFailureException("Hibernate-Configuration is missing!");
}
- for (Entry<Object,Object> entry : properties.entrySet())
- getLog().info(" " + entry.getKey() + " = " + entry.getValue());
Configuration config = new Configuration();
config.setProperties(properties);
Target target = null;
try
{
- target = Target.valueOf(this.target);
+ target = Target.valueOf(this.target.toUpperCase());
}
catch (IllegalArgumentException e)
{
Type type = null;
try
{
- type = Type.valueOf(this.type);
+ type = Type.valueOf(this.type.toUpperCase());
}
catch (IllegalArgumentException e)
{
throw new MojoExecutionException("Invalid value for configuration-option \"type\"");
}
+ if (target.equals(Target.SCRIPT) || target.equals(Target.NONE))
+ {
+ project.getProperties().setProperty(EXPORT_SKIPPED_PROPERTY, "true");
+ }
+ if (
+ !modified
+ && !target.equals(Target.SCRIPT)
+ && !target.equals(Target.NONE)
+ && !force
+ )
+ {
+ getLog().info("No modified annotated classes found and dialect unchanged.");
+ getLog().info("Skipping schema generation!");
+ project.getProperties().setProperty(EXPORT_SKIPPED_PROPERTY, "true");
+ return;
+ }
+
+ getLog().info("Gathered hibernate-configuration (turn on debugging for details):");
+ for (Entry<Object,Object> entry : properties.entrySet())
+ getLog().info(" " + entry.getKey() + " = " + entry.getValue());
+
Connection connection = null;
try
{
/** Close the connection */
try
{
- connection.close();
+ if (connection != null)
+ connection.close();
}
catch (SQLException e)
{