/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * Copyright (c) 2013, MPL CodeInside http://codeinside.ru */ package ru.codeinside.gses.migrations; import org.jboss.arquillian.junit.Arquillian; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import ru.codeinside.gses.liquibase.impl.DbConfig; import ru.codeinside.gses.liquibase.impl.LegacyMigrationService; import ru.codeinside.gses.liquibase.impl.Migration; import javax.naming.InitialContext; import javax.sql.DataSource; import javax.transaction.Status; import javax.transaction.UserTransaction; import java.sql.Connection; import java.sql.PreparedStatement; /** * Запускать вручную, например: * <pre></pre>mvn test -Dtest=CleanSchema -Darquillian.launch=xeodon</pre> */ @RunWith(Arquillian.class) public class CleanSchema extends Assert { static void clean() throws Exception { final UserTransaction tx = InitialContext.doLookup("UserTransaction"); final Migration assistance = new LegacyMigrationService().create(); tx.begin(); try { final DataSource ds = InitialContext.doLookup(Databases.ADMIN); assistance.drop(new DbConfig(ds)); Connection connection = ds.getConnection(); PreparedStatement st = connection.prepareStatement("CREATE SCHEMA activiti; CREATE SCHEMA domain1; CREATE SCHEMA log;CREATE SCHEMA timer;"); st.executeUpdate(); st.close(); connection.close(); tx.commit(); } finally { if (tx.getStatus() == Status.STATUS_ACTIVE) { tx.rollback(); } } } @Test public void cleanAll() throws Exception { clean(); } }