diff options
| author | Christian Maierhofer <cmaierhofer@iaik.tugraz.at> | 2016-05-03 11:38:51 +0200 | 
|---|---|---|
| committer | Christian Maierhofer <cmaierhofer@iaik.tugraz.at> | 2016-05-03 11:38:51 +0200 | 
| commit | 42e40bb58ec9b4c6b7a474e058e79d366548a520 (patch) | |
| tree | 3fdadd523377a3f37a6b069823679c4da78d2474 /id/server/moa-id-commons/src | |
| parent | 61661f2ea4978d56691f7a672469c6d43e9dba41 (diff) | |
| download | moa-id-spss-42e40bb58ec9b4c6b7a474e058e79d366548a520.tar.gz moa-id-spss-42e40bb58ec9b4c6b7a474e058e79d366548a520.tar.bz2 moa-id-spss-42e40bb58ec9b4c6b7a474e058e79d366548a520.zip | |
Added Transactional Support to MOASessionDBUtils
Diffstat (limited to 'id/server/moa-id-commons/src')
2 files changed, 8 insertions, 115 deletions
| diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/MOASessionDBUtils.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/MOASessionDBUtils.java index 88de9ceb5..fbbaf9476 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/MOASessionDBUtils.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/MOASessionDBUtils.java @@ -41,49 +41,14 @@ public class MOASessionDBUtils {     private SessionFactory sessionFactory; -//   private static ServiceRegistry serviceRegistry; -    -//   @SuppressWarnings("rawtypes") -//   private static final ThreadLocal THREAD_LOCAL = new ThreadLocal(); -//   private static boolean automaticSessionHandling = false; -//   private static final String[] AUTOMATIC_SESSION_HANDLING_VALUES = new String[] { "jta", "thread" }; -//   private static final String SESSION_HANDLING_KEY = "hibernate.current_session_context_class";  	@Autowired  	public void setSessionFactory(SessionFactory sessionFactory) {  		this.sessionFactory = sessionFactory;  	}    public void initHibernate(Configuration config, Properties hibernateProperties) { -//	      -//     String scm = StringUtils.trimToNull(hibernateProperties.getProperty(SESSION_HANDLING_KEY)); -//     if (scm != null) { -//        automaticSessionHandling = scm.indexOf(AUTOMATIC_SESSION_HANDLING_VALUES[0]) != -1 || scm.indexOf(AUTOMATIC_SESSION_HANDLING_VALUES[1]) != -1; -//     } -//     Logger.debug("Evaluating hibernate property \"" + SESSION_HANDLING_KEY + "\"."); -//     if (automaticSessionHandling) { -//    	 Logger.info("Hibernate is automatically handling session context management."); -//     } else { -//    	 Logger.info("Hibernate is NOT automatically handling session context management. Using build-in ThreadLocal session handling."); -//     } -//     try { -//       //Create the SessionFactory -//       Logger.debug("Creating initial MOASession session factory..."); -//               -//       config.configure("hibernate_moasession.cfg.xml"); -//       //serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); -//        -//      // serviceRegistry = new StandardServiceRegistryBuilder(). -//    //		   applySettings(config.getProperties()).build(); -//        -//       //dbSessionSessionFactory = config.buildSessionFactory(serviceRegistry); -//        -//       Logger.debug("Initial MOASession session factory successfully created."); -//        -//     } catch (Throwable ex) { -//    	Logger.error("Initial MOASession session factory creation failed: " + ex.getMessage()); -//        throw new ExceptionInInitializerError(ex); -//     } +    }     /** @@ -96,104 +61,30 @@ public class MOASessionDBUtils {      */     public Session getCurrentSession() {  	   return sessionFactory.getCurrentSession(); -//      if (automaticSessionHandling) { -//         return dbSessionSessionFactory.getCurrentSession(); -//      } -//      Session session = (Session) THREAD_LOCAL.get(); -//      // Open a new Session, if this Thread has none yet -//      if (session == null || !session.isConnected()) { -//         session = getNewSession(); -//      } -//      return session; -   } - -   @SuppressWarnings("unchecked") -  public Session getNewSession() { -	   return sessionFactory.getCurrentSession(); -//      if (automaticSessionHandling) { -//    	  Logger.warn("Session is being automatically handled by hibernate. Therefore this session maybe not being newly created. Use HibernateUtil.getCurrentSession() instead."); -//         return dbSessionSessionFactory.getCurrentSession(); -//      } -//      Session session = (Session) THREAD_LOCAL.get(); -//      if (session != null) { -//    	  Logger.warn("Previous MOASession session has not been closed; closing session now."); -//         closeSession(); -//      } -//      Logger.debug("Opening new MOASession hibernate session..."); -//      try { -//         session = dbSessionSessionFactory.openSession(); -//         THREAD_LOCAL.set(session); -//      } catch (HibernateException hex) { -//    	  Logger.error(hex.getMessage()); -//      } -//      return session; -   } - -   /** -    * Closes the current session. -    *  -    * @throws HibernateException -    *            thrown if session is already closed or a hibernate error -    *            occurs. -    */ -   @SuppressWarnings("unchecked") -  public void closeSession() { -	   return; -//      if (automaticSessionHandling) { -//    	  Logger.warn("Session is being automatically handled by hibernate. Therefore the current session cannot be closed on demand."); -//         return; -//      } -//      Logger.debug("Closing current MOASession hibernate session..."); -//      Session session = (Session) THREAD_LOCAL.get(); -//      THREAD_LOCAL.set(null); -//      if (session != null) { -//         try { -//            session.close(); -//             -//         } catch (HibernateException hex) { -//            Logger.error(hex.getMessage()); -//         } -//      }     }     public boolean saveOrUpdate(Object dbo) throws MOADatabaseException { -	   //	Transaction tx = null;  	  	 try {  		  	 Session session = sessionFactory.getCurrentSession(); -		  	session.saveOrUpdate(dbo); +		  	session.merge(dbo);  		  	return true; -//	  	  -//		  	synchronized (session) { -//		  		tx = session.beginTransaction(); -//		  		session.saveOrUpdate(dbo); -//		  		tx.commit(); -//		  	} -//		     return true;  	  	 } catch(HibernateException e) { -	  		Logger.warn("Error during MOASession database saveOrUpdate. Rollback.", e); +	  		Logger.warn("Error during MOASession database saveOrUpdate.", e);  	  		throw new MOADatabaseException(e);  	  	 }  	   }  	   public boolean delete(Object dbo) { -	  	 //Transaction tx =  null; +  	  	 try {  		  	 Session session = sessionFactory.getCurrentSession();  		  	 session.delete(dbo); -//		  	 synchronized (session) { -//		  		tx = session.beginTransaction(); -//			    session.delete(dbo); -//			    tx.commit(); -//			} -		       		     return true;  	  	 } catch(HibernateException e) { -	  		Logger.warn("Error during MOASession database delete. Rollback.", e); -//	  		if (tx != null) -//	  			tx.rollback(); +	  		Logger.warn("Error during MOASession database delete. Rollback.");  	  		return false;  	  	 }  	   } diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/session/AuthenticatedSessionStore.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/session/AuthenticatedSessionStore.java index 6333451b9..f5fc798b0 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/session/AuthenticatedSessionStore.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/session/AuthenticatedSessionStore.java @@ -57,7 +57,9 @@ import org.hibernate.annotations.DynamicUpdate;      @NamedQuery(name="getMOASessionWithNameIDandOAID", query = "select authenticatedsessionstore from AuthenticatedSessionStore authenticatedsessionstore join fetch authenticatedsessionstore.activeOAsessions activeOAsessions where activeOAsessions.oaurlprefix = :oaID and activeOAsessions.userNameID = :nameID"),      @NamedQuery(name="getInterfederatedIDPForAttributeQueryWithSessionID", query = "select authenticatedsessionstore from AuthenticatedSessionStore authenticatedsessionstore join fetch authenticatedsessionstore.inderfederation inderfederations where inderfederations.attributesRequested is false and authenticatedsessionstore.sessionid = :sessionID"),      @NamedQuery(name="getInterfederatedIDPForSSOWithSessionID", query = "select authenticatedsessionstore from AuthenticatedSessionStore authenticatedsessionstore join fetch authenticatedsessionstore.inderfederation inderfederations where inderfederations.attributesRequested is true and inderfederations.storeSSOInformation is true and authenticatedsessionstore.sessionid = :sessionID order by inderfederations.QAALevel DESC"), -    @NamedQuery(name="getInterfederatedIDPForSSOWithSessionIDIDPID", query = "select authenticatedsessionstore from AuthenticatedSessionStore authenticatedsessionstore join fetch authenticatedsessionstore.inderfederation inderfederations where inderfederations.attributesRequested is true and authenticatedsessionstore.sessionid = :sessionID and inderfederations.idpurlprefix = :idpID") +    @NamedQuery(name="getInterfederatedIDPForSSOWithSessionIDIDPID", query = "select authenticatedsessionstore from AuthenticatedSessionStore authenticatedsessionstore join fetch authenticatedsessionstore.inderfederation inderfederations where inderfederations.attributesRequested is true and authenticatedsessionstore.sessionid = :sessionID and inderfederations.idpurlprefix = :idpID"), +    @NamedQuery(name="getAllActiveOAsForSessionID", query = "select activeOAsessions from AuthenticatedSessionStore authenticatedsessionstore join authenticatedsessionstore.activeOAsessions activeOAsessions where authenticatedsessionstore.sessionid = :sessionID "), +    @NamedQuery(name="getAllActiveIDPsForSessionID", query = "select inderfederation from AuthenticatedSessionStore authenticatedsessionstore join authenticatedsessionstore.inderfederation inderfederation where authenticatedsessionstore.sessionid = :sessionID ")  })  public class AuthenticatedSessionStore implements Serializable{ | 
