forked from Coded/SIPRP
git-svn-id: https://svn.coded.pt/svn/SIPRP@1521 bb69d46d-e84e-40c8-a05a-06db0d633741
parent
72a08143c3
commit
58e860b8be
@ -0,0 +1,121 @@
|
|||||||
|
/*
|
||||||
|
* To change this template, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package db.providers;
|
||||||
|
|
||||||
|
import com.evolute.entity.evo.EvoDataProvider;
|
||||||
|
import com.evolute.utils.Singleton;
|
||||||
|
import com.evolute.utils.db.DBException;
|
||||||
|
import com.evolute.utils.db.DBManager;
|
||||||
|
import com.evolute.utils.db.Executer;
|
||||||
|
import com.evolute.utils.db.JDBCManager;
|
||||||
|
import com.evolute.utils.db.keyretrievers.PostgresqlAutoKeyRetriever;
|
||||||
|
import com.evolute.utils.jdbc.DBStatementExecuter;
|
||||||
|
import com.evolute.utils.jdbc.StatementExecuterFactory;
|
||||||
|
import com.evolute.utils.sql.Insert;
|
||||||
|
import com.evolute.utils.sql.SQLQuery;
|
||||||
|
import com.evolute.utils.strings.UnicodeChecker;
|
||||||
|
import db.Db;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author dneves
|
||||||
|
*/
|
||||||
|
public class EvoBaseProvider
|
||||||
|
{
|
||||||
|
private static EvoBaseProvider INSTANCE = null;
|
||||||
|
|
||||||
|
private EvoDataProvider providerInterface;
|
||||||
|
private DBManager dbManager;
|
||||||
|
|
||||||
|
private static final String DB_URL_FULL = "db.url.full";
|
||||||
|
|
||||||
|
private EvoBaseProvider() throws DBException
|
||||||
|
{
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static synchronized EvoBaseProvider getInstance() throws DBException
|
||||||
|
{
|
||||||
|
if ( INSTANCE == null )
|
||||||
|
{
|
||||||
|
INSTANCE = new EvoBaseProvider();
|
||||||
|
}
|
||||||
|
return INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init() throws DBException
|
||||||
|
{
|
||||||
|
System.out.println( "EvoBaseProvider . init() : " );
|
||||||
|
|
||||||
|
Db db = new Db();
|
||||||
|
String server = db.getServer();
|
||||||
|
Integer port = db.getPort();
|
||||||
|
String dbname = db.getDb_name();
|
||||||
|
String username = db.getUser();
|
||||||
|
String password = db.getPass();
|
||||||
|
|
||||||
|
System.out.println( "\t" + server + " : " + port + " : " + dbname + " : " + username + " : " + password );
|
||||||
|
|
||||||
|
init( server, port, dbname, username, password );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init( String dbServer, Integer dbPort, String dbName, String dbUsername, String dbPassword )
|
||||||
|
throws DBException
|
||||||
|
{
|
||||||
|
String dbUrl = "jdbc:postgresql://" + dbServer + ":" + dbPort + "/" + dbName + "?prepareThreshold=2";
|
||||||
|
Singleton.setInstance( DB_URL_FULL, dbUrl );
|
||||||
|
|
||||||
|
createDBManager( dbUsername, dbPassword );
|
||||||
|
initProviderConnection( dbUsername, dbPassword );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createDBManager( String username, String password )
|
||||||
|
throws DBException
|
||||||
|
{
|
||||||
|
if( dbManager != null )
|
||||||
|
{
|
||||||
|
dbManager.close();
|
||||||
|
}
|
||||||
|
String dbUrl = ( String ) Singleton.getInstance( DB_URL_FULL );
|
||||||
|
DBManager manager = new JDBCManager( dbUrl, username, password , 14, 7, 7, new SQLQuery[] { } );
|
||||||
|
StatementExecuterFactory.initialize( new DBStatementExecuter( manager.getSharedExecuter( EvoBaseProvider.class ) ) );
|
||||||
|
UnicodeChecker.setUseDoubleSlash( true );
|
||||||
|
Insert.setDefaultKeyRetriever( PostgresqlAutoKeyRetriever.RETRIEVER );
|
||||||
|
dbManager = manager;
|
||||||
|
Singleton.setInstance( Singleton.DEFAULT_DBMANAGER, dbManager );
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initProviderConnection( String username, String password )
|
||||||
|
{
|
||||||
|
String dbUrl = ( String ) Singleton.getInstance( DB_URL_FULL );
|
||||||
|
providerInterface = EvoProviderFactory.createInstance( dbUrl, username, password );
|
||||||
|
}
|
||||||
|
|
||||||
|
public EvoDataProvider getProvider()
|
||||||
|
{
|
||||||
|
return providerInterface;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBManager getDbManager()
|
||||||
|
{
|
||||||
|
return dbManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Executer getExecuter() throws DBException
|
||||||
|
{
|
||||||
|
return getExecuter( this );
|
||||||
|
}
|
||||||
|
|
||||||
|
private Executer getExecuter( Object clazz ) throws DBException
|
||||||
|
{
|
||||||
|
if ( getDbManager() == null )
|
||||||
|
{
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER );
|
||||||
|
return dbm.getSharedExecuter( clazz );
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
package db.providers;
|
||||||
|
|
||||||
|
import com.evolute.entity.ProviderRegistry;
|
||||||
|
import com.evolute.entity.evo.EvoDataProvider;
|
||||||
|
import com.evolute.entity.evo.EvoDataProviderFactory;
|
||||||
|
import com.evolute.entity.utils.ConnectionIdentity;
|
||||||
|
import com.evolute.utils.Singleton;
|
||||||
|
|
||||||
|
|
||||||
|
public class EvoProviderFactory
|
||||||
|
{
|
||||||
|
public static EvoDataProvider createInstance( String url, String user, String password )
|
||||||
|
{
|
||||||
|
ProviderRegistry.registerDefaultProviderFactory( new EvoDataProviderFactory() );
|
||||||
|
ConnectionIdentity conn = new ConnectionIdentity( url, user );
|
||||||
|
ProviderRegistry.registerDefaultConnection( conn );
|
||||||
|
EvoDataProvider provider = ( EvoDataProvider ) ProviderRegistry.getDefaultProvider( conn );
|
||||||
|
provider.setIsUsingCache( Boolean.FALSE );
|
||||||
|
Singleton.setInstance( Singleton.DEFAULT_OBJECT_PROVIDER, provider );
|
||||||
|
conn.setPassword( password );
|
||||||
|
return provider;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in new issue