From 55dc25ac24b0e3edca26c9015ddd2fd31d3092e5 Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Sat, 2 May 2015 21:26:34 +0200 Subject: [PATCH] WIP --- .../juplo/plugins/hibernate4/Hbm2DdlMojo.java | 146 +++++++----------- 1 file changed, 54 insertions(+), 92 deletions(-) diff --git a/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java b/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java index 85ae5182..b85c601f 100644 --- a/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java +++ b/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java @@ -61,8 +61,6 @@ import org.apache.maven.project.MavenProject; import org.hibernate.cfg.NamingStrategy; import org.hibernate.envers.configuration.spi.AuditConfiguration; import org.hibernate.tool.hbm2ddl.SchemaExport; -import org.hibernate.tool.hbm2ddl.SchemaExport.Type; -import org.hibernate.tool.hbm2ddl.Target; import org.scannotation.AnnotationDB; @@ -264,37 +262,36 @@ public class Hbm2DdlMojo extends AbstractMojo private String hibernateMapping; /** - * Target of execution: - * + * Do not output the script to stdout. * - * A database connection is only needed for EXPORT and BOTH, but a - * Hibernate-Dialect must always be chosen. + * @parameter property="hibernate.export.quiet" default-value="true" + * @since 1.0.6 + */ + private boolean quiet; + + /** + * Only drop the tables. * - * @parameter property="hibernate.export.target" default-value="EXPORT" - * @since 1.0 + * @parameter property="hibernate.export.drop" default-value="true" + * @since 1.0.6 */ - private String target; + private boolean drop; /** - * Type of execution. - * + * Only create the tables. * - * If NONE is choosen, no databaseconnection is needed. + * @parameter property="hibernate.export.create" default-value="true" + * @since 1.0.6 + */ + private boolean create; + + /** + * Do not export to the database. * - * @parameter property="hibernate.export.type" default-value="BOTH" - * @since 1.0 + * @parameter property="hibernate.export.text" default-value="false" + * @since 1.0.6 */ - private String type; + private boolean text; /** * Output file. @@ -787,50 +784,24 @@ public class Hbm2DdlMojo extends AbstractMojo } } - Target target = null; - try - { - target = Target.valueOf(this.target.toUpperCase()); - } - catch (IllegalArgumentException e) - { - getLog().error("Invalid value for configuration-option \"target\": " + this.target); - getLog().error("Valid values are: NONE, SCRIPT, EXPORT, BOTH"); - throw new MojoExecutionException("Invalid value for configuration-option \"target\""); - } - Type type = null; - try - { - type = Type.valueOf(this.type.toUpperCase()); - } - catch (IllegalArgumentException e) - { - getLog().error("Invalid value for configuration-option \"type\": " + this.type); - getLog().error("Valid values are: NONE, CREATE, DROP, BOTH"); - 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 or mapping-files 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 entry : properties.entrySet()) getLog().info(" " + entry.getKey() + " = " + entry.getValue()); + if (!modified) + { + getLog().info( + "No modified annotated classes or mapping-files found and dialect " + + "unchanged." + ); + if (!force) + { + getLog().info("Skipping schema generation!"); + project.getProperties().setProperty(EXPORT_SKIPPED_PROPERTY, "true"); + return; + } + } + try { /** @@ -838,33 +809,24 @@ public class Hbm2DdlMojo extends AbstractMojo * hibernate does not use the context-classloader of the current * thread and, hence, would not be able to resolve the driver-class! */ - getLog().debug("Target: " + target + ", Type: " + type); - switch (target) + if (!text && (create || drop)) { - case EXPORT: - case BOTH: - switch (type) - { - case CREATE: - case DROP: - case BOTH: - Class driverClass = classLoader.loadClass(properties.getProperty(DRIVER_CLASS)); - getLog().debug("Registering JDBC-driver " + driverClass.getName()); - DriverManager.registerDriver(new DriverProxy((Driver)driverClass.newInstance())); - getLog().debug( - "Opening JDBC-connection to " - + properties.getProperty(URL) - + " as " - + properties.getProperty(USERNAME) - + " with password " - + properties.getProperty(PASSWORD) - ); - connection = DriverManager.getConnection( - properties.getProperty(URL), - properties.getProperty(USERNAME), - properties.getProperty(PASSWORD) - ); - } + Class driverClass = classLoader.loadClass(properties.getProperty(DRIVER_CLASS)); + getLog().debug("Registering JDBC-driver " + driverClass.getName()); + DriverManager.registerDriver(new DriverProxy((Driver)driverClass.newInstance())); + getLog().debug( + "Opening JDBC-connection to " + + properties.getProperty(URL) + + " as " + + properties.getProperty(USERNAME) + + " with password " + + properties.getProperty(PASSWORD) + ); + connection = DriverManager.getConnection( + properties.getProperty(URL), + properties.getProperty(USERNAME), + properties.getProperty(PASSWORD) + ); } } catch (ClassNotFoundException e) @@ -920,7 +882,7 @@ public class Hbm2DdlMojo extends AbstractMojo } export.setOutputFile(outF.getPath()); - export.execute(target, type); + export.execute(!quiet, !text, drop, create); for (Object exception : export.getExceptions()) getLog().debug(exception.toString()); -- 2.20.1