From 3ae7f2641e42c6c1044473f6bc884dddba937e23 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Mon, 28 Sep 2015 12:19:32 +0200
Subject: [PATCH] OO-1615,OO-1616: remove misleading factories methods of the
 DBFactory

---
 .../olat/admin/quota/QuotaManagerImpl.java    |  2 +-
 .../HibernateStatisticsController.java        | 23 ++++++++++++-------
 .../org/olat/commons/servlets/RSSServlet.java |  2 +-
 .../core/commons/persistence/DBFactory.java   | 10 --------
 .../activity/UserActivityLoggerImpl.java      |  2 +-
 .../java/org/olat/course/CourseFactory.java   |  6 ++---
 .../java/org/olat/course/CourseModule.java    | 11 ++-------
 .../assessment/AssessmentMainController.java  |  4 ++--
 .../UpdateEfficiencyStatementsWorker.java     |  4 ++--
 .../olat/modules/dialog/DialogElement.java    |  4 ++--
 .../provider/paypal/PaypalIPNFilter.java      |  2 +-
 .../service/indexer/group/GroupIndexer.java   |  4 ++--
 .../indexer/identity/IdentityIndexer.java     |  2 +-
 .../org/olat/upgrade/UpgradeManagerImpl.java  |  4 ++--
 14 files changed, 35 insertions(+), 45 deletions(-)

