X-Git-Url: http://juplo.de/gitweb/?p=hibernate4-maven-plugin;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fplugins%2Fhibernate4%2FHbm2DdlMojo.java;h=f016459f7d60cdacca4b739bf1c1d839870118df;hp=7afea6974f83700db0377a446c126600ed975f3b;hb=d8f4466a2342587009406aae4f2a7023bc11f5ea;hpb=6b6f25c70d0ad3424b087b2b6e9844c13518f3e3 diff --git a/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java b/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java index 7afea697..f016459f 100644 --- a/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java +++ b/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java @@ -27,12 +27,14 @@ import java.sql.Driver; import java.sql.DriverManager; import java.sql.DriverPropertyInfo; import java.sql.SQLException; +import java.sql.SQLFeatureNotSupportedException; import java.util.Enumeration; import java.util.HashSet; import java.util.List; import java.util.Map.Entry; import java.util.Properties; import java.util.Set; +import java.util.logging.Logger; import javax.persistence.Embeddable; import javax.persistence.Entity; import javax.persistence.MappedSuperclass; @@ -58,6 +60,13 @@ import org.scannotation.AnnotationDB; */ public class Hbm2DdlMojo extends AbstractMojo { + 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"; + public final static String PASSWORD = "hibernate.connection.password"; + public final static String DIALECT = "hibernate.dialect"; + + /** * The project whose project files to create. * @@ -176,7 +185,10 @@ public class Hbm2DdlMojo extends AbstractMojo MojoExecutionException { if (skip) + { + getLog().info("Exectuion of hibernate4-maven-plugin:export was skipped!"); return; + } File dir = new File(outputDirectory); if (!dir.exists()) @@ -217,7 +229,7 @@ public class Hbm2DdlMojo extends AbstractMojo properties.load(new FileInputStream(file)); } else - getLog().info("Ignoring nonexistent properties-file " + hibernateProperties + "!"); + getLog().info("No hibernate-properties-file found! Checked path: " + hibernateProperties); } catch (IOException e) { @@ -225,22 +237,96 @@ public class Hbm2DdlMojo extends AbstractMojo throw new MojoExecutionException(e.getMessage()); } - /** Overwrite values from propertie-file or set if given */ + /** Overwrite values from propertie-file or set, if given */ if (driverClassName != null) - properties.setProperty("hibernate.connection.driver_class", driverClassName); + { + if (properties.containsKey(DRIVER_CLASS)) + getLog().debug( + "Overwriting property " + + DRIVER_CLASS + "=" + properties.getProperty(DRIVER_CLASS) + + " with the value " + driverClassName + + " from the plugin-configuration-parameter driverClassName!" + ); + else + getLog().debug( + "Using the value " + driverClassName + + " from the plugin-configuration-parameter driverClassName!" + ); + properties.setProperty(DRIVER_CLASS, driverClassName); + } if (url != null) - properties.setProperty("hibernate.connection.url", url); + { + if (properties.containsKey(URL)) + getLog().debug( + "Overwriting property " + + URL + "=" + properties.getProperty(URL) + + " with the value " + url + + " from the plugin-configuration-parameter url!" + ); + else + getLog().debug( + "Using the value " + url + + " from the plugin-configuration-parameter url!" + ); + properties.setProperty(URL, url); + } if (username != null) - properties.setProperty("hibernate.connection.username", username); + { + if (properties.containsKey(USERNAME)) + getLog().debug( + "Overwriting property " + + USERNAME + "=" + properties.getProperty(USERNAME) + + " with the value " + username + + " from the plugin-configuration-parameter username!" + ); + else + getLog().debug( + "Using the value " + username + + " from the plugin-configuration-parameter username!" + ); + properties.setProperty(USERNAME, username); + } if (password != null) - properties.setProperty("hibernate.connection.password", password); + { + if (properties.containsKey(PASSWORD)) + getLog().debug( + "Overwriting property " + + PASSWORD + "=" + properties.getProperty(PASSWORD) + + " with the value " + password + + " from the plugin-configuration-parameter password!" + ); + else + getLog().debug( + "Using the value " + password + + " from the plugin-configuration-parameter password!" + ); + properties.setProperty(PASSWORD, password); + } if (hibernateDialect != null) - properties.setProperty("hibernate.dialect", hibernateDialect); + { + if (properties.containsKey(DIALECT)) + getLog().debug( + "Overwriting property " + + DIALECT + "=" + properties.getProperty(DIALECT) + + " with the value " + hibernateDialect + + " from the plugin-configuration-parameter hibernateDialect!" + ); + else + getLog().debug( + "Using the value " + hibernateDialect + + " from the plugin-configuration-parameter hibernateDialect!" + ); + properties.setProperty(DIALECT, hibernateDialect); + } + getLog().info("Gathered hibernate-configuration (turn on debugging for details):"); if (properties.isEmpty()) - getLog().warn("No properties set!"); + { + getLog().error("No properties set!"); + throw new MojoFailureException("Hibernate-Configuration is missing!"); + } for (Entry entry : properties.entrySet()) - getLog().debug(entry.getKey() + " = " + entry.getValue()); + getLog().info(" " + entry.getKey() + " = " + entry.getValue()); ClassLoader classLoader = null; try @@ -449,6 +535,15 @@ public class Hbm2DdlMojo extends AbstractMojo return target.jdbcCompliant(); } + /** + * This Method cannot be annotated with @Override, becaus the plugin + * will not compile then under Java 1.6! + */ + public Logger getParentLogger() throws SQLFeatureNotSupportedException + { + throw new SQLFeatureNotSupportedException("Not supported, for backward-compatibility with Java 1.6"); + } + @Override public String toString() {