/*
* $Id: IWSlideJDBCStore.java,v 1.10 2006/04/09 11:44:15 laddi Exp $
* Created on 19.10.2004
*
* Copyright (C) 2004 Idega Software hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*/
package com.idega.slide.store;
import java.sql.Connection;
import java.util.Hashtable;
import org.apache.slide.common.ServiceParameterErrorException;
import org.apache.slide.common.ServiceParameterMissingException;
import org.apache.slide.store.impl.rdbms.DB2RDBMSAdapter;
import org.apache.slide.store.impl.rdbms.DerbyRDBMSAdapter;
import org.apache.slide.store.impl.rdbms.HsqlRDBMSAdapter;
import org.apache.slide.store.impl.rdbms.JDBCStore;
import org.apache.slide.store.impl.rdbms.MySql41RDBMSAdapter;
import org.apache.slide.store.impl.rdbms.OracleRDBMSAdapter;
import org.apache.slide.store.impl.rdbms.SQLServerRDBMSAdapter;
import com.idega.util.database.PoolManager;
import com.idega.util.dbschema.SQLSchemaAdapter;
/**
*
* Last modified: $Date: 2006/04/09 11:44:15 $ by $Author: laddi $
* @deprecated This Class i now deprecated in favour of IWSlideStore
* @author <a href="mailto:gummi@idega.com">Gudmundur Agust Saemundsson</a>
* @version $Revision: 1.10 $
*/
public class IWSlideJDBCStore extends JDBCStore {
private Hashtable _parameters = null;
public IWSlideJDBCStore() {
PoolManager pManager = PoolManager.getInstance();
Connection conn = pManager.getConnection();
String datastoreType = SQLSchemaAdapter.detectDataStoreType(conn);
String adapter = "";
this._parameters = new Hashtable();
if(datastoreType.equals(SQLSchemaAdapter.DBTYPE_ORACLE)){
adapter = OracleRDBMSAdapter.class.getName();
} else if(datastoreType.equals(SQLSchemaAdapter.DBTYPE_MSSQLSERVER)){
adapter = SQLServerRDBMSAdapter.class.getName();
} else if(datastoreType.equals(SQLSchemaAdapter.DBTYPE_MYSQL)){
adapter = MySql41RDBMSAdapter.class.getName();
} else if(datastoreType.equals(SQLSchemaAdapter.DBTYPE_DB2)){
adapter = DB2RDBMSAdapter.class.getName();
} else if(datastoreType.equals(SQLSchemaAdapter.DBTYPE_HSQL)){
adapter = HsqlRDBMSAdapter.class.getName();
this._parameters.put("dbcpPooling","false");
}else if(datastoreType.equals(SQLSchemaAdapter.DBTYPE_DERBY)){
adapter = DerbyRDBMSAdapter.class.getName();
this._parameters.put("dbcpPooling","false");
}
// else if(datastorType == DatastoreInterface.DBTYPE_POSTGRES){
// adapter = PostgresRDBMSAdapter.class.getName();
// } else if(datastorType == DatastoreInterface.DBTYPE_SYBASE){
// adapter = SybaseRDBMSAdapter.class.getName();
// }
else {
throw new RuntimeException("Datastore of type "+datastoreType+" is not supported by Slide");
}
// <parameter name="adapter">org.apache.slide.store.impl.rdbms.MySql41RDBMSAdapter</parameter>
// <parameter name="driver">com.mysql.jdbc.Driver</parameter>
// <parameter name="url">jdbc:mysql://localhost/db_name?useUnicode=true&characterEncoding=UTF-8</parameter>
// <parameter name="user">root</parameter>
// <parameter name="dbcpPooling">true</parameter> // still handled in Domain.xml
// <parameter name="maxPooledConnections">10</parameter>
// <parameter name="isolation">SERIALIZABLE</parameter> // still handled in Domain.xml
// <parameter name="compress">false</parameter> // still handled in Domain.xml
this._parameters.put("adapter",adapter);
this._parameters.put("driver",pManager.getDriverClassForPool());
this._parameters.put("url",pManager.getURLForPool());
this._parameters.put("user",pManager.getUserNameForPool());
this._parameters.put("password",pManager.getPasswordForPool());
this._parameters.put("maxPooledConnections",String.valueOf(pManager.getMaximumConnectionCount()));
}
/**
* Initializes the data source with a set of parameters.
*
* @param parameters a Hashtable containing the parameters' name and
* associated value
* @exception ServiceParameterErrorException a service parameter holds an
* invalid value
* @exception ServiceParameterMissingException a required parameter is
* missing
* @see org.apache.slide.store.impl.rdbms.JDBCStore#setParameters();
*/
public void setParameters(Hashtable parameters) throws ServiceParameterErrorException, ServiceParameterMissingException {
parameters.putAll(this._parameters);
super.setParameters(parameters);
}
}