diff --git a/src/main/java/org/olat/admin/quota/QuotaManagerImpl.java b/src/main/java/org/olat/admin/quota/QuotaManagerImpl.java
index 1077de8f0f3..4650ac70331 100644
--- a/src/main/java/org/olat/admin/quota/QuotaManagerImpl.java
+++ b/src/main/java/org/olat/admin/quota/QuotaManagerImpl.java
@@ -96,7 +96,7 @@ public class QuotaManagerImpl extends QuotaManager {
 	public void init() {
 		quotaResource = resourceManager.findOrPersistResourceable(OresHelper.lookupType(Quota.class));
 		initDefaultQuotas(); // initialize default quotas
-		DBFactory.getInstance(false).intermediateCommit();
+		DBFactory.getInstance().intermediateCommit();
 		log.info("Successfully initialized Quota Manager");
 	}
 
diff --git a/src/main/java/org/olat/admin/sysinfo/HibernateStatisticsController.java b/src/main/java/org/olat/admin/sysinfo/HibernateStatisticsController.java
index 5703801fa77..7f38b5f08fd 100644
--- a/src/main/java/org/olat/admin/sysinfo/HibernateStatisticsController.java
+++ b/src/main/java/org/olat/admin/sysinfo/HibernateStatisticsController.java
@@ -19,7 +19,8 @@
  */
 package org.olat.admin.sysinfo;
 
-import org.olat.core.commons.persistence.DBFactory;
+import org.hibernate.stat.Statistics;
+import org.olat.core.commons.persistence.DB;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.link.Link;
@@ -28,6 +29,7 @@ import org.olat.core.gui.components.velocity.VelocityContainer;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * 
@@ -40,6 +42,9 @@ public class HibernateStatisticsController extends BasicController {
 	private Link disableLink;
 	private Link clearLink;
 	private VelocityContainer mainVC;
+	
+	@Autowired
+	private DB dbInstance;
 
 	public HibernateStatisticsController(UserRequest ureq, WindowControl wControl) {
 		super(ureq, wControl);
@@ -54,8 +59,9 @@ public class HibernateStatisticsController extends BasicController {
 	}
 	
 	public void loadModel() {
-		mainVC.contextPut("isStatisticsEnabled", DBFactory.getInstance(false).getStatistics().isStatisticsEnabled());
-		mainVC.contextPut("hibernateStatistics", DBFactory.getInstance(false).getStatistics());
+		Statistics statistics = dbInstance.getStatistics();
+		mainVC.contextPut("isStatisticsEnabled", statistics.isStatisticsEnabled());
+		mainVC.contextPut("hibernateStatistics", statistics);
 	}
 	
 	@Override
@@ -65,18 +71,19 @@ public class HibernateStatisticsController extends BasicController {
 
 	@Override
 	protected void event(UserRequest ureq, Component source, Event event) {
+		Statistics statistics = dbInstance.getStatistics();
 		if (source == enableLink){
-			DBFactory.getInstance(false).getStatistics().setStatisticsEnabled(true);
-			mainVC.contextPut("isStatisticsEnabled", DBFactory.getInstance(false).getStatistics().isStatisticsEnabled());
+			statistics.setStatisticsEnabled(true);
+			mainVC.contextPut("isStatisticsEnabled",statistics.isStatisticsEnabled());
 			getWindowControl().setInfo("Hibernate statistics enabled.");
 			loadModel();
 		} else if (source == disableLink){
-			DBFactory.getInstance(false).getStatistics().setStatisticsEnabled(false);
-			mainVC.contextPut("isStatisticsEnabled", DBFactory.getInstance(false).getStatistics().isStatisticsEnabled());
+			statistics.setStatisticsEnabled(false);
+			mainVC.contextPut("isStatisticsEnabled", statistics.isStatisticsEnabled());
 			getWindowControl().setInfo("Hibernate statistics disabled.");
 			loadModel();
 		} else if (source == clearLink){
-			DBFactory.getInstance(false).getStatistics().clear();
+			statistics.clear();
 			getWindowControl().setInfo("Hibernate statistics clear done.");
 			loadModel();
 		}
diff --git a/src/main/java/org/olat/commons/servlets/RSSServlet.java b/src/main/java/org/olat/commons/servlets/RSSServlet.java
index f1b0a4a6397..ba93d88d7b7 100644
--- a/src/main/java/org/olat/commons/servlets/RSSServlet.java
+++ b/src/main/java/org/olat/commons/servlets/RSSServlet.java
@@ -150,7 +150,7 @@ public class RSSServlet extends HttpServlet {
 			DispatcherModule.sendNotFound("none", response);
 		} finally {
 			IOUtils.closeQuietly(writer);
-			DBFactory.getInstance(false).commitAndCloseSession();
+			DBFactory.getInstance().commitAndCloseSession();
 		}
 	}
 
diff --git a/src/main/java/org/olat/core/commons/persistence/DBFactory.java b/src/main/java/org/olat/core/commons/persistence/DBFactory.java
index 98cd414b808..10ca638baa9 100644
--- a/src/main/java/org/olat/core/commons/persistence/DBFactory.java
+++ b/src/main/java/org/olat/core/commons/persistence/DBFactory.java
@@ -39,14 +39,4 @@ public class DBFactory {
 	public static DB getInstance() {
 		return DBImpl.getInstance();
 	}
-
-    public static DB getInstance(boolean initialize) {
-        return DBImpl.getInstance();
-    }
-
-    public static DB getInstanceForClosing() {
-      return DBImpl.getInstance();
-  }
-
-
 }
diff --git a/src/main/java/org/olat/core/logging/activity/UserActivityLoggerImpl.java b/src/main/java/org/olat/core/logging/activity/UserActivityLoggerImpl.java
index 1fe3a82f29e..3b5695aedf4 100644
--- a/src/main/java/org/olat/core/logging/activity/UserActivityLoggerImpl.java
+++ b/src/main/java/org/olat/core/logging/activity/UserActivityLoggerImpl.java
@@ -833,7 +833,7 @@ public class UserActivityLoggerImpl implements IUserActivityLogger {
 		logObj.setUserProperties(tmpUserProperties);
 		
 		// and store it
-		DB db = DBFactory.getInstanceForClosing();
+		DB db = DBFactory.getInstance();
 		if (db!=null && db.isError()) {
 			// then we would run into an ERROR when we'd do more with this DB
 			// hence we just issue a log.info here with the details
diff --git a/src/main/java/org/olat/course/CourseFactory.java b/src/main/java/org/olat/course/CourseFactory.java
index b093e154444..f5d967e4756 100644
--- a/src/main/java/org/olat/course/CourseFactory.java
+++ b/src/main/java/org/olat/course/CourseFactory.java
@@ -442,7 +442,7 @@ public class CourseFactory extends BasicManager {
 		File fTargetCourseBasePath = targetCourse.getCourseBaseContainer().getBasefile();
 		
 		//close connection before file copy
-		DBFactory.getInstance(false).commitAndCloseSession();
+		DBFactory.getInstance().commitAndCloseSession();
 		
 		synchronized (sourceCourse) { // o_clusterNOK - cannot be solved with doInSync since could take too long (leads to error: "Lock wait timeout exceeded")
 			// copy configuration
@@ -474,7 +474,7 @@ public class CourseFactory extends BasicManager {
 			for (Reference ref: refs) {
 				referenceManager.addReference(targetCourse, ref.getTarget(), ref.getUserdata());
 				if(count % 20 == 0) {
-					DBFactory.getInstance(false).intermediateCommit();
+					DBFactory.getInstance().intermediateCommit();
 				}
 			}
 			
@@ -723,7 +723,7 @@ public class CourseFactory extends BasicManager {
 		// cause db connection timeout to be triggered
 		//@TODO transactions/backgroundjob:
 		// rework when backgroundjob infrastructure exists
-		DBFactory.getInstance(false).intermediateCommit();
+		DBFactory.getInstance().intermediateCommit();
 		AsyncExportManager.getInstance().asyncArchiveCourseLogFiles(archiveOnBehalfOf, new Runnable() {
 			public void run() {
 				// that's fine, I dont need to do anything here
diff --git a/src/main/java/org/olat/course/CourseModule.java b/src/main/java/org/olat/course/CourseModule.java
index 655082193e5..1bcb4acee2c 100644
--- a/src/main/java/org/olat/course/CourseModule.java
+++ b/src/main/java/org/olat/course/CourseModule.java
@@ -109,7 +109,7 @@ public class CourseModule extends AbstractOLATModule {
 			deployCoursesFromCourseExportFiles();
 		}
 		//also in startup event processing intermediateCommit
-		DBFactory.getInstance(false).intermediateCommit();
+		DBFactory.getInstance().intermediateCommit();
 	}
 
 	
@@ -140,14 +140,7 @@ public class CourseModule extends AbstractOLATModule {
 	 */
 	@Override
 	public void init() {
-		// skip all the expensive course demo setup and deployment when we are in junit mode.
-		if (Settings.isJUnitTest()) return;
-		
-		logInfo("Initializing the OpenOLAT course system");		
-		
-		// Cleanup, otherwise this subjects will have problems in normal OLAT
-		// operation
-		DBFactory.getInstance(false).intermediateCommit();		
+		//
 	}
 
 	private void deployCoursesFromCourseExportFiles( ) {
diff --git a/src/main/java/org/olat/course/assessment/AssessmentMainController.java b/src/main/java/org/olat/course/assessment/AssessmentMainController.java
index 2c91ee1e4a3..1389a38f119 100644
--- a/src/main/java/org/olat/course/assessment/AssessmentMainController.java
+++ b/src/main/java/org/olat/course/assessment/AssessmentMainController.java
@@ -1408,11 +1408,11 @@ public class AssessmentMainController extends MainLayoutBasicController implemen
 							+ "ms");
 				}
 				// finished in this thread, close database session of this thread!
-				DBFactory.getInstance(false).commitAndCloseSession();
+				DBFactory.getInstance().commitAndCloseSession();
 				success = true;
 			} finally {
 				if (!success) {
-					DBFactory.getInstance(false).rollbackAndCloseSession();
+					DBFactory.getInstance().rollbackAndCloseSession();
 				}
 			}
 		}
diff --git a/src/main/java/org/olat/course/assessment/UpdateEfficiencyStatementsWorker.java b/src/main/java/org/olat/course/assessment/UpdateEfficiencyStatementsWorker.java
index feff25fbf0f..e96eacc6311 100644
--- a/src/main/java/org/olat/course/assessment/UpdateEfficiencyStatementsWorker.java
+++ b/src/main/java/org/olat/course/assessment/UpdateEfficiencyStatementsWorker.java
@@ -66,7 +66,7 @@ public class UpdateEfficiencyStatementsWorker implements Runnable {
 			List<Identity> identities = EfficiencyStatementManager.getInstance().findIdentitiesWithEfficiencyStatements(re.getKey());
 			esm.updateEfficiencyStatements(ores, identities);
 			// close db session in this thread
-			DBFactory.getInstance(false).commitAndCloseSession();
+			DBFactory.getInstance().commitAndCloseSession();
 			success = true;
 			
 			EfficiencyStatementEvent finishedEvent = new EfficiencyStatementEvent(EfficiencyStatementEvent.CMD_FINISHED, ores.getResourceableId());
@@ -76,7 +76,7 @@ public class UpdateEfficiencyStatementsWorker implements Runnable {
 		} finally {
 			// close db session in this thread
 			if (!success) {
-				DBFactory.getInstance(false).rollbackAndCloseSession();
+				DBFactory.getInstance().rollbackAndCloseSession();
 			}
 		}
 	}
diff --git a/src/main/java/org/olat/modules/dialog/DialogElement.java b/src/main/java/org/olat/modules/dialog/DialogElement.java
index 53a053d9c83..96fe65da589 100644
--- a/src/main/java/org/olat/modules/dialog/DialogElement.java
+++ b/src/main/java/org/olat/modules/dialog/DialogElement.java
@@ -78,10 +78,10 @@ public class DialogElement {
 		} catch (NumberFormatException nEx) {
 			return author;
 		} catch (ObjectNotFoundException oEx) {
-			DBFactory.getInstanceForClosing().rollbackAndCloseSession();
+			DBFactory.getInstance().rollbackAndCloseSession();
 			return author;
 		} catch (Throwable th) {
-			DBFactory.getInstanceForClosing().rollbackAndCloseSession();
+			DBFactory.getInstance().rollbackAndCloseSession();
 			return author;
 		}
 	}
diff --git a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/PaypalIPNFilter.java b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/PaypalIPNFilter.java
index 4b1b0700c5e..1d2bbc241c9 100644
--- a/src/main/java/org/olat/resource/accesscontrol/provider/paypal/PaypalIPNFilter.java
+++ b/src/main/java/org/olat/resource/accesscontrol/provider/paypal/PaypalIPNFilter.java
@@ -75,7 +75,7 @@ public class PaypalIPNFilter implements Filter {
 			//we must log all errors, it's critical for this part of the payment
 			log.error("Paypal IPN unexpected error", t);
 		} finally {
-			DBFactory.getInstanceForClosing().closeSession();
+			DBFactory.getInstance().closeSession();
 		}
 	}
 
diff --git a/src/main/java/org/olat/search/service/indexer/group/GroupIndexer.java b/src/main/java/org/olat/search/service/indexer/group/GroupIndexer.java
index efe7ba3203e..752bdedd116 100644
--- a/src/main/java/org/olat/search/service/indexer/group/GroupIndexer.java
+++ b/src/main/java/org/olat/search/service/indexer/group/GroupIndexer.java
@@ -89,10 +89,10 @@ public class GroupIndexer extends AbstractHierarchicalIndexer {
 			  super.doIndex(searchResourceContext, businessGroup, indexWriter);
 			} catch(Exception ex) {
 				logError("Exception indexing group=" + businessGroup, ex);
-				DBFactory.getInstance(false).rollbackAndCloseSession();
+				DBFactory.getInstance().rollbackAndCloseSession();
 			} catch (Error err) {
 				logError("Error indexing group=" + businessGroup, err);
-				DBFactory.getInstance(false).rollbackAndCloseSession();
+				DBFactory.getInstance().rollbackAndCloseSession();
 			}
 	  }
 		long indexTime = System.currentTimeMillis() - startTime;
diff --git a/src/main/java/org/olat/search/service/indexer/identity/IdentityIndexer.java b/src/main/java/org/olat/search/service/indexer/identity/IdentityIndexer.java
index 6349ddc886c..259a99e783b 100644
--- a/src/main/java/org/olat/search/service/indexer/identity/IdentityIndexer.java
+++ b/src/main/java/org/olat/search/service/indexer/identity/IdentityIndexer.java
@@ -85,7 +85,7 @@ public class IdentityIndexer extends AbstractHierarchicalIndexer {
 				counter++;
 			} catch (Exception ex) {
 				logWarn("Exception while indexing identity::" + identityKey + ". Skipping this user, try next one.", ex);
-				DBFactory.getInstance(false).rollbackAndCloseSession();
+				DBFactory.getInstance().rollbackAndCloseSession();
 			}
 		}
 		if (isLogDebugEnabled()) logDebug("IdentityIndexer finished with counter::" + counter);
diff --git a/src/main/java/org/olat/upgrade/UpgradeManagerImpl.java b/src/main/java/org/olat/upgrade/UpgradeManagerImpl.java
index c4641b6cbd8..7485c4ab0d3 100644
--- a/src/main/java/org/olat/upgrade/UpgradeManagerImpl.java
+++ b/src/main/java/org/olat/upgrade/UpgradeManagerImpl.java
@@ -78,10 +78,10 @@ public class UpgradeManagerImpl extends UpgradeManager {
 				if (upgrade.doPostSystemInitUpgrade(this))
 					logAudit("Successfully installed PostSystemInitUpgrade::" + upgrade.getVersion());
 				//just in case a doPostSystemInitUpgrade did forget it.
-				DBFactory.getInstance(false).commitAndCloseSession();
+				DBFactory.getInstance().commitAndCloseSession();
 			}
 		} catch (Throwable e) {
-			DBFactory.getInstance(false).rollbackAndCloseSession();
+			DBFactory.getInstance().rollbackAndCloseSession();
 			logWarn("Error upgrading PostSystemInitUpgrade::" + upgrade.getVersion(), e);
 			abort(e);
 		} 
-- 
GitLab