package org.jbpm.ant; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Task; import org.hibernate.cfg.Configuration; import org.hibernate.connection.ConnectionProvider; import org.hibernate.engine.SessionFactoryImplementor; public class ShutDownHsqldb extends Task { private String config = "hibernate.cfg.xml"; private String properties; public void execute() throws BuildException { Configuration configuration = AntHelper.getConfiguration(config, properties); SessionFactoryImplementor sessionFactory = (SessionFactoryImplementor) configuration.buildSessionFactory(); ConnectionProvider connectionProvider = sessionFactory.getConnectionProvider(); try { Connection connection = connectionProvider.getConnection(); Statement statement = connection.createStatement(); log("shutting down database"); statement.executeUpdate("SHUTDOWN"); connectionProvider.closeConnection(connection); } catch (SQLException e) { throw new BuildException("could not shut down database", e); } finally { connectionProvider.close(); } } public void setConfig(String config) { this.config = config; } public void setProperties(String properties) { this.properties = properties; } }