diff --git a/NOTICE.TXT b/NOTICE.TXT
index 89f9f57e9317ed547bf527221460879ef9fc9713..65e7702384610a2611cbef2131a4e17bda6fe303 100644
--- a/NOTICE.TXT
+++ b/NOTICE.TXT
@@ -166,7 +166,6 @@ This product uses software based on the CDDL
 This product uses software based on specific License
 * ical4j (see src/main/webapp/WEB-INF/lib/licenses/ical4j.license.txt) [http://wiki.modularity.net.au/ical4j]
 * cos	(Jason Hunter License see src/main/webapp/WEB-INF/lib/licenses/cos.license.txt)
-* radeox (unkown) [unkown]
 * org.json (see src/main/webapp/WEB-INF/lib/licenses/json.license.txt) [http://json.org/java]
 * SAC (W3C Software License) [http://www.w3.org/TR/SAC]
 * SCORM API adaper by the ISN (International Relations and Security Network) at ETH Zurich [http://www.isn.ethz.ch/]
diff --git a/src/main/java/ch/goodsolutions/_i18n/i18nBundleMetadata.properties b/src/main/java/ch/goodsolutions/_i18n/i18nBundleMetadata.properties
deleted file mode 100644
index 0787ecf74c05e3977036c749e33f3f02317473b5..0000000000000000000000000000000000000000
--- a/src/main/java/ch/goodsolutions/_i18n/i18nBundleMetadata.properties
+++ /dev/null
@@ -1 +0,0 @@
-bundle.priority = 950
diff --git a/src/main/java/de/bps/course/nodes/den/DENCourseNodeNotificationsUpgrade.java b/src/main/java/de/bps/course/nodes/den/DENCourseNodeNotificationsUpgrade.java
deleted file mode 100644
index af56ddc8cb6c7d76f9024774075422d7e622cce3..0000000000000000000000000000000000000000
--- a/src/main/java/de/bps/course/nodes/den/DENCourseNodeNotificationsUpgrade.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-package de.bps.course.nodes.den;
-
-import org.olat.core.util.notifications.NotificationsUpgrade;
-import org.olat.core.util.notifications.Publisher;
-import org.olat.notifications.NotificationsUpgradeHelper;
-
-/**
- * 
- * Description:<br>
- * Upgrade publisher of DEN
- * 
- * <P>
- * Initial Date:  7 jan. 2010 <br>
- * @author srosse, stephane.rosse@frentix.com
- */
-public class DENCourseNodeNotificationsUpgrade implements NotificationsUpgrade {
-
-	@Override
-	public Publisher ugrade(Publisher publisher) {
-		String businessPath = publisher.getBusinessPath();
-		if(businessPath != null && businessPath.startsWith("[")) return null;// already upgrade
-		
-		String type = publisher.getResName();
-		if ("CourseModule".equals(type)) {
-			businessPath = NotificationsUpgradeHelper.getCourseNodePath(publisher);
-		}
-	
-		if(businessPath != null) {
-			publisher.setBusinessPath(businessPath);
-			return publisher;
-		}
-		return null;
-	}
-
-	@Override
-	public String getType() {
-		return "DENCourseNode";
-	}
-}
\ No newline at end of file
diff --git a/src/main/java/de/bps/course/nodes/den/_spring/buildingblockContext.xml b/src/main/java/de/bps/course/nodes/den/_spring/buildingblockContext.xml
index c9862cd21fa4f60eaf7e8316a485d64be417b3e3..e3e655a6bb1c72fb89d7652a6ddb784d781dc344 100644
--- a/src/main/java/de/bps/course/nodes/den/_spring/buildingblockContext.xml
+++ b/src/main/java/de/bps/course/nodes/den/_spring/buildingblockContext.xml
@@ -13,9 +13,5 @@
 
 	<bean id="de.bps.course.nodes.den.DENCourseNodeNotificationHandler" 
 	      class="de.bps.course.nodes.den.DENCourseNodeNotificationHandler" />
-
-	<!-- only for 6.2 to 6.3 notification-upgrade (needed by OLATUpgrade_6_3_0) -->
-	<bean id="de.bps.course.nodes.den.DENCourseNodeNotificationsUpgrade" 
-	      class="de.bps.course.nodes.den.DENCourseNodeNotificationsUpgrade" />
 	
 </beans>
\ No newline at end of file
diff --git a/src/main/java/org/olat/commons/calendar/CalendarNotificationsUpgrade.java b/src/main/java/org/olat/commons/calendar/CalendarNotificationsUpgrade.java
deleted file mode 100644
index ff7ec844d436e31be70725957cd1a8809358bf22..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/commons/calendar/CalendarNotificationsUpgrade.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-
-package org.olat.commons.calendar;
-
-import org.olat.core.logging.LogDelegator;
-import org.olat.core.util.notifications.NotificationsUpgrade;
-import org.olat.core.util.notifications.Publisher;
-import org.olat.course.CourseFactory;
-import org.olat.course.ICourse;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-
-/**
- * 
- * Description:<br>
- * Upgrade publisher of calendars
- * 
- * <P>
- * Initial Date:  7 jan. 2010 <br>
- * @author srosse, stephane.rosse@frentix.com
- */
-public class CalendarNotificationsUpgrade extends LogDelegator implements NotificationsUpgrade {
-
-	@Override
-	public Publisher ugrade(Publisher publisher) {
-		String type = publisher.getResName();
-		String businessPath = publisher.getBusinessPath();
-		if(businessPath != null && businessPath.startsWith("[")) return null;
-		
-		if("CalendarManager.course".equals(type)) {
-			try {
-				ICourse course = CourseFactory.loadCourse(publisher.getResId());
-				RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntry(course, true);
-				businessPath = "[RepositoryEntry:" + re.getKey() + "]";
-			} catch (Exception e) {
-				//if something went wrong, like error while loading course...
-				logError("error while processing resid: "+publisher.getResId(), e);
-			}
-		}	else if("CalendarManager.group".equals(type)) {
-			businessPath = "[BusinessGroup:" + publisher.getResId()+ "][action.calendar.group:0]";
-		}
-	
-		if(businessPath != null) {
-			publisher.setBusinessPath(businessPath);
-			return publisher;
-		}
-		return null;
-	}
-
-	@Override
-	public String getType() {
-		return "CalendarManager";
-	}
-}
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/CoreBeanTypes.java b/src/main/java/org/olat/core/CoreBeanTypes.java
index 3b80b9827b45752257cc453165eb559a50c89934..9cfdc5492571d8aa4d8b4620cde92d4ab6d736af 100644
--- a/src/main/java/org/olat/core/CoreBeanTypes.java
+++ b/src/main/java/org/olat/core/CoreBeanTypes.java
@@ -26,13 +26,12 @@
 
 package org.olat.core;
 
+import org.olat.core.commons.persistence.AdditionalDBMappings;
 import org.olat.core.extensions.Extension;
 import org.olat.core.gui.control.generic.portal.Portlet;
 import org.olat.core.gui.control.navigation.SiteDefinition;
 import org.olat.core.manager.BasicManager;
 import org.olat.core.util.notifications.NotificationsHandler;
-import org.olat.core.util.notifications.NotificationsUpgrade;
-import org.olat.core.commons.persistence.AdditionalDBMappings;
 
 
 	/**
@@ -45,7 +44,6 @@ public enum CoreBeanTypes implements BeanType {
 	basicManager(BasicManager.class),
 	portlet(Portlet.class),
 	notificationsHandler(NotificationsHandler.class),
-	notificationsUpgrade(NotificationsUpgrade.class),
 	additionalDBMappings(AdditionalDBMappings.class);
 
 	
diff --git a/src/main/java/org/olat/core/gui/components/form/Form.java b/src/main/java/org/olat/core/gui/components/form/Form.java
index 7c487596ef307aeeb39d51c4fedc2fb86870ea39..5067720b01de86010f508a410a011cd47f47ba8c 100644
--- a/src/main/java/org/olat/core/gui/components/form/Form.java
+++ b/src/main/java/org/olat/core/gui/components/form/Form.java
@@ -35,7 +35,7 @@ import org.olat.core.gui.control.Event;
  * @author Felix Jost
  */
 
-public abstract class Form  {
+public final class Form  {
 
 	/**
 	 * Comment for <code>CANCEL_IDENTIFICATION</code>
diff --git a/src/main/java/org/olat/core/id/Address.java b/src/main/java/org/olat/core/id/Address.java
deleted file mode 100644
index d175343bf03f76c8745f83a291fdcd9589f2460d..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/core/id/Address.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.  
-* <p>
-*/ 
-
-package org.olat.core.id;
-
-/**
- * Desciption:
- * Interface for an international address. This is a component object
- * of an OLAT user.
- *
- * @author Florian Gnägi
- */
-public interface Address {
-	/**
-	 * Returns the city.
-	 * @return String
-	 */
-	public String getCity();
-
-
-	/**
-	 * Returns the country.
-	 * @return String
-	 */
-	public String getCountry();
-
-
-	/**
-	 * Returns the extendedAddress.
-	 * @return String
-	 */
-	public String getExtendedAddress();
-
-
-	/**
-	 * Returns the pCode.
-	 * @return String
-	 */
-	public String getZipCode();
-
-
-	/**
-	 * Returns the poBox.
-	 * @return String
-	 */
-	public String getPoBox();
-
-	/**
-	 * Returns the region.
-	 * @return String
-	 */
-	public String getRegion();
-
-	/**
-	 * Returns the street.
-	 * @return String
-	 */
-	public String getStreet();
-
-	/**
-	 * Sets the city.
-	 * @param city The city to set
-	 */
-	public void setCity(String city);
-
-	/**
-	 * Sets the country.
-	 * @param country The country to set
-	 */
-	public void setCountry(String country);
-
-	/**
-	 * Sets the extendedAddress.
-	 * @param extendedAddress The extendedAddress to set
-	 */
-	public void setExtendedAddress(String extendedAddress);
-
-	/**
-	 * Sets the pCode.
-	 * @param pCode The pCode to set
-	 */
-	public void setZipCode(String pCode);
-
-	/**
-	 * Sets the poBox.
-	 * @param poBox The poBox to set
-	 */
-	public void setPoBox(String poBox);
-
-	/**
-	 * Sets the region.
-	 * @param region The region to set
-	 */
-	public void setRegion(String region);
-
-	/**
-	 * Sets the street.
-	 * @param street The street to set
-	 */
-	public void setStreet(String street);
-}
diff --git a/src/main/java/org/olat/core/util/Formatter.java b/src/main/java/org/olat/core/util/Formatter.java
index fbe9dc162bd2e66689a7071a1b794ba57a2cd28b..d7846d37f69bc5aed9b690ce83a6fa1aad341ee4 100644
--- a/src/main/java/org/olat/core/util/Formatter.java
+++ b/src/main/java/org/olat/core/util/Formatter.java
@@ -35,8 +35,6 @@ import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.Locale;
 import java.util.StringTokenizer;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 import org.apache.commons.lang.StringEscapeUtils;
 import org.olat.core.commons.chiefcontrollers.BaseChiefController;
@@ -51,8 +49,6 @@ import org.olat.core.logging.LogDelegator;
 public class Formatter extends LogDelegator {
 
 	private Locale locale;
-	
-	
 
 	/**
 	 * Constructor for Formatter.
@@ -492,23 +488,6 @@ public class Formatter extends LogDelegator {
 		return sb;
 	}
 
-	
-	
-			
-  private static int countOccurrences(String arg1, String arg2) {
-    int count = 0;
-    int index = 0;
-    while ((index = arg1.indexOf(arg2, index)) != -1) {
-         ++index;
-         ++count;
-    }
-    return count;
-		}
-	
- private void log(String msg){
-	 logWarn(msg, null);
-	}
-
 	/**
 	 * Wrapp given html code with a wrapper an add code to transform latex
 	 * formulas to nice visual characters on the client side. The latex formulas
diff --git a/src/main/java/org/olat/core/util/notifications/NotificationsUpgrade.java b/src/main/java/org/olat/core/util/notifications/NotificationsUpgrade.java
deleted file mode 100644
index aa8e3cf02fa65f79c495573a95ede8d2518ba31f..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/core/util/notifications/NotificationsUpgrade.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-package org.olat.core.util.notifications;
-
-/**
- * 
- * Description:<br>
- * 
- * <P>
- * Initial Date:  7 janv. 2010 <br>
- * @author srosse, stephane.rosse@frentix.com
- */
-public interface NotificationsUpgrade {
-	
-	public Publisher ugrade(Publisher publisher);
-
-	/**
-	 * Return type of notification-upgrader e.g. Forum, AssessmentManager, FolderModule etc.
-	 * @return
-	 */
-	public String getType();
-
-}
diff --git a/src/main/java/org/olat/course/PersistingCourseImpl.java b/src/main/java/org/olat/course/PersistingCourseImpl.java
index bbe1fac2375f2143d92b34304b5b74125fe7450b..5d57ba02c57de66150270fe73b0f8f8e2df86307 100644
--- a/src/main/java/org/olat/course/PersistingCourseImpl.java
+++ b/src/main/java/org/olat/course/PersistingCourseImpl.java
@@ -127,14 +127,6 @@ public class PersistingCourseImpl implements ICourse, OLATResourceable, Serializ
 		courseEnvironment = new CourseEnvironmentImpl(this);		
 	}
 	
-	/**
-	 * do upgrades if needed
-	 */
-	private void checkForVersionUpdateAndUpdate() {
-		CourseUpgrade cu = new CourseUpgrade();
-		cu.migrateCourse(this);
-	}
-	
 
 	/**
 	 * @see org.olat.course.ICourse#getRunStructure()
@@ -405,8 +397,7 @@ public class PersistingCourseImpl implements ICourse, OLATResourceable, Serializ
 		
 		obj = readObject(EDITORTREEMODEL_XML);
 		if (!(obj instanceof CourseEditorTreeModel)) throw new AssertException("Error reading course editor tree model.");
-		editorTreeModel = (CourseEditorTreeModel) obj;
-		checkForVersionUpdateAndUpdate();	
+		editorTreeModel = (CourseEditorTreeModel) obj;	
 	}
 
 	/**
diff --git a/src/main/java/org/olat/course/assessment/AssessmentNotificationsUpgrade.java b/src/main/java/org/olat/course/assessment/AssessmentNotificationsUpgrade.java
deleted file mode 100644
index 9e217ec3ea4757d2c86ade78e24b5fc03f5b61ea..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/course/assessment/AssessmentNotificationsUpgrade.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-
-package org.olat.course.assessment;
-
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.Tracing;
-import org.olat.core.util.notifications.NotificationsUpgrade;
-import org.olat.core.util.notifications.Publisher;
-import org.olat.core.util.resource.OresHelper;
-import org.olat.course.CourseModule;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-
-/**
- * 
- * Description:<br>
- * Upgrade publisher of assessments
- * 
- * <P>
- * Initial Date:  5 jan. 2010 <br>
- * @author srosse, stephane.rosse@frentix.com
- */
-public class AssessmentNotificationsUpgrade implements NotificationsUpgrade {
-	private static final OLog log = Tracing.createLoggerFor(AssessmentNotificationsUpgrade.class);
-
-	@Override
-	public Publisher ugrade(Publisher publisher) {
-		String businessPath = publisher.getBusinessPath();
-		if(businessPath != null && businessPath.startsWith("[")) return null;
-		
-		try {
-			RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntry(OresHelper.createOLATResourceableInstance(CourseModule.class, publisher.getResId()), true);
-			businessPath = "[RepositoryEntry:" + re.getKey() + "]";
-		} catch (Exception e) {
-			//if something went wrong...
-			log.error("error while processing resid: "+publisher.getResId(), e);
-		}
-	
-		if(businessPath != null) {
-			publisher.setBusinessPath(businessPath);
-			return publisher;
-		}
-		return null;
-	}
-
-	@Override
-	public String getType() {
-		return "AssessmentManager";
-	}
-}
diff --git a/src/main/java/org/olat/course/nodes/ta/DropboxFileUploadNotificationsUpgrade.java b/src/main/java/org/olat/course/nodes/ta/DropboxFileUploadNotificationsUpgrade.java
deleted file mode 100644
index 0c2d64bfbdd9849705812a52f24bb678e2d419b9..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/course/nodes/ta/DropboxFileUploadNotificationsUpgrade.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-
-package org.olat.course.nodes.ta;
-
-import org.olat.core.logging.LogDelegator;
-import org.olat.core.util.notifications.NotificationsUpgrade;
-import org.olat.core.util.notifications.Publisher;
-import org.olat.course.CourseFactory;
-import org.olat.course.ICourse;
-import org.olat.notifications.NotificationsUpgradeHelper;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-import org.olat.resource.OLATResource;
-import org.olat.resource.OLATResourceManager;
-
-/**
- * 
- * Description:<br>
- * Upgrade publisher of dropbox
- * 
- * <P>
- * Initial Date:  7 jan. 2010 <br>
- * @author srosse, stephane.rosse@frentix.com
- */
-public class DropboxFileUploadNotificationsUpgrade extends LogDelegator implements NotificationsUpgrade {
-
-	@Override
-	public Publisher ugrade(Publisher publisher) {
-		String businessPath = publisher.getBusinessPath();
-		if(businessPath != null && businessPath.startsWith("[")) return null;// already upgrade
-		
-		String type = publisher.getResName();
-		if ("CourseModule".equals(type)) {
-			String courseNode = publisher.getSubidentifier();
-			if(courseNode.indexOf(':') < 0) {
-				businessPath = NotificationsUpgradeHelper.getCourseNodePath(publisher);
-			} else {
-				try {
-					String courseNodeId = courseNode.substring(0, courseNode.indexOf(':'));
-					Long resId = publisher.getResId();
-					ICourse course = CourseFactory.loadCourse(resId);
-					RepositoryManager rm = RepositoryManager.getInstance();
-					OLATResource rsrc = OLATResourceManager.getInstance().findResourceable(course.getResourceableId(), course.getResourceableTypeName());
-					RepositoryEntry re = rm.lookupRepositoryEntry(rsrc, true);
-					businessPath = "[RepositoryEntry:" + re.getKey() + "][CourseNode:" + courseNodeId + "]";
-				} catch (Exception e) {
-					businessPath = null;
-					//if something went wrong, like error while loading course...
-					logWarn("error while processing resid: "+publisher.getResId(), e);
-				}
-			}
-		}
-	
-		if(businessPath != null) {
-			publisher.setBusinessPath(businessPath);
-			return publisher;
-		}
-		return null;
-	}
-
-	@Override
-	public String getType() {
-		return "DropboxController";
-	}
-}
diff --git a/src/main/java/org/olat/modules/dialog/FileUploadNotificationsUpgrade.java b/src/main/java/org/olat/modules/dialog/FileUploadNotificationsUpgrade.java
deleted file mode 100644
index c1121a8386e50b59095abb953ee73acc5618b769..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/modules/dialog/FileUploadNotificationsUpgrade.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-
-package org.olat.modules.dialog;
-
-import org.olat.core.util.notifications.NotificationsUpgrade;
-import org.olat.core.util.notifications.Publisher;
-import org.olat.notifications.NotificationsUpgradeHelper;
-
-/**
- * 
- * Description:<br>
- * Upgrade publisher of file upload
- * 
- * <P>
- * Initial Date:  7 jan. 2010 <br>
- * @author srosse, stephane.rosse@frentix.com
- */
-public class FileUploadNotificationsUpgrade implements NotificationsUpgrade {
-
-	@Override
-	public Publisher ugrade(Publisher publisher) {
-		String businessPath = publisher.getBusinessPath();
-		if(businessPath != null && businessPath.startsWith("[")) return null;
-		
-		String resName = publisher.getResName();
-		if("CourseModule".equals(resName)) {
-			businessPath = NotificationsUpgradeHelper.getCourseNodePath(publisher);
-		}
-		
-		if(businessPath != null) {
-			publisher.setBusinessPath(businessPath);
-			return publisher;
-		}
-		return null;
-	}
-
-	@Override
-	public String getType() {
-		return "DialogElement";
-	}
-}
diff --git a/src/main/java/org/olat/modules/fo/ForumNotificationsUpgrade.java b/src/main/java/org/olat/modules/fo/ForumNotificationsUpgrade.java
deleted file mode 100644
index 9adae4ca5156315a316a29e01272691254d6d304..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/modules/fo/ForumNotificationsUpgrade.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-
-package org.olat.modules.fo;
-
-import org.olat.core.logging.LogDelegator;
-import org.olat.core.util.notifications.NotificationsUpgrade;
-import org.olat.core.util.notifications.Publisher;
-import org.olat.course.CourseFactory;
-import org.olat.course.ICourse;
-import org.olat.notifications.NotificationsUpgradeHelper;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-import org.olat.resource.OLATResource;
-import org.olat.resource.OLATResourceManager;
-
-/**
- * 
- * Description:<br>
- * Upgrade publisher of forums
- * 
- * <P>
- * Initial Date:  5 jan. 2010 <br>
- * @author srosse, stephane.rosse@frentix.com
- */
-public class ForumNotificationsUpgrade extends LogDelegator implements NotificationsUpgrade {
-
-	@Override
-	public Publisher ugrade(Publisher publisher) {
-		String businessPath = publisher.getBusinessPath();
-		if(businessPath != null && businessPath.startsWith("[")) return null;// already upgrade
-		
-		String type = publisher.getResName();
-		if("BusinessGroup".equals(type)) {
-			businessPath = "[BusinessGroup:" + publisher.getResId()+ "][toolforum:0]";
-		} else if ("CourseModule".equals(type)) {
-			String courseNode = publisher.getSubidentifier();
-			if(courseNode.indexOf(':') < 0) {
-				businessPath = NotificationsUpgradeHelper.getCourseNodePath(publisher);
-			} else {
-				try {
-					String courseNodeId = courseNode.substring(0, courseNode.indexOf(':'));
-					Long resId = publisher.getResId();
-					ICourse course = CourseFactory.loadCourse(resId);
-					RepositoryManager rm = RepositoryManager.getInstance();
-					OLATResource rsrc = OLATResourceManager.getInstance().findResourceable(course.getResourceableId(), course.getResourceableTypeName());
-					RepositoryEntry re = rm.lookupRepositoryEntry(rsrc, true);
-					//node forum
-					businessPath = "[RepositoryEntry:" + re.getKey() + "][CourseNode:" + courseNodeId + "]";
-				} catch (Exception e) {
-					businessPath = null;
-					//if something went wrong, like error while loading course...
-					logWarn("error while processing resid: "+publisher.getResId(), e);
-					
-				}
-			}
-			//no notification for forums in wiki
-		}
-	
-		if(businessPath != null) {
-			publisher.setBusinessPath(businessPath);
-			return publisher;
-		}
-		return null;
-	}
-
-	@Override
-	public String getType() {
-		return "Forum";
-	}
-}
diff --git a/src/main/java/org/olat/modules/webFeed/managers/FeedManagerImpl.java b/src/main/java/org/olat/modules/webFeed/managers/FeedManagerImpl.java
index 78bcf2fad7dc4d2ced230bb0d52dbf715ce4aa9f..9849a16fce63b88acc9ebd3b5762610c1f9601e2 100644
--- a/src/main/java/org/olat/modules/webFeed/managers/FeedManagerImpl.java
+++ b/src/main/java/org/olat/modules/webFeed/managers/FeedManagerImpl.java
@@ -309,7 +309,6 @@ public abstract class FeedManagerImpl extends FeedManager {
 			if (whenTheFeedWasLastModified == null || entry.getLastModified().after(whenTheFeedWasLastModified)) {
 				// entry is newer then feed, update feed
 				feed.setTitle(entry.getDisplayname());
-				// Formatter.formatWikiMarkup(entry.getDescription())
 				feed.setDescription(entry.getDescription());
 				feed.setAuthor(entry.getInitialAuthor());
 				// Update the image
diff --git a/src/main/java/org/olat/modules/wiki/WikiPageChangeOrCreateNotificationsUpgrade.java b/src/main/java/org/olat/modules/wiki/WikiPageChangeOrCreateNotificationsUpgrade.java
deleted file mode 100644
index 305bf2c93f0d8d8bc14a1c728eeb49d840eead95..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/modules/wiki/WikiPageChangeOrCreateNotificationsUpgrade.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-
-package org.olat.modules.wiki;
-
-import org.olat.core.id.OLATResourceable;
-import org.olat.core.logging.LogDelegator;
-import org.olat.core.util.notifications.NotificationsUpgrade;
-import org.olat.core.util.notifications.Publisher;
-import org.olat.core.util.resource.OresHelper;
-import org.olat.course.CourseFactory;
-import org.olat.course.CourseModule;
-import org.olat.course.ICourse;
-import org.olat.course.nodes.CourseNode;
-import org.olat.course.nodes.WikiCourseNode;
-import org.olat.course.nodes.wiki.WikiEditController;
-import org.olat.course.run.environment.CourseEnvironment;
-import org.olat.group.BusinessGroup;
-import org.olat.group.BusinessGroupManagerImpl;
-import org.olat.modules.ModuleConfiguration;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-
-/**
- * 
- * Description:<br>
- * update the publisher to business path
- * 
- * <P>
- * Initial Date:  6 jan. 2010 <br>
- * @author srosse, stephane.rosse@frentix.com
- */
-public class WikiPageChangeOrCreateNotificationsUpgrade extends LogDelegator implements NotificationsUpgrade {
-
-	@Override
-	public Publisher ugrade(Publisher publisher) {
-		String businessPath = publisher.getBusinessPath();
-		if(businessPath != null && businessPath.startsWith("[")) return null;
-		
-		Long resId = publisher.getResId();
-		if (publisher.getResName().equals( CourseModule.getCourseTypeName() ) ) {
-			// resId = CourseResourceableId           p.getSubidentifier() = wikiCourseNode.getIdent()
-			CourseNode courseNode = null;
-			try {
-				ICourse course = CourseFactory.loadCourse(resId);
-				CourseEnvironment cenv = course.getCourseEnvironment();
-				courseNode = cenv.getRunStructure().getNode(publisher.getSubidentifier());
-			} catch (Exception e) {
-				logWarn("Could not load course with resid: "+resId, e);
-				return null;
-			}
-			if(courseNode == null){
-				logInfo("deleting publisher with key; "+publisher.getKey(), null);
-				//NotificationsManager.getInstance().delete(publisher);
-				// return nothing available
-				return null;
-			}
-			ModuleConfiguration config = ((WikiCourseNode)courseNode).getModuleConfiguration();
-			RepositoryEntry re = WikiEditController.getWikiRepoReference(config, true);
-			resId = re.getOlatResource().getResourceableId();
-			businessPath = "[RepositoryEntry:" + re.getKey().toString() + "]" 
-				+ "[CourseNode:" + publisher.getSubidentifier() + "]";
-		} else {
-			// resName = 'BusinessGroup' or 'FileResource.WIKI'
-			OLATResourceable ores = OresHelper.createOLATResourceableInstance(publisher.getResName(), resId);
-		  BusinessGroup bGroup = BusinessGroupManagerImpl.getInstance().loadBusinessGroup(resId, false);
-		  if (bGroup==null) {
-			  // Wiki as Repo-Ressource
-		  	RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntry(ores,false);
-		  	if (re != null) {
-		  		businessPath = "[RepositoryEntry:" + re.getKey().toString() + "]" 
-		  		+ "["+re.getOlatResource().getResourceableTypeName()+":" + re.getResourceableId() + "]";
-		  	} else {
-		  		//repo entry not found, delete publisher
-		  		logInfo("deleting publisher with key; "+publisher.getKey(), null);
-		  		//NotificationsManager.getInstance().delete(publisher);
-		  		return null;
-		  	}
-		  } else {
-		  	businessPath = "[BusinessGroup:" + bGroup.getKey().toString() + "][wiki:0]";			  
-		  }
-		}
-		publisher.setBusinessPath(businessPath);
-		return publisher;
-	}
-
-	@Override
-	public String getType() {
-		return "WikiPage";
-	}
-}
\ No newline at end of file
diff --git a/src/main/java/org/olat/notifications/bc/FolderNotificationsUpgrade.java b/src/main/java/org/olat/notifications/bc/FolderNotificationsUpgrade.java
deleted file mode 100644
index 47553c4a4d17adeb4ad95519ff707213a3df5e43..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/notifications/bc/FolderNotificationsUpgrade.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-
-package org.olat.notifications.bc;
-
-import org.olat.core.util.notifications.NotificationsUpgrade;
-import org.olat.core.util.notifications.Publisher;
-import org.olat.notifications.NotificationsUpgradeHelper;
-
-/**
- * 
- * Description:<br>
- * Upgrade publisher of folders
- * 
- * <P>
- * Initial Date:  7 jan. 2010 <br>
- * @author srosse, stephane.rosse@frentix.com
- */
-public class FolderNotificationsUpgrade implements NotificationsUpgrade {
-
-	@Override
-	public Publisher ugrade(Publisher publisher) {
-		String businessPath = publisher.getBusinessPath();
-		if(businessPath != null && businessPath.startsWith("[")) return null;
-		
-		String resName = publisher.getResName();
-		if("BusinessGroup".equals(resName)) {
-			businessPath = "[BusinessGroup:" + publisher.getResId() + "][toolfolder:0]";
-		} else if("CourseModule".equals(resName)) {
-			businessPath = NotificationsUpgradeHelper.getCourseNodePath(publisher);
-		}
-		
-		if(businessPath != null) {
-			publisher.setBusinessPath(businessPath);
-			return publisher;
-		}
-		return null;
-	}
-
-	@Override
-	public String getType() {
-		return "FolderModule";
-	}
-}
diff --git a/src/main/java/org/olat/restapi/log/LogWebService.java b/src/main/java/org/olat/restapi/log/LogWebService.java
index 2555349027aa701083d319b77adc48408bea47ee..eab2f3603fe351570daa74159b109d96e7f57674 100644
--- a/src/main/java/org/olat/restapi/log/LogWebService.java
+++ b/src/main/java/org/olat/restapi/log/LogWebService.java
@@ -104,7 +104,6 @@ public class LogWebService {
 	}
 	
 	@GET
-	@Path("")
 	@Produces({ "text/plain", MediaType.APPLICATION_OCTET_STREAM })
 	public Response getCurrentLogFile( @Context HttpServletRequest request) {
 		return getLogFileByDate(null, request);
diff --git a/src/main/java/org/olat/test/TransactionTestController.java b/src/main/java/org/olat/test/TransactionTestController.java
deleted file mode 100644
index dd107e99584513a790537bd6631550d3d35bb75f..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/test/TransactionTestController.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-
-package org.olat.test;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.olat.core.commons.persistence.DB;
-import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.gui.UserRequest;
-import org.olat.core.gui.components.Component;
-import org.olat.core.gui.components.link.Link;
-import org.olat.core.gui.components.link.LinkFactory;
-import org.olat.core.gui.components.panel.Panel;
-import org.olat.core.gui.components.velocity.VelocityContainer;
-import org.olat.core.gui.control.Controller;
-import org.olat.core.gui.control.Event;
-import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.control.controller.BasicController;
-import org.olat.core.logging.Tracing;
-import org.olat.properties.Property;
-import org.olat.properties.PropertyManager;
-
-/**
- * 
- * Description:<br>
- * 
- * <P>
- * Initial Date:  08.11.2007 <br>
- * @author christian guretzki
- */
-public class TransactionTestController extends BasicController {
-
-	private VelocityContainer myContent = createVelocityContainer("transactiontest");
-
-	private Panel panel = new Panel("panel");
-	private Link linkNoTrans;
-	private Link linkTrans;
-	private Link linkMixTrans;
-	private Link linkNoTransE;
-	private Link linkTransE;
-	private Link linkMixTransE;
-	private Link resetLink;
-	private Link listPropertiesLink;
-	
-	private String propertyCategory = "transactionTest";
-	String propertyKey1 = "TestTransactionalKey-1";
-	String testValue1 = "TestTransactionalValue-1";
-	String propertyKey2 = "TestTransactionalKey-2";
-	String testValue2 = "TestTransactionalValue-2";
-
-	public TransactionTestController(UserRequest ureq, WindowControl wControl) {
-		super(ureq, wControl);
-		// we pass a variable to the velocity container
-		
-		//links and buttons are also components
-		linkNoTrans = LinkFactory.createLink("transaction.test.no", myContent, this);
-		linkTrans = LinkFactory.createLink("transaction.test.yes", myContent, this);
-		linkMixTrans = LinkFactory.createLink("transaction.test.mixed", myContent, this);
-
-		linkNoTransE = LinkFactory.createLink("transaction.test.no.error", myContent, this);
-		linkTransE = LinkFactory.createLink("transaction.test.yes.error", myContent, this);
-		linkMixTransE = LinkFactory.createLink("transaction.test.mixed.error", myContent, this);
-		
-		resetLink = LinkFactory.createLink("transaction.test.reset", myContent, this);
-		listPropertiesLink  = LinkFactory.createLink("transaction.test.list.properties", myContent, this);
-		
-		//panels are content holders that are initially empty and can be filled with different contents
-		//the panel itself stays in the layout and if you are in AJAX mode only the new content gets sended
-		//and replace by dom replacement.
-		myContent.put("panel", panel);
-		panel.setContent(null);
-		// our velocity contrainer will be the first component to display
-		// when somebody decieds to render the GUI of this controller.
-		putInitialPanel(myContent);
-	}
-
-	private String listAllProperties() {
-		StringBuilder buf = new StringBuilder();
-		PropertyManager pm = PropertyManager.getInstance();
-		Property p1 = pm.findProperty(null, null, null, propertyCategory, propertyKey1);
-		if (p1 == null) {
-			buf.append(propertyKey1 + "=null");
-		} else {
-			buf.append(propertyKey1 + "=" + p1.getStringValue());
-		}
-		buf.append("<br />");
-		Property p2 = pm.findProperty(null, null, null, propertyCategory, propertyKey2);
-		if (p2 == null) {
-			buf.append(propertyKey2 + "=null");
-		} else {
-			buf.append(propertyKey2 + "=" + p2.getStringValue() );
-		}
-		buf.append("<br />");
-		return buf.toString();
-	}
-
-	/**
-	 * This dispatches component events...
-	 * 
-	 * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest,
-	 *      org.olat.core.gui.components.Component, org.olat.core.gui.control.Event)
-	 */
-	public void event(UserRequest ureq, Component source, Event event) {
-		// first check, which component this event comes from...
-		if (source == linkNoTrans) {
-			doTestNonTransactional();
-		} else if (source == linkTrans) {
-			doTestTransactional();
-		} else if (source == linkMixTrans) {
-			doTestMixTransactional();
-		} else if (source == linkNoTransE) {
-			doTestNonTransactionalError();
-		} else if (source == linkTransE) {
-			doTestTransactionalError();
-		} else if (source == linkMixTransE) {
-			doTestMixTransactionalError();
-		} else if (source == resetLink) {
-			doReset();
-		} else if (source == listPropertiesLink) {
-			getWindowControl().setInfo(listAllProperties());
-		}
-	}
-
-	private void doTestNonTransactional() {
-		PropertyManager pm = PropertyManager.getInstance();
-		Property p1 = pm.createPropertyInstance(null, null, null, propertyCategory, propertyKey1, null, null, "doTestNonTransactional_1", null);
-		pm.saveProperty(p1);
-		// name is null => generated DB error => rollback
-		Property p2 = pm.createPropertyInstance(null, null, null, propertyCategory, propertyKey2, null, null, "doTestNonTransactional_2", null);
-		pm.saveProperty(p2);
-		getWindowControl().setInfo("Properties<br />TestTransactionalKey-1=doTestNonTransactional_1,<br />TestTransactionalKey-2=doTestNonTransactional_2 created");
-	}
-
-	private void doTestTransactional() {
-		DB db = DBFactory.getInstance();
-		PropertyManager pm = PropertyManager.getInstance();
-		Property p1 = pm.createPropertyInstance(null, null, null, propertyCategory, propertyKey1, null, null, "doTestTransactional_1", null);
-		pm.saveProperty(p1);
-		Property p2 = pm.createPropertyInstance(null, null, null, propertyCategory, propertyKey2, null, null, "doTestTransactional_2", null);
-		pm.saveProperty(p2);
-		getWindowControl().setInfo("Properties<br />TestTransactionalKey-1=doTestTransactional_1,<br />TestTransactionalKey-2=doTestTransactional_2 created");
-	}
-
-	private void doTestMixTransactional() {
-		DB db = DBFactory.getInstance();
-		PropertyManager pm = PropertyManager.getInstance();
-		Property p1 = pm.createPropertyInstance(null, null, null, propertyCategory, propertyKey1, null, null, "doTestMixTransactional_1", null);
-		pm.saveProperty(p1);
-		Property p2 = pm.createPropertyInstance(null, null, null, propertyCategory, propertyKey2, null, null, "doTestMixTransactional_2", null);
-		pm.saveProperty(p2);
-		getWindowControl().setInfo("Properties<br />TestTransactionalKey-1=doTestTransactional_1,<br />TestTransactionalKey-2=doTestTransactional_2 created");
-	}
-
-	private void doTestNonTransactionalError() {
-		PropertyManager pm = PropertyManager.getInstance();
-		Property p1 = pm.createPropertyInstance(null, null, null, propertyCategory, propertyKey1, null, null, "doTestNonTransactionalError_1", null);
-		pm.saveProperty(p1);
-		// name is null => generated DB error => no rollback of p1
-		Property p2 = pm.createPropertyInstance(null, null, null, propertyCategory, null, null, null, "doTestNonTransactionalError_2", null);
-		pm.saveProperty(p2);
-		getWindowControl().setError("Should generate error for rollback!");
-		Tracing.logError("Should generate error and not reach this code",getClass());
-	}
-
-	private void doTestTransactionalError() {
-		DB db = DBFactory.getInstance();
-		PropertyManager pm = PropertyManager.getInstance();
-		Property p1 = pm.createPropertyInstance(null, null, null, propertyCategory, propertyKey1, null, null, "doTestTransactionalError_1", null);
-		pm.saveProperty(p1);
-		// name is null => generated DB error => rollback
-		Property p2 = pm.createPropertyInstance(null, null, null, propertyCategory, null, null, null, "doTestTransactionalError_2", null);
-		pm.saveProperty(p2);
-		getWindowControl().setError("Should generate error for rollback!");
-		Tracing.logError("Should generate error for rollback and not reach this code",getClass());
-	}
-	
-	private void doTestMixTransactionalError() {
-		DB db = DBFactory.getInstance();
-		PropertyManager pm = PropertyManager.getInstance();
-		Property p1 = pm.createPropertyInstance(null, null, null, propertyCategory, propertyKey1, null, null, "doTestMixTransactional_1", null);
-		pm.saveProperty(p1);
-		// name is null => generated DB error => rollback
-		Property p2 = pm.createPropertyInstance(null, null, null, propertyCategory, null, null, null, "doTestMixTransactional_2", null);
-		pm.saveProperty(p2);
-		getWindowControl().setError("Should generate error for rollback!");
-		Tracing.logError("Should generate error for rollback and not reach this code",getClass());
-	}
-
-	private void doReset() {
-		PropertyManager.getInstance().deleteProperties(null, null, null, propertyCategory, null);
-		getWindowControl().setInfo("All transaction-test property were deleted.");
-	}
-
-	/**
-	 * This dispatches controller events...
-	 * 
-	 * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest,
-	 *      org.olat.core.gui.control.Controller, org.olat.core.gui.control.Event)
-	 */
-	public void event(UserRequest ureq, Controller source, Event event) {
-	// at this time, we do not have any other controllers we'd like to listen for
-	// events to...
-
-	// If you have a formular or a table component in your velocity file the
-	// events (like clicking an element in the table)
-	// this method gets called and the event can be handeled
-	}
-
-	protected void doDispose() {
-		//use this method to finish thing at the end of the livetime of this controller
-		//like closing files or connections...
-		//this method does no get called automatically, you have to maintain the controller chain
-		//and make sure that you call dispose on the place where you create the controller
-	}
-
-}
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_4_0_0.java b/src/main/java/org/olat/upgrade/OLATUpgrade_4_0_0.java
deleted file mode 100644
index d4375dd4808bd4e8f675f260e4245807cc437cda..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_4_0_0.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-
-package org.olat.upgrade;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.olat.course.CourseFactory;
-import org.olat.course.CourseModule;
-import org.olat.course.ICourse;
-import org.olat.course.assessment.EfficiencyStatementManager;
-import org.olat.course.properties.CoursePropertyManager;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-
-/**
- * Description:<br>
- * - Creates all efficiency statements for all users for all courses
- * 
- * <P>
- * Initial Date:  15.08.2005 <br>
- * @author gnaegi
- */
-public class OLATUpgrade_4_0_0 extends OLATUpgrade {
-	private static final String VERSION = "OLAT_4.0.0";
-	private static final String TASK_EFFICIENCY_STATEMENT_DONE = "efficiencyStatementsCreated";
-	
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPreSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPreSystemInitUpgrade(UpgradeManager upgradeManager) {
-		// nothing to do here so far
-		return false;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPostSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPostSystemInitUpgrade(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (uhd == null) {
-			// has never been called, initialize
-			uhd = new UpgradeHistoryData();
-		} else {
-			if (uhd.isInstallationComplete()) return false;
-		}
-
-		// BEGIN EFFICIENCY STATEMENT
-		// create all efficiency statements for all users in all courses
-		if (! uhd.getBooleanDataValue(TASK_EFFICIENCY_STATEMENT_DONE)) {
-			RepositoryManager rm = RepositoryManager.getInstance();
-			EfficiencyStatementManager esm = EfficiencyStatementManager.getInstance();
-			// get all course repository entries
-			List entries = rm.queryByType(CourseModule.ORES_TYPE_COURSE);
-			Iterator iter = entries.iterator();
-			while (iter.hasNext()) {
-				RepositoryEntry re = (RepositoryEntry) iter.next();
-				// load course from entry
-				ICourse course = CourseFactory.loadCourse(re.getOlatResource());
-				CoursePropertyManager cpm = course.getCourseEnvironment().getCoursePropertyManager();
-				List identities = cpm.getAllIdentitiesWithCourseAssessmentData();
-				// now create all statements for this course
-				esm.updateEfficiencyStatements(course,identities, false);
-			}
-			uhd.setBooleanDataValue(TASK_EFFICIENCY_STATEMENT_DONE, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-		// END EFFICIENCY STATEMENT
-
-		
-		uhd.setInstallationComplete(true);
-		upgradeManager.setUpgradesHistory(uhd, VERSION);
-		return true;
-	}
-
-	public String getVersion() {
-		return VERSION;
-	}
-	
-	/**
-	 * 
-	 * @see org.olat.upgrade.OLATUpgrade#getAlterDbStatements()
-	 */
-	public String getAlterDbStatements() {
-		return null; //till 6.1 was manual upgrade
-	}
-
-}
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_4_1_0.java b/src/main/java/org/olat/upgrade/OLATUpgrade_4_1_0.java
deleted file mode 100644
index 23a8bb436b47fad2cf4413a18e4efaf70f811798..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_4_1_0.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-
-
-package org.olat.upgrade;
-
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.olat.basesecurity.BaseSecurity;
-import org.olat.basesecurity.BaseSecurityManager;
-import org.olat.core.id.Identity;
-import org.olat.core.logging.StartupException;
-import org.olat.core.logging.Tracing;
-import org.olat.core.util.resource.OresHelper;
-import org.olat.core.util.vfs.LocalFolderImpl;
-import org.olat.core.util.vfs.VFSContainer;
-import org.olat.core.util.vfs.filters.VFSContainerFilter;
-import org.olat.fileresource.types.FileResource;
-import org.olat.ims.qti.editor.QTIEditorPackage;
-import org.olat.ims.qti.fileresource.SurveyFileResource;
-import org.olat.ims.qti.fileresource.TestFileResource;
-import org.olat.properties.Property;
-import org.olat.properties.PropertyManager;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-
-/**
- * Description:<br> - Creates all efficiency statements for all users for all
- * courses
- * <P>
- * Initial Date: 15.08.2005 <br>
- * 
- * @author gnaegi
- */
-public class OLATUpgrade_4_1_0 extends OLATUpgrade {
-	private static final String TASK_CHECK_OPEN_QTI_EDITOR_SESSIONS = "check open qti editor sessions";
-	private static final String VERSION = "OLAT_4.1.0";
-	private static final String TASK_CLEAN_UP_MSGREAD_PROPERTIES_DONE = "unused message properties deleted";
-	private static final String TASK_REPLACE_OLDINTERNALLINKS = "replace internal links with new form";
-	
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPreSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPreSystemInitUpgrade(UpgradeManager upgradeManager) {
-		// nothing to do here
-		return false;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPostSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPostSystemInitUpgrade(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (uhd == null) {
-			// has never been called, initialize
-			uhd = new UpgradeHistoryData();
-		} else {
-			if (uhd.isInstallationComplete()) return false;
-		}
-
-		// each message generates a property entry for each user if he read a
-		// message in a forum. The deletion of the message did not delete the
-		// property entry.
-		cleanupUnusedMessageProperties(upgradeManager, uhd);
-		
-		// the qti editor creates a persistent lock with the help of the
-		// repository entry metadata. This upgrade method searches the
-		// olatdata/tmp/qtieditor folder for open qti editor sessions and
-		// creates the needed changelog folder andalso the metadata lock.
-		checkForOpenQTIEditorSessions(upgradeManager, uhd);
-				
-		//
-		uhd.setInstallationComplete(true);
-		upgradeManager.setUpgradesHistory(uhd, VERSION);
-
-		return true;
-	}
-
-	private void checkForOpenQTIEditorSessions(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		//the qti editor creates a persistent lock with the help of the
-		// repository entry metadata. This upgrade method searches the
-		// olatdata/tmp/qtieditor folder for open qti editor sessions and
-		// creates the needed changelog folder andalso the metadata lock.
-		if (!uhd.getBooleanDataValue(TASK_CHECK_OPEN_QTI_EDITOR_SESSIONS)) {
-			Tracing.logAudit("+------------------------------------------+",this.getClass());
-			Tracing.logAudit("+... LOCKS FOR OPEN QTI EDITOR SESSIONS ...+",this.getClass());
-			Tracing.logAudit("+------------------------------------------+",this.getClass());
-			//
-			BaseSecurity manager = BaseSecurityManager.getInstance();
-			RepositoryManager rm = RepositoryManager.getInstance();
-			RepositoryEntry myEntry;
-			HashMap logmsg = new HashMap();
-			VFSContainer qtiTmpDir = new LocalFolderImpl(QTIEditorPackage.getTmpBaseDir());
-			VFSContainerFilter foldersOnly = new VFSContainerFilter();
-			//folders in ../tmp/qtieditor hold the usernames
-			List foldersUsername = qtiTmpDir.getItems(foldersOnly);
-			for (Iterator iter = foldersUsername.iterator(); iter.hasNext();) {
-				VFSContainer folderOfUser = (VFSContainer) iter.next();
-				//the users folders holds folders with ids of OLATResourceable's
-				List oResFolders = folderOfUser.getItems(foldersOnly);
-				for (Iterator resources = oResFolders.iterator(); resources.hasNext();) {
-					VFSContainer folderOfResource = (VFSContainer) resources.next();
-					folderOfResource.createChildContainer(QTIEditorPackage.FOLDERNAMEFOR_CHANGELOG);
-					
-					//these are eiterh surveys or tests
-					//try it as testresource then as survey, after this give up
-					Long oresId = new Long(folderOfResource.getName());
-					FileResource fr = new TestFileResource();
-					fr.overrideResourceableId(oresId);
-					myEntry = rm.lookupRepositoryEntry(fr,false);
-					if(myEntry==null){
-						//no qti test found, try the qti survey
-						fr = new SurveyFileResource();
-						fr.overrideResourceableId(oresId);
-						myEntry = rm.lookupRepositoryEntry(fr,false);
-					}
-					//
-					if(myEntry!=null){
-						List identites = manager.getVisibleIdentitiesByPowerSearch(folderOfUser.getName(),null,false, null,null,null,null,null);
-						if(identites!=null && identites.size()==1){
-							//found exact one user, which is the expected case
-							//a qti resource was found, update its metadata entry to generate a lock
-							String repoEntry = myEntry.getDisplayname(); 
-							String oresIdS = myEntry.getOlatResource().getResourceableId().toString();
-							String oresIdT = myEntry.getOlatResource().getResourceableTypeName();
-							if(logmsg.containsKey(oresIdS)){
-								//collision! two or more sessions open on same resource!
-								String users = (String)logmsg.get(oresIdS);
-								logmsg.put(oresIdS,users+", "+folderOfUser.getName());
-							}else{
-								//mde = new MetaDataElement("editedBy",folderOfUser.getName());
-								//myEntry.getMetaDataElements().add(mde);
-								//rm.updateRepositoryEntry(myEntry);
-								addQTIEditorSessionLock(fr,(Identity)identites.get(0));
-								Tracing.logAudit("created persistent lock for user <"+folderOfUser.getName()+"> <"+repoEntry+" [ references "+oresIdS+" of type:"+oresIdT+"]>",this.getClass());
-								logmsg.put(oresIdS,"[ "+repoEntry+"] "+folderOfUser.getName());
-							}
-						}else if(identites!=null && identites.size()>1){
-							//found more then one user?? for the userlogin??
-							Tracing.logAudit("\t*** NO *** persistent lock for user <"+folderOfUser.getName()+"> and entry <"+oresId.toString()+"> ! Cause: Found more then one identity for user!",this.getClass());
-						}else{
-							//found not user with given login??? as far as user deletion is not implemented, this will never happen.
-							Tracing.logAudit("\t*** NO *** persistent lock for user <"+folderOfUser.getName()+"> and entry <"+oresId.toString()+"> ! Cause: User not found!",this.getClass());
-						}
-					}else{
-						//no qti resource found?! deleted already
-						Tracing.logAudit("\t*** NO *** persistent lock for user <"+folderOfUser.getName()+"> and entry <"+oresId.toString()+"> ! Cause: Entry not found!",this.getClass());
-					}
-				}
-			}
-			//write to the audit log which qti editor sessions are problematic
-			Set keys = logmsg.keySet();
-			if(keys!=null && keys.size()>0){
-				Tracing.logAudit("List of (colliding) QTI Editor Sessions.",this.getClass());
-				Tracing.logAudit("(colliding if more then one user is listed on the same resource)",this.getClass());
-				Tracing.logAudit("\tQTI Resource id\t[Repository entry ] <list of users, where the first one holds a lock now>",this.getClass());
-				for (Iterator iter = keys.iterator(); iter.hasNext();) {
-					String key = (String) iter.next();
-					Tracing.logAudit("\t"+key+"\t"+(String)logmsg.get(key),this.getClass());
-				}
-			}else{
-				Tracing.logAudit("No colliding qti editor sessions detected.",this.getClass());
-			}
-
-			Tracing.logAudit("+----------------------------------------+",this.getClass());
-			Tracing.logAudit("+----------------------------------------+",this.getClass());
-			Tracing.logAudit("+----------------------------------------+",this.getClass());
-			
-			uhd.setBooleanDataValue(TASK_CHECK_OPEN_QTI_EDITOR_SESSIONS, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-		
-	}
-
-	private void cleanupUnusedMessageProperties(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		// BEGIN MSG CLEAN UP
-		// each message generates a property entry for each user if he read a
-		// message in a forum. The deletion of the message did not delete the
-		// property entry.
-		if (!uhd.getBooleanDataValue(TASK_CLEAN_UP_MSGREAD_PROPERTIES_DONE)) {
-			String query = "select o_property.id "+
-										 "from o_property LEFT JOIN o_message "+
-										 "ON o_property.longvalue=o_message.message_id "+
-										 "where o_message.message_id is NULL "+
-										 "AND o_property.category='rvst' "+
-										 "AND o_property.resourcetypename='Forum'; ";
-			
-			
-			try {
-				Connection con = upgradeManager.getDataSource().getConnection();
-				Statement stmt = con.createStatement();
-				ResultSet results = stmt.executeQuery(query);
-				
-				//delete each property and do logging
-				query = "delete from o_property where id = ?";
-				PreparedStatement deleteStmt = con.prepareStatement(query);
-				while (results.next()) {
-			    long id = results.getLong("id");
-			    Tracing.logAudit("Deleting unused property (see: bugs.olat.org/jira/browse/OLAT-1273) from table (o_property) with id = "+id, OLATUpgrade_4_1_0.class);
-			    deleteStmt.setLong(1, id);
-			    deleteStmt.execute();
-			  }
-				
-				con.close();
-				con = null;
-			} catch (SQLException e) {
-				Tracing.logWarn("Could not execute system upgrade sql query. Query:"+ query, e, OLATUpgrade_4_1_0.class);
-				throw new StartupException("Could not execute system upgrade sql query. Query:"+ query, e);
-			}
-			uhd.setBooleanDataValue(TASK_CLEAN_UP_MSGREAD_PROPERTIES_DONE, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-
-	private void addQTIEditorSessionLock(FileResource fr, Identity user){
-		PropertyManager pm = PropertyManager.getInstance();
-		String derivedLockString = OresHelper.createStringRepresenting(fr);
-		Property newp = pm.createPropertyInstance(null, null, null, "o_lock", derivedLockString, null, user.getKey(), null, null);
-		pm.saveProperty(newp);
-	}
-	
-	
-	public String getVersion() {
-		return VERSION;
-	}
-	
-	/**
-	 * 
-	 * @see org.olat.upgrade.OLATUpgrade#getAlterDbStatements(r)
-	 */
-	public String getAlterDbStatements() {
-		return null; //till 6.1 was manual upgrade
-	}
-
-}
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_4_1_1.java b/src/main/java/org/olat/upgrade/OLATUpgrade_4_1_1.java
deleted file mode 100644
index 676c061b058da5171dec7bd82411315d9721c935..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_4_1_1.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-
-
-package org.olat.upgrade;
-
-import java.io.File;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.olat.core.commons.modules.bc.FolderConfig;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.Tracing;
-import org.olat.core.util.FileUtils;
-import org.olat.core.util.FileVisitor;
-
-/**
- * Description:<br> 
- * - Creates all efficiency statements for all users for all
- * courses
- * <P>
- * Initial Date: 15.08.2005 <br>
- * 
- * @author gnaegi
- */
-  public class OLATUpgrade_4_1_1 extends OLATUpgrade {
-  OLog log = Tracing.createLoggerFor(this.getClass());
-	private static final String VERSION = "OLAT_4.1.1";
-	private static final String TASK_REPLACE_OLDINTERNALLINKS = "replace internal links with new form";
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPreSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPreSystemInitUpgrade(UpgradeManager upgradeManager) {
-		// nothing to do here
-		return false;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPostSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPostSystemInitUpgrade(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (uhd == null) {
-			// has never been called, initialize
-			uhd = new UpgradeHistoryData();
-		} else {
-			if (uhd.isInstallationComplete()) return false;
-		}
-		
-		// check all .htm and .html files in the coursefolder of all courses, and replace occurences of the form
-		// "(../)*olatcmd/gotonode/<number>" (mostly used in the href attribute of an a tag
-		// with
-		// "javascript:parent.gotonode(<number>)"
-		// Reason: The old links do not work anymore if the user detaches a singlepage into a new browser window 
-		replaceOldInternalCourseLinksWithNewForm(upgradeManager, uhd);
-		
-		
-		//
-		uhd.setInstallationComplete(true);
-		upgradeManager.setUpgradesHistory(uhd, VERSION);
-
-		return true;
-	}
-
-	private void replaceOldInternalCourseLinksWithNewForm(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-	
-		if (!uhd.getBooleanDataValue(TASK_REPLACE_OLDINTERNALLINKS)) {
-			log.audit("+---------- replace internal links -----------+");
-			final String DEFAULT_ENCODING = "iso-8859-1";
-			final String MACINTOSH_ENCODING = "macintosh";
-			final String MACROMAN_ENCODING = "macroman";
-			final Pattern PATTERN_ENCTYPE = Pattern.compile("<meta.*?charset=([^\"]*)\"", Pattern.CASE_INSENSITIVE);
-			final Pattern OLDLINK = Pattern.compile("(\\.\\./)*olatcmd/gotonode/(\\d*)");
-			// \olat4head\bcroot\course\72623873096960\coursefolder\**
-			// bcroot            course subfolders
-			// -> accept all files in the coursefolder and subfolders with .htm or .html suffix 
-			String bcrootPath = FolderConfig.getCanonicalRoot();
-			File bcRootDir = new File(bcrootPath);
-			File coursesRoot = new File(bcRootDir, "course");
-			String[] courses = coursesRoot.list();
-			for (int i = 0; i < courses.length; i++) {
-				String course = courses[i];
-				File courseRoot = new File(coursesRoot, course);
-				File cFolder = new File(courseRoot, "coursefolder");
-				log.audit("visiting "+cFolder.getAbsolutePath());
-				FileVisitor fv = new FileVisitor() {
-
-					public void visit(File file) {
-						String rpage = null;
-						String fname = file.getName();
-						if ((file.isFile())&&(fname.endsWith(".htm") || fname.endsWith(".html"))) {
-							// we can have html in all possible encodings
-							String page = FileUtils.load(file, DEFAULT_ENCODING);
-							// search for the <meta content="text/html; charset=utf-8"
-							// http-equiv="Content-Type" /> tag
-							// if none found, assume iso-8859-1
-							String enc = DEFAULT_ENCODING;
-							boolean useLoaded = false;
-							// <meta.*charset=([^"]*)"
-							Matcher m = PATTERN_ENCTYPE.matcher(page);
-							boolean found = m.find();
-							if (found) {
-								// found an encoding definition
-								String htmlcharset = m.group(1);
-								enc = htmlcharset.toLowerCase();
-								if (enc.equals(DEFAULT_ENCODING)) {
-									// the found encoding is default encoding
-									useLoaded = true;
-								}else if(enc.equals(MACINTOSH_ENCODING)){
-									enc = MACROMAN_ENCODING;
-								}
-							} else { 
-								useLoaded = true;
-							}
-							
-							if (useLoaded) {
-								rpage = page;
-							} else { // another encoding than default, have to reload the html-file using the founded encoding
-								try {
-									rpage = FileUtils.load(file, enc);
-								} catch (Exception e) {
-									log.audit("ERROR: could not load file "+file.getAbsolutePath()+" ENCTYPE: "+ enc);
-									return;
-								}
-							}
-							// (../)* "olatcmd/gotonode/<number>"
-							// with
-							// "javascript:parent.gotonode(<number>)"
-							//rpage = "one <a href=\"olatcmd/gotonode/12345\">af</a> and two <a href=\"../../olatcmd/gotonode/6789\">af2</a> and...";
-							Matcher ma = OLDLINK.matcher(rpage);
-							StringBuffer sb = new StringBuffer();
-							int changed = 0;
-							StringBuilder links = new StringBuilder();
-							while (ma.find()) {
-								//int gp = ma.groupCount();
-								String mm = ma.group(0);
-								String id = ma.group(2);
-								links.append(mm).append("="+id+";");
-								ma.appendReplacement(sb, "javascript:parent.gotonode($2)");
-								changed++;
-							}
-							if (changed > 0) {
-								ma.appendTail(sb);
-								String repl = sb.toString();
-								FileUtils.save(file, repl, enc);
-								log.audit("file "+file.getAbsolutePath()+" :: "+changed+" links changed :"+links);
-							}
-						}
-					}
-				};
-				
-				FileUtils.visitRecursively(cFolder, fv);
-			}
-			
-			uhd.setBooleanDataValue(TASK_REPLACE_OLDINTERNALLINKS, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-	
-	public String getVersion() {
-		return VERSION;
-	}
-	
-	/**
-	 * 
-	 * @see org.olat.upgrade.OLATUpgrade#getAlterDbStatements()
-	 */
-	public String getAlterDbStatements() {
-		return null; //till 6.1 was manual upgrade
-	}
-
-}
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_5_0_0.java b/src/main/java/org/olat/upgrade/OLATUpgrade_5_0_0.java
deleted file mode 100644
index c8b5f511fec79f29bcef1150c73ee42a97c51e70..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_5_0_0.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-
-package org.olat.upgrade;
-
-import java.io.File;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.olat.core.commons.modules.bc.FolderConfig;
-import org.olat.core.id.Roles;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.StartupException;
-import org.olat.core.logging.Tracing;
-import org.olat.core.util.FileUtils;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-
-/**
- * Description:<br>
- * Upgrades for OLAT 5.0
- * <P>
- * Initial Date: Aug 8, 2006 <br>
- * 
- * @author guido
- */
-public class OLATUpgrade_5_0_0 extends OLATUpgrade {
-	OLog log = Tracing.createLoggerFor(this.getClass());
-	private static final String VERSION = "OLAT_5.0.0";
-	private static final String TASK_DELETE_UNREFERENCED_REPOENTRIERS = "Delete all repository entries that do not have a reference in the database";
-	private static final String TASK_CLEAN_UP_IM_AND_GUI_PREFERENCES_PROPERTIES_DONE = "IM and GUI preferences properties deleted";
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#getVersion()
-	 */
-	public String getVersion() {
-		return VERSION;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPreSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPreSystemInitUpgrade(UpgradeManager upgradeManager) {
-		return false;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPostSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPostSystemInitUpgrade(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (uhd == null) {
-			// has never been called, initialize
-			uhd = new UpgradeHistoryData();
-		} else {
-			if (uhd.isInstallationComplete()) return false;
-		}
-		cleanRepositoryAndDeleteUnreferencedEntries(upgradeManager, uhd);
-		cleanupIMAndGUIPreferencesProperties(upgradeManager, uhd);
-		uhd.setInstallationComplete(true);
-		upgradeManager.setUpgradesHistory(uhd, VERSION);
-
-		return true;
-	}
-
-	private void cleanRepositoryAndDeleteUnreferencedEntries(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		/**
-		 * Due to a bug which was introduced in olat 4.1 there are possile zombie
-		 * repository folders left on the disk. This can happen if someone tried to
-		 * create a repo entry out of an existing file like a SCORM zip or an IMS
-		 * content package and the file was not accepted due to errors in its
-		 * structure.
-		 */
-
-		if (!uhd.getBooleanDataValue(TASK_DELETE_UNREFERENCED_REPOENTRIERS)) {
-			// begin clean up
-
-			String bcrootPath = FolderConfig.getCanonicalRoot();
-			File bcRootDir = new File(bcrootPath);
-			File repository = new File(bcRootDir, "repository");
-			if (repository.exists()) {
-				String[] repositoryFoldersAndFilesOnDisk = repository.list();
-				List repositoryFoldersOnDisk = new ArrayList(repositoryFoldersAndFilesOnDisk.length);
-				//filder for directories only as there are images as well in the repo folder
-				for (int i = 0; i < repositoryFoldersAndFilesOnDisk.length; i++) {
-					String repoId = repositoryFoldersAndFilesOnDisk[i];
-					if(new File(repository, repoId).isDirectory()){
-						repositoryFoldersOnDisk.add(repositoryFoldersAndFilesOnDisk[i]);
-					}
-				}
-	
-				// get all repository entries
-				Roles roles = new Roles(true, true, true, true, false, true, false);
-				//fxdiff VCRP-1,2: access control of resources
-				List inDatabase = RepositoryManager.getInstance().genericANDQueryWithRolesRestriction(null, null, null, null, null, roles, null);
-	
-				Set inDatabaseIDs = new HashSet(inDatabase.size());
-				for (Iterator iter = inDatabase.iterator(); iter.hasNext();) {
-					RepositoryEntry element = (RepositoryEntry) iter.next();
-					inDatabaseIDs.add(element.getOlatResource().getResourceableId());
-				}
-				
-				// deleting all that are in repositoryFoldersOnDisk and not in the
-				// inDatabaseIds
-				for (Iterator iter = repositoryFoldersOnDisk.iterator(); iter.hasNext();) {
-					String rescourcableId = (String) iter.next();
-					try {
-						if (!inDatabaseIDs.contains(Long.valueOf(rescourcableId))) {
-							FileUtils.deleteDirsAndFiles(new File(repository, rescourcableId), true, true);
-							log.audit("Deleting unreferenced folder in repository with id:" + rescourcableId);
-						}
-					} catch (NumberFormatException e) {
-						log.audit("Could not delete unreferenced folder in repository with id:" + rescourcableId);
-					}
-				}
-			
-			} //end file exists
-			
-			// clean up finished
-			uhd.setBooleanDataValue(TASK_DELETE_UNREFERENCED_REPOENTRIERS, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-
-	}
-	
-	
-	private void cleanupIMAndGUIPreferencesProperties(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		// Due to the package refactoring (separation of classes within framework and olat) the user settings for Instant Messaging and GUI preferences have to be deleted
-		// <org.olat.util.prefs.ImPreferences> --> <org.olat.instantMessaging.ImPreferences>
-		// <org.olat.util.prefs.GuiPreferences> --> <org.olat.preferences.DbPrefs>
-		
-		if (!uhd.getBooleanDataValue(TASK_CLEAN_UP_IM_AND_GUI_PREFERENCES_PROPERTIES_DONE)) {
-			String query = "delete from o_property where name ='guipreferences' or name = 'impreferences';";
-			executePlainSQLDBStatement(query, upgradeManager.getDataSource());
-			uhd.setBooleanDataValue(TASK_CLEAN_UP_IM_AND_GUI_PREFERENCES_PROPERTIES_DONE, true);
-
-			log.audit("+-------------------------------------------+");
-			log.audit("+... Deleting all IM and GUI preferences ...+");
-			log.audit("+-------------------------------------------+");
-			
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-	
-	/**
-	 * 
-	 * @see org.olat.upgrade.OLATUpgrade#getAlterDbStatements()
-	 */
-	public String getAlterDbStatements() {
-		return null; //till 6.1 was manual upgrade
-	}
-
-}
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_5_1_0.java b/src/main/java/org/olat/upgrade/OLATUpgrade_5_1_0.java
deleted file mode 100644
index 1cef25c2206647f837cda030960d01b596e85992..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_5_1_0.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-
-package org.olat.upgrade;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Map;
-
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.StartupException;
-import org.olat.core.logging.Tracing;
-
-/**
- * Description:<br>
- * Upgrades for OLAT 5.1.0
- * <P>
- * Initial Date: March 1, 2007 <br>
- * 
- * @author Alexander Schneider
- */
-public class OLATUpgrade_5_1_0 extends OLATUpgrade {
-	OLog log = Tracing.createLoggerFor(this.getClass());
-	private static final String VERSION = "OLAT_5.1.0";
-	private static final String TASK_CLEAN_UP_OF_PUB_AND_SUB_OF_RETURNBOXES_DONE = "Publishers and subscribers of returnboxes deleted";
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#getVersion()
-	 */
-	public String getVersion() {
-		return VERSION;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPreSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPreSystemInitUpgrade(UpgradeManager upgradeManager) {
-		return false;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPostSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPostSystemInitUpgrade(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (uhd == null) {
-			// has never been called, initialize
-			uhd = new UpgradeHistoryData();
-		} else {
-			if (uhd.isInstallationComplete()) return false;
-		}
-		cleanupPublishersAndSubscribersOfReturnBoxes(upgradeManager, uhd);
-		uhd.setInstallationComplete(true);
-		upgradeManager.setUpgradesHistory(uhd, VERSION);
-
-		return true;
-	}
-	/**
-	 * Deletes all publishers and subscribers of the publishertype "ReturnBoxController". The asynchronous notification of users when 
-   * something changes in their returnboxes is removed, since it is already done synchronously 
-	 */
-	private void cleanupPublishersAndSubscribersOfReturnBoxes(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		
-		if (!uhd.getBooleanDataValue(TASK_CLEAN_UP_OF_PUB_AND_SUB_OF_RETURNBOXES_DONE)) {
-			String query_sub = "delete from o_noti_sub where fk_publisher in (select publisher_id from  o_noti_pub where publishertype='ReturnboxController');";
-			String query_pub = "delete from  o_noti_pub where publishertype='ReturnboxController';";
-			
-			Connection con = null;
-			Statement deleteStmt = null;
-			boolean cleaned = false;
-			
-			log.audit("+--------------------------------------------------------------+");
-			log.audit("+... Deleting all publishers and subscribers of returnboxes ...+");
-			log.audit("+--------------------------------------------------------------+");
-			
-			try {
-				con = upgradeManager.getDataSource().getConnection();
-				deleteStmt = con.createStatement();
-				deleteStmt.addBatch(query_sub);
-				deleteStmt.addBatch(query_pub);
-				deleteStmt.executeBatch();
-			}	catch (SQLException e) {
-				log.warn("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
-				log.warn("%%%          Please upgrade your database!          %%%");
-				log.warn("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
-				log.warn("Could not execute system upgrade! Your database does not support the following syntax: 'WHERE experession IN (subquery)'."
-											+ "First query: "+ query_sub +" Second query: "+ query_pub,
-												e);
-			} finally {
-				try {
-					deleteStmt.close();
-				} catch (SQLException e2){
-					log.warn("Could not close sql delete statement of system upgrade 5.1.0", e2);
-					throw new StartupException("Could not close sql delete statement of system upgrade 5.1.0", e2);
-				} finally {
-					try {
-						con.close();
-					} catch (SQLException e3){
-						log.warn("Could not close db connection.", e3);
-						throw new StartupException("Could not close db connection.", e3);
-					}
-				}
-			}
-			cleaned = true;
-			uhd.setBooleanDataValue(TASK_CLEAN_UP_OF_PUB_AND_SUB_OF_RETURNBOXES_DONE, cleaned);
-			
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-	
-	/**
-	 * 
-	 * @see org.olat.upgrade.OLATUpgrade#getAlterDbStatements()
-	 */
-	public String getAlterDbStatements() {
-		return null; //till 6.1 was manual upgrade
-	}
-
-}
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_5_1_1.java b/src/main/java/org/olat/upgrade/OLATUpgrade_5_1_1.java
deleted file mode 100644
index 5769f43c6c8638cfc4424ef99f285b42d2a5911e..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_5_1_1.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-
-package org.olat.upgrade;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Map;
-
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.StartupException;
-import org.olat.core.logging.Tracing;
-
-/**
- * Description:<br>
- * Upgrades for OLAT 5.1.1
- * <P>
- * Initial Date: March 12, 2007 <br>
- * 
- * @author Alexander Schneider
- */
-public class OLATUpgrade_5_1_1 extends OLATUpgrade {
-	OLog log = Tracing.createLoggerFor(this.getClass());
-	private static final String VERSION = "OLAT_5.1.1";
-	private static final String TASK_CLEAN_UP_OF_V2GUIPREFERENCES_DONE = "v2guipreferences deleted";
-	private static final String TASK_UPDATE_LANGUAGE_ACCORDING_ISO936_DONE = "languages according iso 936 updated";
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#getVersion()
-	 */
-	public String getVersion() {
-		return VERSION;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPreSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPreSystemInitUpgrade(UpgradeManager upgradeManager) {
-		return false;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPostSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPostSystemInitUpgrade(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (uhd == null) {
-			// has never been called, initialize
-			uhd = new UpgradeHistoryData();
-		} else {
-			if (uhd.isInstallationComplete()) return false;
-		}
-		
-		logDetailsOfUsersAffectedByV2guipreferencesDeletion(upgradeManager);
-		cleanupV2guiPreferences(upgradeManager, uhd);
-		
-		logDetailsOfUsersAffectedByLanguageUpdate(upgradeManager);
-		updateLanguagesAccordingISO639(upgradeManager, uhd);
-		
-		uhd.setInstallationComplete(true);
-		upgradeManager.setUpgradesHistory(uhd, VERSION);
-
-		return true;
-	}
-	/**
-	 * Deletes all v2guipreference with textvalues containing '.*<int>2[0-9]</int>.*', since the feature
-	 * multiselect reduced the number of table columns
-	 */
-	private void cleanupV2guiPreferences(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		
-		if (!uhd.getBooleanDataValue(TASK_CLEAN_UP_OF_V2GUIPREFERENCES_DONE)) {
-			String query = "delete from o_property where name = 'v2guipreferences' and textvalue like '%<int>2_</int>%'";
-			executePlainSQLDBStatement(query, upgradeManager.getDataSource());
-			uhd.setBooleanDataValue(TASK_CLEAN_UP_OF_V2GUIPREFERENCES_DONE, true);
-
-			log.audit("+---------------------------------------------------------------------------------------+");
-			log.audit("+... Deleted all v2guipreferences with textvalues containing '.*<int>2[0-9]</int>.*' ...+");
-			log.audit("+................... (details of affected users are listed above)  .....................+");
-			log.audit("+---------------------------------------------------------------------------------------+");
-			
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-	
-	private void logDetailsOfUsersAffectedByV2guipreferencesDeletion(UpgradeManager upgradeManager){
-		
-		String checkVersionQuery = "select count(*) from o_userproperty";
-		
-		try{
-			Connection con = upgradeManager.getDataSource().getConnection();
-			Statement selectStmt = con.createStatement();
-			selectStmt.executeQuery(checkVersionQuery);
-		 return;
-		} catch (SQLException e){
-			log.warn("Version before 5.1.1 detected! Continue running upgrade for 5.1.1 ...", e);
-		}
-		
-		String query = "select u.firstname, u.lastname, u.email from o_property as p, o_bs_identity as i, o_user as u " + 
-									 "where p.name = 'v2guipreferences' " +
-									 "and p.textvalue like '%<int>2_</int>%' " +
-									 "and p.identity = i.id " +
-									 "and i.fk_user_id = u.user_id;";
-		try {
-			Connection con = upgradeManager.getDataSource().getConnection();
-			Statement selectStmt = con.createStatement();
-			ResultSet res = selectStmt.executeQuery(query);
-
-			while (res.next()){
-				log.audit(res.getString(1)+", "+res.getString(2)+", "+res.getString(3)+" ");
-			}
-			
-		} catch (SQLException e) {
-			log.warn("Could not execute system upgrade sql query. Query:"+ query, e);
-			throw new StartupException("Could not execute system upgrade sql query. Query:"+ query, e);
-		}
-	}
-	
-	/**
-	 * updates all languages codes which are saved in the o_user table according the iso 936
-	 *
-	 */
-	private void updateLanguagesAccordingISO639(UpgradeManager upgradeManager, UpgradeHistoryData uhd){
-		if (!uhd.getBooleanDataValue(TASK_UPDATE_LANGUAGE_ACCORDING_ISO936_DONE)) {
-			String query_cn_zh = "update o_user set language='zh' where language='cn';";
-			String query_cz_cs = "update o_user set language='cs' where language='cz';";
-			String query_dk_da = "update o_user set language='da' where language='dk';";
-			String query_gr_el = "update o_user set language='el' where language='gr';";
-			String query_pe_fa = "update o_user set language='fa' where language='pe';";
-			String query_tc_tr = "update o_user set language='tc' where language='tr';";
-			
-			Connection con = null;
-			Statement updateStmt = null;
-			
-			try {
-				con = upgradeManager.getDataSource().getConnection();
-				updateStmt = con.createStatement();
-				updateStmt.addBatch(query_cn_zh);
-				updateStmt.addBatch(query_cz_cs);
-				updateStmt.addBatch(query_dk_da);
-				updateStmt.addBatch(query_gr_el);
-				updateStmt.addBatch(query_pe_fa);
-				updateStmt.addBatch(query_tc_tr);
-
-				updateStmt.executeBatch();
-			}	catch (SQLException e) {
-				log.warn("Could not execute system upgrade sql query composed of : "
-						+ query_cn_zh +" and "
-						+ query_cz_cs +" and "
-						+ query_dk_da +" and "
-						+ query_gr_el +" and "
-						+ query_pe_fa +" and "
-						+ query_tc_tr, e);
-				throw new StartupException("Could not execute system upgrade sql query composed of : "
-						+ query_cn_zh +" and "
-						+ query_cz_cs +" and "
-						+ query_dk_da +" and "
-						+ query_gr_el +" and "
-						+ query_pe_fa +" and "
-						+ query_tc_tr, e);
-			} finally {
-				try {
-					updateStmt.close();
-				} catch (SQLException e2){
-					log.warn("Could not close sql update statement of system upgrade 5.1.1", e2);
-					throw new StartupException("Could not close sql update statement of system upgrade 5.1.1", e2);
-				} finally {
-					try {
-						con.close();
-					} catch (SQLException e3){
-						log.warn("Could not close db connection.", e3);
-						throw new StartupException("Could not close db connection.", e3);
-					}
-				}
-			}
-
-			uhd.setBooleanDataValue(TASK_UPDATE_LANGUAGE_ACCORDING_ISO936_DONE, true);
-
-			log.audit("+---------------------------------------------------+");
-			log.audit("+....... updated languages according iso 936 .......+");
-			log.audit("+...(details of affected users are listed above) ...+");
-			log.audit("+---------------------------------------------------+");
-			
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-	
-	private void logDetailsOfUsersAffectedByLanguageUpdate(UpgradeManager upgradeManager){
-		
-		String checkVersionQuery = "select count(*) from o_userproperty";
-		
-		try{
-			Connection con = upgradeManager.getDataSource().getConnection();
-			Statement selectStmt = con.createStatement();
-			selectStmt.executeQuery(checkVersionQuery);
-		 return;
-		} catch (SQLException e){
-			log.warn("Version before 5.1.1 detected! Continue running upgrade for 5.1.1 ...", e);
-		}
-		
-		String query = "select u.language, u.firstname, u.lastname, i.name " +
-									 "from o_user as u, o_bs_identity as i " +
-									 "where i.fk_user_id = u.user_id " +
-									 "and (language='cn' or language='cz' or language='dk' or language='gr' or language='pe' or language='tc') order by language;";
-		
-		try {
-			Connection con = upgradeManager.getDataSource().getConnection();
-			Statement selectStmt = con.createStatement();
-			ResultSet res = selectStmt.executeQuery(query);
-
-			while (res.next()){
-				log.audit(res.getString(1)+", "+res.getString(2)+", "+res.getString(3)+", "+res.getString(4)+" ");
-			}
-			
-		} catch (SQLException e) {
-			log.warn("Could not execute system upgrade sql query. Query:"+ query, e);
-			throw new StartupException("Could not execute system upgrade sql query. Query:"+ query, e);
-		}
-	}
-	
-	/**
-	 * 
-	 * @see org.olat.upgrade.OLATUpgrade#getAlterDbStatements()
-	 */
-	public String getAlterDbStatements() {
-		return null; //till 6.1 was manual upgrade
-	}
-	
-
-}
\ No newline at end of file
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_5_2_0.java b/src/main/java/org/olat/upgrade/OLATUpgrade_5_2_0.java
deleted file mode 100644
index 0fe80383cce97fd8753c7f1462471fb2a7e6cc6a..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_5_2_0.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-
-package org.olat.upgrade;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-
-import org.hibernate.Hibernate;
-import org.hibernate.type.Type;
-import org.olat.basesecurity.BaseSecurity;
-import org.olat.basesecurity.BaseSecurityManager;
-import org.olat.basesecurity.SecurityGroup;
-import org.olat.core.commons.persistence.DB;
-import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.id.Identity;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.StartupException;
-import org.olat.core.logging.Tracing;
-import org.olat.core.util.Formatter;
-
-/**
- * Upgrades for OLAT 5.2.0
- * 
- * @author Christian Guretzki
- */
-public class OLATUpgrade_5_2_0 extends OLATUpgrade {
-	OLog log = Tracing.createLoggerFor(this.getClass());
-	private static final String VERSION = "OLAT_5.2.0";
-	private static final String TASK_MIGRATE_LOGIN_DENIED_SECURITY_GROUP_DONE = "Migrate login-denied security-group DONE";
-	private static final String TASK_INITIALIZE_LAST_LOGIN_DONE = "Initialize identity.lastlogin, group.lastusage DONE";
-	private static final String TASK_CLEAN_UP_OF_V2GUIPREFERENCES_DONE = "v2guipreferences where ajax-beta-on = false deleted";
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#getVersion()
-	 */
-	public String getVersion() {
-		return VERSION;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPreSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPreSystemInitUpgrade(UpgradeManager upgradeManager) {
-		return false;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPostSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPostSystemInitUpgrade(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (uhd == null) {
-			// has never been called, initialize
-			uhd = new UpgradeHistoryData();
-		} else {
-			if (uhd.isInstallationComplete()) return false;
-		}
-		migrateLoginDeniedSecurityGroup(uhd);
-		initializeLastLogin(uhd, upgradeManager);
-		
-		logDetailsOfUsersAffectedByV2guipreferencesDeletion(upgradeManager);
-		cleanupV2guiPreferences(upgradeManager, uhd);
-	
-		uhd.setInstallationComplete(true);
-		upgradeManager.setUpgradesHistory(uhd, VERSION);
-
-		return true;
-	}
-
-	/**
-	 * Migrate all user in logon-denied security-group to users with status=login_denied.
-	 */
-	private void migrateLoginDeniedSecurityGroup(UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_MIGRATE_LOGIN_DENIED_SECURITY_GROUP_DONE)) {
-			BaseSecurity secManager = BaseSecurityManager.getInstance();
-			SecurityGroup loginDeniedGroup = BaseSecurityManager.getInstance().findSecurityGroupByName("logondenied");// so far: Constants.GROUP_LOGON_DENIED
-			if (loginDeniedGroup != null) {
-				// 1. Migrate users from logon-denied security-group to users with status=login_denied
-				List identitiesList = secManager.getIdentitiesByPowerSearch(null, null, true,
-						new SecurityGroup[] {loginDeniedGroup}, null, null, null, null,null, null, null);
-				for (Iterator iter = identitiesList.iterator(); iter.hasNext();) {
-					Identity identity = (Identity) iter.next();
-					secManager.saveIdentityStatus(identity,Identity.STATUS_LOGIN_DENIED);
-					secManager.removeIdentityFromSecurityGroup(identity, loginDeniedGroup);
-					log.audit("Identity was in security-group 'Logon_denied' => set status of identity to 'logon_denied'; identity=" + identity);
-				}
-	
-				// 2. Delete named group logon_denied
-				DB db = DBFactory.getInstance();
-				db.delete("from org.olat.basesecurity.NamedGroupImpl as ngroup where ngroup.groupName = ?", new Object[] { "logondenied" },// so far: Constants.GROUP_LOGON_DENIED
-						new Type[] { Hibernate.STRING });
-	      // 3. Delete security-group 'Logon_denied'
-				secManager.deleteSecurityGroup(loginDeniedGroup);
-				log.audit("Delete security-group 'Logon_denied'");
-			}
-			uhd.setBooleanDataValue(TASK_MIGRATE_LOGIN_DENIED_SECURITY_GROUP_DONE, true);
-
-			log.audit("+---------------------------------------------------------------------------------+");
-			log.audit("+... Migrate all logon-denied users from security-group to status=login_denied ...+");
-			log.audit("+................... (details of affected users are listed above)  ...............+");
-			log.audit("+---------------------------------------------------------------------------------+");
-		}
-	}
-
-	private void initializeLastLogin(UpgradeHistoryData uhd, UpgradeManager upgradeManager) {
-		
-		// Set last-login for all idenitity with last-login == null
-		String initDateLastLogin = Formatter.formatDatetime(new Date()); 
-		String lastLoginCountQuery = "select count(*) from o_bs_identity where lastlogin IS NULL;";
-		String lastLoginQuery = "update o_bs_identity set lastlogin = '" + initDateLastLogin + "' where lastlogin IS NULL;";
-		// Set last-usage for all business-group with last-usage == null
-		String initDateLastUsage = Formatter.formatDatetime(new Date());
-		String lastUsageCountQuery = "select count(*) from o_gp_business where lastusage IS NULL;";
-		String lastUsageQuery = "update o_gp_business set lastusage = '" + initDateLastUsage + "' where lastusage IS NULL;";
-		// Set last-usage for all repository-entries with last-usage == null
-		String repositoryLastUsageCountQuery = "select count(*) from o_repositoryentry where lastusage IS NULL;";
-		String repositoryLastUsageQuery = "update o_repositoryentry set lastusage = '" + initDateLastUsage + "' where lastusage IS NULL;";
-		
-		int countIdentityLastLoginUpdates;
-		int countGroupLastUsageUpdates;
-		int countRepositoryLastUsageUpdates;
-		try {
-			Connection con = upgradeManager.getDataSource().getConnection();
-			Statement countStmt = con.createStatement();
-			ResultSet resultSet = countStmt.executeQuery(lastLoginCountQuery);
-			resultSet.next();
-			countIdentityLastLoginUpdates = resultSet.getInt(1);
-			resultSet = countStmt.executeQuery(lastUsageCountQuery);
-			resultSet.next();
-			countGroupLastUsageUpdates = resultSet.getInt(1);
-			resultSet = countStmt.executeQuery(repositoryLastUsageCountQuery);
-			resultSet.next();
-			countRepositoryLastUsageUpdates = resultSet.getInt(1);
-
-			Statement updateStmt = con.createStatement();
-			updateStmt.addBatch(lastLoginQuery);
-			updateStmt.addBatch(lastUsageQuery);
-			updateStmt.addBatch(repositoryLastUsageQuery);
-			updateStmt.executeBatch();
-		} catch (SQLException e) {
-			log.warn("Could not execute system upgrade sql query. ", e);
-			throw new StartupException("Could not execute system upgrade sql query. ", e);
-		}
-
-		uhd.setBooleanDataValue(TASK_INITIALIZE_LAST_LOGIN_DONE, true);
-
-		log.audit("+------------------------------------------------------------------------------------+");
-		log.audit("+... Initialize all idenitity with last-login == null to start-last-login date    ...+");
-		log.audit("+... Update " + countIdentityLastLoginUpdates + " identities with lastlogin-date = '" + initDateLastLogin + "'  ...+");
-		log.audit("+... Initialize all business-groups with last-usage == null to date of upgrade    ...+");
-		log.audit("+... Update " + countGroupLastUsageUpdates + " groups with lastusage-date = '" + initDateLastUsage + "'  ...+");		
-		log.audit("+... Initialize all repository-entries with last-usage == null to date of upgrade ...+");
-		log.audit("+... Update " + countRepositoryLastUsageUpdates + " repository-entries with lastusage-date = '" + initDateLastUsage + "'  ...+");		
-		log.audit("+------------------------------------------------------------------------------------+");
-	}
-	
-	
-	/**
-	 * Deletes all v2guipreference with textvalues containing '.*ajax-beta-on</string><boolean>false</boolean>'
-	 */
-	private void cleanupV2guiPreferences(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-
-		if (!uhd.getBooleanDataValue(TASK_CLEAN_UP_OF_V2GUIPREFERENCES_DONE)) {
-			String query = "delete from o_property where name = 'v2guipreferences' and textvalue like '%ajax-beta-on</string>%<boolean>false%'";
-			
-			try {
-				Connection con = upgradeManager.getDataSource().getConnection();
-				Statement deleteStmt = con.createStatement();
-				deleteStmt.execute(query);
-				
-				con.close();
-				con = null;
-
-			} catch (SQLException e) {
-				log.warn("Could not execute system upgrade sql query. Query:"+ query, e);
-				throw new StartupException("Could not execute system upgrade sql query. Query:"+ query, e);
-			}
-
-			uhd.setBooleanDataValue(TASK_CLEAN_UP_OF_V2GUIPREFERENCES_DONE, true);
-
-			log.audit("+---------------------------------------------------------------------------------------+");
-			log.audit("+... Deleted all v2guipreferences with textvalues containing 'ajax-beta-on' -> false ...+");
-			log.audit("+................... (details of affected users are listed above)  .....................+");
-			log.audit("+---------------------------------------------------------------------------------------+");
-			
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-
-	private void logDetailsOfUsersAffectedByV2guipreferencesDeletion(UpgradeManager upgradeManager){
-		
-		String checkVersionQuery = "select count(*) from o_userproperty";
-		
-		try{
-			Connection con = upgradeManager.getDataSource().getConnection();
-			Statement selectStmt = con.createStatement();
-			selectStmt.executeQuery(checkVersionQuery);
-		 return;
-		} catch (SQLException e){
-			log.warn("Version before 5.2.0 detected! Continue running upgrade for 5.2.0 ...", e);
-		}
-		
-		String query = "select u.firstname, u.lastname, u.email from o_property as p, o_bs_identity as i, o_user as u " + 
-									 "where p.name = 'v2guipreferences' " +
-									 "and p.textvalue like '%ajax-beta-on</string>%<boolean>false%' " +
-									 "and p.identity = i.id " +
-									 "and i.fk_user_id = u.user_id;";
-		
-		try {
-			Connection con = upgradeManager.getDataSource().getConnection();
-			Statement selectStmt = con.createStatement();
-			ResultSet res = selectStmt.executeQuery(query);
-
-			while (res.next()){
-				log.audit(res.getString(1)+", "+res.getString(2)+", "+res.getString(3)+" ");
-			}
-			
-		} catch (SQLException e) {
-			log.warn("Could not execute system upgrade sql query. Query:"+ query, e);
-			throw new StartupException("Could not execute system upgrade sql query. Query:"+ query, e);
-		}
-	}
-	
-	/**
-	 * 
-	 * @see org.olat.upgrade.OLATUpgrade#getAlterDbStatements()
-	 */
-	public String getAlterDbStatements() {
-		return null; //till 6.1 was manual upgrade
-	}
-
-}
\ No newline at end of file
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_6_0_0.java b/src/main/java/org/olat/upgrade/OLATUpgrade_6_0_0.java
deleted file mode 100644
index 302224dee99f3042ce1355e2c4a1cb8256727b81..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_6_0_0.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-
-package org.olat.upgrade;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Map;
-
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.StartupException;
-import org.olat.core.logging.Tracing;
-
-/**
- * Description:<br>
- * Upgrades for OLAT 6.0.0
- * <P>
- * Initial Date: March 12, 2007 <br>
- * 
- * @author Alexander Schneider
- */
-public class OLATUpgrade_6_0_0 extends OLATUpgrade {
-	OLog log = Tracing.createLoggerFor(this.getClass());
-
-	private static final String VERSION = "OLAT_6.0.0";
-	private static final String TASK_CLEAN_UP_DROPBOX_SUBSCRIPTION_DONE = "dropboxsubscription migrated";
-	private static final String TASK_CLEAN_UP_GUI_PREFERENCES_PROPERTIES_DONE = "V2GUI preferences properties deleted";
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#getVersion()
-	 */
-	public String getVersion() {
-		return VERSION;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPreSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPreSystemInitUpgrade(UpgradeManager upgradeManager) {
-		return false;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPostSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPostSystemInitUpgrade(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (uhd == null) {
-			// has never been called, initialize
-			uhd = new UpgradeHistoryData();
-		} else {
-			if (uhd.isInstallationComplete()) return false;
-		}
-		
-		migrateDropboxSubscription(upgradeManager, uhd);
-		cleanupV2GUIPreferencesProperties(upgradeManager, uhd);
-		
-		uhd.setInstallationComplete(true);
-		upgradeManager.setUpgradesHistory(uhd, VERSION);
-		
-		return true;
-	}
-	/**
-	 * Rename all Dropbox Subscription with resname='DropboxController' to 'CourseModule' 
-	 * because they could not be started from portal.
-	 */
-	private void migrateDropboxSubscription(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		
-		if (!uhd.getBooleanDataValue(TASK_CLEAN_UP_DROPBOX_SUBSCRIPTION_DONE)) {
-			String query = "update o_noti_pub set resname='CourseModule' where resname='DropboxController';";
-			executePlainSQLDBStatement(query, upgradeManager.getDataSource());
-			uhd.setBooleanDataValue(TASK_CLEAN_UP_DROPBOX_SUBSCRIPTION_DONE, true);
-
-			log.audit("+---------------------------------------------------------------------------------------+");
-			log.audit("+... Migrated all dropbox subscriptions, rename 'DropboxController' to 'CourseModule'...+");
-			log.audit("+---------------------------------------------------------------------------------------+");
-			
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-	
-	private void cleanupV2GUIPreferencesProperties(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		// Due to the YAMLizing of OLAT the GUI preferences have to be deleted
-
-		
-		if (!uhd.getBooleanDataValue(TASK_CLEAN_UP_GUI_PREFERENCES_PROPERTIES_DONE)) {
-			String query = "delete from o_property where name ='v2guipreferences';";
-			executePlainSQLDBStatement(query, upgradeManager.getDataSource());
-			uhd.setBooleanDataValue(TASK_CLEAN_UP_GUI_PREFERENCES_PROPERTIES_DONE, true);
-
-			log.audit("+--------------------------------------+");
-			log.audit("+... Deleting all V2GUI preferences ...+");
-			log.audit("+--------------------------------------+");
-			
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-	
-	/**
-	 * 
-	 * @see org.olat.upgrade.OLATUpgrade#getAlterDbStatements()
-	 */
-	public String getAlterDbStatements() {
-		return null; //till 6.1 was manual upgrade
-	}
-
-}
\ No newline at end of file
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_6_1_0.java b/src/main/java/org/olat/upgrade/OLATUpgrade_6_1_0.java
deleted file mode 100644
index 96629b91d924f6fd785c8ddd3b47e3175a1cfea4..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_6_1_0.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-package org.olat.upgrade;
-
-import java.util.List;
-
-import org.olat.admin.user.delete.service.UserDeletionManager;
-import org.olat.basesecurity.BaseSecurity;
-import org.olat.basesecurity.BaseSecurityManager;
-import org.olat.core.commons.persistence.DB;
-import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.commons.persistence.PersistenceHelper;
-import org.olat.core.id.Identity;
-import org.olat.registration.RegistrationManager;
-
-/**
- * Description:<br>
- * Automatic upgrade code for the OLAT 6.1.0 release
- * 
- * <P>
- * Initial Date:  01.09.2008 <br>
- * @author gnaegi
- */
-public class OLATUpgrade_6_1_0 extends OLATUpgrade {
-	private static final String VERSION = "OLAT_6.1.0";
-	private static final String TASK_DELETE_OLD_GUEST_USERS = "Old guest users deleted";
-	private static final String TASK_CLEANUP_NOTIFICATIONS = "Old notifications cleaned up";
-	private static final String TASK_CREATE_DISCLAIMER_CONFIRMATION = "Disclaimer confirmation for existing users created";
-	
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#getVersion()
-	 */
-	public String getVersion() {
-		return VERSION;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPreSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPreSystemInitUpgrade(UpgradeManager upgradeManager) {
-		return false;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPostSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPostSystemInitUpgrade(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (uhd == null) {
-			// has never been called, initialize
-			uhd = new UpgradeHistoryData();
-		} else {
-			if (uhd.isInstallationComplete()) return false;
-		}
-
-		//cleanup old guest user accounts - not needed anymore with new i18n system
-		deleteOldGuestUsers(upgradeManager, uhd);
-		
-		//clean up notification tables
-		cleanUpNotifications(upgradeManager);
-
-		//create disclaimer confirmation for the already existing users, this might take a while!
-		createDisclaimerConfirmationForExistingUsers(upgradeManager);
-		
-		// mark upgrade as finished, never run it again
-		uhd.setInstallationComplete(true);
-		upgradeManager.setUpgradesHistory(uhd, VERSION);
-		return true;
-	}
-
-	/**
-	 * Deletes the guest users from 6.0 release, the guest users are now created
-	 * using other user names using an automated naming schema
-	 * 
-	 * @param upgradeManager
-	 * @param uhd
-	 */
-	private void deleteOldGuestUsers(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_DELETE_OLD_GUEST_USERS)) {
-			log.audit("+---------------------------------------------------------------+");
-			log.audit("+... Deleting old guest users - OLAT 6.1 uses new gues users ...+");
-			log.audit("+---------------------------------------------------------------+");
-
-			String[] oldGuestUserNames = new String[] { "gast", "guest", "ospite", "invité", "invitado", "episkeptis", "gost", "gosc", "kerencn",
-					"kerentw", "gaest", "host", "svecas", "mehman", "convidadopt", "convidadobr", "misafir", "vend&#233;g", "mysafir", "tamu",
-					"dhaif", "giast", "gas", "oreah", "khachmoi", "zochin" };
-			BaseSecurity secMgr = BaseSecurityManager.getInstance();
-			for (String guestUserName : oldGuestUserNames) {
-				Identity oldGuest = secMgr.findIdentityByName(guestUserName);
-				if (oldGuest == null) {
-					// skip this one, seems already to be deleted
-					continue;
-				}
-				UserDeletionManager.getInstance().deleteIdentity(oldGuest);
-			}
-			DBFactory.getInstance().intermediateCommit();
-			uhd.setBooleanDataValue(TASK_DELETE_OLD_GUEST_USERS, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-
-		}
-		
-	}
-	
-	
-	private void cleanUpNotifications(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (!uhd.getBooleanDataValue(TASK_CLEANUP_NOTIFICATIONS)) {
-			
-			//delete all subscribers where the state is 1
-			String query1 = "delete from o_noti_sub where fk_publisher in (select publisher_id from o_noti_pub where state=1);";
-			executePlainSQLDBStatement(query1, upgradeManager.getDataSource());
-			
-			//delete subscribers from the deleted wiki entries
-			String query2 = "delete from o_noti_sub where fk_publisher in (select publisher_id from o_noti_pub, o_olatresource where (o_noti_pub.resid=o_olatresource.resid) AND (o_noti_pub.resname='FileResource.WIKI') AND (o_olatresource.resid IS null));";
-			executePlainSQLDBStatement(query2, upgradeManager.getDataSource());
-			
-			//delete all publishers where the wiki resource is deleted
-			String query3 = "delete from o_noti_pub where resid in (select resid from o_olatresource where (o_olatresource.resid IS null)) AND (o_noti_pub.resname='FileResource.WIKI');";
-			executePlainSQLDBStatement(query3, upgradeManager.getDataSource());
-			
-			//delete all publishers where the state is 1
-			String query4 = "delete from o_noti_pub where state=1;";
-			executePlainSQLDBStatement(query4, upgradeManager.getDataSource());
-			
-			
-			uhd.setBooleanDataValue(TASK_CLEANUP_NOTIFICATIONS, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-
-		}
-	}
-
-	private void createDisclaimerConfirmationForExistingUsers(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (!uhd.getBooleanDataValue(TASK_CREATE_DISCLAIMER_CONFIRMATION)) {
-			// Get all system users
-			BaseSecurity secMgr = BaseSecurityManager.getInstance();
-			RegistrationManager regMgr = RegistrationManager.getInstance();
-			DB db = DBFactory.getInstance();
-			// Get all users
-			List<Identity> identities = secMgr.getVisibleIdentitiesByPowerSearch(null, null, false, null, null, null, null, null);
-			// Remove the users that did already confirm the disclaimer
-			List<Identity> confirmedIdentities = regMgr.getIdentitiesWithConfirmedDisclaimer();
-			PersistenceHelper.removeObjectsFromList(identities, confirmedIdentities);
-			// Set the disclaimer property for the remaining users
-			for (int i = 0; i < identities.size(); i++) {
-				Identity identity = identities.get(i);
-				regMgr.setHasConfirmedDislaimer(identity);
-				// write something to the console after each 100 user, this can take a
-				// while with many users and it is handy to know that the system is
-				// doing something
-				if (i % 250 == 0) {
-					log.audit("Busy creating disclaimer confirmation. Done with " + i + " of a total of " + identities.size() + " users. Please wait ...");
-					db.intermediateCommit();
-				}
-			}
-			log.audit("Done with creating disclaimer confirmation for " + identities.size() + " users");
-			
-			uhd.setBooleanDataValue(TASK_CREATE_DISCLAIMER_CONFIRMATION, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-
-
-}
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_6_1_1.java b/src/main/java/org/olat/upgrade/OLATUpgrade_6_1_1.java
deleted file mode 100644
index 70e4b8ba84b7b3c7ec481823da31c936c2e5dc0f..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_6_1_1.java
+++ /dev/null
@@ -1,486 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-package org.olat.upgrade;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-
-import org.dom4j.Document;
-import org.dom4j.Element;
-import org.hibernate.Hibernate;
-import org.hibernate.type.Type;
-import org.olat.admin.user.delete.service.UserDeletionManager;
-import org.olat.admin.user.delete.service.UserFileDeletionManager;
-import org.olat.basesecurity.BaseSecurity;
-import org.olat.basesecurity.BaseSecurityManager;
-import org.olat.core.commons.modules.bc.FolderConfig;
-import org.olat.core.commons.modules.bc.meta.MetaInfoFileImpl;
-import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.id.Identity;
-import org.olat.core.id.Persistable;
-import org.olat.core.id.User;
-import org.olat.core.logging.AssertException;
-import org.olat.core.util.xml.XMLParser;
-import org.olat.core.util.xml.XStreamHelper;
-import org.olat.modules.dialog.DialogElement;
-import org.olat.modules.dialog.DialogElementsPropertyManager;
-import org.olat.modules.dialog.DialogPropertyElements;
-import org.olat.properties.Property;
-import org.olat.properties.PropertyManager;
-
-/**
- * Description:<br>
- * Automatic upgrade code for the OLAT 6.1.1 release
- * Migrate deleted user data, delete user completly (deleted user name can used again). 
- * 
- * <P>
- * Initial Date:  12.03.2009 <br>
- * @author Christian Guretzki
- */
-public class OLATUpgrade_6_1_1 extends OLATUpgrade {
-	private static final String VERSION = "OLAT_6.1.1";
-	private static final String TASK_RENAME_DELETED_USER = "Rename deleted username to <timestamp>_bks_<USRENAME>";
-	private static final String TASK_REPLACE_AUTHOR_WITH_IDENTITY_KEY = "Replace author-name with identity-key in MetaData-files";
-	private static final String TASK_CLEANUP_USERDATA_OF_DELETEDUSER = "Cleanup userdata of deleted user(dropbox, returnboxof task-node, meta data, qti-editor)";
-	private static final String TASK_MIGRATE_ALL_DIALOG_ELEMENTS_PROPERTY = "Replace user-name with identity-key in file-dialog properties for all users";
-	
-	// migrate only one deleted-user for testing
-	private boolean testMode = false;
-	private UserFileDeletionManager userFileDeletionManager;
-	
-	public OLATUpgrade_6_1_1(UserFileDeletionManager userFileDeletionManager) {
-		this.userFileDeletionManager = userFileDeletionManager;
-	}
-	
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#getVersion()
-	 */
-	public String getVersion() {
-		return VERSION;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPreSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPreSystemInitUpgrade(UpgradeManager upgradeManager) {
-		return false;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPostSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPostSystemInitUpgrade(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (uhd == null) {
-			// has never been called, initialize
-			uhd = new UpgradeHistoryData();
-		} else {
-			if (uhd.isInstallationComplete()) return false;
-		}
-		long startTime = 0 ;
-		if (log.isDebug()) startTime = System.currentTimeMillis();
-		renameDeletedUserNames(upgradeManager, uhd);
-    if (log.isDebug()) {
-    	log.debug("OLATUpgrade_6_1_1: renameDeletedUserNames takes " + (System.currentTimeMillis() - startTime) + "ms");
-    	startTime = System.currentTimeMillis();
-    }	
-		replaceAuthorNameWithIdentityKeyInMetaData(upgradeManager, uhd);
-    if (log.isDebug()) {
-    	log.debug("OLATUpgrade_6_1_1: replaceAuthorNameWithIdentityKeyInMetaData takes " + (System.currentTimeMillis() - startTime) + "ms");
-    	startTime = System.currentTimeMillis();
-    }		
-		cleanUpDeletedUserData(upgradeManager, uhd);
-    if (log.isDebug()) {
-    	log.debug("OLATUpgrade_6_1_1: cleanUpDeletedUserData takes " + (System.currentTimeMillis() - startTime) + "ms");
-    	startTime = System.currentTimeMillis();
-    }	
-    migrateAllDialogElementsProperty(upgradeManager, uhd);
-    if (log.isDebug()) {
-    	log.debug("OLATUpgrade_6_1_1: migrateAllDialogElementsProperty takes " + (System.currentTimeMillis() - startTime) + "ms");
-    	startTime = System.currentTimeMillis();
-    }	
-		
-		// mark upgrade as finished, never run it again
-		uhd.setInstallationComplete(true);
-		upgradeManager.setUpgradesHistory(uhd, VERSION);
-		return true;
-	}
-
-	/**
-	 * Deletes the guest users from 6.0 release, the guest users are now created
-	 * using other user names using an automated naming schema
-	 * 
-	 * @param upgradeManager
-	 * @param uhd
-	 */
-	private void renameDeletedUserNames(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_RENAME_DELETED_USER)) {
-			log.audit("+---------------------------------------------------------------+");
-			log.audit("+... Rename deleted username to <TIMESTAMP>_bks_<USRENAME>   ...+");
-			log.audit("+---------------------------------------------------------------+");
-			int counter = 0;
-			//keep email only -> change login-name
-			if (!UserDeletionManager.isKeepUserLoginAfterDeletion () ){
-				// loop over all deleted-users
-				BaseSecurity secMgr = BaseSecurityManager.getInstance();
-				List<Identity> identitiesList = secMgr.getIdentitiesByPowerSearch(null, null, true, null, null, null,
-						null, null, null, null, Identity.STATUS_DELETED);
-				for (Iterator<Identity> iterator = identitiesList.iterator(); iterator.hasNext();) {
-					Identity identity = iterator.next();
-					if (!identity.getName().contains(UserDeletionManager.DELETED_USER_DELIMITER)) {
-						if (!(testMode && (counter > 0) ) ) {
-							String oldName = identity.getName();
-							String newName = UserDeletionManager.getInstance().getBackupStringWithDate(oldName);
-							identity.setName(newName);
-							DBFactory.getInstance().updateObject(identity);
-							log.audit("Rename deleted username from '" + oldName + "' to '" + newName + "'");
-							counter++;
-						} else {
-							log.info("TEST-MODE: Do not rename username '" + identity.getName() +"'");
-						}
-					}
-					if (counter % 10 == 0) {
-						DBFactory.getInstance().intermediateCommit();
-					}
-				}
-			}
-			// Final commit of all identity changes 
-			DBFactory.getInstance().intermediateCommit();
-			log.audit("Rename " + counter +" deleted username to '<TIMESTAMP>_bks_<USRENAME>'");
-			uhd.setBooleanDataValue(TASK_RENAME_DELETED_USER, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-	
-	private void replaceAuthorNameWithIdentityKeyInMetaData(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_REPLACE_AUTHOR_WITH_IDENTITY_KEY)) {
-			log.audit("+-----------------------------------------------------------------------------+");
-			log.audit("+... Replace author-name with identity-key in MetaData-files for all users ...+");
-			log.audit("+-----------------------------------------------------------------------------+");
-			String metaRootDirPath = FolderConfig.getCanonicalMetaRoot();
-			File metaRootDir = new File(metaRootDirPath);
-			if (log.isDebug()) log.debug("replaceAuthorNameWithIdentityKeyInMetaData: metaRootDir=" + metaRootDir.getAbsolutePath());
-			long counter = replaceAuthorNameWithIdentityKeyInAllMetaData( metaRootDir, 0 /*subFolderNbr*/, 0 );
-			log.info("replaceAuthorNameWithIdentityKeyInMetaData: replace #" + counter + " user-names in meta files");
-			uhd.setBooleanDataValue(TASK_REPLACE_AUTHOR_WITH_IDENTITY_KEY, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-
-	
-	private void cleanUpDeletedUserData(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_CLEANUP_USERDATA_OF_DELETEDUSER)) {
-			log.audit("+---------------------------------------------------------------------------------------------------------------+");
-			log.audit("+... Cleanup userdata of deleted user (dropbox, returnbox of task-node, .meta/homes/<USER> data, qti-editor) ...+");
-			log.audit("+---------------------------------------------------------------------------------------------------------------+");
-			int counter = 0;
-			int counterNotCleanup = 0;
-			BaseSecurity secMgr = BaseSecurityManager.getInstance();
-			List<Identity> identitiesList = secMgr.getIdentitiesByPowerSearch(null, null, true, null, null, null,	null, null, null, null, Identity.STATUS_DELETED);
-			if (log.isDebug()) log.debug("cleanUpDeletedUserData: found #" + identitiesList.size() + " deleted users");
-			// loop over all deleted-users
-			for (Iterator<Identity> iterator = identitiesList.iterator(); iterator.hasNext();) {
-				Identity identity = iterator.next();
-				if (log.isDebug()) log.debug("cleanUpDeletedUserData: process identity=" + identity);
-				if (!(testMode && (counter > 0) ) ) {
-					if (!UserDeletionManager.isKeepUserLoginAfterDeletion () ){
-						// deleted username are like <TIMESTAMP>_bks_<USRENAME>
-						// check if username is already in use again
-						String orginalUserName = extractOrginalUserName(identity.getName());
-						if (log.isDebug()) log.debug("cleanUpDeletedUserData: process orginalUserName=" + orginalUserName);
-						Identity foundIdentity = secMgr.findIdentityByName(orginalUserName);
-						if (foundIdentity == null) {
-							MigrationIdentity migrationIdentity = new MigrationIdentity(orginalUserName);
-							userFileDeletionManager.deleteUserData(migrationIdentity, migrationIdentity.getName());	
-							log.audit("Cleanup userdata of deleted user '" + identity.getName() + "' orginalUserName=" + orginalUserName);
-							counter++;
-						} else {
-							log.audit("Could NOT cleanup userdata of deleted user '" + identity.getName() + "' because '" + orginalUserName + "' is already in use" );
-							counterNotCleanup++;
-						}
-					} else {
-						// deleted username are not renamed
-						userFileDeletionManager.deleteUserData(identity, identity.getName());	
-						log.audit("KeepUserLoginAfterDeletion-Mode : Cleanup userdata of deleted user '" + identity.getName() + "'");
-					}
-				} else {
-					log.info("TEST-MODE: Do not cleanup username '" + identity.getName() +"'");
-				}
-				DBFactory.getInstance(false).commitAndCloseSession();
-				if (log.isDebug()) log.debug("cleanUpDeletedUserData: DONE migration of identity=" + identity);
-			}
-			log.audit("Cleanup userdata of " + counter +" users");
-			if (counterNotCleanup > 0) {
-				log.audit("Could not cleanup userdata of " + counterNotCleanup +" users because the username is already in use");
-			}
-			uhd.setBooleanDataValue(TASK_CLEANUP_USERDATA_OF_DELETEDUSER, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-
-	private void migrateAllDialogElementsProperty(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_MIGRATE_ALL_DIALOG_ELEMENTS_PROPERTY)) {
-			log.audit("+-----------------------------------------------------------------------------------+");
-			log.audit("+... Replace user-name with identity-key in file-dialog properties for all users ...+");
-			log.audit("+-----------------------------------------------------------------------------------+");
-
-			migrateAllDialogElementsProperty();
-			
-			uhd.setBooleanDataValue(TASK_REPLACE_AUTHOR_WITH_IDENTITY_KEY, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-
-	/**
-	 * 
-	 * @param name deleted-username format like <TIMESTAMP>_bks_<USRENAME>
-	 * @return
-	 */
-	private String extractOrginalUserName(String name) {
-		if ( name.indexOf(UserDeletionManager.DELETED_USER_DELIMITER) == -1) throw new AssertException("Deleted user-name '" + name + "' without delimiter '" + UserDeletionManager.DELETED_USER_DELIMITER + "' "); 
-		String userName = name.substring(name.indexOf(UserDeletionManager.DELETED_USER_DELIMITER) + UserDeletionManager.DELETED_USER_DELIMITER.length(), name.length());
-		return userName;
-	}
-	
-	
-	//////////////////////////////////////////////////////////
-	// Replace author-name in MetaData files with identity-id.
-	//////////////////////////////////////////////////////////
-	private long replaceAuthorNameWithIdentityKeyInAllMetaData( File aFile, int deepness, long fileCounter) {
-		int MAX_RECURSIV_DEEPNESS = 100;
-		if (log.isDebug()) log.debug("replaceAuthorNameWithIdentityKeyInAllMetaData: process file=" + aFile.getAbsolutePath());
-		if (deepness>MAX_RECURSIV_DEEPNESS) {
-			log.error("replaceAuthorNameWithIdentityKeyInAllMetaData: Reach max_recursiv_deepness, metaDir=" + aFile );
-			return 0;
-		}
-		if (aFile.isDirectory()) {
-			File[] subFiles = aFile.listFiles();
-			for (int j = 0; j < subFiles.length; j++) {
-				fileCounter += replaceAuthorNameWithIdentityKeyInAllMetaData(subFiles[j], deepness+1, fileCounter);
-				
-			}
-		} else {
-			// it is File
-			if (aFile.getName().endsWith(".xml")) {
-				try {
-					MetaInfoFileImpl metaInfoFile = new MetaInfoFileImpl(aFile);
-					if (metaInfoFile.parseXMLdom(aFile) ) {
-						// read author direct as XML value and not via getAuthor method because getAuthor is based on Identityreturns '-' 
-						String username = getAuthorFromXmlMetaData(aFile);
-						Identity identity = BaseSecurityManager.getInstance().findIdentityByName(username);
-						if (identity == null) {
-							// Could not found identity => try to find as deleted username <TIMESTAMP>_bkp_<USERNAME>
-							identity = findDeletedIdentityByName(username);
-							if (identity != null) {
-								metaInfoFile.setAuthor(identity.getName());
-							} else {
-							  // // Could not found identity as deleted-identity too, warn only when username is not empty
-								if (username.trim().length() > 0) {
-									log.warn("Could not found identity with username=" + username + " file=" + aFile.getAbsolutePath());
-								} 
-							}
-						} else {
-							// Set author again to force replacement of username with identity-key 
-							metaInfoFile.setAuthor(username);
-						}
-						if (!testMode) {
-							metaInfoFile.write();
-							if (log.isDebug()) log.debug("replaceAuthorNameWithIdentityKeyInAllMetaData setAuthor=" + username + " in meta file=" + aFile.getAbsolutePath() );
-						} else {
-							log.info("replaceAuthorNameWithIdentityKeyInAllMetaData: TEST-MODE !!! DO NOT WRITE setAuthor=" + username + " in meta file=" + aFile.getAbsolutePath());
-						}
-						fileCounter++;
-					}
-				} catch (Exception dex) {
-					log.warn("Could not read meta file=" + aFile.getAbsolutePath() + " , DocumentException=", dex);
-				}
-			} else {
-				log.warn("replaceAuthorNameWithIdentityKeyInAllMetaData: found non meta file=" + aFile.getAbsolutePath() );
-			}
-		}
-		if (fileCounter % 10 == 0) {
-			DBFactory.getInstance().intermediateCommit();
-		}
-		return fileCounter;
-	}
-
-	/**
-	 * Must be in sync with MetaInfo class.
-	 * @param fMeta
-	 * @return
-	 */
-	public String getAuthorFromXmlMetaData(File fMeta) {
-		if (fMeta == null) return null;
-		FileInputStream in;
-		try {	in = new FileInputStream(fMeta); }
-		catch (FileNotFoundException e) {	return null;	}
-		XMLParser xmlp = new XMLParser();
-		Document doc = xmlp.parse(in, false);
-		if (doc == null) return null;
-		
-		// extract data from XML
-		Element root = doc.getRootElement();
-		Element authorElement = root.element("author");
-		if (authorElement != null) {
-			return authorElement.getText();
-		}
-		return null;
-	}
-
-	/////////////////////////////////////////////////////////////////
-	// Replace author-name in DialogElement entries with identity-id.
-	/////////////////////////////////////////////////////////////////
-	public void migrateAllDialogElementsProperty() {
-		int counter = 0;
-		int counterDialogElement = 0;
-		int counterSetAuthor = 0;
-		List properties = findAllProperty();
-		// loop over all property
-		for (Iterator iterator = properties.iterator(); iterator.hasNext();) {
-			Property prop = (Property) iterator.next();
-			DialogPropertyElements dialogPropertyElements = (DialogPropertyElements) XStreamHelper.fromXML(prop.getTextValue());
-			// loop over all elements
-			List list = dialogPropertyElements.getDialogPropertyElements();
-			for (Iterator iterator2 = list.iterator(); iterator2.hasNext();) {
-				DialogElement dialogElement = (DialogElement) iterator2.next();
-				counterDialogElement++;
-				try {
-					String author = dialogElement.getAuthor();
-					Identity identity = BaseSecurityManager.getInstance().findIdentityByName(author);
-					if (identity == null) {
-						// Did not found username => try to find as deleted username <TIMESTAMP>_bks_<USERNAME>
-						identity = findDeletedIdentityByName(author);
-						if (identity != null) {
-							log.audit("migrateAllDialogElementsProperty setIdentityId for author=" + author + " with IdentityId=" + identity.getKey());
-							dialogElement.setAuthorIdentityId(identity.getKey().toString());
-							counter++;
-						} else {
-							log.warn("migrateAllDialogElementsProperty: Could not found username=" + author);
-						}
-					} else {
-						dialogElement.setAuthor(author);
-						counterSetAuthor++;
-					}
-					if (counterDialogElement % 10 == 0) {
-						DBFactory.getInstance().intermediateCommit();
-					}
-				} catch (Throwable th) {
-					log.warn("migrateAllDialogElementsProperty: Exception in loop over dialog-elements, exception should be handled in DialogElement, " + dialogElement, th);
-					DBFactory.getInstanceForClosing().rollbackAndCloseSession();
-				}
-			}
-			String dialogElementsAsXML = XStreamHelper.toXML(dialogPropertyElements);
-			prop.setTextValue(dialogElementsAsXML);
-			if (!testMode) {
-				PropertyManager.getInstance().updateProperty(prop);
-			} else {
-				log.warn("migrateAllDialogElementsProperty: TEST-MODE !!! DO NOT updateProperty");
-			}
-		}
-		log.info("migrateAllDialogElementsProperty: replace #" + counter + " deleted user-names, call setAuthor #" + counterSetAuthor + " for existing user-names  in #" + counterDialogElement + " DialogElements");
-	}
-	
-	private List findAllProperty() {
-		PropertyManager propMrg = PropertyManager.getInstance();
-		List elements = propMrg.listProperties(null, null, "CourseModule", null, null, DialogElementsPropertyManager.PROPERTY_NAME);
-		return elements;
-	}
-
-	public Identity findDeletedIdentityByName(String identityName) {
-		if (identityName == null) throw new AssertException("findIdentitybyName: name was null");
-		identityName = "%" + UserDeletionManager.DELETED_USER_DELIMITER + identityName;
-		List identities = DBFactory.getInstance().find(
-				"select ident from org.olat.basesecurity.IdentityImpl as ident where ident.name like ? and ident.status = ?", new Object[] { identityName, Identity.STATUS_DELETED },
-				new Type[] { Hibernate.STRING, Hibernate.INTEGER});
-		int size = identities.size();
-		if (size == 0) return null;
-		if (size != 1) throw new AssertException("non unique name in identites: " + identityName);
-		Identity identity = (Identity) identities.get(0);
-		return identity;
-	}
-
-}
-
-class MigrationIdentity implements Identity {
-	private String name;
-	
-	public MigrationIdentity(String name) {
-		this.name = name;
-	}
-	
-	public Date getLastLogin() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public Integer getStatus() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public User getUser() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public void setLastLogin(Date loginDate) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public void setName(String name) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public void setStatus(Integer newStatus) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public Date getCreationDate() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public boolean equalsByPersistableKey(Persistable persistable) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public Long getKey() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-	
-}
\ No newline at end of file
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_6_2_0.java b/src/main/java/org/olat/upgrade/OLATUpgrade_6_2_0.java
deleted file mode 100644
index e44fe5ae6623b8832f605d1eff77351d94d671ac..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_6_2_0.java
+++ /dev/null
@@ -1,612 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-
-package org.olat.upgrade;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.olat.basesecurity.BaseSecurity;
-import org.olat.basesecurity.BaseSecurityManager;
-import org.olat.collaboration.CollaborationTools;
-import org.olat.core.commons.persistence.DB;
-import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.commons.persistence.DBQuery;
-import org.olat.core.id.Identity;
-import org.olat.core.util.Formatter;
-import org.olat.core.util.StringHelper;
-import org.olat.core.util.filter.impl.OWASPAntiSamyXSSFilter;
-import org.olat.group.BusinessGroup;
-import org.olat.group.BusinessGroupManager;
-import org.olat.group.BusinessGroupManagerImpl;
-import org.olat.group.area.BGArea;
-import org.olat.group.area.BGAreaManager;
-import org.olat.group.area.BGAreaManagerImpl;
-import org.olat.group.context.BGContext;
-import org.olat.group.context.BGContextManager;
-import org.olat.group.context.BGContextManagerImpl;
-import org.olat.modules.fo.ForumManager;
-import org.olat.modules.fo.Message;
-import org.olat.note.Note;
-import org.olat.note.NoteManager;
-import org.olat.properties.Property;
-import org.olat.properties.PropertyManager;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-import org.olat.user.HomePageConfig;
-import org.olat.user.HomePageConfigManager;
-import org.olat.user.HomePageConfigManagerImpl;
-
-/**
- * Description:<br>
- * Upgrade to OLAT 6.2:
- * - Migration of old wiki-fields to flexiform 
- * 
- * Code is already here for every update. 
- * Method calls will be commented out step by step when corresponding new controllers are ready.
- * As long as there will be other things to migrate Upgrade won't be set to DONE!
- * 
- * <P>
- * Initial Date: 20.06.09 <br>
- * 
- * @author Roman Haag, roman.haag@frentix.com, www.frentix.com
- */
-public class OLATUpgrade_6_2_0 extends OLATUpgrade {
-	private static final String VERSION = "OLAT_6.2";
-	private static final String TASK_MIGRATE_WIKICODE_NOTES = "Migrate Wiki-field NOTE to new syntax";
-	private static final String TASK_MIGRATE_WIKICODE_FORUM = "Migrate Wiki-field FORUM to new syntax";
-	private static final String TASK_MIGRATE_WIKICODE_GROUPNEWS = "Migrate Wiki-field GROUP-INFORMATION/NEWS to new syntax";
-	private static final String TASK_MIGRATE_WIKICODE_BGCONTEXT = "Migrate Wiki-field BUSINESSGROUPCONTEXT to new syntax";
-	private static final String TASK_MIGRATE_WIKICODE_BGAREA = "Migrate Wiki-field BUSINESSGROUPAREA to new syntax";
-	private static final String TASK_MIGRATE_WIKICODE_BG_DESC = "Migrate Wiki-field BUSINESSGROUPDESC to new syntax";
-	private static final String TASK_MIGRATE_WIKICODE_HOMEPAGE = "Migrate Wiki-field in HOMEPAGE/BIO to new syntax";
-	private static final String TASK_MIGRATE_WIKICODE_REPOENTRY = "Migrate Wiki-field in REPOSITORY ENTRY to new syntax";
-	
-	
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPreSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPreSystemInitUpgrade(UpgradeManager upgradeManager) {
-			return false;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPostSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPostSystemInitUpgrade(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (uhd == null) {
-			// has never been called, initialize
-			uhd = new UpgradeHistoryData();
-		} else {
-			if (uhd.isInstallationComplete()) return false;
-		}
-
-		long startTime = 0 ;
-		if (log.isDebug()) startTime = System.currentTimeMillis();
-		
-//		migrationTest();
-		
-	//migrate old wiki htmlareas to new tinymce fields -> persist with html code instead wiki-syntax
-	    //userNotes
-	    migrateNotes(upgradeManager, uhd);
-	    if (log.isDebug()) {
-	    	log.debug("OLATUpgrade_6_2_0: migrateNotes takes " + (System.currentTimeMillis() - startTime) + "ms");
-	    	startTime = System.currentTimeMillis();
-	    }
-	    
-	    //forum posts
-	    migrateForum(upgradeManager, uhd);
-	    if (log.isDebug()) {
-	    	log.debug("OLATUpgrade_6_2_0: migrateForum takes " + (System.currentTimeMillis() - startTime) + "ms");
-	    	startTime = System.currentTimeMillis();
-	    }	
-	    
-	    //newsform (information in groups)
-	    migrateGroupNews(upgradeManager, uhd);
-	    if (log.isDebug()) {
-	    	log.debug("OLATUpgrade_6_2_0: migrateGroupNews takes " + (System.currentTimeMillis() - startTime) + "ms");
-	    	startTime = System.currentTimeMillis();
-	    }	
-
-	    // business group description
-	    migrateGroupDescription(upgradeManager, uhd);
-	    if (log.isDebug()) {
-	    	log.debug("OLATUpgrade_6_2_0: migrateGroupDescription takes " + (System.currentTimeMillis() - startTime) + "ms");
-	    	startTime = System.currentTimeMillis();
-	    }		    
-	    
-	    //BG Context Groups
-	    migrateBGContext(upgradeManager, uhd);
-	    if (log.isDebug()) {
-	    	log.debug("OLATUpgrade_6_2_0: migrateBGContext takes " + (System.currentTimeMillis() - startTime) + "ms");
-	    	startTime = System.currentTimeMillis();
-	    }		    
-
-	    //BG Areas
-	    migrateBGArea(upgradeManager, uhd);
-	    if (log.isDebug()) {
-	    	log.debug("OLATUpgrade_6_2_0: migrateBGArea takes " + (System.currentTimeMillis() - startTime) + "ms");
-	    	startTime = System.currentTimeMillis();
-	    }		    
-	    
-	    //Repository Entry
-	    migrateRepoEntry(upgradeManager, uhd);
-	    if (log.isDebug()) {
-	    	log.debug("OLATUpgrade_6_2_0: migrateRepoEntry takes " + (System.currentTimeMillis() - startTime) + "ms");
-	    	startTime = System.currentTimeMillis();
-	    }		    
-
-	    //homepage-bio / visitcard
-	    migrateHomepageBio(upgradeManager, uhd);
-	    if (log.isDebug()) {
-	    	log.debug("OLATUpgrade_6_2_0: migrateHomepageBio takes " + (System.currentTimeMillis() - startTime) + "ms");
-	    	startTime = System.currentTimeMillis();
-	    }		    
-	    
-	    // tests for xss-filter, needs to be done during upgrade (startup) as jUnit has other database without real data.
-//	    testXSSFilter();
-//	    if (log.isDebug()) {
-//	    	log.debug("OLATUpgrade_6_2_0: testing the XSS Filter takes " + (System.currentTimeMillis() - startTime) + "ms");
-//	    	startTime = System.currentTimeMillis();
-//	    }		    
-   
-    // now pre and post code was ok, finish installation
-		uhd.setInstallationComplete(true);
-		// persist infos
-		upgradeManager.setUpgradesHistory(uhd, VERSION);
-		return true;
-	}
-
-
-	public String getVersion() {
-		return VERSION;
-	}
-	
-	private void migrateNotes(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_MIGRATE_WIKICODE_NOTES)) {
-			log.audit("+---------------------------------------------------------------+");
-			log.audit("+... " + TASK_MIGRATE_WIKICODE_NOTES + "   ...+");
-			log.audit("+---------------------------------------------------------------+");
-			BaseSecurity secMgr = BaseSecurityManager.getInstance();
-			NoteManager noteMgr = NoteManager.getInstance();
-			List<Identity> identitiesList = secMgr.getIdentitiesByPowerSearch(null, null, true, null, null, null,
-					null, null, null, null, null);
-			DBFactory.getInstance().intermediateCommit();
-			int counter = 0;
-			int usercounter = 0;
-			if (log.isDebug()) log.info("Migrating notes for " + identitiesList.size() + " Identities.");
-			for (Iterator<Identity> iterator = identitiesList.iterator(); iterator.hasNext();) {
-				Identity identity = iterator.next();
-				try{
-					List<Note> allIdentityNotes = noteMgr.listUserNotes(identity);
-					if (log.isDebug()) log.info("Migrate " + allIdentityNotes.size() + " Notes for Identity: " + identity.getName());
-					if (!allIdentityNotes.isEmpty()){
-						usercounter++;
-						for (Iterator<Note> iterator2 = allIdentityNotes.iterator(); iterator2.hasNext();) {
-							try{
-								Note note = iterator2.next();
-								String parsedText = note.getNoteText();
-								parsedText = migrateStringSavely(parsedText);
-								note.setNoteText(parsedText);
-								noteMgr.saveNote(note);
-								counter ++;
-								DBFactory.getInstance().intermediateCommit();
-							} catch (Exception e) {
-								log.error("Error during Migration: "+e, e);
-								DBFactory.getInstance().rollback();
-							}
-								
-							if (counter > 0 && counter % 150 == 0){
-								if (log.isDebug()) log.audit("Another 150 items done");
-							}
-						}
-					}
-					DBFactory.getInstance().intermediateCommit();
-				} catch (Exception e) {
-					log.error("Error during Migration: "+e, e);
-					DBFactory.getInstance().rollback();
-				}
-			}
-			DBFactory.getInstance().intermediateCommit();
-			log.audit("Migrated total " + counter + " notes of " + usercounter + " users with notes");
-			uhd.setBooleanDataValue(TASK_MIGRATE_WIKICODE_NOTES, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);			
-		}		
-	}
-
-	
-	private void migrateForum(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_MIGRATE_WIKICODE_FORUM)) {
-			log.audit("+---------------------------------------------------------------+");
-			log.audit("+...     " + TASK_MIGRATE_WIKICODE_FORUM + "     ...+");
-			log.audit("+---------------------------------------------------------------+");
-			ForumManager fMgr = ForumManager.getInstance();
-			List<Long> allForumKeys = fMgr.getAllForumKeys();
-			int fCounter = 0;
-			int totMCounter = 0;
-			if (log.isDebug()) log.info("Migrating " + allForumKeys.size() + " forums.");
-			for (Iterator<Long> iterator = allForumKeys.iterator(); iterator.hasNext();) {
-				try{
-					Long forumKey = iterator.next();
-	//				Long forumKey = new Long(338493441);
-					log.audit("  Found forum with key: " + forumKey.toString() + " containing " + fMgr.countMessagesByForumID(forumKey) + " messages to migrate.");
-					List<Message> allMessages = fMgr.getMessagesByForumID(forumKey);
-					fCounter++;
-					int mCounter = 0;
-					for (Iterator<Message> iterator2 = allMessages.iterator(); iterator2.hasNext();) {
-						try{
-							Message message = iterator2.next();
-							if (log.isDebug()){
-								log.audit("    - Message inside: " + message.getTitle() + " key: " + message.getKey());
-							}
-							String oldValue = message.getBody();
-							String newMsgBody = migrateStringSavely(oldValue);
-							message.setBody(newMsgBody);
-							// Update message without ForumManager to prevent resetting the lastModifiedTime
-							DBFactory.getInstance().updateObject(message);
-							mCounter ++;
-							DBFactory.getInstance().intermediateCommit();
-						} catch (Exception e) {
-							log.error("Error during Migration: "+e, e);
-							DBFactory.getInstance().rollback();
-						}
-						if (mCounter > 0 && mCounter % 150 == 0) {
-							if (log.isDebug()) log.audit("Another 150 items done");
-						}
-					}
-					totMCounter += mCounter;
-					//commit for each forum
-					DBFactory.getInstance().intermediateCommit();
-				} catch (Exception e) {
-					log.error("Error during Migration: "+e, e);
-					DBFactory.getInstance().rollback();
-				}
-			}
-			log.audit("**** Migrated " + fCounter + " forums with a total of " + totMCounter + " messages inside. ****");
-			uhd.setBooleanDataValue(TASK_MIGRATE_WIKICODE_FORUM, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);		
-		}
-	}
-	
-	private void migrateGroupNews(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_MIGRATE_WIKICODE_GROUPNEWS)) {
-			log.audit("+---------------------------------------------------------------+");
-			log.audit("+...     " + TASK_MIGRATE_WIKICODE_GROUPNEWS + "     ...+");
-			log.audit("+---------------------------------------------------------------+");
-			PropertyManager pm = PropertyManager.getInstance();
-			
-			// hardcoded query since manager does not provide appropriate method
-			StringBuilder query = new StringBuilder();
-			query.append("from v in class org.olat.properties.Property where ");
-			query.append("v.category = '").append(CollaborationTools.PROP_CAT_BG_COLLABTOOLS).append("'");
-			query.append(" and ");
-			query.append("v.name = 'news'");			
-			List<Property> props = DBFactory.getInstance().find(query.toString());
-			if (log.isDebug()) log.info("Found " + props.size() + " groupnews to migrate.");
-			
-			int counter = 0;
-			for (Property property : props) {
-				try{
-					String oldVal = property.getTextValue();
-					String newVal = migrateStringSavely(oldVal);
-					property.setTextValue(newVal);
-					pm.updateProperty(property);
-					counter++;
-					DBFactory.getInstance().intermediateCommit();
-				} catch (Exception e) {
-					log.error("Error during Migration: "+e, e);
-					DBFactory.getInstance().rollback();
-				}
-					
-				if (counter > 0 && counter % 150 == 0) {
-					if (log.isDebug()) log.audit("Another 150 items done");
-				}
-			}
-			DBFactory.getInstance().intermediateCommit();
-			log.audit("**** Migrated " + counter + " group news. ****");
-			uhd.setBooleanDataValue(TASK_MIGRATE_WIKICODE_GROUPNEWS, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-	
-	
-	
-	private void migrateRepoEntry(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_MIGRATE_WIKICODE_REPOENTRY)) {
-			log.audit("+---------------------------------------------------------------+");
-			log.audit("+...     " + TASK_MIGRATE_WIKICODE_REPOENTRY + "     ...+");
-			log.audit("+---------------------------------------------------------------+");
-
-			DB db = DBFactory.getInstance();
-			StringBuilder q = new StringBuilder();
-			q.append(" select repoEntry from org.olat.repository.RepositoryEntry as repoEntry");
-			DBQuery query = db.createQuery(q.toString());
-			List<RepositoryEntry> entries = (List<RepositoryEntry>) query.list();
-			RepositoryManager repoManager = RepositoryManager.getInstance();
-			if (log.isDebug()) log.info("Migrating " + entries.size() + " Repository Entires.");
-			int counter = 0;
-			for (RepositoryEntry entry : entries) {
-				try{
-					String oldDesc = entry.getDescription();
-					if (StringHelper.containsNonWhitespace(oldDesc)) {
-						String newDesc = migrateStringSavely(oldDesc);
-						entry.setDescription(newDesc);
-						repoManager.updateRepositoryEntry(entry);
-						counter++;
-					}
-					DBFactory.getInstance().intermediateCommit();
-				} catch (Exception e) {
-					log.error("Error during Migration: "+e, e);
-					DBFactory.getInstance().rollback();
-				}
-				if (counter > 0 && counter % 150 == 0) {
-					if (log.isDebug()) log.audit("Another 150 items done");
-				}
-			}
-			DBFactory.getInstance().intermediateCommit();
-			log.audit("**** Migrated " + counter + " repository entries. ****");
-			uhd.setBooleanDataValue(TASK_MIGRATE_WIKICODE_REPOENTRY, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-
-
-	private void migrateBGContext(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_MIGRATE_WIKICODE_BGCONTEXT)) {
-			log.audit("+---------------------------------------------------------------+");
-			log.audit("+...     " + TASK_MIGRATE_WIKICODE_BGCONTEXT + "     ...+");
-			log.audit("+---------------------------------------------------------------+");
-
-			DB db = DBFactory.getInstance();
-			StringBuilder q = new StringBuilder();
-			q.append(" select context from org.olat.group.context.BGContextImpl as context");
-			DBQuery query = db.createQuery(q.toString());
-
-			List<BGContext> contexts = (List<BGContext>) query.list();
-			if (log.isDebug()) log.info("Migrating " + contexts.size() + " BG Contexts.");
-			BGContextManager contextManager = BGContextManagerImpl.getInstance();
-			int bgcounter = 0;
-			for (BGContext context : contexts) {
-				try{
-					String oldDesc = context.getDescription();
-					if (StringHelper.containsNonWhitespace(oldDesc)) {
-						String newDesc = migrateStringSavely(oldDesc);
-						context.setDescription(newDesc);
-						contextManager.updateBGContext(context);
-						bgcounter++;
-					}
-					DBFactory.getInstance().intermediateCommit();
-				} catch (Exception e) {
-					log.error("Error during Migration: "+e, e);
-					DBFactory.getInstance().rollback();
-				}
-				if (bgcounter > 0 && bgcounter % 150 == 0) {
-					if (log.isDebug()) log.audit("Another 150 items done");
-				}
-			}
-
-			DBFactory.getInstance().intermediateCommit();
-			log.audit("**** Migrated " + bgcounter + " BGContext. ****");
-
-			uhd.setBooleanDataValue(TASK_MIGRATE_WIKICODE_BGCONTEXT, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-	
-
-	private void migrateBGArea(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_MIGRATE_WIKICODE_BGAREA)) {
-			log.audit("+---------------------------------------------------------------+");
-			log.audit("+...     " + TASK_MIGRATE_WIKICODE_BGAREA + "     ...+");
-			log.audit("+---------------------------------------------------------------+");
-
-			DB db = DBFactory.getInstance();
-			String q = "select area from org.olat.group.area.BGAreaImpl area ";
-			DBQuery query = db.createQuery(q);
-			List<BGArea> areas = query.list();
-			if (log.isDebug()) log.info("Migrating " + areas.size() + " BG areas.");
-			BGAreaManager bgM = BGAreaManagerImpl.getInstance();
-			int bgcounter = 0;
-
-			for (BGArea area : areas) {
-				try{
-					String oldDesc = area.getDescription();
-					if (StringHelper.containsNonWhitespace(oldDesc)) {
-						String newDesc = migrateStringSavely(oldDesc);
-						area.setDescription(newDesc);
-						bgM.updateBGArea(area);
-						bgcounter++;
-					}
-					DBFactory.getInstance().intermediateCommit();
-				} catch (Exception e) {
-					log.error("Error during Migration: "+e, e);
-					DBFactory.getInstance().rollback();
-				}
-				if (bgcounter > 0 && bgcounter % 150 == 0) {
-					if (log.isDebug()) log.audit("Another 150 items done");
-				}
-
-			}
-			DBFactory.getInstance().intermediateCommit();
-			log.audit("**** Migrated " + bgcounter + " BGAreas. ****");
-			uhd.setBooleanDataValue(TASK_MIGRATE_WIKICODE_BGAREA, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-
-	private void migrateGroupDescription(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_MIGRATE_WIKICODE_BG_DESC)) {
-			log.audit("+---------------------------------------------------------------+");
-			log.audit("+...     " + TASK_MIGRATE_WIKICODE_BG_DESC + "     ...+");
-			log.audit("+---------------------------------------------------------------+");
-
-			int bgcounter = 0;			
-			BusinessGroupManager bgm = BusinessGroupManagerImpl.getInstance();
-			List<BusinessGroup> allGroups = bgm.getAllBusinessGroups();
-			if (log.isDebug()) log.info("Migrating " + allGroups.size() + " BusinessGroups.");
-
-			if (allGroups != null && allGroups.size() != 0) {
-				for (BusinessGroup group : allGroups) {
-					try{
-						String oldDesc = group.getDescription();
-						if (StringHelper.containsNonWhitespace(oldDesc)) {
-							String newDesc = migrateStringSavely(oldDesc);
-							group.setDescription(newDesc);
-							bgm.updateBusinessGroup(group);
-							bgcounter++;
-						}
-						DBFactory.getInstance().intermediateCommit();
-					} catch (Exception e) {
-						log.error("Error during Migration: "+e, e);
-						DBFactory.getInstance().rollback();
-					}
-					if (bgcounter > 0 && bgcounter % 150 == 0) {
-						if (log.isDebug()) log.audit("Another 150 items done");
-					}
-					
-				}
-				DBFactory.getInstance().intermediateCommit();
-				log.audit("**** Migrated " + bgcounter + " BusinessGroups. ****");
-
-				uhd.setBooleanDataValue(TASK_MIGRATE_WIKICODE_BG_DESC, true);
-				upgradeManager.setUpgradesHistory(uhd, VERSION);
-			}
-		}
-	}
-
-
-	private void migrateHomepageBio(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_MIGRATE_WIKICODE_HOMEPAGE)) {
-			log.audit("+---------------------------------------------------------------+");
-			log.audit("+...     " + TASK_MIGRATE_WIKICODE_HOMEPAGE + "     ...+");
-			log.audit("+---------------------------------------------------------------+");
-			
-			BaseSecurity secMgr = BaseSecurityManager.getInstance();
-			List<Identity> identitiesList = secMgr.getIdentitiesByPowerSearch(null, null, true, null, null, null,
-					null, null, null, null, null);
-			HomePageConfigManager hpcm = HomePageConfigManagerImpl.getInstance();
-			int counter = 0;
-			if (log.isDebug()) log.info("Migrating homepage-bio for " + identitiesList.size() + " identities.");
-
-			for (Identity identity : identitiesList) {
-				try{
-					HomePageConfig hpcfg = hpcm.loadConfigFor(identity.getName());
-					String oldBio = hpcfg.getTextAboutMe();
-					if (StringHelper.containsNonWhitespace(oldBio)){
-						String newBio = migrateStringSavely(oldBio);
-						hpcfg.setTextAboutMe(newBio);
-						hpcm.saveConfigTo(identity.getName(), hpcfg);
-						counter++;
-					}
-					DBFactory.getInstance().intermediateCommit();
-				} catch (Exception e) {
-					log.error("Error during Migration: "+e, e);
-					DBFactory.getInstance().rollback();
-				}
-				if (counter % 150 == 0) {
-					if (log.isDebug()) log.audit("Another 150 items done");
-				}				
-			}
-			
-			DBFactory.getInstance().intermediateCommit();
-			log.audit("**** Migrated total " + counter + " Homepage-biography fields to new syntax. ****");
-			 uhd.setBooleanDataValue(TASK_MIGRATE_WIKICODE_HOMEPAGE, true);
-			 upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-	
-	@SuppressWarnings("deprecation") // as it has to be used here (was before deprecation)!
-	private String migrateStringSavely(String oldValue){
-		if (log.isDebug()) log.audit("Old String before migration:", oldValue);
-		String newValue = "";
-
-		//newValue = Formatter.formatWikiMarkup(oldValue);
-		log.warn("no wikiMarkupUpdate is done, OpenOLAT 8 does not support the legacy wiki markup forms!");
-		
-		if (log.isDebug()) log.audit("New String after migration:", newValue);
-		return newValue;
-	}
-
-	private void migrationTest() {
-		String testString = "Von support@olat.unizh.ch bin {$} oder {} oder [$] <> <$> ich auf diese Diskussion verwiesen worden. Mein ursprünglicher Beitrag von dem ein Teil aber hier schon besprochen wurde ist:> In Foren-Einträgen kann man kein <pre> verwenden, dafür aber viel tolle> Smileys.Wenn man Programmcode zeigen möchte, erhält man dann ein> unleserliches Durcheinander. Eckige Klammern der Form \"[]\" oder {} werden aus dem Beitrag gleich ganz gefiltert.> Es gibt auch keine Syntax um URLsabzugrenzen. Wenn eine URL zum> Beispiel am Ende eines Satzes steht, muss man den Punkt am Satzende> weglassen, damit er nicht als Teil der URL angesehen wird. BBCode oder> mehr von der Mediawiki-Syntax> (<http://de.wikipedia.org/wiki/Hilfe:Textgestaltung>) wäre sehr praktisch.Das Zitat illustriert auch schon die angesprochenen Probleme: Eckige Klammern und Backslash gefiltert, eine spitze schließende Klammer \">\" + eine runde schließende Klammer \")\", die zu einem zwinkernden Smiley wird, aber die spitze schließende Klammer stehen lässt (was nach dokumentierter Syntax nicht einmal korrekt ist) und die URL dessen abgrenzendes \">\" in die URL mitaufgenommen wird und deshalb auf eine nicht-existente Seite verweist. Man kann auch nicht korrekt auf URLs verweisen die ein \"&\" oder \"öffnende Eckige Klammer\" oder \"schließende eckige Klammer\" enthalten:Beispiel:http://www.srgdeutschschweiz.ch/omb_beanstandung.0.html?&tx_ttnews[pS]=1189036060&tx_ttnews[tt_news]=494&tx_ttnews[backPid]=186Die korrekte URL ist mittels http://tinyurl.com/2jq5wd ersichtlich.http://www.google.com/search?hl=en&q=search&btnG=Google+SearchDas korrekte Ergebnis wäre eine Google-Suche nach \"search\".Aus http://www.ietf.org/rfc/rfc2396.txt S. 33 \"Recommendations for Delimiting URI in Context\": > Using <> angle brackets around each URI is especially recommended as> a delimiting style for URI that contain whitespace.> (...)> For robustness, software that accepts user-typed URI should attempt> to recognize and strip both delimiters and embedded whitespace.Zu den Smileys: Wenn man schon autmatisch bestimmte Zeichenkombinationen in grafische Smileys umwandelt, muss man dem Benutzer auch die Möglichkeit geben dieses Verhalten per Checkbox vor dem Post eines Beitrages zu deaktivieren. Bilder mit zwinkernden Smileys in seinem Text zu haben, der zufällig eine der Zeichenketten enthält ist unschön. Die Syntax für ein Zitat sollte den Anfang und das Ende des Zitats kennzeichen und nicht wie derzeit vor jede zitierte Zeile hinzugefügt werden müssen und einen Parameter enthalten, der die Quelle des Zitats bzw. den Autor des Zitats angibt.Wenn ihr das jetzt also komplett überarbeitet, dann wäre es schon, wenn die angesprochenen Punkte vorher getestet würden. Es gibt ja genug funktionierende Webforen an denen man sehen kann, welche Funktionen sinnvoll sind und wie man diese mittels praktischer Syntax implementieren kann. Es sollte dann auch die Möglichkeit geben, Zeichen, die zur Syntax gehören, aber zum Beispiel auch in URLs vorkommen können, zu escapen. Ein solcher Fall wäre zum Beispiel die URL mit den eckigen Klammern in Verbindung mit BBCode. Eine Funktion wie <nowiki>...</nowiki> um über Syntax schreiben zu können, wäre auch praktisch. Mit BackslashGeschweifteKlammerAufCodeGeschweifteKlammerZu kann man zwar \\{code} erzeugen, aber man kann anscheinend einem anderen nicht sagen wie er das auch machen könnte, es sei denn man bedient sich einer umständlichen, ungenauen Umschreibung für die einzelnen Zeichen. Zweimal \"Backslash\"Code führt zu \\\\{code} .\n";
-		String newValue = migrateStringSavely(testString);
-	}
-	
-
-	//testing the xss filter infrastructure by filtering forum messages and comparing to original value
-	private void testXSSFilter() {
-		log.audit("+---------------------------------------------------------------+");
-		log.audit("                    Testing the XSS-Filter ");
-		log.audit("+---------------------------------------------------------------+");
-		DBFactory.getInstance().intermediateCommit();
-		ForumManager fMgr = ForumManager.getInstance();
-		List<Long> allForumKeys = fMgr.getAllForumKeys();
-		int fCounter = 0;
-		int totMCounter = 0;
-		int sucCounter = 0;
-		OWASPAntiSamyXSSFilter xssFilter = new OWASPAntiSamyXSSFilter(-1, false);
-		for (Iterator<Long> iterator = allForumKeys.iterator(); iterator.hasNext();) {
-			Long forumKey = iterator.next();
-			List<Message> allMessages = fMgr.getMessagesByForumID(forumKey);
-			fCounter++;
-			int mCounter = 0;
-			for (Iterator<Message> iterator2 = allMessages.iterator(); iterator2.hasNext();) {
-				try {
-					Message message = iterator2.next();
-					if (log.isDebug()) {
-						log.audit("    - Message inside: " + message.getTitle() + " key: " + message.getKey());
-					}
-					String msgBody = message.getBody();
-					String filteredVal = xssFilter.filter(msgBody);
-					if (msgBody.equals(filteredVal)){
-						sucCounter++;
-					} else {
-						String errMsg = xssFilter.getOrPrintErrorMessages();
-						if (errMsg.equals("")){
-							sucCounter++;
-						}
-					}		
-					mCounter++;
-					if (mCounter > 0 && mCounter % 150 == 0){
-						DBFactory.getInstance().rollback();
-						DBFactory.getInstance().closeSession();
-					}
-				} catch (Exception e) {
-					log.error("Error during XSS test: ", e);
-				}
-			}
-			totMCounter += mCounter;
-			DBFactory.getInstance().rollback();
-			DBFactory.getInstance().closeSession();
-		}
-		double percent = ((double) sucCounter / totMCounter * 100);
-		log.audit("**** Tested XSS Filter with " + fCounter + " forums with a total of " + totMCounter + " messages inside. ****");
-		log.audit("Successful on " + sucCounter + " messages. This is " + percent + "% correct.");
-		log.audit("Please send log to Roman, to fine-tune the XSSFilter");
-	}
-	
-	
-}
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_6_3_0.java b/src/main/java/org/olat/upgrade/OLATUpgrade_6_3_0.java
deleted file mode 100644
index 12e0fad4de34d7737c8c77e8779ba645f075cb37..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_6_3_0.java
+++ /dev/null
@@ -1,766 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-
-package org.olat.upgrade;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.commons.io.filefilter.RegexFileFilter;
-import org.hibernate.FlushMode;
-import org.hibernate.ObjectDeletedException;
-import org.olat.core.CoreBeanTypes;
-import org.olat.core.CoreSpringFactory;
-import org.olat.core.commons.modules.bc.FolderConfig;
-import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.commons.persistence.DBQuery;
-import org.olat.core.commons.services.text.TextService;
-import org.olat.core.util.FileUtils;
-import org.olat.core.util.StringHelper;
-import org.olat.core.util.WebappHelper;
-import org.olat.core.util.ZipUtil;
-import org.olat.core.util.notifications.NotificationsManager;
-import org.olat.core.util.notifications.NotificationsUpgrade;
-import org.olat.core.util.notifications.Publisher;
-import org.olat.core.util.notifications.Subscriber;
-import org.olat.core.util.resource.OresHelper;
-import org.olat.course.CourseModule;
-import org.olat.course.PersistingCourseImpl;
-import org.olat.course.statistic.LoggingVersionManagerImpl;
-import org.olat.modules.fo.ForumManager;
-import org.olat.modules.fo.Message;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryManager;
-import org.olat.repository.delete.service.DeletionModule;
-import org.springframework.beans.factory.annotation.Autowired;
-
-
-/**
- * Description:<br>
- * Upgrade to OLAT 6.2:
- * - Migration of old wiki-fields to flexiform 
- * 
- * Code is already here for every update. 
- * Method calls will be commented out step by step when corresponding new controllers are ready.
- * As long as there will be other things to migrate Upgrade won't be set to DONE!
- * 
- * <P>
- * Initial Date: 20.06.09 <br>
- * 
- * @author Roman Haag, roman.haag@frentix.com, www.frentix.com
- */
-public class OLATUpgrade_6_3_0 extends OLATUpgrade {
-	private static final String VERSION = "OLAT_6.3";
-	private static final String TASK_CLEANUP_TMP_UPLOAD_FILES_KEY = "cleanupTmpUploadFiles";
-	private static final String TASK_MIGRATE_FORUMS_MESSAGES = "Migrate forums messages to add word and character count";
-	private static final String TASK_MIGRATE_NOTIFICATIONS = "Migrate notifications publishers";
-	private static final String TASK_MIGRATE_COURSE_LOG_FILES = "Migrate course log files to course folders and deleted dir";
-	
-	/** filename used to store courseauthor's activities (personalized) - relict from PersistingAuditManager **/
-	public static final String FILENAME_ADMIN_LOG = "course_admin_log.txt";
-	
-	/** readme filename used by old CourseLogsArchiveManager - relict from CourseLogsArchiveManager **/
-	private static final String README = "README.txt";
-	
-	/**
-	 * filename used to store all user's activities (personalized) in the course
-	 * only visible for OLAT-admins
-	 *  - relict from PersistingAuditManager 
-	 */
-	public static final String FILENAME_USER_LOG = "course_user_log.txt";
-	/** filename used to store all user's activities (anonymised) in the course - relict from PersistingAuditManager **/
-	public static final String FILENAME_STATISTIC_LOG = "course_statistic_log.txt";
-
-	/** from PersistingCourseImpl which has this as private unfortunatelly **/
-	private static final String COURSEFOLDER = "coursefolder";
-	
-	private static final String LOGS_DIRNAME = "logs";
-	
-	private static final String OLD_COURSE_LOGS_DIRNAME="old_course_logs";
-	private static final String OLD_COURSE_LOGS_ZIPFILENAME="old_course_logs.zip";
-	private static final String OLD_COURSE_LOGS_IN_APACHE_FORMAT_ZIPFILENAME = "old_course_logs_apache_format.zip";
-	private static final String TASK_CLEANUP_BROKEN_COURSES = "cleanup_broken_courses";
-	
-	private Map<String, NotificationsUpgrade> notificationUpgrades;
-	
-	/** counter for statistics about what went wrong during apache course log migration **/
-	private int filesWithApacheConversionErrors_ = 0;
-	private DeletionModule deletionModule;
-	private CourseModule courseModule;
-	private String nodeId;
-	private Object lockObject = new Object();
-	@Autowired
-	TextService languageService;
-	
-	/**
-	 * [used by spring]
-	 */
-	public OLATUpgrade_6_3_0(DeletionModule deletionModule, CourseModule courseModule, String nodeId) {
-		this.deletionModule = deletionModule;
-		this.courseModule = courseModule;
-		this.nodeId = nodeId;
-	}
-	
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPreSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPreSystemInitUpgrade(UpgradeManager upgradeManager) {
-		return false;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPostSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPostSystemInitUpgrade(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (uhd == null) {
-			// has never been called, initialize
-			uhd = new UpgradeHistoryData();
-		} else {
-			if (uhd.isInstallationComplete()) return false;
-		}
-		
-		// Cleanup temp upload files that are not deleted properly
-		cleanupTmpUploadFiles(upgradeManager, uhd);
-		//Migrate forums messages
-		migrateMessages(upgradeManager, uhd);
-		//Migrate notifications
-		migrateNotifications(upgradeManager, uhd);
-		//Migrate course log files
-		migrateCourseLogFiles(upgradeManager, uhd);
-		//check and fix broken courses on the filesystem and database
-		searchForBrokenCourses(upgradeManager, uhd);
-		
-		// set the logging version to 1 starting NOW
-		new LoggingVersionManagerImpl().setLoggingVersionStartingNow(1);
-		
-//    // now pre and post code was ok, finish installation
-		uhd.setInstallationComplete(true);
-//		// persist infos
-		upgradeManager.setUpgradesHistory(uhd, VERSION);
-		return true;
-	}
-	
-	private void searchForBrokenCourses(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_CLEANUP_BROKEN_COURSES)) {
-			
-			String bcRoot = FolderConfig.getCanonicalRoot();
-			File courseFolder = new File(bcRoot+"/course");
-			String[] courseFolderNames = courseFolder.list(new FilenameFilter() {
-				
-				@Override
-				public boolean accept(File dir, String name) {
-					try {
-						Long.parseLong(name);
-					} catch (NumberFormatException e) {
-						return false;
-					}
-					return true;
-				}
-			});
-			List<String> courseList = Arrays.asList(courseFolderNames);
-			int counter = 0;
-			for (String string : courseList) {
-				Long courseResId = Long.parseLong(string);
-				RepositoryEntry repoEntry = RepositoryManager.getInstance().lookupRepositoryEntry(OresHelper.createOLATResourceableInstance(CourseModule.class, courseResId), false);
-				if (repoEntry != null) {
-					//try to load course...
-					try {
-						//CourseFactory.loadCourse(courseResId);
-						//check whether the runstructure is there (faster then loading the whole course)
-						File runstructure = new File(bcRoot+"/course/"+courseResId+"/runstructure.xml");
-						if (! runstructure.exists()) log.warn("Missing course structure file: "+runstructure.getAbsolutePath());
-						File editstructure = new File(bcRoot+"/course/"+courseResId+"/editortreemodel.xml");
-						if (! editstructure.exists()) log.warn("Missing course structure file: "+editstructure.getAbsolutePath());
-						File courseconfig = new File(bcRoot+"/course/"+courseResId+"/CourseConfig.xml");
-						if (! courseconfig.exists()) log.warn("Missing course structure file: "+courseconfig.getAbsolutePath());
-					} catch (Exception e) {
-						log.warn("Could not load course for resId: "+courseResId, e);
-					}
-				} else {
-					log.warn("No repositoryEntry found for: "+courseResId);
-				}
-				
-				if (counter > 0 && counter % 100 == 0) {
-					log.audit("Another 100 courses done");
-					DBFactory.getInstance().intermediateCommit();
-				}
-				counter++;
-			}
-			
-			//now by database
-			counter = 0;
-			List<RepositoryEntry> entries =  RepositoryManager.getInstance().queryByType(CourseModule.ORES_TYPE_COURSE);
-			for (RepositoryEntry repositoryEntry : entries) {
-				Long courseResId = repositoryEntry.getOlatResource().getResourceableId();
-				
-				File runstructure = new File(bcRoot+"/course/"+courseResId+"/runstructure.xml");
-				if (! runstructure.exists()) log.warn("Course is in DB but not on Filesystem: Missing course structure file: "+runstructure.getAbsolutePath());
-				File editstructure = new File(bcRoot+"/course/"+courseResId+"/editortreemodel.xml");
-				if (! editstructure.exists()) log.warn("Course is in DB but not on Filesystem: Missing course structure file: "+editstructure.getAbsolutePath());
-				File courseconfig = new File(bcRoot+"/course/"+courseResId+"/CourseConfig.xml");
-				if (! courseconfig.exists()) log.warn("Course is in DB but not on Filesystem: Missing course structure file: "+courseconfig.getAbsolutePath());
-				
-				if (counter > 0 && counter % 100 == 0) {
-					log.audit("Another 100 courses done");
-					DBFactory.getInstance().intermediateCommit();
-				}
-				counter++;
-			}
-			
-			uhd.setBooleanDataValue(TASK_CLEANUP_BROKEN_COURSES, false);  //FIXME: set to true when done
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-		
-	}
-
-	private void migrateNotifications(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_MIGRATE_NOTIFICATIONS)) {
-			log.audit("+-----------------------------------------------------------------------------+");
-			log.audit("+... Calculate the businesspath for the publishers (notifications)         ...+");
-			log.audit("+-----------------------------------------------------------------------------+");
-
-			int counter = 0;
-			NotificationsManager notificationMgr = NotificationsManager.getInstance();
-			List<Publisher> allPublishers = notificationMgr.getAllPublisher();
-			if (log.isDebug()) log.info("Found " + allPublishers.size() + " publishers to migrate.");
-
-			getNotificationUpgrades();
-			
-			for(Publisher publisher:allPublishers) {
-				Publisher publisherToSave = upgrade(publisher);
-				if(publisherToSave != null) {
-					try {
-						DBFactory.getInstance().updateObject(publisherToSave);
-					} catch (ObjectDeletedException e) {
-						log.warn("Publisher was already deleted, no update possible! Publisher key: "+publisherToSave.getKey() );
-					} catch (Exception e) {
-						log.warn("Publisher was already deleted, no update possible! Publisher key: "+publisherToSave.getKey() );
-					}
-					counter++;
-				}
-				if (counter > 0 && counter % 100 == 0) {
-					log.audit("Another 100 publishers done");
-					DBFactory.getInstance().intermediateCommit();
-				}
-			}
-
-			DBFactory.getInstance().intermediateCommit();
-			log.audit("**** Migrated " + counter + " publishers. ****");
-			
-			log.audit("+-----------------------------------------------------------------------------+");
-			log.audit("+... Update the latest emailed date for all subscribers                       +");
-			log.audit("+-----------------------------------------------------------------------------+");
-			DBQuery query = DBFactory.getInstance().createQuery("update " + Subscriber.class.getName() + " subscriber set subscriber.latestEmailed=:latestDate");
-			Calendar cal = Calendar.getInstance();
-			//
-			// use the day of installing the release, 
-			// and set the time back to midnight instead of 
-			// going back one day, e.g. cal.add(Calendar.DAY_OF_MONTH, -1);
-			//
-			// 1) before release day, sending notifications the old way at 02:00:00 a.m.
-			// 2) at release day, sending notifications the old way at 02:00:00 a.m.
-			// .. Install the Release -> Upgrader sets latestEmail sent on subscribers to release day at 00:00:00
-			// 3) day after release, sending notifications the new way at 02:00:00 a.m.
-			//
-			// with this procedure only the news are sent twice which were created between 00:00:00 and 02:00:00 of release day.
-			// 
-			cal.set(Calendar.HOUR_OF_DAY, 0);
-			cal.set(Calendar.MINUTE, 0);
-			cal.set(Calendar.SECOND, 0);
-			cal.set(Calendar.MILLISECOND, 0);
-			query.setTimestamp("latestDate", cal.getTime());
-			int subCounter = query.executeUpdate(FlushMode.AUTO);
-			
-			DBFactory.getInstance().intermediateCommit();
-			log.audit("**** Migrated " + subCounter + " subscribers. ****");
-
-			uhd.setBooleanDataValue(TASK_MIGRATE_NOTIFICATIONS, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-	
-	private Publisher upgrade(Publisher publisher) {
-		if(publisher == null) return null;
-		if(publisher.getData() != null && publisher.getData().startsWith("[")) return null;
-		
-		String type = publisher.getType();
-		if (notificationUpgrades == null) {
-			log.error("No upgrader");
-		}
-		
-		NotificationsUpgrade upgrade = notificationUpgrades.get(type);
-		if(upgrade == null) {
-			log.error("No upgrader for publisher: " + publisher.getType());
-			return null;
-		}
-		log.audit("upgrading..."+upgrade.getClass().getName());
-		return upgrade.ugrade(publisher);
-	}
-	
-	private void migrateMessages(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_MIGRATE_FORUMS_MESSAGES)) {
-			log.audit("+-----------------------------------------------------------------------------+");
-			log.audit("+... Calcualating word and character count in existing forum posts         ...+");
-			log.audit("+-----------------------------------------------------------------------------+");
-			
-			int counter = 0;
-			ForumManager fMgr = ForumManager.getInstance();
-			List<Long> allForumKeys = fMgr.getAllForumKeys();
-			if (log.isDebug()) log.info("Found " + allForumKeys.size() + " forums to migrate.");
-
-			for(Long forumKey:allForumKeys) {
-				List<Message> allMessages = fMgr.getMessagesByForumID(forumKey);
-				for (Message message : allMessages) {
-					try{
-						String body = message.getBody();
-						Locale locale = languageService.detectLocale(body);
-						int characters = languageService.characterCount(body, locale);
-						message.setNumOfCharacters(characters);
-						int words = languageService.wordCount(body, locale);
-						message.setNumOfWords(words);
-						counter++;
-						
-						DBFactory.getInstance().updateObject(message);
-						
-						if (counter > 0 && counter % 100 == 0) {
-							log.audit("Another 100 messages done");
-							DBFactory.getInstance().intermediateCommit();
-						}
-					} catch (Exception e) {
-						log.error("Error during Migration: "+e, e);
-						DBFactory.getInstance().rollback();
-					}
-				}
-			}
-			
-			DBFactory.getInstance().intermediateCommit();
-			log.audit("**** Migrated " + counter + " messages. ****");
-			uhd.setBooleanDataValue(TASK_MIGRATE_FORUMS_MESSAGES, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-
-
-	private void cleanupTmpUploadFiles(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_CLEANUP_TMP_UPLOAD_FILES_KEY)) {
-			log.audit("+-----------------------------------------------------------------------------+");
-			log.audit("+... Cleaning up old temporary upload files                                ...+");
-			log.audit("+-----------------------------------------------------------------------------+");
-			
-			File tempUploadDir = new File(WebappHelper.getUserDataRoot() + "/tmp/");
-			long counter = 0;
-			long mem = 0;
-			if (tempUploadDir.exists() && tempUploadDir.isDirectory()) {
-				// get all files that start with instanceID_NodeID_ followed by a number
-				FileFilter tmpUploadFileFilter = new RegexFileFilter(WebappHelper.getInstanceId()+ "_" + nodeId + "_[0-9]*");
-				File[] tmpUploadFiles = tempUploadDir.listFiles(tmpUploadFileFilter);
-				for (File file : tmpUploadFiles) {
-					if (file.isFile() && file.exists()) {
-						mem += file.length();
-						file.delete();
-						counter++;
-					}
-				}				
-			}
-			// ok, all done, commit done task to upgrade manager
-			uhd.setBooleanDataValue(TASK_CLEANUP_TMP_UPLOAD_FILES_KEY, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-			// some info output
-			log.info("Deleted #" + counter + " temporary upload files that consumed a total of " + StringHelper.formatMemory(mem) + " expensive diskspace. Pure happyness for your sysadmin.");
-		}
-	}
-
-	private void migrateCourseLogFiles(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_MIGRATE_COURSE_LOG_FILES)) {
-			log.audit("+-----------------------------------------------------------------------------+");
-			log.audit("+... Migrate the Course Log Files                                          ...+");
-			log.audit("+-----------------------------------------------------------------------------+");
-
-			// doing an intermediate commit at the start to make sure we don't have any transaction open
-			// further below we don't do anything with the database, it's raw file operations, hence
-			// no further intermediatecommit is needed afterwards
-			DBFactory.getInstance().intermediateCommit();
-
-			File globalOldCourseLogsDir = new File(deletionModule.getArchiveRootPath(), OLD_COURSE_LOGS_DIRNAME);
-			if (globalOldCourseLogsDir.exists() && !globalOldCourseLogsDir.isDirectory()) {
-				log.error("**** !!!! Resource exists but is not a directory - cannot move course log files: "+globalOldCourseLogsDir.getAbsolutePath());
-				throw new IllegalStateException("Resource exists but is not a directory - cannot move course log files - owner/permission issue?: "+globalOldCourseLogsDir.getAbsolutePath());
-//				globalOldCourseLogsDir = null;
-			} else if (!globalOldCourseLogsDir.exists() && !globalOldCourseLogsDir.mkdirs()) {
-				log.error("**** !!!! Cannot create directory - cannot move course log files: "+globalOldCourseLogsDir.getAbsolutePath());
-				throw new IllegalStateException("Cannot create directory - cannot move course log files - owner/permission issue?: "+globalOldCourseLogsDir.getAbsolutePath());
-//				globalOldCourseLogsDir = null;
-			}
-			
-			
-			File courseRootDir = new File(FolderConfig.getCanonicalRoot() + File.separator + PersistingCourseImpl.COURSE_ROOT_DIR_NAME);
-			
-			File[] dirs = courseRootDir.listFiles();
-			int nonCourseDirs = 0;
-			int migratedCourses = 0;
-			int zipErrors = 0;
-			int moveErrors = 0;
-			int coursesWithoutLogsDir = 0;
-			for (int i = 0; i < dirs.length; i++) {
-				File aDir = dirs[i];
-				nonCourseDirs++;
-				if (!aDir.isDirectory()) {
-					continue;
-				}
-				if (!aDir.getName().matches("[0123456789]*")) {
-					continue;
-				}
-				if (!aDir.getName().toLowerCase().equals(aDir.getName().toUpperCase())) {
-					// kind of superfluous check, but still...
-					continue;
-				}
-				nonCourseDirs--;
-				File courseLogDir = new File(aDir, LOGS_DIRNAME);
-				if (!courseLogDir.isDirectory() || !courseLogDir.exists()) {
-					coursesWithoutLogsDir++;
-					continue;
-				}
-				
-				boolean zipSuccess = zipCourseLogFiles(courseLogDir);
-				boolean moveSuccess = false;
-				if (zipSuccess && globalOldCourseLogsDir!=null) {
-					moveSuccess = moveInvisibleCourseLogFiles(courseLogDir, globalOldCourseLogsDir);
-				}
-				
-				if (!zipSuccess) zipErrors++;
-				if (!moveSuccess) moveErrors++;
-				migratedCourses++;
-
-				if (migratedCourses > 0 && migratedCourses % 100 == 0) {
-					log.audit("Another 100 course log files migrated, "+migratedCourses+" done. Total-Dirs: "+dirs.length+", Non-Course-Dirs: "+nonCourseDirs+". Courses without logs dir: "+coursesWithoutLogsDir+". Errors: "+zipErrors+" zip errors, "+moveErrors+" move errors, "+filesWithApacheConversionErrors_+" apache-conversion errors. ****");
-				}
-			}
-			
-			log.audit("**** Migrated " + migratedCourses + " courses. Total-Dirs: "+dirs.length+", Non-Course-Dirs: "+nonCourseDirs+". Courses without logs dir: "+coursesWithoutLogsDir+". Errors: "+zipErrors+" zip errors, "+moveErrors+" move errors, "+filesWithApacheConversionErrors_+" apache-conversion errors ****");
-			uhd.setBooleanDataValue(TASK_MIGRATE_COURSE_LOG_FILES, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-
-	public File createTempDirectory() {
-	  File temp = null;
-	
-	  try{
-	  	temp = File.createTempFile("temp_olat_migrate", Long.toString(System.nanoTime()));
-	  } catch (IOException ioe) {
-	  	log.error("**** !!!! Could not get temporary file");
-	  }
-	
-	  if(!(temp.delete()))
-	  {
-	      log.error("**** !!!! Could not delete temp file: " + temp.getAbsolutePath());
-	  }
-	
-	  if(!(temp.mkdir()))
-	  {
-	  	log.error("**** !!!! Could not create temp directory: " + temp.getAbsolutePath());
-	  }
-	
-	  return (temp);
-	}
-
-	private boolean zipCourseLogFiles(File courseLogDir) {
-		File[] logFiles = courseLogDir.listFiles();
-		Set<String> toBeZippedFiles = new HashSet<String>();
-		Set<File> toBeDeletedFiles = new HashSet<File>();
-		File readMe = null;
-		for (int i = 0; i < logFiles.length; i++) {
-			File logFile = logFiles[i];
-			String logFileName = logFile.getName();
-			if (logFileName.equals(FILENAME_ADMIN_LOG) && courseModule.isAdminLogVisibleForMigrationOnly()) {
-				toBeZippedFiles.add(logFile.getName());
-				toBeDeletedFiles.add(logFile);
-			} else if (logFileName.equals(FILENAME_USER_LOG) && courseModule.isUserLogVisibleForMigrationOnly()) {
-				toBeZippedFiles.add(logFile.getName());
-				toBeDeletedFiles.add(logFile);
-			} else if (logFileName.equals(FILENAME_STATISTIC_LOG) && courseModule.isStatisticLogVisibleForMigrationOnly()) {
-				toBeZippedFiles.add(logFile.getName());
-				toBeDeletedFiles.add(logFile);
-			} else if (logFileName.equals(README)) {
-				readMe = logFile;
-			}
-		}
-		
-		if (readMe!=null && toBeZippedFiles.size()>0) {
-			toBeZippedFiles.add(readMe.getName());
-			toBeDeletedFiles.add(readMe);
-		}
-		
-		File courseFolder = new File(courseLogDir.getParentFile(), COURSEFOLDER);
-		if (courseFolder.exists() && !courseFolder.isDirectory()) {
-			log.error("**** !!!! Could not migrate course log files for "+courseLogDir.getParentFile().getName()+" as there is a file called '"+COURSEFOLDER+" which was expected to be a directory: "+courseFolder.getAbsolutePath());
-			return false;
-		}
-		
-		if (!courseFolder.exists()) {
-			if (!courseFolder.mkdirs()) {
-				log.error("**** !!!! Could not create directory "+courseFolder.getAbsolutePath());
-				return false;
-			}
-		}
-		
-		File oldCourseLogsDir = new File(courseFolder, OLD_COURSE_LOGS_DIRNAME);
-		if (oldCourseLogsDir.exists()) {
-			log.error("**** !!!! "+OLD_COURSE_LOGS_DIRNAME+" alreday existed! Not migrating course. Dir= "+oldCourseLogsDir.getAbsolutePath());
-			return false;
-		}
-		if (!oldCourseLogsDir.mkdirs()) {
-			log.error("**** !!!! Could not create directory "+oldCourseLogsDir.getAbsolutePath());
-			return false;
-		}
-		
-		File oldCourseLogsZip = new File(oldCourseLogsDir, OLD_COURSE_LOGS_ZIPFILENAME);
-		if (!ZipUtil.zip(toBeZippedFiles, courseLogDir, oldCourseLogsZip, true)) {
-			log.error("**** !!!! Could not zip course log files from "+courseLogDir+", into "+oldCourseLogsZip.getAbsolutePath());
-			return false;
-		}
-		
-		// now convert those files into apache log format
-		File tempDir = createTempDirectory();
-		Set<String> toBeApacheLoggedFiles = new HashSet<String>();
-		for (Iterator<File> it = toBeDeletedFiles.iterator(); it.hasNext();) {
-			File toBeApacheLoggedFile = it.next();
-			if (toBeApacheLoggedFile.getName().equals(README)) {
-				// ignore the readme file
-				continue;
-			}
-			File apacheLogFile = readSequence(toBeApacheLoggedFile, tempDir);
-			toBeApacheLoggedFiles.add(apacheLogFile.getName());
-		}
-		File oldCourseLogsInApacheFormatZip = new File(oldCourseLogsDir, OLD_COURSE_LOGS_IN_APACHE_FORMAT_ZIPFILENAME);
-		if (!ZipUtil.zip(toBeApacheLoggedFiles, tempDir, oldCourseLogsInApacheFormatZip, true)) {
-			log.error("**** !!!! Could not zip course log files (those in apache format) from "+tempDir+", into "+oldCourseLogsInApacheFormatZip.getAbsolutePath());
-			if (!FileUtils.deleteDirsAndFiles(tempDir, true, true)) {
-				tempDir.deleteOnExit();
-			}
-			return false;
-		}
-		if (!FileUtils.deleteDirsAndFiles(tempDir, true, true)) {
-			tempDir.deleteOnExit();
-		}
-		
-		// now delete those files
-		for (Iterator<File> it = toBeDeletedFiles.iterator(); it.hasNext();) {
-			File toBeDeletedFile = it.next();
-			if (!toBeDeletedFile.delete()) {
-				log.error("**** !!!! Could not delete file "+toBeDeletedFile.getAbsolutePath());
-				return false;
-			}
-		}
-		
-		return true;
-	}
-	
-	private boolean moveInvisibleCourseLogFiles(File courseLogDir, File globalOldCourseLogsDir) {
-		File[] logFiles = courseLogDir.listFiles();
-		Set<File> toBeMovedFiles = new HashSet<File>();
-		for (int i = 0; i < logFiles.length; i++) {
-			File logFile = logFiles[i];
-			String logFileName = logFile.getName();
-			if (logFileName.equals(FILENAME_ADMIN_LOG) && !courseModule.isAdminLogVisibleForMigrationOnly()) {
-				toBeMovedFiles.add(logFile);
-			} else if (logFileName.equals(FILENAME_USER_LOG) && !courseModule.isUserLogVisibleForMigrationOnly()) {
-				toBeMovedFiles.add(logFile);
-			} else if (logFileName.equals(FILENAME_STATISTIC_LOG) && !courseModule.isStatisticLogVisibleForMigrationOnly()) {
-				toBeMovedFiles.add(logFile);
-			}
-		}
-		
-		File concreteOldCourseLogsDir = new File(globalOldCourseLogsDir, courseLogDir.getParentFile().getName());
-		if (concreteOldCourseLogsDir.exists() && !concreteOldCourseLogsDir.isDirectory()) {
-			log.error("**** !!!! Resource exists but is not a directory: "+concreteOldCourseLogsDir.getAbsolutePath());
-			return false;
-		} else if (!concreteOldCourseLogsDir.exists() && !concreteOldCourseLogsDir.mkdirs()) {
-			log.error("**** !!!! Could not create directory:: "+concreteOldCourseLogsDir.getAbsolutePath());
-			return false;
-		}
-		
-		for (Iterator<File> it = toBeMovedFiles.iterator(); it.hasNext();) {
-			File toBeMovedFile = it.next();
-			File targetFile = new File(concreteOldCourseLogsDir, toBeMovedFile.getName());
-			if (!toBeMovedFile.renameTo(targetFile)) {
-				log.error("**** !!!! Could not move file "+toBeMovedFile.getAbsolutePath()+" to "+targetFile.getAbsolutePath());
-				return false;
-			}
-		}
-		
-		logFiles = courseLogDir.listFiles();
-		if (logFiles!=null && logFiles.length>0) {
-			log.warn("**** !!!! Directory is not empty: "+courseLogDir.getAbsolutePath());
-			return false;
-		}
-		
-		if (!courseLogDir.delete()) {
-			log.error("**** !!!! Could not delete directory: "+courseLogDir.getAbsolutePath());
-			return false;
-		}
-		
-		return true;
-	}
-
-	/** copied from 6.2.x version of CourseLogsArchiveManager and modified file handling to avoid going via VFS **/
-	private File readSequence(File leaf, File outDir){
-		
-		String line;
-		File resultingFile = new File(outDir, leaf.getName());
-
-		BufferedReader br = null;
-		FileOutputStream fos = null;
-		BufferedWriter writer = null;
-		boolean zeroErrors = true;
-		try {
-			br = new BufferedReader(new InputStreamReader(new FileInputStream(leaf)));
-			fos = new FileOutputStream(resultingFile);
-			writer = new BufferedWriter(new OutputStreamWriter(fos));
-			while(null != (line = br.readLine())){
-					line = convertLine(line);
-					// <MODIFIED FOR SAFETY>
-					if (line.length()==0) {
-						log.warn("**** !!!! Conversion failed with file: "+leaf);
-						zeroErrors = false;
-					}
-					// </MODIFIED FOR SAFETY>
-					writer.append(line);
-					writer.append("\r\n");
-			}
-		} catch (IOException e) {
-			log.error("**** !!!! Could not convert file to apache format: "+leaf);
-			return null;
-		} finally {
-			if (!zeroErrors) {
-				filesWithApacheConversionErrors_++;
-			}
-			if (br!=null) {
-				try{ br.close(); } catch(Exception e) {
-					// this empty catch is ok
-				}
-			}
-			if (writer!=null) {
-				try{ writer.close(); } catch(Exception e) {
-					// this empty catch is ok
-				}
-			}
-		}
-		return resultingFile;
-	}
-	
-	/** copied 1:1 from 6.2.x version of CourseLogsArchiveManager **/
-	private String convertLine(String line){
-		StringBuilder sb = new StringBuilder();
-		String[] splitters = line.split("\t");
-		
-		// <MODIFIED FOR SAFETY>
-		if (splitters.length<5) {
-			log.error("**** !!!! Could not convert line - fewer than 5 fields: "+line);
-			return "";
-		}
-		// </MODIFIED FOR SAFETY>
-
-		sb.append(splitters[2]);
-		sb.append(" - ");
-		sb.append(splitters[2]);
-
-		String timeStamp = splitters[0];
-		sb.append(" [");
-		sb.append(timeStamp.substring(8,10)); // day
-		sb.append("/");
-		sb.append(getMonth(timeStamp.substring(5,7))); // month
-		sb.append("/");
-		sb.append(timeStamp.substring(0,4)); // year
-		sb.append(":");
-		sb.append(timeStamp.substring(11,16));
-		sb.append(" +0000] \"GET /");
-		sb.append(splitters[3].trim());
-		sb.append("_");
-		sb.append(splitters[4].replaceAll(" ", "_"));
-		if(splitters.length > 5){
-			sb.append("_");
-			sb.append(splitters[5].trim());
-		}
-		if(splitters.length > 6){
-			sb.append("_");
-			sb.append(splitters[6].trim());
-		}
-		
-		sb.append(" HTTP/1.0\" 200 100");
-		return sb.toString();
-	}
-	
-	/** copied 1:1 from 6.2.x version of CourseLogsArchiveManager **/
-	private String getMonth(String num){
-		if(num.startsWith("0")) num = num.substring(1);
-		int i = Integer.parseInt(num);
-		String[] months = new String[]{"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
-		return months[i-1];
-	}
-	
-
-	public String getVersion() {
-		return VERSION;
-	}
-
-	public Map<String, NotificationsUpgrade> getNotificationUpgrades() {
-		if (notificationUpgrades == null) {
-			synchronized(lockObject) {
-				if (notificationUpgrades == null) { // check again in synchronized-block, only one may create list
-					notificationUpgrades = new HashMap<String,NotificationsUpgrade>();
-					Map<String, Object> notificationUpgradeMap = CoreSpringFactory.getBeansOfType(CoreBeanTypes.notificationsUpgrade);
-					Collection<Object> notificationUpgradeValues = notificationUpgradeMap.values();
-					for (Object object : notificationUpgradeValues) {
-						NotificationsUpgrade notificationsUpgrade = (NotificationsUpgrade) object;
-						log.debug("initNotificationUpgrades notificationsUpgrade=" + notificationsUpgrade);
-						notificationUpgrades.put(notificationsUpgrade.getType(), notificationsUpgrade);
-					}	
-				}
-			}
-		}
-		return notificationUpgrades;
-	}
-
-}
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_6_3_3.java b/src/main/java/org/olat/upgrade/OLATUpgrade_6_3_3.java
deleted file mode 100644
index 359c3bfb30d77318c9d070fde3e4f91382bfa4ef..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_6_3_3.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-
-package org.olat.upgrade;
-
-import java.io.File;
-import java.util.List;
-
-import org.olat.basesecurity.Authentication;
-import org.olat.basesecurity.BaseSecurity;
-import org.olat.basesecurity.BaseSecurityManager;
-import org.olat.basesecurity.BaseSecurityModule;
-import org.olat.basesecurity.Constants;
-import org.olat.basesecurity.SecurityGroup;
-import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.id.Identity;
-import org.olat.core.util.WebappHelper;
-import org.olat.login.auth.WebDAVAuthManager;
-import org.olat.shibboleth.ShibbolethDispatcher;
-
-/**
- * Description:<br>
- * Upgrade to OLAT 6.2:
- * - Migration of old wiki-fields to flexiform 
- * 
- * Code is already here for every update. 
- * Method calls will be commented out step by step when corresponding new controllers are ready.
- * As long as there will be other things to migrate Upgrade won't be set to DONE!
- * 
- * <P>
- * Initial Date: 20.06.09 <br>
- * 
- * @author Roman Haag, roman.haag@frentix.com, www.frentix.com
- */
-public class OLATUpgrade_6_3_3 extends OLATUpgrade {
-	private static final String VERSION = "OLAT_6.3.3";
-	
-	private boolean migrateOlatAuthToWebDAVAuth;
-
-	private static final String TASK_MIGRATE_TO_WEBDAV_PASSWORDS = "Migrate to WebDAV passwords";
-	
-	private static final String TASK_MIGRATE_WRONGLY_ENCODED_ICAL_LINKS = "Migrate wrongly encoded ical links";
-	
-	public boolean isMigrateOlatAuthToWebDAVAuth() {
-		return migrateOlatAuthToWebDAVAuth;
-	}
-
-	public void setMigrateOlatAuthToWebDAVAuth(boolean migrateOlatAuthToWebDAVAuth) {
-		this.migrateOlatAuthToWebDAVAuth = migrateOlatAuthToWebDAVAuth;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPreSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPreSystemInitUpgrade(UpgradeManager upgradeManager) {
-		return false;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPostSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	public boolean doPostSystemInitUpgrade(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (uhd == null) {
-			// has never been called, initialize
-			uhd = new UpgradeHistoryData();
-		} else {
-			if (uhd.isInstallationComplete()) return false;
-		}
-		
-		//upgrade to webdav password
-		migrateToWebDAVPassword(upgradeManager, uhd);
-		
-
-		// OLAT-5736: migrate ical files containing wrong "§" characters in node-links (course and group cals effected)
-		migrateWronglyEncodedICalLinks(upgradeManager, uhd);
-		
-		uhd.setInstallationComplete(true);
-		upgradeManager.setUpgradesHistory(uhd, VERSION);
-		return true;
-	}
-	
-	private void migrateWronglyEncodedICalLinks(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (uhd.getBooleanDataValue(TASK_MIGRATE_WRONGLY_ENCODED_ICAL_LINKS)) {
-			// already migrated
-			return;
-		}
-		
-		// need to migrate now
-		log.audit("migrateWronglyEncodedICalLinks: START");
-		File userDataDir = new File(WebappHelper.getUserDataRoot());
-		File calendarsDir = new File(userDataDir, "calendars");
-		File courseDir = new File(calendarsDir, "course");
-		log.audit("migrateWronglyEncodedICalLinks: Migrating course directory: "+courseDir);
-		CalendarXOlatLinkUTF8Fix.migrate(courseDir);
-		log.audit("migrateWronglyEncodedICalLinks: Done migrating course directory: "+courseDir);
-		File groupDir = new File(calendarsDir, "group");
-		log.audit("migrateWronglyEncodedICalLinks: Migrating group directory: "+groupDir);
-		CalendarXOlatLinkUTF8Fix.migrate(groupDir);
-		log.audit("migrateWronglyEncodedICalLinks: Done migrating group directory: "+groupDir);
-		
-		log.audit("migrateWronglyEncodedICalLinks: DONE");
-		
-		uhd.setBooleanDataValue(TASK_MIGRATE_WRONGLY_ENCODED_ICAL_LINKS, true);
-		upgradeManager.setUpgradesHistory(uhd, VERSION);
-	}
-	
-	private void migrateToWebDAVPassword(UpgradeManager upgradeManager, UpgradeHistoryData uhd) {
-		if (!uhd.getBooleanDataValue(TASK_MIGRATE_TO_WEBDAV_PASSWORDS)) {
-			if(!migrateOlatAuthToWebDAVAuth) {
-				//don't migrate the OLAT password
-				uhd.setBooleanDataValue(TASK_MIGRATE_TO_WEBDAV_PASSWORDS, true);
-				upgradeManager.setUpgradesHistory(uhd, VERSION);
-				return;
-			}
-			
-			BaseSecurity secMgr = BaseSecurityManager.getInstance();
-			//filter all admins
-			SecurityGroup adminGroup = secMgr.findSecurityGroupByName(Constants.GROUP_ADMIN);
-			//get all identities
-			
-			int count = 0;
-			List<Identity> identitiesList = secMgr.getIdentitiesByPowerSearch(null, null, true, null, null, null, null, null, null, null, null);
-			DBFactory.getInstance().intermediateCommit();
-			for(Identity identity:identitiesList) {
-				if(count++ % 10 == 0) {
-					DBFactory.getInstance().intermediateCommit();
-				}
-				
-				boolean admin = secMgr.isIdentityInSecurityGroup(identity, adminGroup);
-				if(admin) {
-					log.audit("No OLAT Auth. provider migrated for admin: " + identity.getName());
-					continue;
-				}
-
-				Authentication olatAuth = null, webDAVAuth = null, shibAuth = null;
-				List<Authentication> auths = secMgr.getAuthentications(identity);
-				for(Authentication auth:auths) {
-					if(WebDAVAuthManager.PROVIDER_WEBDAV.equals(auth.getProvider())) {
-						webDAVAuth = auth;
-					} else if(BaseSecurityModule.getDefaultAuthProviderIdentifier().equals(auth.getProvider())) {
-						olatAuth = auth;
-					} else if(ShibbolethDispatcher.PROVIDER_SHIB.equals(auth.getProvider())) {
-						shibAuth = auth;
-					}
-				}
-				
-				if(webDAVAuth == null && olatAuth != null && shibAuth != null) {
-					String hashedPwd = olatAuth.getCredential();
-					log.audit("Create WebDAV Auth. provider for: " + identity.getName());
-					webDAVAuth = secMgr.createAndPersistAuthentication(identity, WebDAVAuthManager.PROVIDER_WEBDAV, identity.getName(), hashedPwd);
-					if(webDAVAuth != null) {
-						log.audit("Delete OLAT Auth. provider for: " + identity.getName());
-						secMgr.deleteAuthentication(olatAuth);
-					}
-				}
-			}
-
-			uhd.setBooleanDataValue(TASK_MIGRATE_TO_WEBDAV_PASSWORDS, true);
-			upgradeManager.setUpgradesHistory(uhd, VERSION);
-		}
-	}
-
-	public String getVersion() {
-		return VERSION;
-	}
-}
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_7_0_0.java b/src/main/java/org/olat/upgrade/OLATUpgrade_7_0_0.java
deleted file mode 100644
index d9aa14aa62588c8e2bf08362885e2591327d7da7..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_7_0_0.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.
-*/
-package org.olat.upgrade;
-
-
-/**
- * Description:<br>
- * OLATUpgrade_7_0_0
- * 
- * <P>
- * Initial Date:  25.03.2010 <br>
- * @author guido
- */
-public class OLATUpgrade_7_0_0 extends OLATUpgrade {
-	private static final String VERSION = "OLAT_7.0";
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPostSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	@Override
-	public boolean doPostSystemInitUpgrade(UpgradeManager upgradeManager) {
-		UpgradeHistoryData uhd = upgradeManager.getUpgradesHistory(VERSION);
-		if (uhd == null) {
-			// has never been called, initialize
-			uhd = new UpgradeHistoryData();
-		} else {
-			if (uhd.isInstallationComplete()) return false;
-		}
-			
-		uhd.setInstallationComplete(true);
-		upgradeManager.setUpgradesHistory(uhd, VERSION);
-		log.audit("Finished OLATUpgrade_7_0_0 successfully!" );
-		return true;
-	}
-	
-
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#doPreSystemInitUpgrade(org.olat.upgrade.UpgradeManager)
-	 */
-	@Override
-	public boolean doPreSystemInitUpgrade(UpgradeManager upgradeManager) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	/**
-	 * @see org.olat.upgrade.OLATUpgrade#getVersion()
-	 */
-	@Override
-	public String getVersion() {
-		return VERSION;
-	}
-
-}
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_7_1_1.java b/src/main/java/org/olat/upgrade/OLATUpgrade_7_1_1.java
index 3c12a382a42f29a5ab4f281703f09242b790ce82..375e6e53f583d30425f35d3b52bf0367fbfcf170 100644
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_7_1_1.java
+++ b/src/main/java/org/olat/upgrade/OLATUpgrade_7_1_1.java
@@ -256,7 +256,7 @@ public class OLATUpgrade_7_1_1 extends OLATUpgrade {
 			recurseIntoTemplateAndCheck(temps, new ArrayList<PortfolioStructure>(),portfolioStructure);
 		}
 		// get unique root-templates 
-		HashSet h = new HashSet(temps);
+		HashSet<PortfolioStructure> h = new HashSet<PortfolioStructure>(temps);
 		temps.clear();
 		temps.addAll(h);
 		return temps;
diff --git a/src/main/java/org/olat/upgrade/UpgradeManager.java b/src/main/java/org/olat/upgrade/UpgradeManager.java
index 5281dc77c2190233484162e9d88a4c99ed8d2f0a..71ea10e00a8cd9f86ced488de6c9bd7b5b12e37c 100644
--- a/src/main/java/org/olat/upgrade/UpgradeManager.java
+++ b/src/main/java/org/olat/upgrade/UpgradeManager.java
@@ -34,6 +34,7 @@ import javax.sql.DataSource;
 import org.olat.core.commons.persistence.DBFactory;
 import org.olat.core.configuration.Initializable;
 import org.olat.core.gui.control.Event;
+import org.olat.core.logging.AssertException;
 import org.olat.core.logging.StartupException;
 import org.olat.core.manager.BasicManager;
 import org.olat.core.util.WebappHelper;
@@ -109,6 +110,16 @@ public abstract class UpgradeManager extends BasicManager implements Initializab
 		// load history of previous upgrades using xstream
 		initUpgradesHistories();
 		if (needsUpgrade) {
+			boolean sevenOrNewer = false;
+			for(OLATUpgrade upgrade:upgradesDefinitions.getUpgrades()) {
+				if(upgrade.getVersion().startsWith("OLAT_7") || upgrade.getVersion().startsWith("OLAT_8")) {
+					sevenOrNewer = true;
+				}
+			}
+			if(!sevenOrNewer) {
+				throw new AssertException("Upgrade first your installtion to OLAT 7.0 and after go with OpenOLAT");
+			}
+			
 			if (autoUpgradeDatabase) {
 				runAlterDbStatements();
 			} else {
@@ -168,7 +179,7 @@ public abstract class UpgradeManager extends BasicManager implements Initializab
 		File upgradesDir = new File(WebappHelper.getUserDataRoot(), SYSTEM_DIR);
 		File upgradesHistoriesFile = new File(upgradesDir, INSTALLED_UPGRADES_XML);
 		if (upgradesHistoriesFile.exists()) {
-			this.upgradesHistories = (Map<String, UpgradeHistoryData>) XStreamHelper.readObject(upgradesHistoriesFile);
+			this.upgradesHistories = (Map<String, UpgradeHistoryData>) XStreamHelper.createXStreamInstance().fromXML(upgradesHistoriesFile);
 		} else {
 			if (this.upgradesHistories == null) {
 				this.upgradesHistories = new HashMap<String, UpgradeHistoryData>();
@@ -186,7 +197,7 @@ public abstract class UpgradeManager extends BasicManager implements Initializab
 		for (OLATUpgrade upgrade: upgrades) {
 			UpgradeHistoryData uhd = new UpgradeHistoryData();
 			uhd.setInstallationComplete(true);
-			uhd.setBooleanDataValue(upgrade.TASK_DP_UPGRADE, true);
+			uhd.setBooleanDataValue(OLATUpgrade.TASK_DP_UPGRADE, true);
 			setUpgradesHistory(uhd, upgrade.getVersion());
 		}
 		
diff --git a/src/main/java/org/olat/upgrade/UpgradeManagerImpl.java b/src/main/java/org/olat/upgrade/UpgradeManagerImpl.java
index 5a1d07f46d36edceaafa94700e044e37d9876ae3..4c8eb013df06ee32379d693d74a2aa197c7f8de0 100644
--- a/src/main/java/org/olat/upgrade/UpgradeManagerImpl.java
+++ b/src/main/java/org/olat/upgrade/UpgradeManagerImpl.java
@@ -137,9 +137,8 @@ public class UpgradeManagerImpl extends UpgradeManager {
 			statement  = dataSource.getConnection().createStatement();
 			
 			Iterator<OLATUpgrade> iter = upgrades.iterator();
-			OLATUpgrade upgrade = null;
 			while (iter.hasNext()) {
-				upgrade = iter.next();
+				OLATUpgrade upgrade = iter.next();
 				String alterDbStatementsFilename = upgrade.getAlterDbStatements();
 				if (alterDbStatementsFilename != null) {
 					UpgradeHistoryData uhd = getUpgradesHistory(upgrade.getVersion());
@@ -148,9 +147,9 @@ public class UpgradeManagerImpl extends UpgradeManager {
 						uhd = new UpgradeHistoryData();
 					} 
 						
-					if (!uhd.getBooleanDataValue(upgrade.TASK_DP_UPGRADE)) {
+					if (!uhd.getBooleanDataValue(OLATUpgrade.TASK_DP_UPGRADE)) {
 						loadAndExecuteSqlStatements(statement, alterDbStatementsFilename, dialect);
-						uhd.setBooleanDataValue(upgrade.TASK_DP_UPGRADE, true);
+						uhd.setBooleanDataValue(OLATUpgrade.TASK_DP_UPGRADE, true);
 						setUpgradesHistory(uhd, upgrade.getVersion());
 						logAudit("Successfully executed alter DB statements for Version::" + upgrade.getVersion());
 					}
diff --git a/src/main/java/org/olat/upgrade/_spring/upgradeContext.xml b/src/main/java/org/olat/upgrade/_spring/upgradeContext.xml
index ef0612fd97bf81dbf4fd3650435c000f7f4b2701..ddeecd14f9ae5ddbe6ff6082c3f81eaee2dee133 100644
--- a/src/main/java/org/olat/upgrade/_spring/upgradeContext.xml
+++ b/src/main/java/org/olat/upgrade/_spring/upgradeContext.xml
@@ -28,35 +28,6 @@
 			<list>
 				<!-- add upgrade bean here, if you need to run DB upgrades add the property "alterDbStatements" with the 
 				filename from the /database/[dialect]/ directory -->
-				<bean id="upgrade_4_0_0" class="org.olat.upgrade.OLATUpgrade_4_0_0"  />
-				<bean id="upgrade_4_1_0" class="org.olat.upgrade.OLATUpgrade_4_1_0"  />
-				<bean id="upgrade_4_1_1" class="org.olat.upgrade.OLATUpgrade_4_1_1"  />
-				<bean id="upgrade_5_0_0" class="org.olat.upgrade.OLATUpgrade_5_0_0"  />
-				<bean id="upgrade_5_1_0" class="org.olat.upgrade.OLATUpgrade_5_1_0"  />
-				<bean id="upgrade_5_1_1" class="org.olat.upgrade.OLATUpgrade_5_1_1"  />
-				<bean id="upgrade_5_2_0" class="org.olat.upgrade.OLATUpgrade_5_2_0"  />
-				<bean id="upgrade_6_0_0" class="org.olat.upgrade.OLATUpgrade_6_0_0"  />
-				<bean id="upgrade_6_1_0" class="org.olat.upgrade.OLATUpgrade_6_1_0" >
-					<property name="alterDbStatements" value="alter_6_0_x_to_6_1_0.sql"/>
-				</bean>
-				<bean id="upgrade_6_1_1" class="org.olat.upgrade.OLATUpgrade_6_1_1" >
-					<constructor-arg ref="userFileDeletionManager" />
-				</bean>
-				<bean id="upgrade_6_2_0" class="org.olat.upgrade.OLATUpgrade_6_2_0" >
-					<property name="alterDbStatements" value="alter_6_1_1_to_6_2_0.sql"/>
-				</bean>
-				<bean id="upgrade_6_3_0" class="org.olat.upgrade.OLATUpgrade_6_3_0" >
-					<constructor-arg index="0" ref="deletionModule" />
-					<constructor-arg index="1" ref="courseModule" />
-					<constructor-arg index="2" value="${node.id}" />
-					<property name="alterDbStatements" value="alter_6_2_x_to_6_3_0.sql"/>
-				</bean>
-				<bean id="upgrade_6_3_3" class="org.olat.upgrade.OLATUpgrade_6_3_3">
-					<property name="migrateOlatAuthToWebDAVAuth" value="true"/>
-				</bean>
-				<bean id="upgrade_7_0_0" class="org.olat.upgrade.OLATUpgrade_7_0_0" >
-					<property name="alterDbStatements" value="alter_6_3_x_to_7_0_0.sql"/>
-				</bean>
 				<bean id="upgrade_7_0_1" class="org.olat.upgrade.OLATUpgrade_7_0_1"/>			
 				<bean id="upgrade_7_1_0" class="org.olat.upgrade.OLATUpgrade_7_1_0">
 					<property name="portletRepositoryStudentEnabled" value="${portlet.repository.student.enabled}"/>
@@ -70,14 +41,4 @@
 		</property>
 	</bean>
 	
-	<!-- Needed by upgrade_6_3_0 -->
-	<bean id="org.olat.modules.fo.ForumNotificationsUpgrade" class="org.olat.modules.fo.ForumNotificationsUpgrade" />
-	<bean id="org.olat.course.assessment.AssessmentNotificationsUpgrade" class="org.olat.course.assessment.AssessmentNotificationsUpgrade" />
-	<bean id="org.olat.core.commons.modules.bc.FolderNotificationsUpgrade" class="org.olat.notifications.bc.FolderNotificationsUpgrade" />
-	<bean id="org.olat.modules.dialog.FileUploadNotificationsUpgrade" class="org.olat.modules.dialog.FileUploadNotificationsUpgrade" />
-	<bean id="org.olat.course.nodes.ta.DropboxFileUploadNotificationsUpgrade" class="org.olat.course.nodes.ta.DropboxFileUploadNotificationsUpgrade" />
-	<bean id="org.olat.modules.wiki.WikiPageChangeOrCreateNotificationsUpgrade" class="org.olat.modules.wiki.WikiPageChangeOrCreateNotificationsUpgrade" />
-	<bean id="org.olat.commons.calendar.CalendarNotificationsUpgrade" class="org.olat.commons.calendar.CalendarNotificationsUpgrade" />
-	<bean id="org.olat.user.notification.NewUsersNotificationsUpgrade" class="org.olat.user.notification.NewUsersNotificationsUpgrade" />
-	
 </beans>
\ No newline at end of file
diff --git a/src/main/java/org/olat/user/notification/NewUsersNotificationsUpgrade.java b/src/main/java/org/olat/user/notification/NewUsersNotificationsUpgrade.java
deleted file mode 100644
index e4463d2b56fc4744fba0b1c5709dce58881d9978..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/user/notification/NewUsersNotificationsUpgrade.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-package org.olat.user.notification;
-
-import org.olat.core.util.notifications.NotificationsUpgrade;
-import org.olat.core.util.notifications.Publisher;
-
-/**
- * 
- * Description:<br>
- * 
- * <P>
- * Initial Date:  7 jan. 2010 <br>
- * @author srosse, stephane.rosse@frentix.com
- */
-public class NewUsersNotificationsUpgrade implements NotificationsUpgrade {
-
-	@Override
-	public Publisher ugrade(Publisher publisher) {
-		if(publisher.getBusinessPath() != null && publisher.getBusinessPath().startsWith("[")) return null;
-		
-		publisher.setBusinessPath("[NewIdentityCreated:0]");
-		return publisher;
-	}
-
-	@Override
-	public String getType() {
-		return "User";
-	}
-}
diff --git a/src/main/resources/META-INF/services/org.radeox.filter.Filter b/src/main/resources/META-INF/services/org.radeox.filter.Filter
deleted file mode 100644
index dcf5792e4456ba54e4841b7596a344593fff9555..0000000000000000000000000000000000000000
--- a/src/main/resources/META-INF/services/org.radeox.filter.Filter
+++ /dev/null
@@ -1,26 +0,0 @@
-org.olat.core.util.radeox.ForumQuoteFilter
-
-# emotion filters
-org.olat.core.util.radeox.DevilFilter
-org.olat.core.util.radeox.AngelFilter
-org.olat.core.util.radeox.SmileFilter
-org.olat.core.util.radeox.SadFilter
-org.olat.core.util.radeox.ConfusedFilter
-org.olat.core.util.radeox.EmbarrassedFilter
-org.olat.core.util.radeox.OmgFilter
-org.olat.core.util.radeox.ShadeFilter
-org.olat.core.util.radeox.TeethFilter
-org.olat.core.util.radeox.TongueFilter
-org.olat.core.util.radeox.UglyFilter
-org.olat.core.util.radeox.WinkFilter
-
-# additional in case it would be inserted somewhere, to complete smiley-set
-org.olat.core.util.radeox.KissFilter
-org.olat.core.util.radeox.CryFilter
-
-
-# wikimedia compatibillity filters
-# org.olat.core.util.radeox.ItalicFilter
-
-# filters used to overwrite internal ones during migration to tinymce-htmlareas
-# org.olat.core.util.radeox.GenericFilterForMigration
diff --git a/src/main/resources/META-INF/services/org.radeox.macro.Macro b/src/main/resources/META-INF/services/org.radeox.macro.Macro
deleted file mode 100644
index 4e7b02ab4e5cf8a72bad39661e288f067aa3a92c..0000000000000000000000000000000000000000
--- a/src/main/resources/META-INF/services/org.radeox.macro.Macro
+++ /dev/null
@@ -1,2 +0,0 @@
-org.olat.core.util.radeox.MovieButtonMacro
-org.olat.core.util.radeox.MovieViewerMacro
\ No newline at end of file
diff --git a/src/main/resources/database/mysql/alter_3_0_0_to_3_0_1.sql b/src/main/resources/database/mysql/alter_3_0_0_to_3_0_1.sql
deleted file mode 100644
index 736500807909436f6406bda6a36d8613741d5fea..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_3_0_0_to_3_0_1.sql
+++ /dev/null
@@ -1,45 +0,0 @@
-##################
-# change column name. timestamp is a reserverd sql keyword
-alter table o_qtiresult change timestamp tstamp timestamp not null;
-
-##################
-# Change problematic float definition to a decimal definition. When storing a long in a float
-# the retrieved long is not the same as the one put when bigger than 1000000
-# 1) get already stored properties, save them in a textfile
-select concat('update o_property set floatvalue=\'',round(floatvalue,5),'\' where id=\'',id,'\';') from o_property where floatvalue is not null into outfile '/tmp/alter_floatvalue.sql';
-
-# 2) Alter the table definition
-alter table o_property modify floatvalue decimal(78,36);
-
-# 3) now manually at command line:
-# mysql -u olat -p olat < /tmp/alter_floatvalue.sql
-
-# 4) Change the same problematic float fields in qtiresult and qtiresultset
-# No data will be migrated, it is very unlikely that a user has a score that is bigger than 1000000...
-alter table o_qtiresult modify score decimal(78,36);
-alter table o_qtiresultset modify score decimal(78,36);
-
-##
-## BuddyGroup related stuff
-##
-drop table if exists o_bg_buddygroups ;
---
-create table o_bg_buddygroups (
-   group_id BIGINT not null,
-   lastmodified DATETIME not null,
-   creationdate DATETIME,
-   lastusage DATETIME,
-   groupname VARCHAR(128),
-   descr text,
-   intromessage text,
-   fk_ownergroup BIGINT unique,
-   fk_partipiciantgroup BIGINT unique,
-   primary key (group_id)
-) ;
---
-alter table o_bg_buddygroups ENGINE = InnoDB;
---
-create index bg_name_idx on o_bg_buddygroups (groupname);
-alter table o_bg_buddygroups add index FK4A14ACF0C06E3EF3 (fk_partipiciantgroup), add constraint FK4A14ACF0C06E3EF3 foreign key (fk_partipiciantgroup) references o_bs_secgroup (id) ;
-alter table o_bg_buddygroups add index FK4A14ACF0A1FAC766 (fk_ownergroup), add constraint FK4A14ACF0A1FAC766 foreign key (fk_ownergroup) references o_bs_secgroup (id) ;
---
\ No newline at end of file
diff --git a/src/main/resources/database/mysql/alter_3_0_1_to_3_1_0.sql b/src/main/resources/database/mysql/alter_3_0_1_to_3_1_0.sql
deleted file mode 100644
index a55c5aab78bef488d336351462e8d94a3bf09cbe..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_3_0_1_to_3_1_0.sql
+++ /dev/null
@@ -1,179 +0,0 @@
-SET FOREIGN_KEY_CHECKS=0;
-SET AUTOCOMMIT=0;
-
-#
-# the roles and names of the basesecurity policies at olat setup time have been consolidated
-#
-update o_olatresource set resname='BaseSecurityModule:RAdmins' where resname = 'Basesecurity:RAdmins';
-update o_olatresource set resname='BaseSecurityModule:RAuthor' where resname = 'Basesecurity:RAuthor';
-update o_olatresource set resname='BaseSecurityModule:RUsers' where resname = 'Basesecurity:RUsers';
-update o_olatresource set resname='SysinfoController' where resname = 'org.olat.admin.sysinfo.SysinfoController';
-update o_olatresource set resname='UserAdminController' where resname = 'org.olat.admin.user.UserAdminController';
-update o_olatresource set resname='UserChangePasswordController' where resname = 'org.olat.admin.user.UserChangePasswordController';
-update o_olatresource set resname='UserCreateController' where resname = 'org.olat.admin.user.UserCreateController';
-update o_olatresource set resname='QuotaController' where resname = 'org.olat.admin.quota.QuotaController';
-update o_olatresource set resname='ChangePasswordController' where resname = 'org.olat.user.ChangePasswordController';
-update o_olatresource set resname='PersonalSettingsController' where resname = 'org.olat.user.PersonalSettingsController';
-update o_olatresource set resname='BaseSecurityModule:SecGroup' where resname = 'SecGroup' and resid = 0;
-update o_olatresource set resname='CourseModule' where resname = 'Course';
-update o_olatresource set resname='BaseSecurityModule:RGuestOnly' where resname = 'Basesecurity:RGuestOnly';
-update o_olatresource set resname='BaseSecurityModule:WHOLE-OLAT' where resname = 'Basesecurity:WHOLE-OLAT';
-
-#
-# update restype and displayrestype infos 
-#
-update o_bookmark set olatrestype='RepositoryEntry' where olatrestype='repoEntry';
-update o_bookmark set displayrestype='CourseModule' where displayrestype='Course';
-
-#
-# add identity fk to authentication
-#
-alter table o_bs_authentication add (identity_fk bigint);
-update o_bs_authentication a, o_bs_identity i set a.identity_fk=i.id where i.fk_auth_id=a.id;
-alter table o_bs_authentication modify identity_fk bigint not null;
-alter table o_bs_authentication change column hashedpassword credential varchar(255);
-alter table o_bs_authentication drop index hashedpassword_idx;
-alter table o_bs_authentication add index  credential_idx (credential);
-# If the next uncommented line fails you need to lookup your constraint name on 'fk_auth_id' with 
-# 'show create table o_bs_identity;'
-# and run the next line with 'o_bs_identity_ibfk_1' replaced by your constraint name to delte
-# the foreign key constraint first.
-# alter table o_bs_identity drop foreign key o_bs_identity_ibfk_1;
-alter table o_bs_identity drop foreign key FKFF94111CB3E3F198;
-alter table o_bs_identity drop index FKFF94111CB3E3F198;
-alter table o_bs_identity drop column fk_auth_id;
-alter table o_bs_authentication add index FKC6A5445652595FE6 (identity_fk), add constraint FKC6A5445652595FE6 foreign key (identity_fk) references o_bs_identity (id);
-
-
-#
-# update resourceTypeNames in olat properties
-#
-update o_property set resourceTypeName = 'Quota' where resourceTypeName = 'org.olat.Quota';
-update o_property set resourceTypeName = 'BusinessGroup' where resourceTypeName = 'org.olat.group.BusinessGroupImpl';
-update o_property set resourceTypeName = 'BusinessGroup' where resourceTypeName = 'BusinessGroupImpl';
-update o_property set resourceTypeName = 'Forum' where resourceTypeName = 'forum';
-update o_property set resourceTypeName = 'RepositoryEntry' where resourceTypeName = 'repoEntry';
-update o_property set resourceTypeName = 'CourseModule' where resourceTypeName = 'Course';
-
-#
-# changed timestamp definition on qti results table
-#
-alter table o_qtiresult change column tstamp tstamp datetime not null;
-
-#
-# create index on olat resource
-#
-create index name_idx on o_olatresource (resname);
-
-#
-# drop old learning group tables
-# WARNING: all leanring group definitions will be lost! 3.1 has a complete new 
-# groupmanagement. Make sure you you don't need your 3.0 groups anymore!!
-#
-drop table o_gm_areagroupmembership ;
-drop table o_gm_learningarea ;
-drop table o_gm_learningcontext ;
-drop table o_gm_learninggroup ;
-drop table o_gm_right ;
-drop table o_bg_buddygroups;
-
-#
-# add business group
-#
-create table o_gp_bgcontext (
-   groupcontext_id bigint not null,
-   lastmodified datetime not null,
-   creationdate datetime,
-   name varchar(255) not null,
-   descr text,
-   grouptype varchar(255) not null,
-   ownergroup_fk bigint unique,
-   primary key (groupcontext_id)
-);
-create table o_gp_bgcontextresource_rel (
-   groupcontextresource_id bigint not null,
-   lastmodified datetime not null,
-   creationdate datetime,
-   oresource_id bigint not null,
-   groupcontext_fk bigint not null,
-   primary key (groupcontextresource_id)
-);
-create table o_gp_business (
-   group_id bigint not null,
-   lastmodified datetime not null,
-   creationdate datetime,
-   lastusage datetime,
-   businessgrouptype varchar(128),
-   groupname varchar(128),
-   descr text,
-   minparticipants integer,
-   maxparticipants integer,
-   groupcontext_fk bigint,
-   fk_ownergroup bigint unique,
-   fk_partipiciantgroup bigint unique,
-   primary key (group_id)
-);
-create table o_gp_bgtoarea_rel (
-   bgtoarea_id bigint not null,
-   lastmodified datetime not null,
-   creationdate datetime,
-   group_fk bigint not null,
-   area_fk bigint not null,
-   primary key (bgtoarea_id),
-   unique (group_fk, area_fk)
-);
-create table o_gp_bgarea (
-   area_id bigint not null,
-   lastmodified datetime not null,
-   creationdate datetime,
-   name varchar(255) not null,
-   descr text,
-   groupcontext_fk bigint not null,
-   primary key (area_id)
-);
-
-alter table o_gp_business ENGINE = InnoDB;
-alter table o_gp_bgcontextresource_rel ENGINE = InnoDB;
-alter table o_gp_bgcontext ENGINE = InnoDB;
-alter table o_gp_bgarea ENGINE = InnoDB;
-alter table o_gp_bgtoarea_rel ENGINE = InnoDB;
-
-create index type_idx on o_gp_bgcontext (grouptype);
-create index name_idx on o_gp_bgcontext (name);
-alter table o_gp_bgcontext add index FK1C154FC47E4A0638 (ownergroup_fk), add constraint FK1C154FC47E4A0638 foreign key (ownergroup_fk) references o_bs_secgroup (id);
-alter table o_gp_bgcontextresource_rel add index FK9903BEAC9F9C3F1D (oresource_id), add constraint FK9903BEAC9F9C3F1D foreign key (oresource_id) references o_olatresource (resource_id);
-alter table o_gp_bgcontextresource_rel add index FK9903BEACDF6BCD14 (groupcontext_fk), add constraint FK9903BEACDF6BCD14 foreign key (groupcontext_fk) references o_gp_bgcontext (groupcontext_id);
-create index gp_name_idx on o_gp_business (groupname);
-create index gp_type_idx on o_gp_business (businessgrouptype);
-alter table o_gp_business add index FKCEEB8A86DF6BCD14 (groupcontext_fk), add constraint FKCEEB8A86DF6BCD14 foreign key (groupcontext_fk) references o_gp_bgcontext (groupcontext_id);
-alter table o_gp_business add index FKCEEB8A86A1FAC766 (fk_ownergroup), add constraint FKCEEB8A86A1FAC766 foreign key (fk_ownergroup) references o_bs_secgroup (id);
-alter table o_gp_business add index FKCEEB8A86C06E3EF3 (fk_partipiciantgroup), add constraint FKCEEB8A86C06E3EF3 foreign key (fk_partipiciantgroup) references o_bs_secgroup (id);
-alter table o_gp_bgtoarea_rel add index FK9B663F2D1E2E7685 (group_fk), add constraint FK9B663F2D1E2E7685 foreign key (group_fk) references o_gp_business (group_id);
-alter table o_gp_bgtoarea_rel add index FK9B663F2DD381B9B7 (area_fk), add constraint FK9B663F2DD381B9B7 foreign key (area_fk) references o_gp_bgarea (area_id);
-create index name_idx on o_gp_bgarea (name);
-alter table o_gp_bgarea add index FK9EFAF698DF6BCD14 (groupcontext_fk), add constraint FK9EFAF698DF6BCD14 foreign key (groupcontext_fk) references o_gp_bgcontext (groupcontext_id);
-
-
-#
-# add catalog tables - draft
-#
-create table o_catentry (
-   message_id bigint not null,
-   lastmodified datetime not null,
-   creationdate datetime,
-   name varchar(100) not null,
-   description varchar(255),
-   externalURL varchar(255),
-   fk_olatresource bigint,
-   fk_ownergroup bigint not null unique,
-   type integer not null,
-   parent_id bigint,
-   primary key (message_id)
-);
-alter table o_catentry ENGINE = InnoDB;
-alter table o_catentry add index FKF4433C2C7B66B0D0 (parent_id), add constraint FKF4433C2C7B66B0D0 foreign key (parent_id) references o_catentry (message_id);
-alter table o_catentry add index FKF4433C2CA1FAC766 (fk_ownergroup), add constraint FKF4433C2CA1FAC766 foreign key (fk_ownergroup) references o_bs_secgroup (id);
-alter table o_catentry add index FKF4433C2C88C31018 (fk_olatresource), add constraint FKF4433C2C88C31018 foreign key (fk_olatresource) references o_olatresource (resource_id);
-
-COMMIT;
-SET FOREIGN_KEY_CHECKS=1;
\ No newline at end of file
diff --git a/src/main/resources/database/mysql/alter_3_1_0_to_3_1_1.sql b/src/main/resources/database/mysql/alter_3_1_0_to_3_1_1.sql
deleted file mode 100644
index defe2ae8c3ec94b4049d38bde110c0ac086ce17d..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_3_1_0_to_3_1_1.sql
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# the category table
-# - renamed message_id -> id
-# - renamed fk_olatresource -> fk_repoentry
-# - changed not null constraint on fk_ownergroup
-#
-set foreign_key_checks=0;
-drop table if exists o_catentry;
-create table o_catentry (
-   id bigint not null,
-   lastmodified datetime not null,
-   creationdate datetime,
-   name varchar(100) not null,
-   description varchar(255),
-   externalURL varchar(255),
-   fk_repoentry bigint,
-   fk_ownergroup bigint unique,
-   type integer not null,
-   parent_id bigint,
-   primary key (id)
-);
-alter table o_catentry ENGINE = InnoDB;
-alter table o_catentry add index FKF4433C2C7B66B0D0 (parent_id), add constraint FKF4433C2C7B66B0D0 foreign key (parent_id) references o_catentry (id);
-alter table o_catentry add index FKF4433C2CA1FAC766 (fk_ownergroup), add constraint FKF4433C2CA1FAC766 foreign key (fk_ownergroup) references o_bs_secgroup (id);
-alter table o_catentry add index FKF4433C2CDDD69946 (fk_repoentry), add constraint FKF4433C2CDDD69946 foreign key (fk_repoentry) references o_repositoryentry (repositoryentry_id);
-
-set foreign_key_checks=1;
diff --git a/src/main/resources/database/mysql/alter_3_1_2_to_3_1_3.sql b/src/main/resources/database/mysql/alter_3_1_2_to_3_1_3.sql
deleted file mode 100644
index 3f0aae1f9c399cfd4c4cd5182c23e23f00ea8f85..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_3_1_2_to_3_1_3.sql
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-# the repositoryentry table
-# - added canCopy flag
-#
-alter table o_repositoryentry add (canCopy bit not null);
-
-#
-# Add index on user attributes used by repository search
-#
-create index firstname_idx on o_user (firstname);
-create index lastname_idx on o_user (lastname);
diff --git a/src/main/resources/database/mysql/alter_3_1_3_to_3_1_4.sql b/src/main/resources/database/mysql/alter_3_1_3_to_3_1_4.sql
deleted file mode 100644
index cd26c0b4eb8eb54532108ac0a058a22f83c470a6..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_3_1_3_to_3_1_4.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# adding long value to property table
-#
-alter table o_property add longvalue bigint after floatvalue;
-
-#
-# TODO copy old values...
-#
-# 1) all forum keys are stored as longs, not as floats
-update o_property set longvalue=floatvalue, floatvalue=NULL where resourceTypeName='BusinessGroup' and category='collabtools' and name='forumKey';
-update o_property set longvalue=floatvalue, floatvalue=NULL where resourceTypeName='CourseModule' and category like 'NID:%' and name='forumKey';
-# 2) all visited forum messages are stored as longs, not as floats
-update o_property set longvalue=floatvalue, floatvalue=NULL where resourceTypeName='Forum' and category='rvst' and name='mid';
-# 3) all node attempts are stored as longs, not as floats
-update o_property set longvalue=floatvalue, floatvalue=NULL where resourceTypeName='CourseModule' and category like 'NID:%' and name='ATTEMPTS';
-# 4) update bookmark question decision recaller
-update o_property set longvalue=floatvalue, floatvalue=NULL where resourceTypeName='RepositoryEntry' and category='rvst';
-# 5) update group member visibility configuration
-update o_property set longvalue=floatvalue, floatvalue=NULL where resourceTypeName='BusinessGroup' and category='config' and name='displayMembers';
-
-
-# cleanup old data, make sure you did the alters in 3.0.1->3.1.0... otherwhise you need to alter this two lines first.
-delete from o_property where resourceTypeName='Course';
-delete from o_property where resourceTypeName='repoEntry';
-
diff --git a/src/main/resources/database/mysql/alter_3_1_4_to_3_2_0.sql b/src/main/resources/database/mysql/alter_3_1_4_to_3_2_0.sql
deleted file mode 100644
index 90e0ef330ef6c6303a231e2960eb6a3750249b44..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_3_1_4_to_3_2_0.sql
+++ /dev/null
@@ -1,109 +0,0 @@
-SET FOREIGN_KEY_CHECKS = 0;
-
-# new preference field for instant messaging
-alter table o_user add presencemessagespublic bit after fontsize;
-# use valid value for existing users
-update o_user set presencemessagespublic = 0;
-
-# new table for notes of users
-create table o_note (
-   note_id bigint not null,
-   lastmodified datetime not null,
-   creationdate datetime,
-   owner_id bigint,
-   resourcetypename varchar(255) not null,
-   resourcetypeid bigint not null,
-   sub_type varchar(255),
-   notetitle varchar(255),
-   notetext text,
-   primary key (note_id)
-);
-
-alter table o_note ENGINE = InnoDB;
-create index resid_idx on o_note (resourceTypeId);
-create index owner_idx on o_note (owner_id);
-create index restype_idx on o_note (resourceTypeName);
-alter table o_note add index FKC2D855C263219E27 (owner_id), add constraint FKC2D855C263219E27 foreign key (owner_id) references o_bs_identity (id);
-
-# modifying field name of table o_property from 'null' to 'not null'
-alter table o_property modify name varchar(255) not null;
-
-# new field for duration in o_qtiresultset and o_qtiresult
-alter table o_qtiresultset add duration bigint after creationdate;
-alter table o_qtiresult add duration bigint after tstamp;
-
-# new table o_noti_pub
-create table o_noti_pub (
-   publisher_id bigint not null,
-   lastmodified datetime not null,
-   creationdate datetime,
-   publishertype varchar(50) not null,
-   data text,
-   resname varchar(50),
-   resid bigint,
-   subident varchar(128),
-   state integer,
-   latestnews datetime not null,
-   primary key (publisher_id)
-);
-alter table o_noti_pub ENGINE = InnoDB;
-create index notif_type_idx on o_noti_pub (publishertype);
-create index name_idx on o_noti_pub (resname);
-
-
-# new table o_noti_sub
-create table o_noti_sub (
-   publisher_id bigint not null,
-   lastmodified datetime not null,
-   creationdate datetime,
-   fk_publisher bigint not null,
-   fk_identity bigint not null,
-   latestread datetime not null,
-   transresid varchar(255),
-   transsubidentifier varchar(255),
-   data text,
-   primary key (publisher_id),
-   unique (fk_publisher, fk_identity)
-);
-alter table o_noti_sub ENGINE = InnoDB;
-alter table o_noti_sub add index FK4FB8F04749E53702 (fk_publisher), add constraint FK4FB8F04749E53702 foreign key (fk_publisher) references o_noti_pub (publisher_id);
-alter table o_noti_sub add index FK4FB8F0476B1F22F8 (fk_identity), add constraint FK4FB8F0476B1F22F8 foreign key (fk_identity) references o_bs_identity (id);
-
-# modifying some field names from upper to lower case 
-alter table o_property change resourceTypeName resourcetypename varchar(255);
-alter table o_property change resourceTypeId resourcetypeid bigint;
-
-alter table o_catentry change externalURL externalurl varchar(255);
-
-alter table o_repositoryentry change initialAuthor initialauthor varchar(255) not null;
-alter table o_repositoryentry change canLaunch canlaunch bit not null;
-alter table o_repositoryentry change canDownload candownload bit not null;
-alter table o_repositoryentry change canCopy cancopy bit not null;
-alter table o_repositoryentry change launchCounter launchcounter bigint not null;
-alter table o_repositoryentry change downloadCounter downloadcounter bigint not null;
-
-# add default context flag to business group context
-alter table o_gp_bgcontext add defaultcontext bit not null after ownergroup_fk;
-create index default_idx on o_gp_bgcontext (defaultcontext);
-# set existing contexts to be default contexts. so far multiple contexts have not been supported
-update o_gp_bgcontext set defaultcontext=1;
-
-# group field is foreign key to business group
-alter table o_property modify grp bigint;
-alter table o_property drop index grp_idx;
-alter table o_property add index FKB60B1BA5190E5 (grp), add constraint FKB60B1BA5190E5 foreign key (grp) references o_gp_business (group_id);
-
-
-alter table o_bookmark modify column displayrestype varchar(50) not null;
-alter table o_bookmark modify column olatrestype varchar(50) not null;
-alter table o_gp_bgcontext modify column grouptype varchar(15) not null;
-alter table o_gp_business modify column businessgrouptype varchar(15) not null;
-alter table o_property modify column resourcetypename varchar(50);
-alter table o_repositoryentry modify column initialauthor varchar(128) not null;
-drop index descritpion_idx on o_repositoryentry;
-alter table o_repositoryentry modify description text;
-alter table o_catentry modify description text;
-alter table o_bookmark modify description text;
-
-
-SET FOREIGN_KEY_CHECKS = 1;
diff --git a/src/main/resources/database/mysql/alter_3_2_1_to_4_0_0.sql b/src/main/resources/database/mysql/alter_3_2_1_to_4_0_0.sql
deleted file mode 100644
index b18589e284b18eae067b8f9b5a05e7b4bc85c6c3..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_3_2_1_to_4_0_0.sql
+++ /dev/null
@@ -1,6 +0,0 @@
-SET FOREIGN_KEY_CHECKS = 0;
-
-# new column for subscriptions
-alter table o_noti_sub add column latestemailed datetime after latestread;
-
-SET FOREIGN_KEY_CHECKS = 1;
diff --git a/src/main/resources/database/mysql/alter_4_0_0_to_4_1_0.sql b/src/main/resources/database/mysql/alter_4_0_0_to_4_1_0.sql
deleted file mode 100644
index 9807a29c115f72d69c863b4b28c9da66bc2df149..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_4_0_0_to_4_1_0.sql
+++ /dev/null
@@ -1,8 +0,0 @@
-SET FOREIGN_KEY_CHECKS = 0;
-
-# change DECIMAL precision from DECIMAL(78,36) to standard DECIMAL(65,30) if upgrading from <5 to MySQL versions >=5.0.6
-# alter table o_qtiresult modify score DECIMAL(65,30);
-# alter table o_qtiresultset modify score DECIMAL(65,30);
-# alter table o_property modify floatvalue DECIMAL(65,30);
-
-SET FOREIGN_KEY_CHECKS = 1;
diff --git a/src/main/resources/database/mysql/alter_4_1_4_to_5_0_0.sql b/src/main/resources/database/mysql/alter_4_1_4_to_5_0_0.sql
deleted file mode 100644
index 04472e802550774c327c7cf228f460c0b333e619..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_4_1_4_to_5_0_0.sql
+++ /dev/null
@@ -1,12 +0,0 @@
-SET FOREIGN_KEY_CHECKS = 0;
-
-# add new column for waiting-list 
-alter table o_gp_business add column waitinglist_enabled bit after maxparticipants;
-alter table o_gp_business add column autocloseranks_enabled bit after waitinglist_enabled;
-alter table o_gp_business add column fk_waitinggroup bigint unique after fk_partipiciantgroup;
-
-# initilize existing value
-update o_gp_business set waitinglist_enabled = 'FALSE' ;
-update o_gp_business set autocloseranks_enabled = 'FALSE' ;
-
-SET FOREIGN_KEY_CHECKS = 1;
diff --git a/src/main/resources/database/mysql/alter_5_0_0_to_5_1_0.sql b/src/main/resources/database/mysql/alter_5_0_0_to_5_1_0.sql
deleted file mode 100644
index 7e05a339db28fb6166f99441f2838ba848cc191e..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_5_0_0_to_5_1_0.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-SET FOREIGN_KEY_CHECKS = 0;
-
-# add new canReference flag to repository
-alter table o_repositoryentry add column canreference bit not null after cancopy;
-
-# add new column lastlogin 
-alter table o_bs_identity add column lastlogin datetime after creationdate;
-
-SET FOREIGN_KEY_CHECKS = 1;
diff --git a/src/main/resources/database/mysql/alter_5_1_0_to_5_2_0.sql b/src/main/resources/database/mysql/alter_5_1_0_to_5_2_0.sql
deleted file mode 100644
index d42d4453ecaadbe8de45d18bb60204a5daec11c2..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_5_1_0_to_5_2_0.sql
+++ /dev/null
@@ -1,31 +0,0 @@
-SET FOREIGN_KEY_CHECKS = 0;
-
-# add new column lastusage 
-alter table o_repositoryentry add column lastusage datetime after creationdate;
-# add new column status 
-alter table o_bs_identity add column status integer after name;
-# initilize existing value
-update o_bs_identity set status = '2';
-
-create table o_lifecycle (
-   id bigint not null,
-   lastmodified datetime not null,
-   creationdate datetime,
-   persistenttypename varchar(50) not null,
-   persistentref bigint not null,
-   action varchar(50) not null,
-   lctimestamp datetime,
-   uservalue varchar(255),
-   primary key (id)
-);
-alter table o_lifecycle ENGINE = InnoDB;
-create index lc_pref_idx on o_lifecycle (persistentref);
-create index lc_type_idx on o_lifecycle (persistenttypename);
-create index lc_action_idx on o_lifecycle (action);
-create index identstatus_idx on o_bs_identity (status);
-
-# add new column statuscode for message
-alter table o_message add column statuscode int after forum_fk;
-update o_message set statuscode='0';
-
-SET FOREIGN_KEY_CHECKS = 1;
diff --git a/src/main/resources/database/mysql/alter_5_2_x_to_6_0_0.sql b/src/main/resources/database/mysql/alter_5_2_x_to_6_0_0.sql
deleted file mode 100644
index 84c54b44beb1bd1363a8fba704fbccbc56d08dd8..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_5_2_x_to_6_0_0.sql
+++ /dev/null
@@ -1,121 +0,0 @@
-SET FOREIGN_KEY_CHECKS = 0;
-
---
--- new table to store the users properties
-create table o_userproperty (
-   fk_user_id bigint not null,
-   propname varchar(255) not null,
-   propvalue varchar(255),
-   primary key (fk_user_id, propname)
-);
-alter table o_userproperty ENGINE = InnoDB;
-create index propvalue_idx on o_userproperty (propvalue);
-alter table o_userproperty add index FK4B04D83FD1A80C95 (fk_user_id), add constraint FK4B04D83FD1A80C95 foreign key (fk_user_id) references o_user (user_id);
-
---
--- migrate data from old user table to new userproperty table
--- make sure you get this right the first time, you can not run this twice!
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "firstName", firstname from o_user where firstname IS NOT NULL AND firstname!="";
-alter table o_user drop firstname; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "lastName", lastname from o_user where lastname IS NOT NULL AND lastname!="";
-alter table o_user drop lastname; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "email", email from o_user where email IS NOT NULL AND email!="";
-alter table o_user drop email; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "birthDay", birthday from o_user where birthday IS NOT NULL AND birthday!="";
-alter table o_user drop birthday; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "gender", gender from o_user where gender IS NOT NULL AND gender!="";
-alter table o_user drop gender; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "telMobile", telmobile from o_user where telmobile IS NOT NULL AND telmobile!="";
-alter table o_user drop telmobile; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "telOffice", teloffice from o_user where teloffice IS NOT NULL AND teloffice!="";
-alter table o_user drop teloffice; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "telPrivate", telprivate from o_user where telprivate IS NOT NULL AND telprivate!="";
-alter table o_user drop telprivate; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "institutionalUserIdentifier", institutionaluseridentifier from o_user where institutionaluseridentifier IS NOT NULL AND institutionaluseridentifier!="";
-alter table o_user drop institutionaluseridentifier; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "institutionalName", institutionalname from o_user where institutionalname IS NOT NULL AND institutionalname!="";
-alter table o_user drop institutionalname; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "institutionalEmail", institutionalemail from o_user where institutionalemail IS NOT NULL AND institutionalemail!="";
-alter table o_user drop institutionalemail; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "street", street from o_user where street IS NOT NULL AND street!="";
-alter table o_user drop street; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "extendedAddress", extendedaddress from o_user where extendedaddress IS NOT NULL AND extendedaddress!="";
-alter table o_user drop extendedaddress; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "poBox", pobox from o_user where pobox IS NOT NULL AND pobox!="";
-alter table o_user drop pobox; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "zipCode", zipcode from o_user where zipcode IS NOT NULL AND zipcode!="";
-alter table o_user drop zipcode; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "region", region from o_user where region IS NOT NULL AND region!="";
-alter table o_user drop region; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "city", city from o_user where city IS NOT NULL AND city!="";
-alter table o_user drop city; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, "country", country from o_user where country IS NOT NULL AND country!="";
-alter table o_user drop country; 
---
--- end user properties migration
-
--- new table to store the read messages, migrate the read messages from the o_property to the new table
-
-create table o_readmessage (
-	id bigint not null, 
-	lastmodified datetime not null, 
-	creationdate datetime,
-	identity_id bigint not null, 
-	forum_id bigint not null, 
-	message_id bigint not null, 
-	primary key (id),
-	INDEX identity_forum_idx (identity_id, forum_id));
-alter table o_readmessage ENGINE = InnoDB;
-
-insert into o_readmessage (id, lastmodified, creationdate, identity_id, forum_id, message_id) select id, lastmodified, creationdate, identity, resourcetypeid, longvalue from o_property where category='rvst';
-
-delete from o_property where category='rvst';
-
--- end read messages
-
--- update fontsize to new relative style
-update o_user set fontsize = '110' where fontsize = 'large';
-update o_user set fontsize = '100' where fontsize = 'normal';
-update o_user set fontsize = '90' where fontsize = 'small';
--- end fontsize update
-
--- change size of a varchar title column from 100 to 300
-ALTER TABLE o_message MODIFY title varchar(300); 
--- end change size of a varchar title column
-
--- create cluster lock table
-create table oc_lock (
-	lock_id bigint not null, 
-	lastmodified datetime not null, 
-	creationdate datetime, 
-	identity_fk bigint not null, 
-	asset varchar(120) not null unique, 
-	primary key (lock_id)
-);
-create index ocl_asset_idx on oc_lock (asset);
-alter table oc_lock add index FK9E30F4B66115906D (identity_fk), add constraint FK9E30F4B66115906D foreign key (identity_fk) references o_bs_identity (id);
-alter table oc_lock ENGINE = InnoDB;
--- end cluster lock 
-
-SET FOREIGN_KEY_CHECKS = 1;
-
--- change size of groupname column from varchar 128 to 255
-ALTER TABLE o_gp_business MODIFY groupname varchar(255);
--- end change size of groupname column
diff --git a/src/main/resources/database/mysql/alter_6_0_0_to_6_0_3.sql b/src/main/resources/database/mysql/alter_6_0_0_to_6_0_3.sql
deleted file mode 100644
index 9379145bd9256ce33d13462922d1c8f194055178..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_6_0_0_to_6_0_3.sql
+++ /dev/null
@@ -1,6 +0,0 @@
-SET FOREIGN_KEY_CHECKS = 0;
---
--- convert OLAT 5 style date values (yyyy-mm-dd) with new style (yyyymmdd)
-update o_userproperty set propvalue=replace(propvalue, '-', '') where propname='birthDay' and propvalue like '%-%';
-
-SET FOREIGN_KEY_CHECKS = 1;
diff --git a/src/main/resources/database/mysql/alter_6_0_x_to_6_1_0.sql b/src/main/resources/database/mysql/alter_6_0_x_to_6_1_0.sql
deleted file mode 100644
index 9caf0660eb0c97d9029a24b76210d9fcf1c411d9..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_6_0_x_to_6_1_0.sql
+++ /dev/null
@@ -1,166 +0,0 @@
-SET FOREIGN_KEY_CHECKS = 0;
-
--- create table for cluster locks
-drop table if exists o_plock ;
-  create table o_plock (
-	plock_id bigint not null, 
-	version bigint not null,
-	creationdate datetime, 
-	asset varchar(255) not null unique,	
-	primary key (plock_id)
-);
-alter table o_plock ENGINE = InnoDB;
-
--- tables that keep last modified
-alter table o_repositoryentry add column version bigint;
-update o_repositoryentry set version=0;
-alter table o_repositoryentry modify version bigint not null;
-
-alter table o_gp_business add column version bigint;
-update o_gp_business set version=0;
-alter table o_gp_business modify version bigint not null;
-
-alter table o_message add column version bigint;
-update o_message set version=0;
-alter table o_message modify version bigint not null;
-
-alter table o_note add column version bigint;
-update o_note set version=0;
-alter table o_note modify version bigint not null;
-
-alter table o_noti_sub add column version bigint;
-update o_noti_sub set version=0;
-alter table o_noti_sub modify version bigint not null;
-
-alter table o_property add column version bigint;
-update o_property set version=0;
-alter table o_property modify version bigint not null;
-
-alter table o_bs_membership add column version bigint;
-update o_bs_membership set version=0;
-alter table o_bs_membership modify version bigint not null;
-
-alter table o_qtiresultset add column version bigint;
-update o_qtiresultset set version=0;
-alter table o_qtiresultset modify version bigint not null;
-
-alter table o_qtiresult add column version bigint;
-update o_qtiresult set version=0;
-alter table o_qtiresult modify version bigint not null;
-
--- tables that drop lastModified
-alter table o_forum drop column lastmodified;
-alter table o_forum add column version bigint;
-update o_forum set version=0;
-alter table o_forum modify version bigint not null;
-
-alter table o_bs_authentication drop column lastmodified;
-alter table o_bs_authentication add column version bigint;
-update o_bs_authentication set version=0;
-alter table o_bs_authentication modify version bigint not null;
-
-alter table o_bs_secgroup drop column lastmodified;
-alter table o_bs_secgroup add column version bigint;
-update o_bs_secgroup set version=0;
-alter table o_bs_secgroup modify version bigint not null;
-
-alter table o_temporarykey drop column lastmodified;
-alter table o_temporarykey add column version bigint;
-update o_temporarykey set version=0;
-alter table o_temporarykey modify version bigint not null;
-
-alter table o_noti_pub drop column lastmodified;
-alter table o_noti_pub add column version bigint;
-update o_noti_pub set version=0;
-alter table o_noti_pub modify version bigint not null;
-
-alter table o_bs_identity drop column lastmodified;
-alter table o_bs_identity add column version bigint;
-update o_bs_identity set version=0;
-alter table o_bs_identity modify version bigint not null;
-
-alter table o_olatresource drop column lastmodified;
-alter table o_olatresource add column version bigint;
-update o_olatresource set version=0;
-alter table o_olatresource modify version bigint not null;
-
-alter table o_bs_namedgroup drop column lastmodified;
-alter table o_bs_namedgroup add column version bigint;
-update o_bs_namedgroup set version=0;
-alter table o_bs_namedgroup modify version bigint not null;
-
-alter table o_catentry drop column lastmodified;
-alter table o_catentry add column version bigint;
-update o_catentry set version=0;
-alter table o_catentry modify version bigint not null;
-
-alter table o_gp_bgcontext drop column lastmodified;
-alter table o_gp_bgcontext add column version bigint;
-update o_gp_bgcontext set version=0;
-alter table o_gp_bgcontext modify version bigint not null;
-
-alter table o_references drop column lastmodified;
-alter table o_references add column version bigint;
-update o_references set version=0;
-alter table o_references modify version bigint not null;
-
-alter table o_repositorymetadata drop column lastmodified;
-alter table o_repositorymetadata add column version bigint;
-update o_repositorymetadata set version=0;
-alter table o_repositorymetadata modify version bigint not null;
-
-alter table o_user drop column lastmodified;
-alter table o_user add column version bigint;
-update o_user set version=0;
-alter table o_user modify version bigint not null;
-
-alter table o_gp_bgcontextresource_rel drop column lastmodified;
-alter table o_gp_bgcontextresource_rel add column version bigint;
-update o_gp_bgcontextresource_rel set version=0;
-alter table o_gp_bgcontextresource_rel modify version bigint not null;
-
-alter table o_gp_bgtoarea_rel drop column lastmodified;
-alter table o_gp_bgtoarea_rel add column version bigint;
-update o_gp_bgtoarea_rel set version=0;
-alter table o_gp_bgtoarea_rel modify version bigint not null;
-
-alter table o_bs_policy drop column lastmodified;
-alter table o_bs_policy add column version bigint;
-update o_bs_policy set version=0;
-alter table o_bs_policy modify version bigint not null;
-
-alter table o_gp_bgarea drop column lastmodified;
-alter table o_gp_bgarea add column version bigint;
-update o_gp_bgarea set version=0;
-alter table o_gp_bgarea modify version bigint not null;
-
-alter table o_bookmark drop column lastmodified;
-alter table o_bookmark add column version bigint;
-update o_bookmark set version=0;
-alter table o_bookmark modify version bigint not null;
-
-alter table o_lifecycle drop column lastmodified;
-alter table o_lifecycle add column version bigint;
-update o_lifecycle set version=0;
-alter table o_lifecycle modify version bigint not null;
-
-alter table oc_lock drop column lastmodified;
-alter table oc_lock add column version bigint;
-update oc_lock set version=0;
-alter table oc_lock modify version bigint not null;
-
-alter table o_readmessage drop column lastmodified;
-alter table o_readmessage add column version bigint;
-update o_readmessage set version=0;
-alter table o_readmessage modify version bigint not null;
-
-alter table o_lifecycle change uservalue uservalue text;
-
-drop index identity_forum_idx on o_readmessage;
-create index readmessage_forum_idx on o_readmessage (forum_id);
-create index readmessage_identity_idx on o_readmessage (identity_id);
-create index id_idx on o_olatresource (resid);
-
-
-SET FOREIGN_KEY_CHECKS = 1;
-
diff --git a/src/main/resources/database/mysql/alter_6_1_1_to_6_2_0.sql b/src/main/resources/database/mysql/alter_6_1_1_to_6_2_0.sql
deleted file mode 100644
index 8b9980fa3ff90a4a19a6125091e9e7285ad4fa9c..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_6_1_1_to_6_2_0.sql
+++ /dev/null
@@ -1,4 +0,0 @@
-alter table o_repositoryentry add column statuscode integer;
-update o_repositoryentry set statuscode=1;
-
-alter table o_repositoryentry modify displayname varchar(110);
diff --git a/src/main/resources/database/mysql/alter_6_2_x_to_6_3_0.sql b/src/main/resources/database/mysql/alter_6_2_x_to_6_3_0.sql
deleted file mode 100644
index 33c99bd1b848f9e59e38ea5f5842fff431c4808b..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_6_2_x_to_6_3_0.sql
+++ /dev/null
@@ -1,300 +0,0 @@
-create table o_loggingtable (
-
-	log_id bigint not null,
-	creationdate datetime,
-	sourceclass varchar(255),
-
-	sessionid varchar(255) not null,
-	user_id bigint,
-	username varchar(255),
-	userproperty1 varchar(255),
-	userproperty2 varchar(255),
-	userproperty3 varchar(255),
-	userproperty4 varchar(255),
-	userproperty5 varchar(255),
-	userproperty6 varchar(255),
-	userproperty7 varchar(255),
-	userproperty8 varchar(255),
-	userproperty9 varchar(255),
-	userproperty10 varchar(255),
-	userproperty11 varchar(255),
-	userproperty12 varchar(255),
-
-	actioncrudtype varchar(1) not null,
-	actionverb varchar(16) not null,
-	actionobject varchar(32) not null,
-	simpleduration bigint not null,
-	resourceadminaction boolean not null,
-
-	businesspath varchar(2048),
-	greatgrandparentrestype varchar(32),
-	greatgrandparentresid varchar(64),
-	greatgrandparentresname varchar(255),
-	grandparentrestype varchar(32),
-	grandparentresid varchar(64),
-	grandparentresname varchar(255),
-	parentrestype varchar(32),
-	parentresid varchar(64),
-	parentresname varchar(255),
-	targetrestype varchar(32),
-	targetresid varchar(64),
-	targetresname varchar(255),
-	primary key (log_id)
-);
-
-create table o_checklist (
-   checklist_id bigint not null,
-   version bigint not null,
-   lastmodified datetime not null,
-   title varchar(255) not null,
-   description text,
-   primary key (checklist_id)
-);
-
-create table o_checkpoint (
-   checkpoint_id bigint not null,
-   version bigint not null,
-   lastmodified datetime not null,
-   title varchar(255) not null,
-   description text,
-   mode varchar(64) not null,
-   checklist_fk bigint,
-   primary key (checkpoint_id)
-);
-
-create table o_checkpoint_results (
-   checkpoint_result_id bigint not null,
-   version bigint not null,
-   lastmodified datetime not null,
-   result bool not null,
-   checkpoint_fk bigint,
-   identity_fk bigint, 
-   primary key (checkpoint_result_id)
-);
-
-alter table o_checklist ENGINE = InnoDB;
-alter table o_checkpoint ENGINE = InnoDB;
-alter table o_checkpoint_results ENGINE = InnoDB;
-
-alter table o_checkpoint_results add constraint FK9E30F4B661159ZZY foreign key (checkpoint_fk) references o_checkpoint (checkpoint_id) ;
-alter table o_checkpoint_results add constraint FK9E30F4B661159ZZX foreign key (identity_fk) references o_bs_identity (id);
-alter table o_checkpoint add constraint FK9E30F4B661159ZZZ foreign key (checklist_fk) references o_checklist (checklist_id);
---
--- new tables for new course-node 'project-broker'
-create table o_projectbroker (
-   projectbroker_id bigint not null,
-   version bigint not null,
-   creationdate datetime,
-   primary key (projectbroker_id)
-);
-
-create table o_projectbroker_project (
-   project_id bigint not null,
-   version bigint not null,
-   creationdate datetime,
-   title varchar(100),
-   description text,
-   state varchar(20),
-   maxMembers integer,
-   attachmentFileName varchar(100),
-   mailNotificationEnabled boolean not null,
-   projectgroup_fk bigint not null,
-   projectbroker_fk bigint not null,
-   candidategroup_fk bigint not null,
-   primary key (project_id)
-);
-
-create table o_projectbroker_customfields (
-   fk_project_id bigint not null,
-   propname varchar(255) not null,
-   propvalue varchar(255),
-   primary key (fk_project_id, propname)
-);
-
-alter table o_projectbroker ENGINE = InnoDB;
-alter table o_projectbroker_project ENGINE = InnoDB;
-alter table o_projectbroker_customfields ENGINE = InnoDB;
-
-create index projectbroker_project_broker_idx on o_projectbroker_project (projectbroker_fk);
-create index projectbroker_project_id_idx on o_projectbroker_project (project_id);
-create index o_projectbroker_customfields_idx on o_projectbroker_customfields (fk_project_id);
---
--- new fields for forum messages to count words and characters
-alter table o_message add column numofwords integer;
-update o_message set numofwords=0;
-alter table o_message add column numofcharacters integer;
-update o_message set numofcharacters=0;
-
--- 
--- new tables for user comments and ratings for blogs etc
-create table o_usercomment (
-	comment_id bigint not null, 
-	version integer not null, 
-	creationdate datetime, 
-	resname varchar(50) not null, 
-	resid bigint not null, 
-	ressubpath varchar(2048), 
-    creator_id bigint not null,
-	commenttext text, 
-	parent_key bigint, 
-	primary key (comment_id)
-);
-alter table o_usercomment ENGINE = InnoDB;
-create index cmt_id_idx on o_usercomment (resid);
-create index cmt_name_idx on o_usercomment (resname);
-create index cmt_subpath_idx on o_usercomment (ressubpath);
-alter table o_usercomment add index FK92B6864A18251F0 (parent_key), add constraint FK92B6864A18251F0 foreign key (parent_key) references o_usercomment (comment_id);
-alter table o_usercomment add index FKF26C8375236F20A (creator_id), add constraint FKF26C8375236F20A foreign key (creator_id) references o_bs_identity (id);
-
-create table o_userrating (
-	rating_id bigint not null, 
-	version integer not null, 
-	creationdate datetime, 
-	resname varchar(50) not null, 
-	resid bigint not null, 
-	ressubpath varchar(2048), 
-    creator_id bigint not null,
-	rating integer not null, 
-	primary key (rating_id)
-);
-alter table o_userrating ENGINE = InnoDB;
-create index rtn_id_idx on o_userrating (resid);
-create index rtn_name_idx on o_userrating (resname);
-create index rtn_subpath_idx on o_userrating (ressubpath);
-create index rtn_rating_idx on o_userrating (rating);
-alter table o_userrating add index FKF26C8375236F20X (creator_id), add constraint FKF26C8375236F20X foreign key (creator_id) references o_bs_identity (id);
---
--- Add new notification confiuration field
-alter table o_user add notification_interval varchar(16) after fontsize;
-create index usr_notification_interval_idx on o_user (notification_interval);
-
-alter table o_noti_pub add businesspath varchar(255);
-alter table o_noti_sub drop latestread;
-alter table o_noti_sub drop transresid;
-alter table o_noti_sub drop transsubidentifier;
-alter table o_noti_sub drop data;
-
-
-
-create table if not exists o_stat_lastupdated (
-
-	lastupdated datetime not null
-
-);
--- important: initialize with old date!
-insert into o_stat_lastupdated values(date('1999-01-01'));
-
-
---insert into o_stat_dayofweek (businesspath,resid,day,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,dayofweek(creationdate) day,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,day;
-create table if not exists o_stat_dayofweek (
-
-	id bigint not null auto_increment,
-	businesspath varchar(2048) not null,
-	resid bigint not null,
-	day int not null,
-	value int not null,
-	primary key (id)
-
-);
-create index statdow_resid_idx on o_stat_dayofweek (resid);
-
-
---insert into o_stat_hourofday (businesspath,resid,hour,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,hour(creationdate) hour,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,hour;
-create table if not exists o_stat_hourofday (
-
-	id bigint not null auto_increment,
-	businesspath varchar(2048) not null,
-	resid bigint not null,
-	hour int not null,
-	value int not null,
-	primary key (id)
-
-);
-create index stathod_resid_idx on o_stat_hourofday (resid);
-
-
---insert into o_stat_weekly (businesspath,resid,week,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,concat(year(creationdate),'-',week(creationdate)) week,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,week;
-create table if not exists o_stat_weekly (
-
-	id bigint not null auto_increment,
-	businesspath varchar(2048) not null,
-	resid bigint not null,
-	week varchar(7) not null,
-	value int not null,
-	primary key (id)
-
-);
-create index statwee_resid_idx on o_stat_weekly (resid);
-
-
---insert into o_stat_daily (businesspath,resid,day,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,date(creationdate) day,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,day;
-create table if not exists o_stat_daily (
-
-	id bigint not null auto_increment,
-	businesspath varchar(2048) not null,
-	resid bigint not null,
-	day datetime not null,
-	value int not null,
-	primary key (id)
-
-);
-create index statday_resid_idx on o_stat_daily (resid);
-
-
---insert into o_stat_homeorg (businesspath,resid,homeorg,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,userproperty2 homeorg,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,homeorg;
-create table if not exists o_stat_homeorg (
-
-	id bigint not null auto_increment,
-	businesspath varchar(2048) not null,
-	resid bigint not null,
-	homeorg varchar(255) not null,
-	value int not null,
-	primary key (id)
-
-);
-create index stathor_resid_idx on o_stat_homeorg (resid);
-
-
---insert into o_stat_orgtype (businesspath,resid,orgtype,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,userproperty4 orgtype,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,orgtype;
-create table if not exists o_stat_orgtype (
-
-	id bigint not null auto_increment,
-	businesspath varchar(2048) not null,
-	resid bigint not null,
-	orgtype varchar(255),
-	value int not null,
-	primary key (id)
-
-);
-create index statorg_resid_idx on o_stat_orgtype (resid);
-
-
---insert into o_stat_studylevel (businesspath,resid,studylevel,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,userproperty3 studylevel,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,studylevel;
-create table if not exists o_stat_studylevel (
-
-	id bigint not null auto_increment,
-	businesspath varchar(2048) not null,
-	resid bigint not null,
-	studylevel varchar(255) not null,
-	value int not null,
-	primary key (id)
-
-);
-create index statstl_resid_idx on o_stat_studylevel (resid);
-
-
---insert into o_stat_studybranch3 (businesspath,resid,studybranch3,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,userproperty10 studybranch3,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,studybranch3;
-create table if not exists o_stat_studybranch3 (
-
-	id bigint not null auto_increment,
-	businesspath varchar(2048) not null,
-	resid bigint not null,
-	studybranch3 varchar(255),
-	value int not null,
-	primary key (id)
-
-);
-create index statstb_resid_idx on o_stat_studybranch3 (resid);
-
---catalog-entry.name must have same length like repository-entry.displayname 
-alter table o_catentry modify name varchar(110);
\ No newline at end of file
diff --git a/src/main/resources/database/mysql/alter_6_3_x_to_7_0_0.sql b/src/main/resources/database/mysql/alter_6_3_x_to_7_0_0.sql
deleted file mode 100644
index 20a49bcd98c20532ad42323e2bdc4023d2dfaad1..0000000000000000000000000000000000000000
--- a/src/main/resources/database/mysql/alter_6_3_x_to_7_0_0.sql
+++ /dev/null
@@ -1,146 +0,0 @@
--- Schema Audit changes
--- WARNING: on a large production database these changes
--- may take some time to complete!
-
--- version type should be "mediumint unsigned not null" though in many
--- cases a smaller type suffices we retain this for consistency
-alter table o_bookmark modify version mediumint unsigned not null;
-alter table o_bs_authentication modify version mediumint unsigned not null;
-alter table o_bs_identity modify version mediumint unsigned not null;
-alter table o_bs_membership modify version mediumint unsigned not null;
-alter table o_bs_namedgroup modify version mediumint unsigned not null;
-alter table o_bs_policy modify version mediumint unsigned not null;
-alter table o_bs_secgroup modify version mediumint unsigned not null;
-alter table o_catentry modify version mediumint unsigned not null;
-alter table o_checklist modify version mediumint unsigned not null;
-alter table o_checkpoint modify version mediumint unsigned not null;
-alter table o_checkpoint_results modify version mediumint unsigned not null;
-alter table o_forum modify version mediumint unsigned not null;
-alter table o_gp_bgarea modify version mediumint unsigned not null;
-alter table o_gp_bgcontext modify version mediumint unsigned not null;
-alter table o_gp_bgcontextresource_rel modify version mediumint unsigned not null;
-alter table o_gp_bgtoarea_rel modify version mediumint unsigned not null;
-alter table o_gp_business modify version mediumint unsigned not null;
-alter table o_lifecycle modify version mediumint unsigned not null;
-alter table o_message modify version mediumint unsigned not null;
-alter table o_note modify version mediumint unsigned not null;
-alter table o_noti_pub modify version mediumint unsigned not null;
-alter table o_noti_sub modify version mediumint unsigned not null;
-alter table o_olatresource modify version mediumint unsigned not null;
-alter table o_plock modify version mediumint unsigned not null;
-alter table o_projectbroker modify version mediumint unsigned not null;
-alter table o_projectbroker_project modify version mediumint unsigned not null;
-alter table o_property modify version mediumint unsigned not null;
-alter table o_qtiresult modify version mediumint unsigned not null;
-alter table o_qtiresultset modify version mediumint unsigned not null;
-alter table o_readmessage modify version mediumint unsigned not null;
-alter table o_references modify version mediumint unsigned not null;
-alter table o_repositoryentry modify version mediumint unsigned not null;
-alter table o_repositorymetadata modify version mediumint unsigned not null;
-alter table o_temporarykey modify version mediumint unsigned not null;
-alter table o_user modify version mediumint unsigned not null;
-alter table o_usercomment modify version mediumint unsigned not null;
-alter table o_userrating modify version mediumint unsigned not null;
-alter table oc_lock modify version mediumint unsigned not null;
-
--- many "id" types are poorly dimensioned - these changes apply to
--- those that use "id" as an identifier, the rest have ID columns
--- that must be renamed (requires Hibernate coordination)
-alter table o_bs_authentication modify id bigint unsigned not null;
--- alter table o_bs_identity modify id bigint unsigned not null;
-alter table o_bs_membership modify id bigint unsigned not null;
-alter table o_bs_namedgroup modify id bigint unsigned not null;
-alter table o_bs_policy modify id bigint unsigned not null;
--- alter table o_bs_secgroup modify id bigint unsigned not null;
--- alter table o_catentry modify id bigint unsigned not null;
-alter table o_lifecycle modify id bigint unsigned not null;
-alter table o_property modify id bigint unsigned not null;
-alter table o_readmessage modify id bigint unsigned not null;
-alter table o_stat_daily modify id bigint unsigned not null auto_increment;
-alter table o_stat_dayofweek modify id bigint unsigned not null auto_increment;
-alter table o_stat_homeorg modify id bigint unsigned not null auto_increment;
-alter table o_stat_hourofday modify id bigint unsigned not null auto_increment;
-alter table o_stat_orgtype modify id bigint unsigned not null auto_increment;
-alter table o_stat_studybranch3 modify id bigint unsigned not null auto_increment;
-alter table o_stat_studylevel modify id bigint unsigned not null auto_increment;
-alter table o_stat_weekly modify id bigint unsigned not null auto_increment;
-
--- a few "text" types are incorrectly dimensioned
-alter table o_bookmark modify description tinytext not null;
-alter table o_gp_bgarea modify descr tinytext;
-alter table o_gp_bgcontext modify descr tinytext;
-alter table o_noti_pub modify data tinytext;
-alter table o_property modify textvalue mediumtext;
-alter table o_loggingtable modify targetresname mediumtext;
-
--- the following are redundant indexes
-drop index ocl_asset_idx on oc_lock;
-drop index provider_idx on o_bs_authentication;
-drop index FKFF94111CD1A80C95 on o_bs_identity;
-drop index name_idx on o_bs_identity;
-drop index FK7B6288B4B85B522C on o_bs_membership;
-drop index groupname_idx on o_bs_namedgroup;
-drop index FK9A1C5109F9C3F1D on o_bs_policy;
-drop index FKF4433C2CA1FAC766 on o_catentry;
-drop index FK1C154FC47E4A0638 on o_gp_bgcontext;
-drop index FK9B663F2D1E2E7685 on o_gp_bgtoarea_rel;
-drop index FKCEEB8A86A1FAC766 on o_gp_business;
-drop index FKCEEB8A86C06E3EF3 on o_gp_business;
-drop index owner_idx on o_note;
-drop index FK4FB8F04749E53702 on o_noti_sub;
-drop index name_idx on o_olatresource;
-drop index asset_idx on o_plock;
-drop index o_projectbroker_customfields_idx on o_projectbroker_customfields;
-drop index projectbroker_project_id_idx on o_projectbroker_project;
-drop index FK2F9C439888C31018 on o_repositoryentry;
-drop index FK2F9C4398A1FAC766 on o_repositoryentry;
-drop index softkey_idx on o_repositoryentry;
-drop index FKDB97A6493F14E3EE on o_repositorymetadata;
-drop index FK4B04D83FD1A80C95 on o_userproperty;
-
-
-create table if not exists o_mark (
-  mark_id bigint not null,
-  version mediumint unsigned not null,
-  creationdate datetime,
-  resname varchar(50) not null,
-  resid bigint not null,
-  ressubpath varchar(2048),
-  businesspath varchar(2048),
-  creator_id bigint not null,
-  primary key (mark_id)
-);
-
-create index mark_id_idx on o_mark(resid);
-create index mark_name_idx on o_mark(resname);
-create index mark_subpath_idx on o_mark(ressubpath);
-create index mark_businesspath_idx on o_mark(businesspath);
-create index FKF26C8375236F21X on o_mark(creator_id);
-alter table o_mark add constraint FKF26C8375236F21X foreign key (creator_id) references o_bs_identity (id);
-
--- indexes for the o_stat tables - see OLAT-5163 --
-create index stathor_bp_idx   on o_stat_homeorg (businesspath);
-create index stathor_ho_idx   on o_stat_homeorg (homeorg);
-create index statorg_bp_idx   on o_stat_orgtype (businesspath);
-create index statorg_org_idx  on o_stat_orgtype (orgtype);
-create index statday_bp_idx   on o_stat_daily (businesspath);
-create index statday_day_idx  on o_stat_daily (day);
-create index statwee_bp_idx   on o_stat_weekly (businesspath);
-create index statwee_week_idx on o_stat_weekly (week);
-create index statdow_bp_idx   on o_stat_dayofweek (businesspath);
-create index statdow_day_idx  on o_stat_dayofweek (day);
-create index stathod_bp_idx   on o_stat_hourofday (businesspath);
-create index stathod_hour_idx on o_stat_hourofday (hour);
-create index statstl_stl_idx  on o_stat_studylevel (studylevel);
-create index statstl_bp_idx   on o_stat_studylevel (businesspath);
-
--- harmonisation with hsqldb datatypes
-alter table o_property modify floatvalue float(65,30);
-alter table o_qtiresultset modify score float(65,30);
-alter table o_qtiresult modify score float(65,30);
-
--- locale can be longer than 10 chars (varian can be longer: de_CH_Zuerich)
-alter table o_user modify language varchar(30);
-
--- Redeploy Help-course
-delete  from o_property where name='deployedCourses' and stringvalue='help/OLAT Hilfe.zip';
diff --git a/src/main/resources/database/postgresql/alter_4_1_2_to_5_0_0.sql b/src/main/resources/database/postgresql/alter_4_1_2_to_5_0_0.sql
deleted file mode 100644
index 80030051a0d39c21770fab74fab7f05a2621fe88..0000000000000000000000000000000000000000
--- a/src/main/resources/database/postgresql/alter_4_1_2_to_5_0_0.sql
+++ /dev/null
@@ -1,45 +0,0 @@
-create table tmp_o_gp_business (
-   group_id int8 not null,
-   lastmodified timestamp not null,
-   creationdate timestamp,
-   lastusage timestamp,
-   businessgrouptype varchar(15) not null,
-   groupname varchar(128),
-   descr text,
-   minparticipants int4,
-   maxparticipants int4,
-   waitinglist_enabled bool,
-   autocloseranks_enabled bool,
-   groupcontext_fk int8,
-   fk_ownergroup int8 unique,
-   fk_partipiciantgroup int8 unique,
-   fk_waitinggroup int8 unique,
-   primary key (group_id)
-);
-
-insert into tmp_o_gp_business
-( group_id,lastmodified,creationdate,lastusage,businessgrouptype, groupname,descr,minparticipants,maxparticipants,
-   groupcontext_fk, fk_ownergroup, fk_partipiciantgroup
-)
-select group_id,lastmodified,creationdate,lastusage,businessgrouptype, groupname,descr,minparticipants,maxparticipants,
-   groupcontext_fk, fk_ownergroup, fk_partipiciantgroup
-from o_gp_business;
-
-alter table o_gp_business drop constraint FKCEEB8A86DF6BCD14;
-alter table o_gp_business drop constraint FKCEEB8A86A1FAC766;
-alter table o_gp_business drop constraint FKCEEB8A86C06E3EF3;
-alter table o_property drop constraint FKB60B1BA5190E5;
-alter table o_gp_bgtoarea_rel drop constraint FK9B663F2D1E2E7685;
-
-drop table o_gp_business;
-ALTER TABLE tmp_o_gp_business RENAME TO o_gp_business;
-
-alter table o_gp_business add constraint FKCEEB8A86DF6BCD14 foreign key (groupcontext_fk) references o_gp_bgcontext;
-alter table o_gp_business add constraint FKCEEB8A86A1FAC766 foreign key (fk_ownergroup) references o_bs_secgroup;
-alter table o_gp_business add constraint FKCEEB8A86C06E3EF3 foreign key (fk_partipiciantgroup) references o_bs_secgroup;
-alter table o_property add constraint FKB60B1BA5190E5 foreign key (grp) references o_gp_business;
-alter table o_gp_bgtoarea_rel add constraint FK9B663F2D1E2E7685 foreign key (group_fk) references o_gp_business;
--- initilize existing value
-update o_gp_business set waitinglist_enabled = 'FALSE' ;
-update o_gp_business set autocloseranks_enabled = 'FALSE' ;
-
diff --git a/src/main/resources/database/postgresql/alter_5_0_0_to_5_1_0.sql b/src/main/resources/database/postgresql/alter_5_0_0_to_5_1_0.sql
deleted file mode 100644
index 5b081f6cfb0432e7c07edab1e546c6f550ba4400..0000000000000000000000000000000000000000
--- a/src/main/resources/database/postgresql/alter_5_0_0_to_5_1_0.sql
+++ /dev/null
@@ -1,4 +0,0 @@
-alter table o_repositoryentry add column canreference bool;
-update o_repositoryentry set canreference = false;
-alter table o_repositoryentry alter column canreference set not null;
-alter table o_bs_identity add column lastlogin timestamp;
diff --git a/src/main/resources/database/postgresql/alter_5_1_0_to_5_2_0.sql b/src/main/resources/database/postgresql/alter_5_1_0_to_5_2_0.sql
deleted file mode 100644
index 4ba5e26db0e73763996a3c98e9834e0ee99ef6a5..0000000000000000000000000000000000000000
--- a/src/main/resources/database/postgresql/alter_5_1_0_to_5_2_0.sql
+++ /dev/null
@@ -1,21 +0,0 @@
-alter table o_repositoryentry add column lastusage timestamp;
-alter table o_bs_identity add column status integer;
-update o_bs_identity set status = '2';
-
-create table o_lifecycle (
-   id bigint not null,
-   lastmodified timestamp not null,
-   creationdate timestamp,
-   persistenttypename varchar(50) not null,
-   persistentref bigint not null,
-   action varchar(50) not null,
-   lctimestamp timestamp,
-   uservalue varchar(255),
-   primary key (id)
-);
-create index lc_pref_idx on o_lifecycle (persistentref);
-create index lc_type_idx on o_lifecycle (persistenttypename);
-create index lc_action_idx on o_lifecycle (action);
-create index identstatus_idx on o_bs_identity (status);
-alter table o_message add column statuscode int;
-update o_message set statuscode='0';
diff --git a/src/main/resources/database/postgresql/alter_5_2_x_to_6_0_0.sql b/src/main/resources/database/postgresql/alter_5_2_x_to_6_0_0.sql
deleted file mode 100644
index 7e0b2a598690d5ce47eec02440ee1aa25f090d08..0000000000000000000000000000000000000000
--- a/src/main/resources/database/postgresql/alter_5_2_x_to_6_0_0.sql
+++ /dev/null
@@ -1,111 +0,0 @@
--- new table to store the users properties
-create table o_userproperty (
-   fk_user_id int8 not null,
-   propname varchar(255) not null,
-   propvalue varchar(255),
-   primary key (fk_user_id, propname)
-);
-create index propvalue_idx on o_userproperty (propvalue);
-alter table o_userproperty add constraint FK4B04D83FD1A80C95 foreign key (fk_user_id) references o_user;
-
---
--- migrate data from old user table to new userproperty table
--- make sure you get this right the first time, you can not run this twice!
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'firstName', firstname from o_user where firstname IS NOT NULL AND firstname!='';
-alter table o_user drop firstname; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'lastName', lastname from o_user where lastname IS NOT NULL AND lastname!='';
-alter table o_user drop lastname; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'email', email from o_user where email IS NOT NULL AND email!='';
-alter table o_user drop email; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'birthDay', birthday from o_user where birthday IS NOT NULL AND birthday!='';
-alter table o_user drop birthday; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'gender', gender from o_user where gender IS NOT NULL AND gender!='';
-alter table o_user drop gender; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'telMobile', telmobile from o_user where telmobile IS NOT NULL AND telmobile!='';
-alter table o_user drop telmobile; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'telOffice', teloffice from o_user where teloffice IS NOT NULL AND teloffice!='';
-alter table o_user drop teloffice; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'telPrivate', telprivate from o_user where telprivate IS NOT NULL AND telprivate!='';
-alter table o_user drop telprivate; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'institutionalUserIdentifier', institutionaluseridentifier from o_user where institutionaluseridentifier IS NOT NULL AND institutionaluseridentifier!='';
-alter table o_user drop institutionaluseridentifier; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'institutionalName', institutionalname from o_user where institutionalname IS NOT NULL AND institutionalname!='';
-alter table o_user drop institutionalname; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'institutionalEmail', institutionalemail from o_user where institutionalemail IS NOT NULL AND institutionalemail!='';
-alter table o_user drop institutionalemail; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'street', street from o_user where street IS NOT NULL AND street!='';
-alter table o_user drop street; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'extendedAddress', extendedaddress from o_user where extendedaddress IS NOT NULL AND extendedaddress!='';
-alter table o_user drop extendedaddress; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'poBox', pobox from o_user where pobox IS NOT NULL AND pobox!='';
-alter table o_user drop pobox; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'zipCode', zipcode from o_user where zipcode IS NOT NULL AND zipcode!='';
-alter table o_user drop zipcode; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'region', region from o_user where region IS NOT NULL AND region!='';
-alter table o_user drop region; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'city', city from o_user where city IS NOT NULL AND city!='';
-alter table o_user drop city; 
-
-insert into o_userproperty (fk_user_id, propname, propvalue) select user_id, 'country', country from o_user where country IS NOT NULL AND country!='';
-alter table o_user drop country; 
---
--- end user properties migration
-
--- new table to store the read messages, migrate the read messages from the o_property to the new table
-create table o_readmessage (
-	id int8 not null, 
-	lastmodified timestamp not null,
-    creationdate timestamp,
-	identity_id int8 not null, 
-	forum_id int8 not null, 
-	message_id int8 not null, 
-	primary key (id));
-create index identity_forum_idx on o_readmessage(identity_id, forum_id);
-
-insert into o_readmessage (id, lastmodified, creationdate, identity_id, forum_id, message_id) select id, lastmodified, creationdate, identity, resourcetypeid, longvalue from o_property where category='rvst';
-delete from o_property where category='rvst';
-
--- end read messages
-
--- update fontsize to new relative style
-update o_user set fontsize = '110' where fontsize = 'large';
-update o_user set fontsize = '100' where fontsize = 'normal';
-update o_user set fontsize = '90' where fontsize = 'small';
--- end fontsize update
-
--- change size of a varchar title column from 100 to 300
-ALTER TABLE o_message ALTER title TYPE varchar(300);
--- end change size of a varchar title column
-
--- create cluster lock table
-create table oc_lock (
-	lock_id int8 not null, 
-	lastmodified timestamp not null, 
-	creationdate timestamp, 
-	identity_fk int8 not null, 
-	asset varchar(120) not null unique, 
-	primary key (lock_id)
-);
-create index ocl_asset_idx on oc_lock (asset);
-alter table oc_lock add constraint FK9E30F4B66115906D foreign key (identity_fk) references o_bs_identity;
--- end cluster lock 
-
--- change size of groupname column from varchar 128 to 255
-ALTER TABLE o_gp_business ALTER groupname TYPE varchar(255);
--- end change size of groupname column
diff --git a/src/main/resources/database/postgresql/alter_6_0_0_to_6_0_3.sql b/src/main/resources/database/postgresql/alter_6_0_0_to_6_0_3.sql
deleted file mode 100644
index 141fbce91510e6575ecd60a339ccbf7672665bb2..0000000000000000000000000000000000000000
--- a/src/main/resources/database/postgresql/alter_6_0_0_to_6_0_3.sql
+++ /dev/null
@@ -1,3 +0,0 @@
---
--- convert OLAT 5 style date values (yyyy-mm-dd) with new style (yyyymmdd)
-update o_userproperty set propvalue=replace(propvalue, '-', '') where propname='birthDay' and propvalue like '%-%';
diff --git a/src/main/resources/database/postgresql/alter_6_0_x_to_6_1_0.sql b/src/main/resources/database/postgresql/alter_6_0_x_to_6_1_0.sql
deleted file mode 100644
index d176217f6871e795ac67772d1ec24ae5f4afb1e2..0000000000000000000000000000000000000000
--- a/src/main/resources/database/postgresql/alter_6_0_x_to_6_1_0.sql
+++ /dev/null
@@ -1,159 +0,0 @@
--- create table for cluster locks
-drop table if exists o_plock ;
-create table o_plock (
-    plock_id int8 not null, 
-    version int8 not null,
-    creationdate timestamp, 
-    asset varchar(255) not null unique, 
-    primary key (plock_id)
-);
-
--- tables that keep last modified
-alter table o_repositoryentry add column version int8;
-update o_repositoryentry set version=0;
-alter table o_repositoryentry alter column version set not null;
-
-alter table o_gp_business add column version int8;
-update o_gp_business set version=0;
-alter table o_gp_business alter column version set not null;
-
-alter table o_message add column version int8;
-update o_message set version=0;
-alter table o_message alter column version set not null;
-
-alter table o_note add column version int8;
-update o_note set version=0;
-alter table o_note alter column version set not null;
-
-alter table o_noti_sub add column version int8;
-update o_noti_sub set version=0;
-alter table o_noti_sub alter column version set not null;
-
-alter table o_property add column version int8;
-update o_property set version=0;
-alter table o_property alter column version set not null;
-
-alter table o_bs_membership add column version int8;
-update o_bs_membership set version=0;
-alter table o_bs_membership alter column version set not null;
-
-alter table o_qtiresultset add column version int8;
-update o_qtiresultset set version=0;
-alter table o_qtiresultset alter column version set not null;
-
-alter table o_qtiresult add column version int8;
-update o_qtiresult set version=0;
-alter table o_qtiresult alter column version set not null;
-
--- tables that drop lastModified
-alter table o_forum drop column lastmodified;
-alter table o_forum add column version int8;
-update o_forum set version=0;
-alter table o_forum alter column version set not null;
-
-alter table o_bs_authentication drop column lastmodified;
-alter table o_bs_authentication add column version int8;
-update o_bs_authentication set version=0;
-alter table o_bs_authentication alter column version set not null;
-
-alter table o_bs_secgroup drop column lastmodified;
-alter table o_bs_secgroup add column version int8;
-update o_bs_secgroup set version=0;
-alter table o_bs_secgroup alter column version set not null;
-
-alter table o_temporarykey drop column lastmodified;
-alter table o_temporarykey add column version int8;
-update o_temporarykey set version=0;
-alter table o_temporarykey alter column version set not null;
-
-alter table o_noti_pub drop column lastmodified;
-alter table o_noti_pub add column version int8;
-update o_noti_pub set version=0;
-alter table o_noti_pub alter column version set not null;
-
-alter table o_bs_identity drop column lastmodified;
-alter table o_bs_identity add column version int8;
-update o_bs_identity set version=0;
-alter table o_bs_identity alter column version set not null;
-
-alter table o_olatresource drop column lastmodified;
-alter table o_olatresource add column version int8;
-update o_olatresource set version=0;
-alter table o_olatresource alter column version set not null;
-
-alter table o_bs_namedgroup drop column lastmodified;
-alter table o_bs_namedgroup add column version int8;
-update o_bs_namedgroup set version=0;
-alter table o_bs_namedgroup alter column version set not null;
-
-alter table o_catentry drop column lastmodified;
-alter table o_catentry add column version int8;
-update o_catentry set version=0;
-alter table o_catentry alter column version set not null;
-
-alter table o_gp_bgcontext drop column lastmodified;
-alter table o_gp_bgcontext add column version int8;
-update o_gp_bgcontext set version=0;
-alter table o_gp_bgcontext alter column version set not null;
-
-alter table o_references drop column lastmodified;
-alter table o_references add column version int8;
-update o_references set version=0;
-alter table o_references alter column version set not null;
-
-alter table o_repositorymetadata drop column lastmodified;
-alter table o_repositorymetadata add column version int8;
-update o_repositorymetadata set version=0;
-alter table o_repositorymetadata alter column version set not null;
-
-alter table o_user drop column lastmodified;
-alter table o_user add column version int8;
-update o_user set version=0;
-alter table o_user alter column version set not null;
-
-alter table o_gp_bgcontextresource_rel drop column lastmodified;
-alter table o_gp_bgcontextresource_rel add column version int8;
-update o_gp_bgcontextresource_rel set version=0;
-alter table o_gp_bgcontextresource_rel alter column version set not null;
-
-alter table o_gp_bgtoarea_rel drop column lastmodified;
-alter table o_gp_bgtoarea_rel add column version int8;
-update o_gp_bgtoarea_rel set version=0;
-alter table o_gp_bgtoarea_rel alter column version set not null;
-
-alter table o_bs_policy drop column lastmodified;
-alter table o_bs_policy add column version int8;
-update o_bs_policy set version=0;
-alter table o_bs_policy alter column version set not null;
-
-alter table o_gp_bgarea drop column lastmodified;
-alter table o_gp_bgarea add column version int8;
-update o_gp_bgarea set version=0;
-alter table o_gp_bgarea alter column version set not null;
-
-alter table o_bookmark drop column lastmodified;
-alter table o_bookmark add column version int8;
-update o_bookmark set version=0;
-alter table o_bookmark alter column version set not null;
-
-alter table o_lifecycle drop column lastmodified;
-alter table o_lifecycle add column version int8;
-update o_lifecycle set version=0;
-alter table o_lifecycle alter column version set not null;
-
-alter table oc_lock drop column lastmodified;
-alter table oc_lock add column version int8;
-update oc_lock set version=0;
-alter table oc_lock alter column version set not null;
-
-alter table o_readmessage drop column lastmodified;
-alter table o_readmessage add column version int8;
-update o_readmessage set version=0;
-alter table o_readmessage alter column version set not null;
-
-alter table o_lifecycle alter column uservalue type text;
-
-drop index identity_forum_idx;
-create index readmessage_forum_idx on o_readmessage (forum_id);
-create index readmessage_identity_idx on o_readmessage (identity_id);
-create index id_idx on o_olatresource (resid);
diff --git a/src/main/resources/database/postgresql/alter_6_1_1_to_6_2_0.sql b/src/main/resources/database/postgresql/alter_6_1_1_to_6_2_0.sql
deleted file mode 100644
index ecd0b096be57fbc807a122357dcf61bcc7857a4b..0000000000000000000000000000000000000000
--- a/src/main/resources/database/postgresql/alter_6_1_1_to_6_2_0.sql
+++ /dev/null
@@ -1,3 +0,0 @@
--- add column statuscode to table o_repositoryentry
-alter table o_repositoryentry add column statuscode int4;
-update o_repositoryentry set statuscode=1;
diff --git a/src/main/resources/database/postgresql/alter_6_2_x_to_6_3_0.sql b/src/main/resources/database/postgresql/alter_6_2_x_to_6_3_0.sql
deleted file mode 100644
index ea644f505a784127deb72caa0e1f9bce9b3e6600..0000000000000000000000000000000000000000
--- a/src/main/resources/database/postgresql/alter_6_2_x_to_6_3_0.sql
+++ /dev/null
@@ -1,279 +0,0 @@
-drop table if exists o_loggingtable;
-create table o_loggingtable (
-	log_id int8 not null,
-	creationdate timestamp,
-	sourceclass varchar(255),
-	sessionid varchar(255) not null,
-	user_id int8,
-	username varchar(255),
-	userproperty1 varchar(255),
-	userproperty2 varchar(255),
-	userproperty3 varchar(255),
-	userproperty4 varchar(255),
-	userproperty5 varchar(255),
-	userproperty6 varchar(255),
-	userproperty7 varchar(255),
-	userproperty8 varchar(255),
-	userproperty9 varchar(255),
-	userproperty10 varchar(255),
-	userproperty11 varchar(255),
-	userproperty12 varchar(255),
-	actioncrudtype varchar(1) not null,
-	actionverb varchar(16) not null,
-	actionobject varchar(32) not null,
-	simpleduration int8 not null,
-	resourceadminaction bool not null,
-	businesspath varchar(2048),
-	greatgrandparentrestype varchar(32),
-	greatgrandparentresid varchar(64),
-	greatgrandparentresname varchar(255),
-	grandparentrestype varchar(32),
-	grandparentresid varchar(64),
-	grandparentresname varchar(255),
-	parentrestype varchar(32),
-	parentresid varchar(64),
-	parentresname varchar(255),
-	targetrestype varchar(32),
-	targetresid varchar(64),
-	targetresname varchar(255),
-	primary key (log_id)
-);
-
-create table o_checklist (
-   checklist_id int8 not null,
-   version int8 not null,
-   lastmodified timestamp not null,
-   title varchar(255) not null,
-   description text,
-   primary key (checklist_id)
-);
-
-create table o_checkpoint (
-   checkpoint_id int8 not null,
-   version int8 not null,
-   lastmodified timestamp not null,
-   title varchar(255) not null,
-   description text,
-   mode varchar(64) not null,
-   checklist_fk int8,
-   primary key (checkpoint_id)
-);
-
-create table o_checkpoint_results (
-   checkpoint_result_id bigint not null,
-   version int8 not null,
-   lastmodified timestamp not null,
-   result bool not null,
-   checkpoint_fk int8,
-   identity_fk int8, 
-   primary key (checkpoint_result_id)
-);
-
-alter table o_checkpoint_results add constraint FK9E30F4B661159ZZY foreign key (checkpoint_fk) references o_checkpoint;
-alter table o_checkpoint_results add constraint FK9E30F4B661159ZZX foreign key (identity_fk) references o_bs_identity;
-alter table o_checkpoint add constraint FK9E30F4B661159ZZZ foreign key (checklist_fk) references o_checklist;
-
--- new tables for new course-node 'project-broker'
-create table o_projectbroker (
-   projectbroker_id int8 not null,
-   version int8 not null,
-   creationdate timestamp,
-   primary key (projectbroker_id)
-);
-
-create table o_projectbroker_project (
-   project_id int8 not null,
-   version int8 not null,
-   creationdate timestamp,
-   title varchar(100),
-   description text,
-   state varchar(20),
-   maxMembers integer,
-   attachmentFileName varchar(100),
-   mailNotificationEnabled bool not null,
-   projectgroup_fk int8 not null,
-   projectbroker_fk int8 not null,
-   candidategroup_fk int8 not null,
-   primary key (project_id)
-);
-
-create table o_projectbroker_customfields (
-   fk_project_id int8 not null,
-   propname varchar(255) not null,
-   propvalue varchar(255),
-   primary key (fk_project_id, propname)
-);
-
-create index projectbroker_project_broker_idx on o_projectbroker_project (projectbroker_fk);
-create index projectbroker_project_id_idx on o_projectbroker_project (project_id);
-create index o_projectbroker_customfields_idx on o_projectbroker_customfields (fk_project_id);
-
-
-alter table o_message add column numofwords int8;
-update o_message set numofwords=0;
-alter table o_message add column numofcharacters int8;
-update o_message set numofcharacters=0;
-
--- new tables for user comments and ratings for blogs etc
-create table o_userrating (
-	rating_id int8 not null, 
-	version int8 not null, 
-	creationdate timestamp, 
-	resname varchar(50) not null, 
-	resid int8 not null, 
-	ressubpath varchar(2048), 
-	creator_id int8 not null,
-	rating int8 not null, 
-	primary key (rating_id)
-);
-
-create table o_usercomment (
-	comment_id int8 not null, 
-	version int8 not null, 
-	creationdate timestamp, 
-	resname varchar(50) not null, 
-	resid int8 not null, 
-	ressubpath varchar(2048), 
-	creator_id int8 not null,
-	commenttext text, 
-	parent_key int8, 
-	primary key (comment_id)
-);
-
-create index userrating_id_idx on o_userrating (resid);
-create index userrating_name_idx on o_userrating (resname);
-create index userrating_subpath_idx on o_userrating (ressubpath);
-create index userrating_rating_idx on o_userrating (rating);
-create index FKF26C8375236F20X on o_userrating (creator_id);
-alter table o_userrating add constraint FKF26C8375236F20X foreign key (creator_id) references o_bs_identity (id);
-
-create index usercmt_id_idx on o_usercomment (resid);
-create index usercmt_name_idx on o_usercomment (resname);
-create index usercmt_subpath_idx on o_usercomment (ressubpath);
-create index FK92B6864A18251F0 on o_usercomment (parent_key);
-create index FKF26C8375236F20A on o_usercomment (creator_id);
-alter table o_usercomment add constraint FK92B6864A18251F0 foreign key (parent_key) references o_usercomment (comment_id);
-alter table o_usercomment add constraint FKF26C8375236F20A foreign key (creator_id) references o_bs_identity (id);
-
-alter table o_user add column notification_interval varchar(16);
-create index usr_notification_interval_idx on o_user (notification_interval);
-
-alter table o_noti_pub add businesspath varchar(255);
-alter table o_noti_sub drop column latestread;
-alter table o_noti_sub drop column transresid;
-alter table o_noti_sub drop column transsubidentifier;
-alter table o_noti_sub drop column data;
-
---insert into o_stat_dayofweek (businesspath,resid,day,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,dayofweek(creationdate) day,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,day;
-create table o_stat_dayofweek (
-
-	id bigserial,
-	businesspath varchar(2048) not null,
-	resid int8 not null,
-	day int4 not null,
-	value int4 not null,
-	primary key (id)
-
-);
-create index statdow_resid_idx on o_stat_dayofweek (resid);
-
-
---insert into o_stat_hourofday (businesspath,resid,hour,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,hour(creationdate) hour,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,hour;
-create table o_stat_hourofday (
-
-	id bigserial,
-	businesspath varchar(2048) not null,
-	resid int8 not null,
-	hour int4 not null,
-	value int4 not null,
-	primary key (id)
-
-);
-create index stathod_resid_idx on o_stat_hourofday (resid);
-
-
---insert into o_stat_weekly (businesspath,resid,week,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,concat(year(creationdate),'-',week(creationdate)) week,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,week;
-create table o_stat_weekly (
-
-	id bigserial,
-	businesspath varchar(2048) not null,
-	resid int8 not null,
-	week varchar(7) not null,
-	value int4 not null,
-	primary key (id)
-
-);
-create index statwee_resid_idx on o_stat_weekly (resid);
-
-
---insert into o_stat_daily (businesspath,resid,day,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,date(creationdate) day,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,day;
-create table o_stat_daily (
-
-	id bigserial,
-	businesspath varchar(2048) not null,
-	resid int8 not null,
-	day timestamp not null,
-	value int4 not null,
-	primary key (id)
-
-);
-create index statday_resid_idx on o_stat_daily (resid);
-
-
---insert into o_stat_homeorg (businesspath,resid,homeorg,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,userproperty2 homeorg,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,homeorg;
-create table o_stat_homeorg (
-
-	id bigserial,
-	businesspath varchar(2048) not null,
-	resid int8 not null,
-	homeorg varchar(255) not null,
-	value int4 not null,
-	primary key (id)
-
-);
-create index stathor_resid_idx on o_stat_homeorg (resid);
-
-
---insert into o_stat_orgtype (businesspath,resid,orgtype,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,userproperty4 orgtype,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,orgtype;
-create table o_stat_orgtype (
-
-	id bigserial,
-	businesspath varchar(2048) not null,
-	resid int8 not null,
-	orgtype varchar(255),
-	value int4 not null,
-	primary key (id)
-
-);
-create index statorg_resid_idx on o_stat_orgtype (resid);
-
-
---insert into o_stat_studylevel (businesspath,resid,studylevel,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,userproperty3 studylevel,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,studylevel;
-create table o_stat_studylevel (
-
-	id bigserial,
-	businesspath varchar(2048) not null,
-	resid int8 not null,
-	studylevel varchar(255) not null,
-	value int4 not null,
-	primary key (id)
-
-);
-create index statstl_resid_idx on o_stat_studylevel (resid);
-
-
---insert into o_stat_studybranch3 (businesspath,resid,studybranch3,value) select businesspath,substr(businesspath,locate(':',businesspath)+1,locate(']',businesspath)-locate(':',businesspath)-1) resid,userproperty10 studybranch3,count(*) cnt from o_loggingtable where actionverb='launch' and actionobject='node' group by businesspath,studybranch3;
-create table o_stat_studybranch3 (
-
-	id bigserial,
-	businesspath varchar(2048) not null,
-	resid int8 not null,
-	studybranch3 varchar(255),
-	value int4 not null,
-	primary key (id)
-
-);
-create index statstb_resid_idx on o_stat_studybranch3 (resid);
-
---catalog-entry.name must have same length like repository-entry.displayname 
-ALTER TABLE o_catentry ALTER name TYPE varchar(110);
\ No newline at end of file
diff --git a/src/main/resources/database/postgresql/alter_6_3_x_to_7_0_0.sql b/src/main/resources/database/postgresql/alter_6_3_x_to_7_0_0.sql
deleted file mode 100644
index 940d5d2e624344c3f17b2f016efd9aa1fcbe7cd6..0000000000000000000000000000000000000000
--- a/src/main/resources/database/postgresql/alter_6_3_x_to_7_0_0.sql
+++ /dev/null
@@ -1,85 +0,0 @@
-
-create table o_mark (
-  mark_id int8 not null,
-  version int4 not null,
-  creationdate timestamp,
-  resname varchar(50) not null,
-  resid int8 not null,
-  ressubpath varchar(2048),
-  businesspath varchar(2048),
-  creator_id int8 not null,
-  primary key (mark_id)
-);
-
-create index mark_id_idx on o_mark(resid);
-create index mark_name_idx on o_mark(resname);
-create index mark_subpath_idx on o_mark(ressubpath);
-create index mark_businesspath_idx on o_mark(businesspath);
-create index FKF26C8375236F21X on o_mark(creator_id);
-alter table o_mark add constraint FKF26C8375236F21X foreign key (creator_id) references o_bs_identity (id);
-
--- locale can be longer than 10 chars (varian can be longer: de_CH_Zuerich)
-alter table o_user alter language type varchar(30);
-
--- update numofwords and numofcharacters from int8 to int4
-alter table o_message alter numofwords type int4;
-alter table o_message alter numofcharacters type int4;
-
--- update rating from int8 to int4
-alter table o_userrating alter rating type int4;
-
--- harmonisation with hsqldb datatypes
-alter table o_property alter floatvalue type float(24);
-alter table o_qtiresultset alter score type float(24);
-alter table o_qtiresult alter score type float(24);
-
--- a few "text" types are incorrectly dimensioned
-alter table o_bookmark alter description type text , alter column description set not null;
-alter table o_gp_bgarea alter descr type text;
-alter table o_gp_bgcontext alter descr type text;
-alter table o_noti_pub alter data type text;
-alter table o_property alter textvalue type text;
-alter table o_loggingtable alter targetresname type text;
-
--- update version from int8 to int4
-alter table o_forum alter version type int4;
-alter table o_property alter version type int4;
-alter table o_bs_secgroup alter version type int4;
-alter table o_gp_business alter version type int4;
-alter table o_temporarykey alter version type int4;
-alter table o_bs_authentication alter version type int4;
-alter table o_noti_pub alter version type int4;
-alter table o_qtiresultset alter version type int4;
-alter table o_bs_identity alter version type int4;
-alter table o_olatresource alter version type int4;
-alter table o_bs_namedgroup alter version type int4;
-alter table o_catentry alter version type int4;
-alter table o_note alter version type int4;
-alter table o_gp_bgcontext alter version type int4;
-alter table o_references alter version type int4;
-alter table o_repositorymetadata alter version type int4;
-alter table o_user alter version type int4;
-alter table o_gp_bgcontextresource_rel alter version type int4;
-alter table o_message alter version type int4;
-alter table o_gp_bgtoarea_rel alter version type int4;
-alter table o_noti_sub alter version type int4;
-alter table o_qtiresult alter version type int4;
-alter table o_bs_policy alter version type int4;
-alter table o_gp_bgarea alter version type int4;
-alter table o_repositoryentry alter version type int4;
-alter table o_bookmark alter version type int4;
-alter table o_bs_membership alter version type int4;
-alter table o_plock alter version type int4;
-alter table o_lifecycle alter version type int4;
-alter table o_readmessage alter version type int4;
-alter table oc_lock alter version type int4;
-alter table o_checklist alter version type int4;
-alter table o_checkpoint alter version type int4;
-alter table o_checkpoint_results alter version type int4;
-alter table o_projectbroker alter version type int4;
-alter table o_projectbroker_project alter version type int4;
-alter table o_usercomment alter version type int4;
-alter table o_userrating alter version type int4;
-
--- Redeploy Help-course
-delete from o_property where name='deployedCourses' and stringvalue='help/OLAT Hilfe.zip';
diff --git a/src/main/resources/serviceconfig/org/olat/_spring/sitedefContext.xml b/src/main/resources/serviceconfig/org/olat/_spring/sitedefContext.xml
index 846c7edb4cd0542468bc3a7b1c8bc3b90987b72a..079bc6ab33c22c1837fa36e06703c73518e15c9a 100644
--- a/src/main/resources/serviceconfig/org/olat/_spring/sitedefContext.xml
+++ b/src/main/resources/serviceconfig/org/olat/_spring/sitedefContext.xml
@@ -14,16 +14,6 @@
 	
 	<!-- classes implementing the SiteDefinition interface -->
 
-	<!-- 
-		Optional intranet site: uncomment this if you want a specific course to be 
-		your intranet course. The Intranet tab will give you a static access to this
-		special course directly from the topnavigation. Make sure that a course with
-		the given softref ID exists in the system!
-	-->
-	<!--<bean id="ch.goodsolutions.olat.intranetsite" class="ch.goodsolutions.olat.intranetsite.SiteDef" scope="prototype">
-		<property name="repositorySoftKey" value="idpcms72042813088313" />
-	</bean>-->
-	
 	<!-- Disable site by adding '<property name="enabled" value="false"/>' -->
 	<bean id="olatsites_home" class="org.olat.home.HomeSiteDef" scope="prototype" >
 	   <property name="order" value="1" />
diff --git a/src/main/webapp/static/movie/popup.html b/src/main/webapp/static/movie/popup.html
index e44beaba919816b17159ef2cd1f263f907a84205..6d098d3ddd3ebadd7055ae48a01aa931627af8fc 100644
--- a/src/main/webapp/static/movie/popup.html
+++ b/src/main/webapp/static/movie/popup.html
@@ -14,8 +14,7 @@
 <link rel="StyleSheet" href="../themes/default/layout.css" type="text/css" media="screen" />
 <script type="text/javascript">
 /* <![CDATA[ */ 
-	// Parse startup parameters passed by OLAT 
-	// This file is started from the org.olat.core.util.radeox.MovieViewerMacro class
+	// Parse startup parameters passed by OLAT
 	var is_input = document.URL.indexOf('?');	
 	if (is_input != -1) { 
 		addr_str = document.URL.substring(is_input+1, document.URL.length);