X-Git-Url: https://juplo.de/gitweb/?p=percentcodec;a=blobdiff_plain;f=maven-plugins%2Fhibernate4%2Fsrc%2Fmain%2Fjava%2Fde%2Fjuplo%2Fplugins%2Fhibernate4%2FHbm2DdlMojo.java;fp=maven-plugins%2Fhibernate4%2Fsrc%2Fmain%2Fjava%2Fde%2Fjuplo%2Fplugins%2Fhibernate4%2FHbm2DdlMojo.java;h=0000000000000000000000000000000000000000;hp=f2fd23203652c19133eb59e14677e48dfbbdb94a;hb=f95f687755d54c46975b15dbd0221e82a7458f79;hpb=4f07e33a7c246caa3e4cd7c939f75064e4af03b0
diff --git a/maven-plugins/hibernate4/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java b/maven-plugins/hibernate4/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java
deleted file mode 100644
index f2fd2320..00000000
--- a/maven-plugins/hibernate4/src/main/java/de/juplo/plugins/hibernate4/Hbm2DdlMojo.java
+++ /dev/null
@@ -1,433 +0,0 @@
-package de.juplo.plugins.hibernate4;
-
-/*
- * Copyright 2001-2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import com.pyx4j.log4j.MavenLogAppender;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.sql.Connection;
-import java.sql.Driver;
-import java.sql.DriverManager;
-import java.sql.DriverPropertyInfo;
-import java.sql.SQLException;
-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 javax.persistence.Entity;
-import javax.persistence.Embeddable;
-import javax.persistence.MappedSuperclass;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.project.MavenProject;
-import org.hibernate.cfg.Configuration;
-import org.hibernate.tool.hbm2ddl.SchemaExport;
-import org.hibernate.tool.hbm2ddl.SchemaExport.Type;
-import org.hibernate.tool.hbm2ddl.Target;
-import org.scannotation.AnnotationDB;
-
-
-/**
- * Goal which extracts the hibernate-mapping-configuration and
- * exports an according SQL-database-schema.
- *
- * @goal export
- * @phase process-classes
- * @threadSafe
- * @requiresDependencyResolution runtime
- */
-public class Hbm2DdlMojo extends AbstractMojo
-{
- /**
- * The project whose project files to create.
- *
- * @parameter expression="${project}"
- * @required
- * @readonly
- */
- private MavenProject project;
-
- /**
- * Directories to scan.
- *
- * @parameter expression="${project.build.outputDirectory}"
- */
- private String outputDirectory;
-
- /**
- * Skip execution
- *
- * @parameter default-value="false"
- */
- private boolean skip;
-
- /**
- * SQL-Driver name.
- *
- * @parameter expression="${hibernate.connection.driver_class}
- */
- private String driverClassName;
-
- /**
- * Database URL.
- *
- * @parameter expression="${hibernate.connection.url}"
- */
- private String url;
-
- /**
- * Database username
- *
- * @parameter expression="${hibernate.connection.username}"
- */
- private String username;
-
- /**
- * Database password
- *
- * @parameter expression="${hibernate.connection.password}"
- */
- private String password;
-
- /**
- * Hibernate dialect.
- *
- * @parameter expression="${hibernate.dialect}"
- */
- private String hibernateDialect;
-
- /**
- * Hibernate configuration file.
- *
- * @parameter default-value="${project.build.outputDirectory}/hibernate.properties"
- */
- private String hibernateProperties;
-
- /**
- * Target of execution:
- *
- * - NONE do nothing - just validate the configuration
- * - EXPORT create database (DEFAULT!)
- * - SCRIPT export schema to SQL-script
- * - BOTH
- *
- * @parameter default-value="EXPORT"
- */
- private String target;
-
- /**
- * Type of export.
- *
- * - NONE do nothing - just validate the configuration
- * - CREATE create database-schema
- * - DROP drop database-schema
- * - BOTH (DEFAULT!)
- *
- * @parameter default-value="BOTH"
- */
- private String type;
-
- /**
- * Output file.
- *
- * @parameter default-value="${project.build.outputDirectory}/schema.sql"
- */
- private String outputFile;
-
- /**
- * Delimiter in output-file.
- *
- * @parameter default-value=";"
- */
- private String delimiter;
-
- /**
- * Format output-file.
- *
- * @parameter default-value="true"
- */
- private boolean format;
-
-
- @Override
- public void execute()
- throws
- MojoFailureException,
- MojoExecutionException
- {
- if (skip)
- return;
-
- File dir = new File(outputDirectory);
- if (!dir.exists())
- throw new MojoExecutionException("Cannot scan for annotated classes in " + outputDirectory + ": directory does not exist!");
-
-
- Set classes = new HashSet();
- URL dirUrl = null;
- try {
- AnnotationDB db = new AnnotationDB();
- getLog().info("Scanning directory " + outputDirectory + " for annotated classes...");
- dirUrl = dir.toURI().toURL();
- db.scanArchives(dirUrl);
- if (db.getAnnotationIndex().containsKey(Entity.class.getName()))
- classes.addAll(db.getAnnotationIndex().get(Entity.class.getName()));
- if (db.getAnnotationIndex().containsKey(MappedSuperclass.class.getName()))
- classes.addAll(db.getAnnotationIndex().get(MappedSuperclass.class.getName()));
- if (db.getAnnotationIndex().containsKey(Embeddable.class.getName()))
- classes.addAll(db.getAnnotationIndex().get(Embeddable.class.getName()));
- }
- catch (IOException e) {
- getLog().error("Error while scanning!", e);
- throw new MojoFailureException(e.getMessage());
- }
- if (classes.isEmpty())
- throw new MojoFailureException("No annotated classes found in directory " + outputDirectory);
-
- Properties properties = new Properties();
-
- /** Try to read configuration from properties-file */
- try {
- File file = new File(hibernateProperties);
- if (file.exists()) {
- getLog().info("Reading properties from file " + hibernateProperties + "...");
- properties.load(new FileInputStream(file));
- }
- else
- getLog().info("Ignoring nonexistent properties-file " + hibernateProperties + "!");
- }
- catch (IOException e) {
- getLog().error("Error while reading properties!", e);
- throw new MojoExecutionException(e.getMessage());
- }
-
- /** Overwrite values from propertie-file or set if given */
- if (driverClassName != null)
- properties.setProperty("hibernate.connection.driver_class", driverClassName);
- if (url != null)
- properties.setProperty("hibernate.connection.url", url);
- if (username != null)
- properties.setProperty("hibernate.connection.username", username);
- if (password != null)
- properties.setProperty("hibernate.connection.password", password);
- if (hibernateDialect != null)
- properties.setProperty("hibernate.dialect", hibernateDialect);
-
- if (properties.isEmpty())
- getLog().warn("No properties set!");
- for (Entry