001 package org.apache.torque.mojo;
002
003 import java.io.IOException;
004 import java.util.Properties;
005
006 import org.apache.maven.plugin.MojoExecutionException;
007 import org.kuali.db.DatabaseCommand;
008 import org.kuali.db.SQLGenerator;
009 import org.kuali.db.Transaction;
010
011 /**
012 * Does a DROP->CREATE of a database and the corresponding default user. See also <code>impex:create</code> and
013 * <code>impex:drop</code>
014 *
015 * @goal reset
016 */
017 public class ResetMojo extends AbstractDBACommandMojo {
018
019 protected Transaction getTransaction(Properties properties, DatabaseCommand command) throws IOException {
020 SQLGenerator generator = new SQLGenerator(properties, url, command);
021 generator.setEncoding(getEncoding());
022 String sql = generator.getSQL();
023 Transaction t = new Transaction();
024 t.setDescription(getTransactionDescription(command));
025 t.addText(sql);
026 return t;
027 }
028
029 @Override
030 protected void configureTransactions() throws MojoExecutionException {
031 Properties properties = getContextProperties();
032 try {
033 transactions.add(getTransaction(properties, DatabaseCommand.DROP));
034 transactions.add(getTransaction(properties, DatabaseCommand.CREATE));
035 } catch (IOException e) {
036 throw new MojoExecutionException("Error generating SQL", e);
037 }
038 }
039 }