diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-03-22 14:44:04 +0100 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-03-22 14:44:04 +0100 | 
| commit | 1bef953a8baed149db2bf234687c9d0eebb85524 (patch) | |
| tree | 915f5469df29ad63301b66b92db680b6f4115775 /id/server/idserverlib | |
| parent | b29150526d95af2f1c30f4543c88d35c2965dfe6 (diff) | |
| download | moa-id-spss-1bef953a8baed149db2bf234687c9d0eebb85524.tar.gz moa-id-spss-1bef953a8baed149db2bf234687c9d0eebb85524.tar.bz2 moa-id-spss-1bef953a8baed149db2bf234687c9d0eebb85524.zip | |
move ProcessInstanzDAO into transactionstorage
Diffstat (limited to 'id/server/idserverlib')
2 files changed, 40 insertions, 31 deletions
| diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStore.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStore.java index d690c37bf..3620f2950 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStore.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStore.java @@ -17,7 +17,9 @@ import at.gv.egovernment.moa.id.process.ProcessInstanceState;  @Entity  @Table(name = "processinstance") -public class ProcessInstanceStore { +public class ProcessInstanceStore implements Serializable{ + +	private static final long serialVersionUID = -6147519767313903808L;  	/**  	 * A process instance identifier qualifies as natural primary key by satisfying these requirements diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAOImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAOImpl.java index 577e971db..a9a9322ad 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAOImpl.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/process/dao/ProcessInstanceStoreDAOImpl.java @@ -1,15 +1,12 @@  package at.gv.egovernment.moa.id.process.dao; -import org.hibernate.Criteria; -import org.hibernate.Session; -import org.hibernate.Transaction; -import org.hibernate.criterion.Restrictions;  import org.slf4j.Logger;  import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.stereotype.Service; -import at.gv.egovernment.moa.id.commons.db.MOASessionDBUtils;  import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException; +import at.gv.egovernment.moa.id.storage.ITransactionStorage;  /**   * Database backed implementation of the {@link ProcessInstanceStoreDAO} @@ -20,10 +17,14 @@ public class ProcessInstanceStoreDAOImpl implements ProcessInstanceStoreDAO {  	private Logger log = LoggerFactory.getLogger(getClass()); +	@Autowired ITransactionStorage transactionStorage; +	  	@Override  	public void saveOrUpdate(ProcessInstanceStore pIStore) throws MOADatabaseException {  		try { -			MOASessionDBUtils.saveOrUpdate(pIStore); +			transactionStorage.put(pIStore.getProcessInstanceId(), pIStore); +			 +//			MOASessionDBUtils.saveOrUpdate(pIStore);  			log.debug("Store process instance with='{}' in the database.", pIStore.getProcessInstanceId());  		} catch (MOADatabaseException e) {  			log.warn("ProcessInstanceStore could not be persisted to the database."); @@ -35,31 +36,35 @@ public class ProcessInstanceStoreDAOImpl implements ProcessInstanceStoreDAO {  	public ProcessInstanceStore load(String processInstanceId) throws MOADatabaseException {  		log.debug("Retrieve the ProcessInstanceStore for id='{}' from the database.", processInstanceId); -		Session session = MOASessionDBUtils.getCurrentSession(); - +		 +		 +//		Session session = MOASessionDBUtils.getCurrentSession(); +//  		ProcessInstanceStore result = null; -		Transaction tx = null; -		synchronized (session) { +//		Transaction tx = null; +//		synchronized (session) {  			try { -				tx = session.beginTransaction(); -				// select all where processInstanceId equals processInstanceId -				Criteria criteria = session.createCriteria(ProcessInstanceStore.class); -				criteria.add(Restrictions.eq("processInstanceId", processInstanceId)); -				result = (ProcessInstanceStore) criteria.uniqueResult(); -				tx.commit(); - +				result = transactionStorage.get(processInstanceId, ProcessInstanceStore.class); +				 +//				tx = session.beginTransaction(); +//				// select all where processInstanceId equals processInstanceId +//				Criteria criteria = session.createCriteria(ProcessInstanceStore.class); +//				criteria.add(Restrictions.eq("processInstanceId", processInstanceId)); +//				result = (ProcessInstanceStore) criteria.uniqueResult(); +//				tx.commit(); +//  			} catch (Exception e) {  				log.error("There are multiple persisted processes with the same process instance id '{}'", -						processInstanceId); -				if (tx != null) { -					tx.rollback(); -				} +					processInstanceId); +//				if (tx != null) { +//					tx.rollback(); +//				}  				throw e;  			} finally {  				//MOASessionDBUtils.closeSession();  			} -		} +//		}  		if (result != null) {  			log.debug("Found process instance store for instance '{}'.", processInstanceId);  		} else { @@ -71,14 +76,16 @@ public class ProcessInstanceStoreDAOImpl implements ProcessInstanceStoreDAO {  	@Override  	public void remove(String processInstanceId) throws MOADatabaseException { -		log.debug("Delete the ProcessInstanceStore for id='{}' from the database.", processInstanceId); -		ProcessInstanceStore toBeDeleted = load(processInstanceId); -		if (toBeDeleted != null) { -			if (!MOASessionDBUtils.delete(toBeDeleted)) { -				log.warn("Could not delete the ProcessInstanceStore with process instance id '{}'", processInstanceId); -				throw new MOADatabaseException("Could not delete the ProcessInstanceStore with process instance id '" -						+ processInstanceId + "'."); -			} +		log.debug("Delete the ProcessInstanceStore for id='{}' from the database.", processInstanceId);		 +		//ProcessInstanceStore toBeDeleted = load(processInstanceId); +				 +		if (transactionStorage.containsKey(processInstanceId)) { +			transactionStorage.remove(processInstanceId); +//			if (!MOASessionDBUtils.delete(toBeDeleted)) { +//				log.warn("Could not delete the ProcessInstanceStore with process instance id '{}'", processInstanceId); +//				throw new MOADatabaseException("Could not delete the ProcessInstanceStore with process instance id '" +//						+ processInstanceId + "'."); +//			}  		} else   			log.trace("ProcessInstanceStore for id='{}' was not found and could therefore not be deleted.", processInstanceId);  	} | 
