Package er.plugintest.tests

Source Code of er.plugintest.tests.DDLTest

package er.plugintest.tests;

import java.sql.SQLException;

import com.webobjects.eoaccess.EOAdaptorChannel;
import com.webobjects.foundation.NSForwardException;

import er.extensions.eof.ERXEC;
import er.extensions.eof.ERXEOAccessUtilities;
import er.extensions.jdbc.ERXJDBCUtilities;
import er.extensions.jdbc.ERXSQLHelper;

public class DDLTest extends PluginTest {

  public DDLTest(String name) {
    super(name);
  }

  public void testDB2CreateSchema() {
    //    ERXTestUtilities.fixModelsForAdaptorNamed(adaptorName);


    ERXEC ec = (ERXEC) ERXEC.newEditingContext();
    ec.lock();
    try {
      ERXEOAccessUtilities.ChannelAction action = new ERXEOAccessUtilities.ChannelAction() {
        @Override
        protected int doPerform(EOAdaptorChannel channel) {
          try {
            ERXSQLHelper helper = ERXSQLHelper.newSQLHelper(adaptorName);
            String sql = helper.createSchemaSQLForEntitiesInModelAndOptions(model.entities(), model, helper.defaultOptionDictionary(false, true)) ;
            log.debug(sql);
            try {
              ERXJDBCUtilities.executeUpdateScript(channel, sql);
            } catch (Throwable e) {
              log.info("drop failure");
            }
            sql = helper.createSchemaSQLForEntitiesInModelAndOptions(model.entities(), model, helper.defaultOptionDictionary(true, false)) ;
            log.debug(sql);
            ERXJDBCUtilities.executeUpdateScript(channel, sql);
          }
          catch (SQLException e) {
            throw new NSForwardException(e);
          }
          return 0;
        }
      };
      action.perform(ec, model.name());
    } finally {
      ec.unlock();
    }
  }
 
}
TOP

Related Classes of er.plugintest.tests.DDLTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.