Update of /cvsroot/squirrel-sql/sql12/plugins/hibernate/src/net/sourceforge/squirrel_sql/plugins/hibernate
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv3239/plugins/hibernate/src/net/sourceforge/squirrel_sql/plugins/hibernate
Modified Files:
HibnerateConnector.java
Log Message:
Default way to create SessionFactoryImpl
Index: HibnerateConnector.java
===================================================================
RCS file: /cvsroot/squirrel-sql/sql12/plugins/hibernate/src/net/sourceforge/squirrel_sql/plugins/hibernate/HibnerateConnector.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** HibnerateConnector.java 25 Jul 2007 07:51:14 -0000 1.3
--- HibnerateConnector.java 27 Aug 2007 11:43:58 -0000 1.4
***************
*** 3,12 ****
import net.sourceforge.squirrel_sql.client.session.ISession;
import net.sourceforge.squirrel_sql.plugins.hibernate.configuration.HibernateConfiguration;
- import net.sourceforge.squirrel_sql.plugins.hibernate.util.SessionFactoryImplFromSquirrelSessionProvider;
import javax.swing.*;
-
- import org.hibernate.impl.SessionFactoryImpl;
-
import java.io.File;
import java.lang.reflect.Method;
--- 3,8 ----
***************
*** 51,84 ****
try
{
- String provider = cfg.getProvider();
-
-
URLClassLoader cl = getClassLoader(cfg);
!
!
!
! HibernateConnection con = null;
Object sessionFactoryImpl = null;
!
! if (provider == null) {
! //TODO:
! // When I attempt to use the user-specified classpath, for some
! // reason Hibernate internally cannot cast it's Oracle9Dialect
! // to Dialect which is the abstract base class - it throws a
! // ClassCastException. Yet without this, the user would be
! // forced to package up their app and stick it into SQuirreL's
! // classpath somehow - lib or script.
! Thread.currentThread().setContextClassLoader(cl);
! sessionFactoryImpl = doConnectUsingSession(cfg, session);
! } else {
! Thread.currentThread().setContextClassLoader(cl);
! Class<?> providerClass = cl.loadClass(provider);
!
! Object sessionFactoryProviderImpl = providerClass.newInstance();
!
! Method meth = providerClass.getMethod("getSessionFactoryImpl", new Class[0]);
! sessionFactoryImpl = meth.invoke(sessionFactoryProviderImpl, new Object[0]);
}
! con = new HibernateConnection(sessionFactoryImpl, cl);
sendConnection(con);
--- 47,74 ----
try
{
URLClassLoader cl = getClassLoader(cfg);
! Thread.currentThread().setContextClassLoader(cl);
!
Object sessionFactoryImpl = null;
!
! if (cfg.isUserDefinedProvider())
! {
! String provider = cfg.getProvider();
! Class<?> providerClass = cl.loadClass(provider);
!
! Object sessionFactoryProviderImpl = providerClass.newInstance();
!
! sessionFactoryImpl =
! new ReflectionCaller(sessionFactoryProviderImpl).callMethod("getSessionFactoryImpl").getCallee();
}
! else
! {
! Class<?> confiugrationClass = cl.loadClass("org.hibernate.cfg.Configuration");
! ReflectionCaller rc = new ReflectionCaller(confiugrationClass.newInstance());
!
! sessionFactoryImpl = rc.callMethod("configure").callMethod("buildSessionFactory").getCallee();
! }
!
! HibernateConnection con = new HibernateConnection(sessionFactoryImpl, cl);
sendConnection(con);
***************
*** 107,121 ****
});
}
!
! private SessionFactoryImpl doConnectUsingSession(HibernateConfiguration cfg,
! ISession session) {
! SessionFactoryImplFromSquirrelSessionProvider prov =
! new SessionFactoryImplFromSquirrelSessionProvider();
! prov.setHibernateConfig(cfg);
! prov.setSession(session);
! return prov.getSessionFactoryImpl();
! }
!
! private URLClassLoader getClassLoader(HibernateConfiguration cfg)
throws Exception
{
--- 97,102 ----
});
}
!
! private URLClassLoader getClassLoader(HibernateConfiguration cfg)
throws Exception
{
|