HypersonicInMemoryDataSource.java :  » J2EE » hgcommons » biz » hammurapi » sql » hypersonic » Java Open Source

Java Open Source » J2EE » hgcommons 
hgcommons » biz » hammurapi » sql » hypersonic » HypersonicInMemoryDataSource.java
/*
 * hgcommons 7
 * Hammurapi Group Common Library 
 * Copyright (C) 2003  Hammurapi Group
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 * URL: http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/hammurapi-group/products/products/hgcommons/index.html
 * e-Mail: support@hammurapi.biz
 */
package biz.hammurapi.sql.hypersonic;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.sql.SQLException;


/**
 * In memory Hypersonic datasource with unique name.
 * @author Pavel Vlasov
 * @version $Revision: 1.4 $
 */
public class HypersonicInMemoryDataSource extends HypersonicDataSource {
  private static int counter;
  
  private static String dbName() {
    return "db"+(counter++)+"_"+Long.toString(System.currentTimeMillis(), Character.MAX_RADIX);
  }

  /**
   * @param initScript Fully qualified name of database initialization script to be loaded by 
   * classloader. Can be null.
   * @throws ClassNotFoundException
   * @throws IOException
   * @throws SQLException
   */
  public HypersonicInMemoryDataSource(String initScript) throws ClassNotFoundException, IOException, SQLException {
    super("jdbc:hsqldb:mem:"+dbName(), "sa", "", null);    
    if (initScript!=null) {
      InputStream in = getClass().getClassLoader().getResourceAsStream(initScript);
      if (in==null) {
        throw new IOException("Resource not found: "+initScript);
      }
      initDB(new InputStreamReader(in), null);
    }
  }
  
  /**
   * @param initScript Fully qualified name of database initialization script to be loaded by 
   * classloader. Can be null.
   * @throws ClassNotFoundException
   * @throws IOException
   * @throws SQLException
   */
  public HypersonicInMemoryDataSource(Reader scriptReader) throws ClassNotFoundException, IOException, SQLException {
    super("jdbc:hsqldb:mem:"+dbName(), "sa", "", null);
    initDB(scriptReader, null);
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.