diff --git a/src/main/java/de/bps/course/nodes/cl/ChecklistEditController.java b/src/main/java/de/bps/course/nodes/cl/ChecklistEditController.java
index 9ec31e216a6b35fb883c5a5d39f558e04d66bcb7..b7f27dd58a11ebc5d12634ade3f7726d398eddec 100644
--- a/src/main/java/de/bps/course/nodes/cl/ChecklistEditController.java
+++ b/src/main/java/de/bps/course/nodes/cl/ChecklistEditController.java
@@ -31,8 +31,8 @@ import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController;
 import org.olat.core.gui.control.generic.tabbable.ActivateableTabbableDefaultController;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
+import org.olat.core.util.Util;
 import org.olat.course.ICourse;
 import org.olat.course.assessment.AssessmentHelper;
 import org.olat.course.condition.Condition;
@@ -137,7 +137,7 @@ public class ChecklistEditController extends ActivateableTabbableDefaultControll
 		if(source.equals(manageCheckpointsButton)) {
 			manageController = ChecklistUIFactory.getInstance().createManageCheckpointsController(ureq, getWindowControl(), checklist, course);
 			manageController.addControllerListener(this);
-			Translator clTranslator = new PackageTranslator(Checklist.class.getPackage().getName(), ureq.getLocale());
+			Translator clTranslator = Util.createPackageTranslator(Checklist.class, ureq.getLocale());
 			cmcManage = new CloseableModalController(getWindowControl(), clTranslator.translate("cl.close"), manageController.getInitialComponent(), true, clTranslator.translate("cl.manage.title"));
 			cmcManage.addControllerListener(this);
 			cmcManage.activate();
diff --git a/src/main/java/de/bps/course/nodes/ll/LLEditTableDataModel.java b/src/main/java/de/bps/course/nodes/ll/LLEditTableDataModel.java
index 555eb8d4d2fd922240be9fe12ff9dfdd202c139c..3f5a7e93f1d2b2428306047f77284b910be054fd 100644
--- a/src/main/java/de/bps/course/nodes/ll/LLEditTableDataModel.java
+++ b/src/main/java/de/bps/course/nodes/ll/LLEditTableDataModel.java
@@ -32,7 +32,7 @@ import org.olat.core.gui.components.table.DefaultTableDataModel;
  *
  * @author Marcel Karras (toka@freebits.de)
  */
-public class LLEditTableDataModel extends DefaultTableDataModel {
+public class LLEditTableDataModel extends DefaultTableDataModel<LLModel> {
 
 	private static int COLUMN_COUNT = 3;
 
@@ -53,7 +53,7 @@ public class LLEditTableDataModel extends DefaultTableDataModel {
 	 */
 	@Override
 	public Object getValueAt(int row, int col) {
-		final LLModel model = ((LLModel) objects.get(row));
+		final LLModel model = objects.get(row);
 		switch (col) {
 			case 0:
 				return model.getTarget();
diff --git a/src/main/java/de/bps/course/nodes/vc/VCCourseNodeConfiguration.java b/src/main/java/de/bps/course/nodes/vc/VCCourseNodeConfiguration.java
index 33330982c5df599ad61827783d1aa50ed3f07764..75875e9e9bc4a1e525a01d0f2737a8ca94f727e7 100644
--- a/src/main/java/de/bps/course/nodes/vc/VCCourseNodeConfiguration.java
+++ b/src/main/java/de/bps/course/nodes/vc/VCCourseNodeConfiguration.java
@@ -20,10 +20,8 @@
  */
 package de.bps.course.nodes.vc;
 
-import java.util.List;
 import java.util.Locale;
 
-import org.olat.core.extensions.ExtensionResource;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.AbstractCourseNodeConfiguration;
@@ -65,31 +63,5 @@ public class VCCourseNodeConfiguration extends AbstractCourseNodeConfiguration i
 		Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback);
 		return translator.translate("title_vc");
 	}
-	
-	@Override
-	public boolean isEnabled() {
-		return super.isEnabled();
-	}
-
-	public ExtensionResource getExtensionCSS() {
-		return null;
-	}
-
-	public List getExtensionResources() {
-		return null;
-	}
-
-	public String getName() {
-		return getAlias();
-	}
-
-	public void setup() {
-		// no special setup necessary
-	}
-
-	public void tearDown() {
-		// no special tear down necessary
-	}
-
 }
 //</OLATCE-103>
\ No newline at end of file
diff --git a/src/main/java/de/bps/course/nodes/vc/VCDatesTableDataModel.java b/src/main/java/de/bps/course/nodes/vc/VCDatesTableDataModel.java
index ebc6ac54b0607d1ed4c1fb8bd6aefb9db1f61b36..03f8812154c92ea2262282b2b94d1cc5d4159756 100644
--- a/src/main/java/de/bps/course/nodes/vc/VCDatesTableDataModel.java
+++ b/src/main/java/de/bps/course/nodes/vc/VCDatesTableDataModel.java
@@ -34,12 +34,12 @@ import org.olat.core.gui.components.table.DefaultTableDataModel;
  * Initial Date:  19.01.2011 <br>
  * @author skoeber
  */
-public class VCDatesTableDataModel extends DefaultTableDataModel {
+public class VCDatesTableDataModel extends DefaultTableDataModel<MeetingDate> {
 	
 	//title, description, begin, end
 	private static final int COLUMN_COUNT = 4;
 
-	public VCDatesTableDataModel(List objects) {
+	public VCDatesTableDataModel(List<MeetingDate> objects) {
 		super(objects);
 	}
 
@@ -50,7 +50,7 @@ public class VCDatesTableDataModel extends DefaultTableDataModel {
 
 	@Override
 	public Object getValueAt(int row, int col) {
-		final MeetingDate model = ((MeetingDate) objects.get(row));
+		final MeetingDate model = objects.get(row);
 
 		switch (col) {
 			case 0:
@@ -67,10 +67,10 @@ public class VCDatesTableDataModel extends DefaultTableDataModel {
 	}
 
 	public MeetingDate getEntryAt(int row) {
-		return (MeetingDate) objects.get(row);
+		return objects.get(row);
 	}
 
-	public void setEntries(List newEntries) {
+	public void setEntries(List<MeetingDate> newEntries) {
 		this.objects = newEntries;
 	}
 }
diff --git a/src/main/java/de/bps/olat/user/ChangeEMailController.java b/src/main/java/de/bps/olat/user/ChangeEMailController.java
index 8d830a4978cecf2f6fedc6194522490755a66ca9..4cc95eb325bf74b98a48317f1e3b9e271e82cc86 100644
--- a/src/main/java/de/bps/olat/user/ChangeEMailController.java
+++ b/src/main/java/de/bps/olat/user/ChangeEMailController.java
@@ -29,10 +29,10 @@ import org.olat.core.gui.components.Component;
 import org.olat.core.gui.control.DefaultController;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.User;
+import org.olat.core.util.Util;
 import org.olat.registration.RegistrationManager;
 import org.olat.registration.TemporaryKeyImpl;
 import org.olat.user.ProfileAndHomePageEditController;
@@ -49,7 +49,6 @@ import com.thoughtworks.xstream.XStream;
  */
 public class ChangeEMailController extends DefaultController {
 
-	protected static final String PACKAGE = ProfileAndHomePageEditController.class.getPackage().getName();
 	protected static final String CHANGE_EMAIL_ENTRY = "change.email.login";
 	
 	public static int TIME_OUT = 30;
@@ -69,7 +68,7 @@ public class ChangeEMailController extends DefaultController {
 	public ChangeEMailController(UserRequest ureq, WindowControl wControl) {
 		super(wControl);
 		this.userRequest = ureq;
-		pT = new PackageTranslator(PACKAGE, userRequest.getLocale());
+		pT = Util.createPackageTranslator(ProfileAndHomePageEditController.class, userRequest.getLocale());
 		pT = UserManager.getInstance().getPropertyHandlerTranslator(pT);
 		emKey = userRequest.getHttpReq().getParameter("key");
 		if ((emKey == null) && (userRequest.getUserSession().getEntry(CHANGE_EMAIL_ENTRY) != null)) {
diff --git a/src/main/java/de/bps/olat/user/ChangeEMailExecuteController.java b/src/main/java/de/bps/olat/user/ChangeEMailExecuteController.java
index c47b7728b8912c02d860d5956fe1e24e59ed5efc..d362ab8bce66a27619d6a6c08eec3ed917615178 100644
--- a/src/main/java/de/bps/olat/user/ChangeEMailExecuteController.java
+++ b/src/main/java/de/bps/olat/user/ChangeEMailExecuteController.java
@@ -23,7 +23,6 @@ import java.util.HashMap;
 
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.User;
@@ -55,7 +54,7 @@ public class ChangeEMailExecuteController extends ChangeEMailController implemen
 	public ChangeEMailExecuteController(UserRequest ureq, WindowControl wControl) {
 		super(ureq, wControl);
 		this.userRequest = ureq;
-		pT = new PackageTranslator(PACKAGE, userRequest.getLocale());
+		pT = Util.createPackageTranslator(ProfileAndHomePageEditController.class, userRequest.getLocale());
 		pT = UserManager.getInstance().getPropertyHandlerTranslator(pT);
 		emKey = userRequest.getHttpReq().getParameter("key");
 		if (emKey == null) {
diff --git a/src/main/java/de/bps/onyx/plugin/wsserver/MapWrapper.java b/src/main/java/de/bps/onyx/plugin/wsserver/MapWrapper.java
index 70dadf9cd48a9f2f94a56a8a58b45f6982a343cd..cec1dbfddd780279f0e9544088c8a1105c406e16 100644
--- a/src/main/java/de/bps/onyx/plugin/wsserver/MapWrapper.java
+++ b/src/main/java/de/bps/onyx/plugin/wsserver/MapWrapper.java
@@ -19,6 +19,7 @@
  */
 package de.bps.onyx.plugin.wsserver;
 
+import java.io.Serializable;
 import java.util.HashMap;
 
 import javax.xml.bind.annotation.XmlAccessType;
@@ -28,7 +29,7 @@ import javax.xml.bind.annotation.XmlType;
 
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name = "mapwrapper")
-public class MapWrapper {
+public class MapWrapper implements Serializable {
 
 	private static final long serialVersionUID = 5831008170384520354L;
 
diff --git a/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/EnrollmentEditForm.java b/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/EnrollmentEditForm.java
index 7f425623d9a38e5ace8043338fe3325965bb56e9..12284bd6e1aea644d582f6f663fae1958d9e0030 100644
--- a/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/EnrollmentEditForm.java
+++ b/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/steps/EnrollmentEditForm.java
@@ -174,11 +174,8 @@ public class EnrollmentEditForm extends FormBasicController {
 		}
 
 		// rules to hide / unhide
-		Set<FormItem> targets = new HashSet<FormItem>() {
-			{
-				add(courseElements);
-			}
-		};
+		Set<FormItem> targets = new HashSet<FormItem>();
+		targets.add(courseElements);
 		RulesFactory.createHideRule(accessLimit, null, targets, formLayout);
 		RulesFactory.createShowRule(accessLimit, "ison", targets, formLayout);
 
diff --git a/src/main/java/org/olat/admin/quota/GenericQuotaEditController.java b/src/main/java/org/olat/admin/quota/GenericQuotaEditController.java
index 4e7bea196dfa09dda1cc5cfc0aaacde7e6f8ab8a..484ff699abe124ebd4f85ffc1e0c17116c0ecabc 100644
--- a/src/main/java/org/olat/admin/quota/GenericQuotaEditController.java
+++ b/src/main/java/org/olat/admin/quota/GenericQuotaEditController.java
@@ -60,7 +60,6 @@ public class GenericQuotaEditController extends BasicController {
 	private boolean modalMode;
 	
 	private Quota currentQuota;
-	private Link addQuotaButton;
 	private Link delQuotaButton;
 	private Link cancelButton;
 
@@ -127,7 +126,7 @@ public class GenericQuotaEditController extends BasicController {
 
 		myContent = createVelocityContainer("edit");
 		myContent.contextPut("modalMode", Boolean.valueOf(modalMode));
-		addQuotaButton = LinkFactory.createButtonSmall("qf.new", myContent, this);
+		LinkFactory.createButtonSmall("qf.new", myContent, this);
 		delQuotaButton = LinkFactory.createButtonSmall("qf.del", myContent, this);
 		cancelButton = LinkFactory.createButtonSmall("cancel", myContent, this);
 		
diff --git a/src/main/java/org/olat/admin/sysinfo/ErrorLogLevelController.java b/src/main/java/org/olat/admin/sysinfo/ErrorLogLevelController.java
index ff3d53d578591897cb978cbb5ca5e052e9012383..7a80d2a0c9194c7e3b34c1c91136a8f2180ff85f 100644
--- a/src/main/java/org/olat/admin/sysinfo/ErrorLogLevelController.java
+++ b/src/main/java/org/olat/admin/sysinfo/ErrorLogLevelController.java
@@ -22,6 +22,7 @@ package org.olat.admin.sysinfo;
 import java.util.List;
 
 import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.link.Link;
@@ -68,7 +69,7 @@ public class ErrorLogLevelController extends BasicController {
 	}
 	
 	private void loadModel() {
-		List loggers = Tracing.getLoggersSortedByName(); // put it in a list in case of a reload (enum can only be used once)
+		List<Logger> loggers = Tracing.getLoggersSortedByName(); // put it in a list in case of a reload (enum can only be used once)
 		myLoglevels.contextPut("loggers", loggers);
 	}
 
diff --git a/src/main/java/org/olat/admin/user/UserSearchController.java b/src/main/java/org/olat/admin/user/UserSearchController.java
index 212a193d826e706df54bef664c3ec38beec78248..d0c6218196a2b8c657fbc5c4319b4ee4ccf09893 100644
--- a/src/main/java/org/olat/admin/user/UserSearchController.java
+++ b/src/main/java/org/olat/admin/user/UserSearchController.java
@@ -51,7 +51,6 @@ import org.olat.core.gui.control.controller.BasicController;
 import org.olat.core.gui.control.generic.ajax.autocompletion.AutoCompleterController;
 import org.olat.core.gui.control.generic.ajax.autocompletion.EntriesChosenEvent;
 import org.olat.core.gui.control.generic.ajax.autocompletion.ListProvider;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.Roles;
@@ -166,7 +165,7 @@ public class UserSearchController extends BasicController {
 		this.actionKeyChoose = ACTION_KEY_CHOOSE;
 		securityModule = CoreSpringFactory.getImpl(BaseSecurityModule.class);
 	  // Needs PACKAGE and VELOCITY_ROOT because DeletableUserSearchController extends UserSearchController and re-use translations
-		Translator pT = UserManager.getInstance().getPropertyHandlerTranslator( new PackageTranslator(PACKAGE, ureq.getLocale()) );	
+		Translator pT = UserManager.getInstance().getPropertyHandlerTranslator(Util.createPackageTranslator(UserSearchController.class, ureq.getLocale()) );	
 		myContent = new VelocityContainer("olatusersearch", VELOCITY_ROOT + "/usersearch.html", pT, this);
 		backLink = LinkFactory.createButton("btn.back", myContent, this);
 		
diff --git a/src/main/java/org/olat/admin/user/delete/TabbedPaneController.java b/src/main/java/org/olat/admin/user/delete/TabbedPaneController.java
index 15e3644fb4a8728c4dc31127af7cee83aaf752fb..2e8101d6278f1008db59cbc245427e1bdf9b7d74 100644
--- a/src/main/java/org/olat/admin/user/delete/TabbedPaneController.java
+++ b/src/main/java/org/olat/admin/user/delete/TabbedPaneController.java
@@ -53,8 +53,7 @@ import org.olat.core.util.WebappHelper;
  */
 public class TabbedPaneController extends DefaultController implements ControllerEventListener, Activateable2 {
 
-	private static final String PACKAGE = Util.getPackageName(TabbedPaneController.class);
-	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(PACKAGE);
+	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(TabbedPaneController.class);
 	
 	private static final String NLS_ERROR_NOACCESS_TO_USER = "error.noaccess.to.user";
 	
diff --git a/src/main/java/org/olat/commons/lifecycle/LifeCycleEntry.java b/src/main/java/org/olat/commons/lifecycle/LifeCycleEntry.java
index 9d511d7eee96b05b49abde625943b1152e9616b1..13ee91c290ea08a4ae7372ae3b4185164a224c50 100644
--- a/src/main/java/org/olat/commons/lifecycle/LifeCycleEntry.java
+++ b/src/main/java/org/olat/commons/lifecycle/LifeCycleEntry.java
@@ -36,7 +36,8 @@ import org.olat.core.logging.AssertException;
  * @author Christian Guretzki
  */
 public class LifeCycleEntry extends PersistentObject {
-	
+
+	private static final long serialVersionUID = -2919077675588017564L;
 	private String persistentTypeName;
 	private Long   persistentRef;
 	private String action;
@@ -112,7 +113,7 @@ public class LifeCycleEntry extends PersistentObject {
 	 * @param resourceTypeName The resourceTypeName to set.
 	 */
 	protected void setPersistentTypeName(String persistentTypeName) {
-		if (persistentTypeName.length() > this.PERSISTENTTYPENAME_MAXLENGTH) {
+		if (persistentTypeName.length() > PERSISTENTTYPENAME_MAXLENGTH) {
 			throw new AssertException("persistentTypeName in o_lifecycle too long. persistentObjectTypeName=" + persistentTypeName );
 		}
 		this.persistentTypeName = persistentTypeName;
diff --git a/src/main/java/org/olat/commons/servlets/StaticsLegacyDispatcher.java b/src/main/java/org/olat/commons/servlets/StaticsLegacyDispatcher.java
index b55bb04fda2b4d9d78f116365c26b83cde0e7d1c..272ed4d0b5a34e0d36768b0d6899332e40cc2a22 100644
--- a/src/main/java/org/olat/commons/servlets/StaticsLegacyDispatcher.java
+++ b/src/main/java/org/olat/commons/servlets/StaticsLegacyDispatcher.java
@@ -36,6 +36,7 @@ import org.olat.commons.servlets.util.ResourceDescriptor;
 import org.olat.core.dispatcher.Dispatcher;
 import org.olat.core.dispatcher.DispatcherModule;
 import org.olat.core.gui.media.ServletUtil;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 
 /**
@@ -59,6 +60,8 @@ import org.olat.core.logging.Tracing;
  *             e.g. static resources which are shared by all users
  */
 public class StaticsLegacyDispatcher implements Dispatcher {
+	private static final OLog log = Tracing.createLoggerFor(StaticsLegacyDispatcher.class);
+	
     private static int outputBufferSize = 2048;
     private static int inputBufferSize = 2048;
 
@@ -96,9 +99,8 @@ public class StaticsLegacyDispatcher implements Dispatcher {
 					 * silently ignore forward errors (except in debug mode), since IE
 					 * causes tons of such messages by its double GET request
 					 */
-					if (Tracing.isDebugEnabled(DispatcherModule.class)) {
-						Tracing.logDebug("could not execute legacy statics method:" + e.toString() + ",msg:" + e.getMessage(),
-								StaticsLegacyDispatcher.class);
+					if (log.isDebug()) {
+						log.debug("could not execute legacy statics method:" + e.toString() + ",msg:" + e.getMessage());
 					}
     		}
     }
@@ -158,7 +160,7 @@ public class StaticsLegacyDispatcher implements Dispatcher {
         String handlerName = null;
         long start = 0;
         
-        boolean logDebug = Tracing.isDebugEnabled(StaticsLegacyDispatcher.class);
+        boolean logDebug = log.isDebug();
         if (logDebug) start = System.currentTimeMillis();
         try {
             relPath = path.substring(1);
@@ -215,7 +217,7 @@ public class StaticsLegacyDispatcher implements Dispatcher {
             copyContent(response, is);
             if (logDebug) {
                 long stop = System.currentTimeMillis();  
-                Tracing.logDebug("Serving resource '" + relPath + "' ("+rd.getSize()+" bytes) in "+ (stop-start) +"ms with handler '" + handlerName + "'.", StaticsLegacyDispatcher.class);
+                log.debug("Serving resource '" + relPath + "' ("+rd.getSize()+" bytes) in "+ (stop-start) +"ms with handler '" + handlerName + "'.");
 
             }
         }
diff --git a/src/main/java/org/olat/core/commons/chiefcontrollers/ChiefControllerMessageEvent.java b/src/main/java/org/olat/core/commons/chiefcontrollers/ChiefControllerMessageEvent.java
index bc3b8508c60cd6f9199b634652f6e9154af76c95..70d5ee197787aab2915a7f38dabd93a68c6b65a9 100644
--- a/src/main/java/org/olat/core/commons/chiefcontrollers/ChiefControllerMessageEvent.java
+++ b/src/main/java/org/olat/core/commons/chiefcontrollers/ChiefControllerMessageEvent.java
@@ -47,6 +47,7 @@ import org.olat.core.util.event.MultiUserEvent;
  */
 public class ChiefControllerMessageEvent extends MultiUserEvent {
 
+	private static final long serialVersionUID = -2235582801661115222L;
 	/**
 	 * indicates removing clearing of maintenance message
 	 */
diff --git a/src/main/java/org/olat/core/commons/chiefcontrollers/LanguageChangedEvent.java b/src/main/java/org/olat/core/commons/chiefcontrollers/LanguageChangedEvent.java
index 9a480793c549454304555451c8c4a6df89c25ac8..0764ea7f3a407efe751c3fb817d8ea50aa8ea665 100644
--- a/src/main/java/org/olat/core/commons/chiefcontrollers/LanguageChangedEvent.java
+++ b/src/main/java/org/olat/core/commons/chiefcontrollers/LanguageChangedEvent.java
@@ -40,6 +40,7 @@ import org.olat.core.util.event.MultiUserEvent;
  */
 public class LanguageChangedEvent extends MultiUserEvent {
 
+	private static final long serialVersionUID = -3792828330046067628L;
 	private Locale newLocale;
 	private transient UserRequest ureq;
 
diff --git a/src/main/java/org/olat/core/commons/contextHelp/ContextHelpRatingEvent.java b/src/main/java/org/olat/core/commons/contextHelp/ContextHelpRatingEvent.java
index c2d65e895a413bcfc613c5fcf19b6e9711d2c122..8520b3cffe9c08155757aa9cccab105224d8be52 100644
--- a/src/main/java/org/olat/core/commons/contextHelp/ContextHelpRatingEvent.java
+++ b/src/main/java/org/olat/core/commons/contextHelp/ContextHelpRatingEvent.java
@@ -33,6 +33,8 @@ import org.olat.core.util.event.MultiUserEvent;
  */
 
 public class ContextHelpRatingEvent extends MultiUserEvent {
+
+	private static final long serialVersionUID = 853468927526465817L;
 	private static final String COMMAND = "ContextHelpRatingEvent";
 	private final String key;
 	private final  Object[] ratingValues;
diff --git a/src/main/java/org/olat/core/commons/controllers/linkchooser/SuffixFilter.java b/src/main/java/org/olat/core/commons/controllers/linkchooser/SuffixFilter.java
index f1f55dd2a65ec7cef4a645b7bea3d30fdf025db0..64769ac504ed8b4cdea7cbc77cb2ac1480130608 100644
--- a/src/main/java/org/olat/core/commons/controllers/linkchooser/SuffixFilter.java
+++ b/src/main/java/org/olat/core/commons/controllers/linkchooser/SuffixFilter.java
@@ -29,6 +29,7 @@ package org.olat.core.commons.controllers.linkchooser;
 import java.io.File;
 import java.io.FileFilter;
 import java.util.Hashtable;
+import java.util.Map;
 
 /**
  * Description:<br>
@@ -38,11 +39,8 @@ import java.util.Hashtable;
  */
 public class SuffixFilter implements FileFilter {
 
-	private Hashtable suffixes = new Hashtable();
+	private Map<String,String> suffixes = new Hashtable<>();
 
-	/**
-	 * 
-	 */
 	public SuffixFilter() {
 	//
 	}
@@ -61,14 +59,14 @@ public class SuffixFilter implements FileFilter {
 	 */
 	public void addSuffix(String suffix) {
 		suffix = suffix.toLowerCase();
-		this.suffixes.put(suffix, suffix);
+		suffixes.put(suffix, suffix);
 	}
 
 	/**
 	 * @param suffix
 	 */
 	public void removeSuffix(String suffix) {
-		this.suffixes.remove(suffix.toLowerCase());
+		suffixes.remove(suffix.toLowerCase());
 	}
 
 	/**
@@ -78,7 +76,9 @@ public class SuffixFilter implements FileFilter {
 		String name = file.getName().toLowerCase();
 		if (file.isDirectory()) return false;
 		int idx = name.lastIndexOf('.');
-		if (idx >= 0) { return this.suffixes.containsKey(name.substring(idx + 1)); }
+		if (idx >= 0) {
+			return suffixes.containsKey(name.substring(idx + 1));
+		}
 		return suffixes.containsKey(name);
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/commons/controllers/linkchooser/URLChoosenEvent.java b/src/main/java/org/olat/core/commons/controllers/linkchooser/URLChoosenEvent.java
index 0717632d4ea0dea276cd721e1788b94af2077efa..482a426f08072bf58de51ba0f27de4ebcc3b1038 100644
--- a/src/main/java/org/olat/core/commons/controllers/linkchooser/URLChoosenEvent.java
+++ b/src/main/java/org/olat/core/commons/controllers/linkchooser/URLChoosenEvent.java
@@ -37,6 +37,8 @@ import org.olat.core.gui.control.Event;
  * @author Florian Gnägi, frentix GmbH, http://www.frentix.com
  */
 public class URLChoosenEvent extends Event {
+
+	private static final long serialVersionUID = 4271699081190253734L;
 	private final String url;
 	private final String displayName;
 	private final String htmlTarget;
diff --git a/src/main/java/org/olat/core/commons/controllers/navigation/NavigationEvent.java b/src/main/java/org/olat/core/commons/controllers/navigation/NavigationEvent.java
index a65076da57476c0b502f0fe84e4251bf2e395b5b..b2758a809470e3af6fe6cdb975c78c1374477371 100644
--- a/src/main/java/org/olat/core/commons/controllers/navigation/NavigationEvent.java
+++ b/src/main/java/org/olat/core/commons/controllers/navigation/NavigationEvent.java
@@ -34,6 +34,7 @@ import org.olat.core.gui.control.Event;
  */
 public class NavigationEvent extends Event {
 
+	private static final long serialVersionUID = -1854984960347993034L;
 	private List<? extends Dated> selectedItems;
 
 	/**
diff --git a/src/main/java/org/olat/core/commons/persistence/DBQueryImpl.java b/src/main/java/org/olat/core/commons/persistence/DBQueryImpl.java
index 4c535f23008a7343856d3712c880653708a85d71..e7bdd506c886fd69e586bc9184019ca244076d7c 100644
--- a/src/main/java/org/olat/core/commons/persistence/DBQueryImpl.java
+++ b/src/main/java/org/olat/core/commons/persistence/DBQueryImpl.java
@@ -46,6 +46,7 @@ import org.hibernate.LockMode;
 import org.hibernate.Query;
 import org.hibernate.type.Type;
 import org.olat.core.logging.DBRuntimeException;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.testutils.codepoints.server.Codepoint;
 /**
@@ -55,6 +56,8 @@ import org.olat.testutils.codepoints.server.Codepoint;
  *
  */
 public class DBQueryImpl implements DBQuery {
+	
+	private static final OLog log = Tracing.createLoggerFor(DBQueryImpl.class);
 
 	private Query query = null;
 
@@ -119,13 +122,13 @@ public class DBQueryImpl implements DBQuery {
 		Codepoint.codepoint(getClass(), "list-entry");
 		final long startTime = System.currentTimeMillis();
 		try{
-			boolean doLog = Tracing.isDebugEnabled(DBQueryImpl.class);
+			boolean doLog = log.isDebug();
 			long start = 0;
 			if (doLog) start = System.currentTimeMillis();
 			List li = query.list();
 			if (doLog) {
 				long time = (System.currentTimeMillis() - start);
-				Tracing.logDebug("list dbquery (time "+time+") query "+getQueryString(), DBQueryImpl.class);
+				log.debug("list dbquery (time "+time+") query "+getQueryString());
 			}
 			String queryString = query.getQueryString().trim();
 			String queryStringToLowerCase = queryString.toLowerCase();
@@ -227,15 +230,6 @@ public class DBQueryImpl implements DBQuery {
 		}
 	}
 
-	/*public ScrollableResults scroll() {
-		try {
-			return query.scroll();
-		}
-		catch (HibernateException e) {
-			throw new DBRuntimeException("Scroll failed. ", e);
-		}
-	}*/
-
 	/**
 	 * @see org.olat.core.commons.persistence.DBQuery#setBigDecimal(int, java.math.BigDecimal)
 	 */
diff --git a/src/main/java/org/olat/core/commons/portlets/didYouKnow/DidYouKnowPortletRunController.java b/src/main/java/org/olat/core/commons/portlets/didYouKnow/DidYouKnowPortletRunController.java
index f96c49bad05622ff8a99545b88b8d1aea9e482af..540bfd72c4f82935c022f72505864f400df0a0c7 100644
--- a/src/main/java/org/olat/core/commons/portlets/didYouKnow/DidYouKnowPortletRunController.java
+++ b/src/main/java/org/olat/core/commons/portlets/didYouKnow/DidYouKnowPortletRunController.java
@@ -69,7 +69,7 @@ public class DidYouKnowPortletRunController extends DefaultController {
 	 */
 	protected DidYouKnowPortletRunController(UserRequest ureq, WindowControl wControl) {
 		super(wControl);
-		this.trans = new PackageTranslator(Util.getPackageName(DidYouKnowPortlet.class), ureq.getLocale());
+		this.trans = (PackageTranslator)Util.createPackageTranslator(DidYouKnowPortlet.class, ureq.getLocale());
 		this.didYouKnowVC = new VelocityContainer("didYouKnowVC", VELOCITY_ROOT + "/didYouKnowPortlet.html", trans, this);
 		nextLink = LinkFactory.createLink("next", didYouKnowVC, this);
 		
diff --git a/src/main/java/org/olat/core/commons/services/mark/ui/BookmarksController.java b/src/main/java/org/olat/core/commons/services/mark/ui/BookmarksController.java
index 9f896e836fc8707949d33c61385ffb702de3ea89..a7492c8dadf360297383642718da0c2bdf58f4ce 100644
--- a/src/main/java/org/olat/core/commons/services/mark/ui/BookmarksController.java
+++ b/src/main/java/org/olat/core/commons/services/mark/ui/BookmarksController.java
@@ -54,7 +54,8 @@ import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
 import org.olat.core.gui.control.generic.modal.DialogBoxController;
 import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
-import org.olat.core.gui.translator.PackageTranslator;
+import org.olat.core.gui.translator.Translator;
+import org.olat.core.util.Util;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryEntryStatus;
 import org.olat.repository.RepositoryManager;
@@ -227,7 +228,7 @@ public class BookmarksController extends BasicController {
 		private String getBookmarkTitle(Bookmark bookmark) {
 			String title = bookmark.getTitle();
 			if (RepositoryManager.getInstance().createRepositoryEntryStatus(bookmark.getStatusCode()).isClosed()) {
-				PackageTranslator pT = new PackageTranslator(RepositoryEntryStatus.class.getPackage().getName(), locale);
+				Translator pT = Util.createPackageTranslator(RepositoryEntryStatus.class, locale);
 				title = "[" + pT.translate("title.prefix.closed") + "] ".concat(title);
 			}
 			return title;
diff --git a/src/main/java/org/olat/core/commons/services/mark/ui/BookmarksPortletRunController.java b/src/main/java/org/olat/core/commons/services/mark/ui/BookmarksPortletRunController.java
index 3b2de54f170059b8a565cabe34fd481417246749..db0860a1029c0b692475b3939ca5ac8b7e827a14 100644
--- a/src/main/java/org/olat/core/commons/services/mark/ui/BookmarksPortletRunController.java
+++ b/src/main/java/org/olat/core/commons/services/mark/ui/BookmarksPortletRunController.java
@@ -58,10 +58,10 @@ import org.olat.core.gui.control.generic.portal.PortletDefaultTableDataModel;
 import org.olat.core.gui.control.generic.portal.PortletEntry;
 import org.olat.core.gui.control.generic.portal.PortletToolSortingControllerImpl;
 import org.olat.core.gui.control.generic.portal.SortingCriteria;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.context.BusinessControl;
 import org.olat.core.id.context.BusinessControlFactory;
+import org.olat.core.util.Util;
 import org.olat.core.util.filter.FilterFactory;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryEntryStatus;
@@ -336,7 +336,7 @@ public class BookmarksPortletRunController extends AbstractPortletRunController<
 		private String getBookmarkTitle(Bookmark bookmark) {
 			String title = bookmark.getTitle();
 			if (RepositoryManager.getInstance().createRepositoryEntryStatus(bookmark.getStatusCode()).isClosed()) {
-				PackageTranslator pT = new PackageTranslator(RepositoryEntryStatus.class.getPackage().getName(), locale);
+				Translator pT = Util.createPackageTranslator(RepositoryEntryStatus.class, locale);
 				title = "[" + pT.translate("title.prefix.closed") + "] ".concat(title);
 			}
 			return title;
diff --git a/src/main/java/org/olat/core/configuration/PersistedPropertiesChangedEvent.java b/src/main/java/org/olat/core/configuration/PersistedPropertiesChangedEvent.java
index 0847e6fbfa9dec8cf1181a72d2ce682de30831e1..56f66dfdcd7783351229aa196424c41fbb4f4d7e 100644
--- a/src/main/java/org/olat/core/configuration/PersistedPropertiesChangedEvent.java
+++ b/src/main/java/org/olat/core/configuration/PersistedPropertiesChangedEvent.java
@@ -36,6 +36,8 @@ import org.olat.core.util.event.MultiUserEvent;
  */
 
 public class PersistedPropertiesChangedEvent extends MultiUserEvent {
+
+	private static final long serialVersionUID = 4165275870616317484L;
 	private static final String COMMAND = "PersistedPropertiesChangedEvent";
 	private final Properties changedProperties;
 
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java
index 2aa9210364464f2cd96dce7f59efe6feccfdfc3e..11cd2322fbb1ba0f8d2908e02f4db0a21928457f 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/MultipleSelectionElementImpl.java
@@ -53,8 +53,7 @@ import org.olat.core.util.ValidationStatus;
  */
 public class MultipleSelectionElementImpl extends FormItemImpl implements MultipleSelectionElement {
 	private static final OLog log = Tracing.createLoggerFor(MultipleSelectionElementImpl.class);
-	private static final String PACKAGE = Util.getPackageName(MultipleSelectionElementImpl.class);
-	protected static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(PACKAGE);
+	protected static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(MultipleSelectionElementImpl.class);
  
 	private final static String HORIZONTAL_DEFAULT_CHCKBX = VELOCITY_ROOT + "/sel_elems_horizontal.html";
 	private final static String VERTICAL_CHCKBX = VELOCITY_ROOT + "/sel_elems_vertical.html";
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionImpl.java
index 859ac6a3d13ee288a5ba74a5cb8d35a9422b20a5..84a4a586a24cf1a4d2809ea5f56926ff38510c2b 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionImpl.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionImpl.java
@@ -49,9 +49,7 @@ import org.olat.core.util.ValidationStatusImpl;
  */
 public class SingleSelectionImpl extends FormItemImpl implements SingleSelection {
 
-	//
-	private static final String PACKAGE = Util.getPackageName(SingleSelectionImpl.class);
-	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(PACKAGE);
+	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(SingleSelectionImpl.class);
 
 	private final static String HORIZONTAL_DEFAULT_RADIO = VELOCITY_ROOT + "/sel_elems_horizontal.html";
 	private final static String VERTICAL_RADIO = VELOCITY_ROOT + "/sel_elems_vertical.html";
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SpacerElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SpacerElementImpl.java
index 3a12de0a82ab34bf2f0b99782cf13f8868c27b5a..8cf94cf738d5023d4190b555b07ebe21ce30543d 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SpacerElementImpl.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SpacerElementImpl.java
@@ -26,6 +26,7 @@ import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.form.flexible.elements.SpacerElement;
 import org.olat.core.gui.components.form.flexible.impl.FormItemImpl;
+import org.olat.core.util.ValidationStatus;
 
 /**
  * Implements an HTML horizontal bar (&lt;HR&gt;) element.
@@ -66,7 +67,7 @@ public class SpacerElementImpl extends FormItemImpl implements SpacerElement {
 	}
 
 	@Override
-	public void validate(List validationResults) {
+	public void validate(List<ValidationStatus> validationResults) {
 		// No need to do that for this element.
 	}
 
diff --git a/src/main/java/org/olat/core/gui/components/htmlsite/HtmlStaticPageComponent.java b/src/main/java/org/olat/core/gui/components/htmlsite/HtmlStaticPageComponent.java
index 8e923d046a1cef9fe6b858f0152001b6886c057b..a81ac7cdb45b0c5be938f5fadaaee603fd48ab79 100644
--- a/src/main/java/org/olat/core/gui/components/htmlsite/HtmlStaticPageComponent.java
+++ b/src/main/java/org/olat/core/gui/components/htmlsite/HtmlStaticPageComponent.java
@@ -38,6 +38,7 @@ import org.olat.core.gui.media.NotFoundMediaResource;
 import org.olat.core.gui.media.RedirectMediaResource;
 import org.olat.core.gui.render.ValidationResult;
 import org.olat.core.logging.AssertException;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.FileUtils;
 import org.olat.core.util.SimpleHtmlParser;
@@ -52,6 +53,8 @@ import org.olat.core.util.vfs.VFSMediaResource;
  * @author Felix Jost
  */
 public class HtmlStaticPageComponent extends AbstractComponent implements AsyncMediaResponsible {
+	
+	private static final OLog log = Tracing.createLoggerFor(HtmlStaticPageComponent.class);
 	// make public mainly for the IFrameDisplayController
 	public static final String OLAT_CMD_PREFIX = "olatcmd/";
 
@@ -137,12 +140,12 @@ public class HtmlStaticPageComponent extends AbstractComponent implements AsyncM
 			boolean checkRegular = true;
 			// check for special case: render the follwing link in a new (server) window and all following clicks as well
 			if ( (ureq.getParameter("olatsite") != null) || ( (moduleURI.endsWith(".html") || moduleURI.endsWith(".htm")) && (ureq.getParameter("olatraw") != null) ) ){
-				Tracing.logDebug("moduleURI=" + moduleURI, HtmlStaticPageComponent.class);
+				log.debug("moduleURI=" + moduleURI);
 				ExternalSiteEvent ese = new ExternalSiteEvent(moduleURI);
 				fireEvent(ureq, ese);
 				if (ese.isAccepted()) {
 					mr = ese.getResultingMediaResource();
-					Tracing.logDebug("ExternalSiteEvent is accepted", HtmlStaticPageComponent.class);
+					log.debug("ExternalSiteEvent is accepted");
 					checkRegular = false;
 				} else {
 					// it is a html page with olatraw parameter => redirect to mapper
@@ -164,7 +167,7 @@ public class HtmlStaticPageComponent extends AbstractComponent implements AsyncM
 
 
 					ese.setResultingMediaResource(new RedirectMediaResource(amapPath+"/"+moduleURI));
-					Tracing.logDebug("RedirectMediaResource=" + amapPath+"/"+moduleURI, HtmlStaticPageComponent.class);
+					log.debug("RedirectMediaResource=" + amapPath+"/"+moduleURI);
 					ese.accept();
 					mr = ese.getResultingMediaResource();
 					checkRegular = false;
diff --git a/src/main/java/org/olat/core/gui/components/htmlsite/NewInlineUriEvent.java b/src/main/java/org/olat/core/gui/components/htmlsite/NewInlineUriEvent.java
index cf909deb0c1bfc11b43e29c281fb0d699d0679ea..c7de413bac5d05d6fdf1c2b010c52abc42a616e0 100644
--- a/src/main/java/org/olat/core/gui/components/htmlsite/NewInlineUriEvent.java
+++ b/src/main/java/org/olat/core/gui/components/htmlsite/NewInlineUriEvent.java
@@ -32,6 +32,8 @@ import org.olat.core.gui.control.Event;
  * @author Felix Jost
  */
 public class NewInlineUriEvent extends Event {
+
+	private static final long serialVersionUID = -3452071993340874293L;
 	private String newUri;
 
 	public NewInlineUriEvent(String newUri) {
diff --git a/src/main/java/org/olat/core/gui/components/htmlsite/OlatCmdEvent.java b/src/main/java/org/olat/core/gui/components/htmlsite/OlatCmdEvent.java
index ee7448f279c0ece1b2a8f126fa5fd1067a7dc0b3..eeee4e48dcbeaf0ec985af59ec68bd3786899d90 100644
--- a/src/main/java/org/olat/core/gui/components/htmlsite/OlatCmdEvent.java
+++ b/src/main/java/org/olat/core/gui/components/htmlsite/OlatCmdEvent.java
@@ -33,6 +33,8 @@ import org.olat.core.gui.control.Event;
  * @author Felix Jost
  */
 public class OlatCmdEvent extends Event {
+
+	private static final long serialVersionUID = 6063669820683223048L;
 	private boolean accepted;
 	private final String subcommand;
 	
diff --git a/src/main/java/org/olat/core/gui/components/tree/SelectionTree.java b/src/main/java/org/olat/core/gui/components/tree/SelectionTree.java
index 6a0e7516e531ef294a5626358e8234843b1bbe62..f9e6fbeb609b100ff777b7d09d4945f9b4eb9f40 100644
--- a/src/main/java/org/olat/core/gui/components/tree/SelectionTree.java
+++ b/src/main/java/org/olat/core/gui/components/tree/SelectionTree.java
@@ -35,7 +35,6 @@ import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.AbstractComponent;
 import org.olat.core.gui.components.ComponentRenderer;
 import org.olat.core.gui.components.form.Form;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.core.util.tree.TreeHelper;
@@ -49,7 +48,6 @@ import org.olat.core.util.tree.TreeHelper;
  */
 public class SelectionTree extends AbstractComponent {
 	private static final ComponentRenderer RENDERER = new SelectionTreeRenderer();	
-	private static final String PACKAGE = Util.getPackageName(SelectionTree.class);
 	
 	
 	private TreeModel treeModel;
@@ -70,7 +68,7 @@ public class SelectionTree extends AbstractComponent {
 	 * @param name
 	 */
 	public SelectionTree(String name, Translator translator ) {
-		super(name, new PackageTranslator(PACKAGE, translator.getLocale(), translator));		
+		super(name, Util.createPackageTranslator(SelectionTree.class, translator.getLocale(), translator));		
 	}
 	
 	public Object getUserObject() {
diff --git a/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java b/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java
index e87967768104ef275ac1f8cc16ab01d640834637..3e861bd94450843a3cafa92a729db00396a11697 100644
--- a/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/tree/SelectionTreeRenderer.java
@@ -47,10 +47,6 @@ import org.olat.core.util.tree.TreeHelper;
  * @author Felix Jost
  */
 public class SelectionTreeRenderer implements ComponentRenderer {
-	/**
-	 * <code>PACKAGE</code>
-	 */
-	public static final String PACKAGE = org.olat.core.util.Util.getPackageName(SelectionTreeRenderer.class);
 
 	private static String imgDots = "<div class=\"b_selectiontree_line\"></div>";
 	private static String imgDots_spacer = "<div class=\"b_selectiontree_space\"></div>";
diff --git a/src/main/java/org/olat/core/gui/control/LocaleChangedEvent.java b/src/main/java/org/olat/core/gui/control/LocaleChangedEvent.java
index 3b01678aa77ae271ad587bf07d507d7b3f153562..73501e08f9375ad155dc3c59b6c58d3b5aef4840 100644
--- a/src/main/java/org/olat/core/gui/control/LocaleChangedEvent.java
+++ b/src/main/java/org/olat/core/gui/control/LocaleChangedEvent.java
@@ -33,6 +33,7 @@ import java.util.Locale;
  */
 public class LocaleChangedEvent extends Event {
 
+	private static final long serialVersionUID = -1578448169616341919L;
 	private Locale newLocale;
 
 	/**
diff --git a/src/main/java/org/olat/core/gui/control/generic/dialog/DialogController.java b/src/main/java/org/olat/core/gui/control/generic/dialog/DialogController.java
index 125898cd69df3bfc05efe57aa5932c7abe22ecac..0b32155519d46d6f591eba48ef48650fad64e9a9 100644
--- a/src/main/java/org/olat/core/gui/control/generic/dialog/DialogController.java
+++ b/src/main/java/org/olat/core/gui/control/generic/dialog/DialogController.java
@@ -37,7 +37,6 @@ import org.olat.core.gui.control.ControllerEventListener;
 import org.olat.core.gui.control.DefaultController;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 
@@ -55,7 +54,6 @@ import org.olat.core.util.Util;
  */
 public class DialogController extends DefaultController {
 	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(DialogController.class);
-	private static final String PACKAGE = Util.getPackageName(DialogController.class);
 
 	/** Event fired when first button is pressed * */
 	public static final Event EVENT_FIRSTBUTTON = new Event("fb");
@@ -78,7 +76,7 @@ public class DialogController extends DefaultController {
 	 * @return the controller
 	 */
 	public static DialogController createYesNoDialogController(WindowControl wControl, Locale locale, String text, ControllerEventListener cel, Object userObject) {
-		Translator intTrans = new PackageTranslator(PACKAGE, locale);
+		Translator intTrans = Util.createPackageTranslator(DialogController.class, locale);
 		DialogController dc = new DialogController(wControl, locale, intTrans.translate("answer.yes"), intTrans.translate("answer.no"), text, userObject, true, null);
 		// when used with basic controller listener has to be set with listenTo()
 		if (cel != null) dc.addControllerListener(cel);
@@ -92,7 +90,7 @@ public class DialogController extends DefaultController {
 	 * @return the controller
 	 */
 	public static DialogController createOkCancelDialogController(WindowControl wControl, Locale locale, String text, ControllerEventListener cel) {
-		Translator intTrans = new PackageTranslator(PACKAGE, locale);
+		Translator intTrans = Util.createPackageTranslator(DialogController.class, locale);
 		DialogController dc = new DialogController(wControl, locale, intTrans.translate("answer.ok"), intTrans.translate("answer.cancel"), text);
 		// when used with basic controller listener has to be set with listenTo()		
 		if (cel != null) dc.addControllerListener(cel);
@@ -131,7 +129,7 @@ public class DialogController extends DefaultController {
 	public DialogController(WindowControl wControl, Locale locale, String firstButtonText, String secondButtonText, String text, Object userObject, boolean displayCloseIcon, String title) {
 		super(wControl);
 		this.userObject = userObject;
-		myContent = new VelocityContainer("genericdialog", VELOCITY_ROOT + "/index.html", new PackageTranslator(PACKAGE, locale), this);
+		myContent = new VelocityContainer("genericdialog", VELOCITY_ROOT + "/index.html", Util.createPackageTranslator(DialogController.class, locale), this);
 		
 		firstButton = LinkFactory.createCustomLink("firstButton", "fb", firstButtonText, Link.BUTTON + Link.NONTRANSLATED, myContent, this);
 		secondButton = LinkFactory.createCustomLink("secondButton", "sb", secondButtonText, Link.BUTTON + Link.NONTRANSLATED, myContent, this);
diff --git a/src/main/java/org/olat/core/gui/control/generic/portal/AbstractPortletRunController.java b/src/main/java/org/olat/core/gui/control/generic/portal/AbstractPortletRunController.java
index 5654e5908209bc61bb6a4f9c5eda1391fc0d317a..7516d74fe6ec04afad5c9f133efe2651668ce89e 100644
--- a/src/main/java/org/olat/core/gui/control/generic/portal/AbstractPortletRunController.java
+++ b/src/main/java/org/olat/core/gui/control/generic/portal/AbstractPortletRunController.java
@@ -103,7 +103,7 @@ public abstract class AbstractPortletRunController<T> extends BasicController {
 		Preferences guiPreferences = ureq.getUserSession().getGuiPreferences();
 		guiPreferences.putAndSave(Map.class, getPreferenceKey(SORTING_CRITERIA_PREF), sortingCriteria.getPersistable());
 		if(sortingCriteria.getSortingType()==SortingCriteria.AUTO_SORTING) {
-			Map<Long, Integer> storedPrefs = (Map<Long, Integer>) guiPreferences.get(Map.class, getPreferenceKey(this.SORTED_ITEMS_PREF));
+			Map<Long, Integer> storedPrefs = (Map<Long, Integer>) guiPreferences.get(Map.class, getPreferenceKey(SORTED_ITEMS_PREF));
 			if (storedPrefs != null) {
 		    //if auto sorting choosed, remove any manually sorting info
 		    List<PortletEntry<T>> sortedItems = new ArrayList<PortletEntry<T>>();
diff --git a/src/main/java/org/olat/core/gui/control/generic/textmarker/GlossaryMarkupItemController.java b/src/main/java/org/olat/core/gui/control/generic/textmarker/GlossaryMarkupItemController.java
index 183d80c6bfd553304bc2ca2d44c328945765191c..2619549e3a94dd0fe20a5f3f55f0b3563c8a9e2a 100644
--- a/src/main/java/org/olat/core/gui/control/generic/textmarker/GlossaryMarkupItemController.java
+++ b/src/main/java/org/olat/core/gui/control/generic/textmarker/GlossaryMarkupItemController.java
@@ -54,7 +54,6 @@ public class GlossaryMarkupItemController extends BasicController {
 	private VelocityContainer tmContainer = createVelocityContainer("tmContainer");
 	private JSAndCSSComponent glossHelpJs;
 	private boolean textMarkingEnabled;
-	private JSAndCSSComponent glossHLJS;
 	private String glossaryId;
 	
 	private static Mapper glossaryDefinitionMapper;
diff --git a/src/main/java/org/olat/core/gui/control/generic/textmarker/TextMarkerManager.java b/src/main/java/org/olat/core/gui/control/generic/textmarker/TextMarkerManager.java
index f42ce7da73217802f072ff7ef94e104d42d4e668..7225664ead94214d0982f3ee2e898d49fb7d51ee 100644
--- a/src/main/java/org/olat/core/gui/control/generic/textmarker/TextMarkerManager.java
+++ b/src/main/java/org/olat/core/gui/control/generic/textmarker/TextMarkerManager.java
@@ -65,7 +65,7 @@ public interface TextMarkerManager {
 	 * @param textMarkerFile The file
 	 * @param textMarkerList The list of TextMarker objects
 	 */
-	public abstract void saveToFile(VFSLeaf textMarkerFile, List textMarkerList);
+	public abstract void saveToFile(VFSLeaf textMarkerFile, List<TextMarker> textMarkerList);
 
 	/**
 	 * check if a resource has textMakring enabled
diff --git a/src/main/java/org/olat/core/gui/control/generic/textmarker/TextMarkerManagerImpl.java b/src/main/java/org/olat/core/gui/control/generic/textmarker/TextMarkerManagerImpl.java
index 4e5941b78b5e3e18557b77b06f3eb93e6bf73c6e..7b9804c82be066086817b6b6d61682d70e5259be 100644
--- a/src/main/java/org/olat/core/gui/control/generic/textmarker/TextMarkerManagerImpl.java
+++ b/src/main/java/org/olat/core/gui/control/generic/textmarker/TextMarkerManagerImpl.java
@@ -42,8 +42,8 @@ import org.dom4j.io.XMLWriter;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.logging.OLATRuntimeException;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
-import org.olat.core.manager.BasicManager;
 import org.olat.core.util.vfs.VFSLeaf;
 import org.olat.core.util.xml.XMLParser;
 
@@ -57,7 +57,9 @@ import org.olat.core.util.xml.XMLParser;
  * Initial Date: Jul 14, 2006
  * 
  */
-public class TextMarkerManagerImpl extends BasicManager implements TextMarkerManager {
+public class TextMarkerManagerImpl implements TextMarkerManager {
+	
+	private static final OLog log = Tracing.createLoggerFor(TextMarkerManagerImpl.class);
 	public static final String XML_ROOT_ELEMENT = "textMarkerList";
 	public static final String XML_VERSION_ATTRIBUTE = "version";
 	public static final int VERSION = 1;
@@ -120,7 +122,7 @@ public class TextMarkerManagerImpl extends BasicManager implements TextMarkerMan
 	 * @see org.olat.core.gui.control.generic.textmarker.TextMarkerManager#saveToFile(org.olat.core.util.vfs.VFSLeaf,
 	 *      java.util.List)
 	 */
-	public void saveToFile(VFSLeaf textMarkerFile, List textMarkerList) {
+	public void saveToFile(VFSLeaf textMarkerFile, List<TextMarker> textMarkerList) {
 		DocumentFactory df = DocumentFactory.getInstance();
 		Document doc = df.createDocument();
 		// create root element with version information
@@ -128,9 +130,7 @@ public class TextMarkerManagerImpl extends BasicManager implements TextMarkerMan
 		root.addAttribute(XML_VERSION_ATTRIBUTE, String.valueOf(VERSION));
 		doc.setRootElement(root);
 		// add TextMarker elements
-		Iterator iter = textMarkerList.iterator();
-		while (iter.hasNext()) {
-			TextMarker textMarker = (TextMarker) iter.next();
+		for (TextMarker textMarker:textMarkerList) {
 			textMarker.addToElement(root);
 		}
 		OutputStream stream = textMarkerFile.getOutputStream(false);
@@ -140,9 +140,9 @@ public class TextMarkerManagerImpl extends BasicManager implements TextMarkerMan
 			writer.close();
 			stream.close();
 		} catch (UnsupportedEncodingException e) {
-			Tracing.logError("Error while saving text marker file", e, TextMarkerManagerImpl.class);
+			log.error("Error while saving text marker file", e);
 		} catch (IOException e) {
-			Tracing.logError("Error while saving text marker file", e, TextMarkerManagerImpl.class);
+			log.error("Error while saving text marker file", e);
 		}
 	}
 
diff --git a/src/main/java/org/olat/core/gui/control/generic/wizard/WizardInfoController.java b/src/main/java/org/olat/core/gui/control/generic/wizard/WizardInfoController.java
index c00a7f393afb0952ac8e9b6cbb3b640226573c80..dc8577ab3af3d175fbf7525e9dba34ee08be50d0 100644
--- a/src/main/java/org/olat/core/gui/control/generic/wizard/WizardInfoController.java
+++ b/src/main/java/org/olat/core/gui/control/generic/wizard/WizardInfoController.java
@@ -32,7 +32,6 @@ import org.olat.core.gui.components.velocity.VelocityContainer;
 import org.olat.core.gui.control.DefaultController;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.render.StringOutput;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.logging.AssertException;
 import org.olat.core.util.Util;
@@ -53,7 +52,6 @@ import org.olat.core.util.Util;
  */
 public class WizardInfoController extends DefaultController {
 	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(WizardInfoController.class);
-	private static final String PACKAGE = Util.getPackageName(WizardInfoController.class);
 
 	private VelocityContainer myContent;
 	private int maxSteps;
@@ -65,7 +63,7 @@ public class WizardInfoController extends DefaultController {
 	public WizardInfoController(UserRequest ureq, int maxSteps) {
 		super(null);
 		this.maxSteps = maxSteps;
-		Translator trans = new PackageTranslator(PACKAGE, ureq.getLocale());
+		Translator trans = Util.createPackageTranslator(WizardInfoController.class, ureq.getLocale());
 		myContent = new VelocityContainer("genericwizard", VELOCITY_ROOT + "/wizard_steps.html", trans, null);
 
 		myContent.contextPut("max", String.valueOf(maxSteps));
diff --git a/src/main/java/org/olat/core/gui/control/winmgr/AjaxController.java b/src/main/java/org/olat/core/gui/control/winmgr/AjaxController.java
index 745266a5dc7fd24ffe6462d948976c1614e6b04b..9c8e5d8dae75978fd5588dd2d9d7e25b24e28b07 100644
--- a/src/main/java/org/olat/core/gui/control/winmgr/AjaxController.java
+++ b/src/main/java/org/olat/core/gui/control/winmgr/AjaxController.java
@@ -58,7 +58,6 @@ import org.olat.core.gui.media.MediaResource;
 import org.olat.core.gui.media.StringMediaResource;
 import org.olat.core.gui.render.StringOutput;
 import org.olat.core.gui.render.URLBuilder;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.helpers.Settings;
 import org.olat.core.logging.AssertException;
@@ -159,7 +158,7 @@ public class AjaxController extends DefaultController {
 		
 		sbm = new Mapper() {
 			
-			Translator t = new PackageTranslator(ChiefController.class.getPackage().getName(), flocale);
+			Translator t = Util.createPackageTranslator(ChiefController.class, flocale);
 		
 			public MediaResource handle(String relPath, HttpServletRequest request) {
 				StringMediaResource smr = new StringMediaResource();
diff --git a/src/main/java/org/olat/core/gui/control/winmgr/ScreenReaderHandlerInstance.java b/src/main/java/org/olat/core/gui/control/winmgr/ScreenReaderHandlerInstance.java
index 20935197abe09501b86e71a66f7abd48d1b699ec..21712f805fc79fffbdf9a5f760c0bb0d7147e4a6 100644
--- a/src/main/java/org/olat/core/gui/control/winmgr/ScreenReaderHandlerInstance.java
+++ b/src/main/java/org/olat/core/gui/control/winmgr/ScreenReaderHandlerInstance.java
@@ -47,9 +47,7 @@ import org.olat.core.util.i18n.I18nModule;
  * @author Felix Jost, http://www.goodsolutions.ch
  */
 public class ScreenReaderHandlerInstance implements InterceptHandlerInstance {
-	//private ComponentRenderer cr;
-	
-	//private Component rootComponent;
+
 	/**
 	 * 
 	 */
diff --git a/src/main/java/org/olat/core/gui/exception/ExceptionWindowController.java b/src/main/java/org/olat/core/gui/exception/ExceptionWindowController.java
index 6c5fb20da0a176386cd0b2bb4f5dd6eb70e52e5f..8431c14b1342ae99db227eaa0114d9537852681b 100644
--- a/src/main/java/org/olat/core/gui/exception/ExceptionWindowController.java
+++ b/src/main/java/org/olat/core/gui/exception/ExceptionWindowController.java
@@ -68,7 +68,6 @@ import org.olat.core.util.i18n.I18nManager;
  */
 public class ExceptionWindowController extends DefaultChiefController {
 	private static final OLog log = Tracing.createLoggerFor(ExceptionWindowController.class);
-	private static final String PACKAGE = Util.getPackageName(ExceptionWindowController.class);
 	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(ExceptionWindowController.class);
 
 	private VelocityContainer msg;
@@ -92,7 +91,7 @@ public class ExceptionWindowController extends DefaultChiefController {
 			i18nMgr.setMarkLocalizedStringsEnabled(ureq.getUserSession(), false);			
 		}
 
-		Translator trans = new PackageTranslator(PACKAGE, ureq.getLocale());
+		Translator trans = Util.createPackageTranslator(ExceptionWindowController.class, ureq.getLocale());
 		Formatter formatter = Formatter.getInstance(ureq.getLocale());
 		msg = new VelocityContainer("olatmain", VELOCITY_ROOT + "/exception_page.html", trans, this);
 
diff --git a/src/main/java/org/olat/core/logging/OLATSecurityException.java b/src/main/java/org/olat/core/logging/OLATSecurityException.java
index 25db90bc8bd88da6b24c9899fa21ab1f08b07921..6935176ef22a0d39accd971111f224daed8b8aea 100644
--- a/src/main/java/org/olat/core/logging/OLATSecurityException.java
+++ b/src/main/java/org/olat/core/logging/OLATSecurityException.java
@@ -34,7 +34,9 @@ package org.olat.core.logging;
  *
  */
 public class OLATSecurityException extends OLATRuntimeException {
-	
+
+	private static final long serialVersionUID = -666355657331283038L;
+
 	/**
 	 * @param usrMsgKey
 	 * @param usrMsgArgs
diff --git a/src/main/java/org/olat/core/logging/Tracing.java b/src/main/java/org/olat/core/logging/Tracing.java
index bc6ef07ab9d071da43e234ef3d7bd5206d4cfc9c..3120a1e0238eeaa9fe09d1494a2e338c77a571fb 100644
--- a/src/main/java/org/olat/core/logging/Tracing.java
+++ b/src/main/java/org/olat/core/logging/Tracing.java
@@ -104,7 +104,6 @@ public class Tracing {
 	private static long __warnRefNum__  = 0;
 	private static long __infoRefNum__  = 0;
 	private static long __debugRefNum__ = 0;
-	private static long __performanceRefNum__ = 0;
 	
 	// VM local cache to have one logger object per class
 	private static final Map<Class<?>, OLog> loggerLookupMap = new ConcurrentHashMap<Class<?>, OLog>();
@@ -177,7 +176,7 @@ public class Tracing {
 	 * @return
 	 * @deprecated please use OLog log = Tracing.createLoggerFor(MySample.class) as a private static field in your class and use this log.
 	 */
-	public static long logError(String logMsg, Class<?> callingClass) {
+	protected static long logError(String logMsg, Class<?> callingClass) {
 		return logError(logMsg, null, callingClass);
 	}
 
@@ -189,7 +188,7 @@ public class Tracing {
 	 * @deprecated please use OLog log = Tracing.createLoggerFor(MySample.class) as a private static field in your class and use this log.
 	 * @return
 	 */
-	public static long logWarn(String logMsg, Throwable cause, Class<?> callingClass) {
+	protected static long logWarn(String logMsg, Throwable cause, Class<?> callingClass) {
 		long refNum = getWarnRefNum();
 		getLogger(callingClass).warn(assembleThrowableMessage(WARN, 'W', refNum, callingClass, logMsg, cause));
 		return refNum;
@@ -201,7 +200,7 @@ public class Tracing {
 	 * @return
 	 * @deprecated please use OLog log = Tracing.createLoggerFor(MySample.class) as a private static field in your class and use this log.
 	 */
-	public static long logWarn(String logMsg, Class<?> callingClass) {
+	protected static long logWarn(String logMsg, Class<?> callingClass) {
 		return logWarn(logMsg, null, callingClass);
 	}
 
@@ -216,7 +215,7 @@ public class Tracing {
 	 * @return
 	 * @deprecated please use OLog log = Tracing.createLoggerFor(MySample.class) as a private static field in your class and use this log.
 	 */
-	public static long logDebug(String logMsg, String userObj, Class<?> callingClass) {
+	protected static long logDebug(String logMsg, String userObj, Class<?> callingClass) {
 		long refNum = getDebugRefNum();
 		if (isDebugEnabled(callingClass)) {
 			getLogger(callingClass).debug(assembleMsg(DEBUG, 'D', refNum, callingClass, userObj, logMsg));
@@ -232,7 +231,7 @@ public class Tracing {
 	 * @return
 	 * @deprecated please use OLog log = Tracing.createLoggerFor(MySample.class) as a private static field in your class and use this log.
 	 */
-	public static long logDebug(String logMsg, Class<?> callingClass) {
+	protected static long logDebug(String logMsg, Class<?> callingClass) {
 		return logDebug(logMsg, null, callingClass);
 	}
 
@@ -242,7 +241,7 @@ public class Tracing {
 	 * @deprecated please use OLog log = Tracing.createLoggerFor(MySample.class) as a private static field in your class and use this log.
 	 * @return
 	 */
-	public static long logInfo(String logMsg, String userObject, Class<?> callingClass) {
+	protected static long logInfo(String logMsg, String userObject, Class<?> callingClass) {
 		long refNum = getInfoRefNum();
 		getLogger(callingClass).info(assembleMsg(INFO, 'I', refNum, callingClass, userObject, logMsg));
 		return refNum;
@@ -254,7 +253,7 @@ public class Tracing {
 	 * @deprecated please use OLog log = Tracing.createLoggerFor(MySample.class) as a private static field in your class and use this log.
 	 * @return
 	 */
-	public static long logInfo(String logMsg, Class<?> callingClass) {
+	protected static long logInfo(String logMsg, Class<?> callingClass) {
 		return logInfo(logMsg, null, callingClass);
 
 	}
@@ -267,7 +266,7 @@ public class Tracing {
 	 * @return Log entry identifier.
 	 * @deprecated please use OLog log = Tracing.createLoggerFor(MySample.class) as a private static field in your class and use this log.
 	 */
-	public static long logAudit(String logMsg, Class<?> callingClass) {
+	protected static long logAudit(String logMsg, Class<?> callingClass) {
 		return logAudit(logMsg, null, callingClass);
 	}
 
@@ -280,26 +279,11 @@ public class Tracing {
 	 * @deprecated please use OLog log = Tracing.createLoggerFor(MySample.class) as a private static field in your class and use this log.
 	 * @return Log entry identifier.
 	 */
-	public static long logAudit(String logMsg, String userObj, Class<?> callingClass) {
+	protected static long logAudit(String logMsg, String userObj, Class<?> callingClass) {
 		long refNum = getAuditRefNum();
 		getLogger(callingClass).info(assembleMsg(AUDIT, 'A', refNum, callingClass, userObj, logMsg));
 		return refNum;
 	}
-	
-	/**
-	 * Add performance log entry
-	 * 
-	 * @param logMsg
-	 * @param callingClass
-	 * @return Log entry identifier.
-	 */
-	public static long logPerformance(String logMsg, Class<?> callingClass) {
-		long refNum = getPerformanceRefNum();
-		getLogger(callingClass).info(assembleMsg(PERFORMANCE, 'P', refNum, callingClass, null, logMsg));
-		return refNum;
-	}
-
-	
 
 	/**
 	 * Method getStackTrace returns the first few (stacklen) lines of the
@@ -338,10 +322,6 @@ public class Tracing {
 	private synchronized static long getInfoRefNum() { //o_clusterOK by:fj
 		return ++__infoRefNum__;
 	}
-	
-	private synchronized static long getPerformanceRefNum() {
-		return ++__performanceRefNum__;
-	}
 
 	private static String assembleMsg(String category, char prefix, long refNum, Class<?> callingClass, String userObj, String logMsg) {
 
@@ -522,20 +502,10 @@ public class Tracing {
 	 * @deprecated please use OLog log = createLoggerFor(MySample.class) as a private static field in your class and use this log.
 	 * @return
 	 */
-	public static boolean isDebugEnabled(Class<?> clazz) {
+	protected static boolean isDebugEnabled(Class<?> clazz) {
 		return Logger.getLogger(clazz).isDebugEnabled();
 	}
 
-	/**
-	 * if info log level is enabled for argument
-	 * 
-	 * @param clazz
-	 * @return
-	 */
-	/*public static boolean isInfoEnabled(Class clazz) {
-		return Logger.getLogger(clazz).isInfoEnabled();
-	}*/
-
 	/**
 	 * @return list all current loggers
 	 */
@@ -599,11 +569,11 @@ public class Tracing {
 	 * 
 	 * @author patrick
 	 */
-	private static class ThreadLocalData extends ThreadLocal {
+	private static class ThreadLocalData extends ThreadLocal<HttpServletRequest> {
 		/**
 		 * @see java.lang.ThreadLocal#initialValue()
 		 */
-		public Object initialValue() {
+		public HttpServletRequest initialValue() {
 			return null;
 		}
 
diff --git a/src/main/java/org/olat/core/logging/activity/LoggingObject.java b/src/main/java/org/olat/core/logging/activity/LoggingObject.java
index 7fd3cff15e41413d3483213b23b8c3af76126b3c..1f1c5efde24f8d4e2b5e1117aba3d92970e0d1e0 100644
--- a/src/main/java/org/olat/core/logging/activity/LoggingObject.java
+++ b/src/main/java/org/olat/core/logging/activity/LoggingObject.java
@@ -30,8 +30,6 @@ import java.util.List;
 
 import org.olat.core.commons.persistence.PersistentObject;
 import org.olat.core.logging.AssertException;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.Tracing;
 
 /**
  * Hibernate class representing a <i>log line</i> - 
@@ -41,8 +39,8 @@ import org.olat.core.logging.Tracing;
  * @author Stefan
  */
 public class LoggingObject extends PersistentObject {
-	static final OLog log = Tracing.createLoggerFor(LoggingObject.class);
-	
+	private static final long serialVersionUID = -7960024949707705523L;
+
 	// technical fields
 	private String sourceClass;
 	
diff --git a/src/main/java/org/olat/core/util/controller/OLATResourceableListeningWrapperController.java b/src/main/java/org/olat/core/util/controller/OLATResourceableListeningWrapperController.java
index 9a4da63e9bdca64ff5863084c2233671124ff919..1098b0e4156af028d51d0a485478c0000d4eaf69 100644
--- a/src/main/java/org/olat/core/util/controller/OLATResourceableListeningWrapperController.java
+++ b/src/main/java/org/olat/core/util/controller/OLATResourceableListeningWrapperController.java
@@ -120,10 +120,10 @@ public class OLATResourceableListeningWrapperController extends MainLayoutBasicC
 	 * @see org.olat.core.gui.control.DefaultController#fireEvent(org.olat.core.gui.UserRequest, org.olat.core.gui.control.Event)
 	 */
 	protected void fireEvent(UserRequest ureq, Event event) {
-		List listeners = getListeners();
+		List<ControllerEventListener> listeners = getListeners();
 		if (listeners == null) return;
-		for (Iterator iter = listeners.iterator(); iter.hasNext();) {
-			ControllerEventListener listener = (ControllerEventListener) iter.next();
+		for (Iterator<ControllerEventListener> iter = listeners.iterator(); iter.hasNext();) {
+			ControllerEventListener listener = iter.next();
 			//was: listener.dispatchEvent(ureq, this, event);
 			// needs to be:
 			listener.dispatchEvent(ureq, realController, event);
diff --git a/src/main/java/org/olat/core/util/event/EventBus.java b/src/main/java/org/olat/core/util/event/EventBus.java
index f3789790b5113dca993c70fa2ecbde1316c461c4..333e62c4f8f5945375ade2998bab4938838981b5 100644
--- a/src/main/java/org/olat/core/util/event/EventBus.java
+++ b/src/main/java/org/olat/core/util/event/EventBus.java
@@ -112,7 +112,7 @@ public interface EventBus {
 	 * 
 	 * @return the whole infocenter map
 	 */
-	public abstract Map getUnmodifiableInfoCenter();
+	public abstract Map<String, EventAgency> getUnmodifiableInfoCenter();
 
 
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/util/event/PersistsEvent.java b/src/main/java/org/olat/core/util/event/PersistsEvent.java
index f59f71ca2d9d238d874b17f46ccfdf0488823e36..f86391b6707447e62c8d0a0dd6e51b944c2788ea 100644
--- a/src/main/java/org/olat/core/util/event/PersistsEvent.java
+++ b/src/main/java/org/olat/core/util/event/PersistsEvent.java
@@ -46,6 +46,7 @@ public class PersistsEvent extends MultiUserEvent {
 	//public static final int MODE_REMOVED = 4;
 	//public static final int MODE_UPDATED = 8;
 
+	private static final long serialVersionUID = -1076949650098640208L;
 	private final Set<Long> keys;
 	
 	/**
@@ -63,9 +64,9 @@ public class PersistsEvent extends MultiUserEvent {
 	 * @param persistables a List of Persistable objects
 	 * @return true if at least one of the objects in the list has the same key as the keys given.
 	 */
-	public boolean isAtLeastOneKeyInList(List persistables) {
-		for (Iterator it_per = persistables.iterator(); it_per.hasNext();) {
-			Persistable per = (Persistable) it_per.next();
+	public boolean isAtLeastOneKeyInList(List<? extends Persistable> persistables) {
+		for (Iterator<? extends Persistable> it_per = persistables.iterator(); it_per.hasNext();) {
+			Persistable per = it_per.next();
 			Long key = per.getKey();
 			if (keys.contains(key)) return true;
 		}
diff --git a/src/main/java/org/olat/core/util/i18n/I18nReInitializeCachesEvent.java b/src/main/java/org/olat/core/util/i18n/I18nReInitializeCachesEvent.java
index 8c260f4ea7b8fce1c20b4df3668273bcc9424b92..589ba86a5db1009f05795ebd38e006b314d63ca7 100644
--- a/src/main/java/org/olat/core/util/i18n/I18nReInitializeCachesEvent.java
+++ b/src/main/java/org/olat/core/util/i18n/I18nReInitializeCachesEvent.java
@@ -36,6 +36,8 @@ import org.olat.core.util.event.MultiUserEvent;
  */
 class I18nReInitializeCachesEvent extends MultiUserEvent {
 
+	private static final long serialVersionUID = -5665993313792697411L;
+
 	/**
 	 * Constructor
 	 */
diff --git a/src/main/java/org/olat/core/util/i18n/devtools/TranslationDevMainController.java b/src/main/java/org/olat/core/util/i18n/devtools/TranslationDevMainController.java
index ada8a71d09c4d3c8bb89516cd515a9623ced9fe0..b40197ca0837ccb6d37885e2ffcf5c2fbc22fb1a 100644
--- a/src/main/java/org/olat/core/util/i18n/devtools/TranslationDevMainController.java
+++ b/src/main/java/org/olat/core/util/i18n/devtools/TranslationDevMainController.java
@@ -36,8 +36,7 @@ import org.olat.core.util.i18n.I18nModule;
  * @author Roman Haag, frentix GmbH, roman.haag@frentix.com
  */
 public class TranslationDevMainController extends MainLayoutBasicController {
-	private VelocityContainer vc;
-	private TranslationDevManager tDMan;
+	private final VelocityContainer vc;
 	
 	/**
 	 * @param ureq
@@ -46,7 +45,6 @@ public class TranslationDevMainController extends MainLayoutBasicController {
 	public TranslationDevMainController(UserRequest ureq, WindowControl control) {
 		super(ureq, control);
 		vc = createVelocityContainer("translationdev");
-		tDMan = TranslationDevManager.getInstance();
 		String srcPath = I18nModule.getTransToolApplicationLanguagesSrcDir().getAbsolutePath();
 		vc.contextPut("srcPath", srcPath);
 		//TODO RH: check for enabled debug-mode in order to prevent caching! 
@@ -63,8 +61,7 @@ public class TranslationDevMainController extends MainLayoutBasicController {
 	 */
 	@Override
 	protected void doDispose() {
-	// TODO Auto-generated method stub
-
+		//
 	}
 
 	/**
@@ -72,8 +69,6 @@ public class TranslationDevMainController extends MainLayoutBasicController {
 	 */
 	@Override
 	protected void event(UserRequest ureq, Component source, Event event) {
-	// TODO Auto-generated method stub
-
+		//
 	}
-
 }
diff --git a/src/main/java/org/olat/course/assessment/AssessmentModule.java b/src/main/java/org/olat/course/assessment/AssessmentModule.java
index 76f79e3f21823d828ff146511b4fa6560e2c6f99..cc2e7863dc76057eb3d110bbc82b2fc1421358f7 100644
--- a/src/main/java/org/olat/course/assessment/AssessmentModule.java
+++ b/src/main/java/org/olat/course/assessment/AssessmentModule.java
@@ -34,6 +34,7 @@ import org.olat.core.commons.services.taskexecutor.TaskExecutorManager;
 import org.olat.core.configuration.Destroyable;
 import org.olat.core.configuration.Initializable;
 import org.olat.core.gui.control.Event;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.event.GenericEventListener;
 import org.olat.course.CourseFactory;
@@ -53,6 +54,8 @@ import org.olat.course.editor.PublishEvent;
  * @author patrickb
  */
 public class AssessmentModule implements Initializable, Destroyable, GenericEventListener {
+	
+	private static final OLog log = Tracing.createLoggerFor(AssessmentModule.class);
 
 	private List<Long> upcomingWork;
 	private CourseModule courseModule;
@@ -102,10 +105,8 @@ public class AssessmentModule implements Initializable, Destroyable, GenericEven
 		//check that working queue is empty
 		if(upcomingWork.size()>0){
 			//hanging work!!
-			Tracing.logWarn("still some Efficiency Statement recalculations open!!", AssessmentModule.class);
+			log.warn("still some Efficiency Statement recalculations open!!");
 		}
-		
-		//
 	}
 
 	/**
diff --git a/src/main/java/org/olat/course/condition/AttributeEasyRowAdderController.java b/src/main/java/org/olat/course/condition/AttributeEasyRowAdderController.java
index 93b0d41494aa79384c2b96af5c4cc4fb6fc9267b..39c7f9c5bfff4a4d381920003f5d24ff466cc563 100644
--- a/src/main/java/org/olat/course/condition/AttributeEasyRowAdderController.java
+++ b/src/main/java/org/olat/course/condition/AttributeEasyRowAdderController.java
@@ -173,7 +173,6 @@ public class AttributeEasyRowAdderController extends FormBasicController {
 	 * @see org.olat.core.gui.components.form.flexible.FormDefaultController#formInnerEvent(org.olat.core.gui.components.form.flexible.FormItem, org.olat.core.gui.components.form.flexible.FormEvent)
 	 */
 	@Override
-	@SuppressWarnings("unused")
 	protected void formInnerEvent(final UserRequest ureq, final FormItem source, final FormEvent event) {
 		if (isinit) {
 			final String compName = source.getName();
@@ -238,25 +237,23 @@ public class AttributeEasyRowAdderController extends FormBasicController {
 	 *      org.olat.core.gui.UserRequest)
 	 */
 	@Override
-	@SuppressWarnings({ "unused", "unchecked" })
 	protected void initForm(final FormItemContainer formLayout, final Controller listener, final UserRequest ureq) {
 		//
-		columnAttribute = new ArrayList();
-		columnOperator = new ArrayList();
-		columnValueText = new ArrayList();
-		columnValueSelection = new ArrayList();
-		columnAddRow = new ArrayList();
-		columnRemoveRow = new ArrayList();
+		columnAttribute = new ArrayList<String>();
+		columnOperator = new ArrayList<String>();
+		columnValueText = new ArrayList<String>();
+		columnValueSelection = new ArrayList<String>();
+		columnAddRow = new ArrayList<String>();
+		columnRemoveRow = new ArrayList<String>();
 		// add a 0 row by default
 		addRowAt(0);
-		//
+
 		((FormLayoutContainer) formLayout).contextPut("columnAttribute", columnAttribute);
 		((FormLayoutContainer) formLayout).contextPut("columnOperator", columnOperator);
 		((FormLayoutContainer) formLayout).contextPut("columnValueText", columnValueText);
 		((FormLayoutContainer) formLayout).contextPut("columnValueSelection", columnValueSelection);
 		((FormLayoutContainer) formLayout).contextPut("columnAddRow", columnAddRow);
 		((FormLayoutContainer) formLayout).contextPut("columnRemoveRow", columnRemoveRow);
-		//
 	}
 
 	/**
@@ -317,7 +314,7 @@ public class AttributeEasyRowAdderController extends FormBasicController {
 		// remove default row from init process to make process of generating the
 		// existing configuration easier
 		removeRowAt(0);
-		for (final Iterator iterator = cond.iterator(); iterator.hasNext();) {
+		for (final Iterator<ExtendedCondition> iterator = cond.iterator(); iterator.hasNext();) {
 			final ExtendedCondition extendedCondition = (ExtendedCondition) iterator.next();
 			final int row = getRowCount();
 			// now count is always one more than the row position, thus the next position to add a row
@@ -345,9 +342,9 @@ public class AttributeEasyRowAdderController extends FormBasicController {
 		// 1) Make room for the new row if the row is inserted between existing
 		// rows. Increment the row id in the user object of the form elements and
 		// move them in the form element arrays
-		final Map formComponents = flc.getFormComponents();
+		final Map<String,FormItem> formComponents = flc.getFormComponents();
 		for (int move = rowPos + 1; move <= columnAttribute.size(); move++) {
-			FormItem oldPos = (FormItem) formComponents.get(columnAttribute.get(move - 1));
+			FormItem oldPos = formComponents.get(columnAttribute.get(move - 1));
 			oldPos.setUserObject(Integer.valueOf(move));
 			oldPos = (FormItem) formComponents.get(columnOperator.get(move - 1));
 			oldPos.setUserObject(Integer.valueOf(move));
diff --git a/src/main/java/org/olat/course/config/CourseConfigEvent.java b/src/main/java/org/olat/course/config/CourseConfigEvent.java
index eee621c12382e6292bd821f6cbebe6fa1310002f..fe83f40c4fe78d3c0e7cf02fb2c0f3fda5ce1872 100644
--- a/src/main/java/org/olat/course/config/CourseConfigEvent.java
+++ b/src/main/java/org/olat/course/config/CourseConfigEvent.java
@@ -36,12 +36,13 @@ import org.olat.core.util.event.MultiUserEvent;
  * @author Lavinia Dumitrescu
  */
 public class CourseConfigEvent extends MultiUserEvent {
-	
+
+	private static final long serialVersionUID = 7362131099407009869L;
 	public static final String EFFICIENCY_STATEMENT_TYPE = "efficiency";
 	public static final String CALENDAR_TYPE = "calendar";
 	public static final String LAYOUT_TYPE = "css";
 	
-  private final Long ResourceableId;
+	private final Long ResourceableId;
 	
 	/**
 	 * The command should be one of the above defined: EFFICIENCY_STATEMENT_TYPE, CALENDAR_TYPE, LAYOUT_TYPE, etc.
diff --git a/src/main/java/org/olat/course/config/ui/CourseLayoutController.java b/src/main/java/org/olat/course/config/ui/CourseLayoutController.java
index cb44480e12757ada4be1935a18aa4bb8d2cd32e6..158786d23a2942634d3d862c21ebd0c9bc5ed032 100644
--- a/src/main/java/org/olat/course/config/ui/CourseLayoutController.java
+++ b/src/main/java/org/olat/course/config/ui/CourseLayoutController.java
@@ -53,8 +53,6 @@ import org.olat.course.config.CourseConfig;
  */
 public class CourseLayoutController extends BasicController {
 	
-	private static final String LOG_COURSELAYOUT_DEFAULT_ADDED = "COURSELAYOUT_DEFAULT_ADDED";
-	private static final String LOG_COURSELAYOUT_CUSTOM_ADDED = "COURSELAYOUT_CUSTOM_ADDED";
 	private static final VFSItemFileTypeFilter cssTypeFilter = new VFSItemFileTypeFilter(new String[] { "css" });
 	private VelocityContainer myContent;
 	private FileChooserController fileChooserCtr;
diff --git a/src/main/java/org/olat/course/config/ui/courselayout/CourseLayoutGeneratorController.java b/src/main/java/org/olat/course/config/ui/courselayout/CourseLayoutGeneratorController.java
index 92bc74a60f6a47fb611c87df269cfee6de959dfa..ffc15e612c2c380d3d31b6a63ee77a5881eba8c6 100644
--- a/src/main/java/org/olat/course/config/ui/courselayout/CourseLayoutGeneratorController.java
+++ b/src/main/java/org/olat/course/config/ui/courselayout/CourseLayoutGeneratorController.java
@@ -49,11 +49,12 @@ import org.olat.core.gui.components.link.Link;
 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.translator.PackageTranslator;
+import org.olat.core.gui.translator.Translator;
 import org.olat.core.logging.AssertException;
 import org.olat.core.util.ArrayHelper;
 import org.olat.core.util.FileUtils;
 import org.olat.core.util.ImageHelper;
+import org.olat.core.util.Util;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VFSItem;
 import org.olat.core.util.vfs.VFSLeaf;
@@ -101,8 +102,8 @@ public class CourseLayoutGeneratorController extends FormBasicController {
 		this.courseEnvironment = courseEnvironment;
 		customCMgr = (CustomConfigManager) CoreSpringFactory.getBean("courseConfigManager");
 		// stack the translator to get attribs/elements
-		PackageTranslator pt = new PackageTranslator(AbstractLayoutAttribute.class.getPackage().getName(), ureq.getLocale(), getTranslator());
-		pt = new PackageTranslator(AbstractLayoutElement.class.getPackage().getName(), ureq.getLocale(), pt);
+		Translator pt = Util.createPackageTranslator(AbstractLayoutAttribute.class, ureq.getLocale(), getTranslator());
+		pt = Util.createPackageTranslator(AbstractLayoutElement.class, ureq.getLocale(), pt);
 		setTranslator(pt);
 		persistedCustomConfig = customCMgr.getCustomConfig(courseEnvironment);
 		initForm(ureq);
diff --git a/src/main/java/org/olat/course/editor/CourseEditorEnv.java b/src/main/java/org/olat/course/editor/CourseEditorEnv.java
index 7032c5fa698ce1b5028d237a8b187f2c0a87b489..f3771d80af5d8096ba000535a0004a1e0ccd04f7 100644
--- a/src/main/java/org/olat/course/editor/CourseEditorEnv.java
+++ b/src/main/java/org/olat/course/editor/CourseEditorEnv.java
@@ -145,7 +145,7 @@ public interface CourseEditorEnv {
 	 * @param ident
 	 * @return list of nodes referencing the specified node
 	 */
-	List getReferencingNodeIdsFor(String ident);
+	List<String> getReferencingNodeIdsFor(String ident);
 
 	/**
 	 * check if the given node is of type enrollment
diff --git a/src/main/java/org/olat/course/editor/NoAccessExplEditController.java b/src/main/java/org/olat/course/editor/NoAccessExplEditController.java
index 159d435b74cc74e6fe68948a2567157ccbc6a1c9..d54448bd3503a61e63d10163cf9a38109e280c50 100644
--- a/src/main/java/org/olat/course/editor/NoAccessExplEditController.java
+++ b/src/main/java/org/olat/course/editor/NoAccessExplEditController.java
@@ -32,9 +32,7 @@ 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.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
-import org.olat.core.logging.Tracing;
 import org.olat.core.util.StringHelper;
 import org.olat.core.util.Util;
 
@@ -50,7 +48,6 @@ import org.olat.core.util.Util;
  *         example.
  */
 public class NoAccessExplEditController extends BasicController {
-	private static final String PACKAGE = Util.getPackageName(NoAccessExplEditController.class);
 	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(NoAccessExplEditController.class);
 
 	private VelocityContainer myContent;
@@ -73,7 +70,7 @@ public class NoAccessExplEditController extends BasicController {
 		super(ureq, wControl);
 		this.noAccessExplanation = noAccessExplanation;
 
-		trans = new PackageTranslator(PACKAGE, ureq.getLocale());
+		trans = Util.createPackageTranslator(NoAccessExplEditController.class, ureq.getLocale());
 
 		// Main component is a velocity container. It has a name choosen by the
 		// controller who
@@ -108,9 +105,9 @@ public class NoAccessExplEditController extends BasicController {
 			} else if (event == Event.DONE_EVENT) {
 				// Update condition data and switch to read only mode
 				noAccessExplanation = noAccessExplanationController.getNoAccessExplanation();
-				
-				if (Tracing.isDebugEnabled(NoAccessExplEditController.class)){
-					Tracing.logDebug("New noAccessExplanation is: " + noAccessExplanation,NoAccessExplEditController.class);
+			
+				if (isLogDebugEnabled()){
+					logDebug("New noAccessExplanation is: " + noAccessExplanation, null);
 				}
 
 				// Inform all listeners about the changed condition
diff --git a/src/main/java/org/olat/course/nodes/ObjectivesHelper.java b/src/main/java/org/olat/course/nodes/ObjectivesHelper.java
index 67a686e3263115fcdbc91e47469446667c599bf4..a676359a4d98ba8cf5093fab2dff09becd85a8c6 100644
--- a/src/main/java/org/olat/course/nodes/ObjectivesHelper.java
+++ b/src/main/java/org/olat/course/nodes/ObjectivesHelper.java
@@ -30,7 +30,7 @@ import java.util.Locale;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.velocity.VelocityContainer;
-import org.olat.core.gui.translator.PackageTranslator;
+import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 
 /**
@@ -40,7 +40,6 @@ import org.olat.core.util.Util;
  */
 public class ObjectivesHelper {
 
-	private static final String PACKAGE = Util.getPackageName(ObjectivesHelper.class);
 	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(ObjectivesHelper.class);
 
 	/**
@@ -55,7 +54,8 @@ public class ObjectivesHelper {
 	}
 	//fxdiff FXOLAT-116: SCORM improvements
 	public static Component createLearningObjectivesComponent(String learningObjectives, Locale locale) {
-		VelocityContainer vc = new VelocityContainer("learningObjs", VELOCITY_ROOT + "/objectives.html", new PackageTranslator(PACKAGE, locale), null);
+		Translator trans = Util.createPackageTranslator(ObjectivesHelper.class, locale);
+		VelocityContainer vc = new VelocityContainer("learningObjs", VELOCITY_ROOT + "/objectives.html", trans, null);
 		vc.contextPut("learningObjectives", learningObjectives);
 		return vc;
 	}
diff --git a/src/main/java/org/olat/course/nodes/bc/BCCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/bc/BCCourseNodeConfiguration.java
index ec2067f86fe912c2fec05bb56469187d3941e143..ae935456cc7419047a2e6006de5e90c0f32685ac 100644
--- a/src/main/java/org/olat/course/nodes/bc/BCCourseNodeConfiguration.java
+++ b/src/main/java/org/olat/course/nodes/bc/BCCourseNodeConfiguration.java
@@ -25,10 +25,8 @@
 
 package org.olat.course.nodes.bc;
 
-import java.util.List;
 import java.util.Locale;
 
-import org.olat.core.extensions.ExtensionResource;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.AbstractCourseNodeConfiguration;
@@ -84,37 +82,4 @@ public class BCCourseNodeConfiguration extends AbstractCourseNodeConfiguration i
 	public String getLinkCSSClass() {
 		return null;
 	}
-
-	//
-	// OLATExtension interface implementations.
-	//
-
-	public String getName() {
-		return getAlias();
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionResources()
-	 */
-	public List getExtensionResources() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionCSS()
-	 */
-	public ExtensionResource getExtensionCSS() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#setURLBuilder(org.olat.core.gui.render.URLBuilder)
-	 */
-	public void setExtensionResourcesBaseURI(String ubi) {
-	// no need for the URLBuilder
-	}
-
-
 }
diff --git a/src/main/java/org/olat/course/nodes/bc/BCPreviewController.java b/src/main/java/org/olat/course/nodes/bc/BCPreviewController.java
index f36303d2640d32335540dcf7ca6f9e3f00b722a1..032db1a99559891d3220f01ee735f1b2b93c0258 100644
--- a/src/main/java/org/olat/course/nodes/bc/BCPreviewController.java
+++ b/src/main/java/org/olat/course/nodes/bc/BCPreviewController.java
@@ -33,7 +33,6 @@ import org.olat.core.gui.components.velocity.VelocityContainer;
 import org.olat.core.gui.control.DefaultController;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.core.util.vfs.Quota;
@@ -49,7 +48,6 @@ import org.olat.course.run.userview.NodeEvaluation;
  * @author Mike Stock
  */
 public class BCPreviewController extends DefaultController {
-	private static final String PACKAGE = Util.getPackageName(BCPreviewController.class);
 	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(BCPreviewController.class);
 
 	private Translator trans;
@@ -63,7 +61,7 @@ public class BCPreviewController extends DefaultController {
 	 */
 	public BCPreviewController(UserRequest ureq, WindowControl wControl, BCCourseNode node, CourseEnvironment courseEnv, NodeEvaluation ne) {
 		super(wControl);		
-		trans = new PackageTranslator(PACKAGE, ureq.getLocale());
+		trans = Util.createPackageTranslator(BCPreviewController.class, ureq.getLocale());
 		previewVC = new VelocityContainer("bcPreviewVC", VELOCITY_ROOT + "/preview.html", trans, this);
 		OlatNamedContainerImpl namedContainer = BCCourseNode.getNodeFolderContainer(node, courseEnv);
 		namedContainer.setLocalSecurityCallback(new ReadOnlyCallback());
diff --git a/src/main/java/org/olat/course/nodes/cal/CalCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/cal/CalCourseNodeConfiguration.java
index 32a20126e926ee551d0bb2750731efd2e31374bb..648bca8402d5e31055e49955ce2bf23b6911de96 100644
--- a/src/main/java/org/olat/course/nodes/cal/CalCourseNodeConfiguration.java
+++ b/src/main/java/org/olat/course/nodes/cal/CalCourseNodeConfiguration.java
@@ -20,10 +20,8 @@
 
 package org.olat.course.nodes.cal;
 
-import java.util.List;
 import java.util.Locale;
 
-import org.olat.core.extensions.ExtensionResource;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.AbstractCourseNodeConfiguration;
@@ -75,28 +73,4 @@ public class CalCourseNodeConfiguration extends AbstractCourseNodeConfiguration
 	public String getAlias() {
 		return CalCourseNode.TYPE;
 	}
-
-	//
-	// OLATExtension interface implementations.
-	//
-	public String getName() {
-		return getAlias();
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionResources()
-	 */
-	public List getExtensionResources() {
-		// no resources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionCSS()
-	 */
-	public ExtensionResource getExtensionCSS() {
-		// no resources, part of main css
-		return null;
-	}
-
 }
diff --git a/src/main/java/org/olat/course/nodes/cal/CourseCalendarPeekViewModel.java b/src/main/java/org/olat/course/nodes/cal/CourseCalendarPeekViewModel.java
index 1178230258bda8f34b4eefe05eb6709121a5e9e6..0d8da8ab660cb43381e414f4399a331db42181e7 100644
--- a/src/main/java/org/olat/course/nodes/cal/CourseCalendarPeekViewModel.java
+++ b/src/main/java/org/olat/course/nodes/cal/CourseCalendarPeekViewModel.java
@@ -34,7 +34,7 @@ import org.olat.core.logging.OLATRuntimeException;
  * Initial Date:  10 nov. 2009 <br>
  * @author srosse, stephane.rosse@frentix.com, www.frentix.com
  */
-public class CourseCalendarPeekViewModel extends DefaultTableDataModel {
+public class CourseCalendarPeekViewModel extends DefaultTableDataModel<KalendarEvent> {
 	private static final int COLUMNS = 2;
 	private int MAX_SUBJECT_LENGTH = 30;
 	
@@ -55,7 +55,7 @@ public class CourseCalendarPeekViewModel extends DefaultTableDataModel {
 	}
 
 	public Object getValueAt(int row, int col) {
-		KalendarEvent event = (KalendarEvent) getObject(row);
+		KalendarEvent event = getObject(row);
 		switch (col) {
 			case 0:
 				if (event.isToday() && event.isAllDayEvent()) return translator.translate("calendar.today");
diff --git a/src/main/java/org/olat/course/nodes/co/COCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/co/COCourseNodeConfiguration.java
index bf715457c6c98a6c0ce8e773c13e8294eaab5c38..7258af90282f0a12ea2094fc1b8e5198f721d2b9 100644
--- a/src/main/java/org/olat/course/nodes/co/COCourseNodeConfiguration.java
+++ b/src/main/java/org/olat/course/nodes/co/COCourseNodeConfiguration.java
@@ -25,10 +25,8 @@
 
 package org.olat.course.nodes.co;
 
-import java.util.List;
 import java.util.Locale;
 
-import org.olat.core.extensions.ExtensionResource;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.AbstractCourseNodeConfiguration;
@@ -76,36 +74,4 @@ public class COCourseNodeConfiguration extends AbstractCourseNodeConfiguration i
 	public String getAlias() {
 		return "co";
 	}
-
-	//
-	// OLATExtension interface implementations.
-	//
-
-	public String getName() {
-		return getAlias();
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionResources()
-	 */
-	public List getExtensionResources() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionCSS()
-	 */
-	public ExtensionResource getExtensionCSS() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#setURLBuilder(org.olat.core.gui.render.URLBuilder)
-	 */
-	public void setExtensionResourcesBaseURI(String ubi) {
-	// no need for the URLBuilder
-	}
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/nodes/dialog/DialogCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/dialog/DialogCourseNodeConfiguration.java
index b13cc9f23473a22ab2fdc5646b104a7cc73d4623..63957dde47bffc16cac7d6ff58bfbfe12bbca3ac 100644
--- a/src/main/java/org/olat/course/nodes/dialog/DialogCourseNodeConfiguration.java
+++ b/src/main/java/org/olat/course/nodes/dialog/DialogCourseNodeConfiguration.java
@@ -25,10 +25,8 @@
 
 package org.olat.course.nodes.dialog;
 
-import java.util.List;
 import java.util.Locale;
 
-import org.olat.core.extensions.ExtensionResource;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.AbstractCourseNodeConfiguration;
@@ -87,28 +85,4 @@ public class DialogCourseNodeConfiguration extends AbstractCourseNodeConfigurati
 	public String getLinkCSSClass() {
 		return null;
 	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getName()
-	 */
-	public String getName() {
-		return getAlias();
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionResources()
-	 */
-	public List getExtensionResources() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionCSS()
-	 */
-	public ExtensionResource getExtensionCSS() {
-		// no ressources, part of main css
-		return null;
-	}
-
 }
diff --git a/src/main/java/org/olat/course/nodes/dialog/DialogCourseNodeEditController.java b/src/main/java/org/olat/course/nodes/dialog/DialogCourseNodeEditController.java
index b07d23ce328298a2873802ff6444ab9d8a10aee8..c6a1b78295bf09a6d9ac2f7d0891920d928cb86f 100644
--- a/src/main/java/org/olat/course/nodes/dialog/DialogCourseNodeEditController.java
+++ b/src/main/java/org/olat/course/nodes/dialog/DialogCourseNodeEditController.java
@@ -46,7 +46,7 @@ import org.olat.core.gui.control.ControllerEventListener;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.tabbable.ActivateableTabbableDefaultController;
-import org.olat.core.gui.translator.PackageTranslator;
+import org.olat.core.gui.translator.Translator;
 import org.olat.core.logging.activity.CourseLoggingAction;
 import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
 import org.olat.core.util.Util;
@@ -93,7 +93,7 @@ public class DialogCourseNodeEditController extends ActivateableTabbableDefaultC
 	private ICourse course;
 	private DialogConfigForm configForumLaunch;
 	private TableController tableCtr;
-	private PackageTranslator resourceTrans;
+	private Translator resourceTrans;
 	private FileUploadController fileUplCtr;
 	private DialogElement recentElement;
 	private TableGuiConfiguration tableConf;
@@ -106,7 +106,7 @@ public class DialogCourseNodeEditController extends ActivateableTabbableDefaultC
 		this.course = course;
 		this.courseNode = node;
 		
-		this.resourceTrans = new PackageTranslator(Util.getPackageName(DialogElementsTableModel.class), ureq.getLocale(), getTranslator());
+		resourceTrans = Util.createPackageTranslator(DialogElementsTableModel.class, ureq.getLocale(), getTranslator());
 		// set name of the folder we use
 		bcNode.setShortTitle(translate("dialog.folder.name"));
 
@@ -131,7 +131,7 @@ public class DialogCourseNodeEditController extends ActivateableTabbableDefaultC
 		// TODO:gs:a getAssessableNodes ist der dialog node assessable oder nicht?
 		readerCondContr = new ConditionEditController(ureq, getWindowControl(), groupMgr, readerCondition, "readerConditionForm",
 				AssessmentHelper.getAssessableNodes(editorModel, courseNode), userCourseEnv);		
-    this.listenTo(readerCondContr);
+		listenTo(readerCondContr);
 		accessContent.put("readerCondition", readerCondContr.getInitialComponent());
 
 		// Poster precondition
@@ -262,7 +262,7 @@ public class DialogCourseNodeEditController extends ActivateableTabbableDefaultC
 		listenTo(tableCtr);
 		
 		DialogPropertyElements elements = DialogElementsPropertyManager.getInstance().findDialogElements(this.course.getCourseEnvironment().getCoursePropertyManager(), courseNode);
-		List list = new ArrayList();
+		List<DialogElement> list = new ArrayList<>();
 		DialogElementsTableModel tableModel = new DialogElementsTableModel(getTranslator(), null, null);
 		if (elements != null) list = elements.getDialogPropertyElements();
 		tableModel.setEntries(list);
diff --git a/src/main/java/org/olat/course/nodes/en/ENCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/en/ENCourseNodeConfiguration.java
index e50f3ce52d627614a28b87ae24c11dc0ad70a050..c6cab2ea5f133e16493d604106dfc22f6476d2e1 100644
--- a/src/main/java/org/olat/course/nodes/en/ENCourseNodeConfiguration.java
+++ b/src/main/java/org/olat/course/nodes/en/ENCourseNodeConfiguration.java
@@ -25,10 +25,8 @@
 
 package org.olat.course.nodes.en;
 
-import java.util.List;
 import java.util.Locale;
 
-import org.olat.core.extensions.ExtensionResource;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.AbstractCourseNodeConfiguration;
@@ -76,36 +74,4 @@ public class ENCourseNodeConfiguration extends AbstractCourseNodeConfiguration i
 	public String getAlias() {
 		return "en";
 	}
-
-	//
-	// OLATExtension interface implementations.
-	//
-
-	public String getName() {
-		return getAlias();
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionResources()
-	 */
-	public List getExtensionResources() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionCSS()
-	 */
-	public ExtensionResource getExtensionCSS() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#setURLBuilder(org.olat.core.gui.render.URLBuilder)
-	 */
-	public void setExtensionResourcesBaseURI(String ubi) {
-	// no need for the URLBuilder
-	}
-
 }
diff --git a/src/main/java/org/olat/course/nodes/feed/blog/BlogCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/feed/blog/BlogCourseNodeConfiguration.java
index d2d48d558c0e8cef2e66678e3df47b1766deb562..67b729e3b56b315c8ed6633e36d91fecae0fa0a7 100644
--- a/src/main/java/org/olat/course/nodes/feed/blog/BlogCourseNodeConfiguration.java
+++ b/src/main/java/org/olat/course/nodes/feed/blog/BlogCourseNodeConfiguration.java
@@ -19,10 +19,8 @@
  */
 package org.olat.course.nodes.feed.blog;
 
-import java.util.List;
 import java.util.Locale;
 
-import org.olat.core.extensions.ExtensionResource;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.AbstractCourseNodeConfiguration;
@@ -83,27 +81,4 @@ public class BlogCourseNodeConfiguration extends AbstractCourseNodeConfiguration
 		Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback);
 		return translator.translate("title_blog");
 	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionCSS()
-	 */
-	public ExtensionResource getExtensionCSS() {
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionResources()
-	 */
-	public List getExtensionResources() {
-		// TODO: What is this? No extensions so far.
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getName()
-	 */
-	public String getName() {
-		return getAlias();
-	}
-
 }
diff --git a/src/main/java/org/olat/course/nodes/feed/podcast/PodcastCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/feed/podcast/PodcastCourseNodeConfiguration.java
index 45745323e546158276513e4afc947f522644e4fd..a8e5a01da5a95968acfb9760707dcd77fe7f16ac 100644
--- a/src/main/java/org/olat/course/nodes/feed/podcast/PodcastCourseNodeConfiguration.java
+++ b/src/main/java/org/olat/course/nodes/feed/podcast/PodcastCourseNodeConfiguration.java
@@ -19,10 +19,8 @@
  */
 package org.olat.course.nodes.feed.podcast;
 
-import java.util.List;
 import java.util.Locale;
 
-import org.olat.core.extensions.ExtensionResource;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.AbstractCourseNodeConfiguration;
@@ -83,27 +81,4 @@ public class PodcastCourseNodeConfiguration extends AbstractCourseNodeConfigurat
 		Translator translator = Util.createPackageTranslator(this.getClass(), locale, fallback);
 		return translator.translate("title_podcast");
 	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionCSS()
-	 */
-	public ExtensionResource getExtensionCSS() {
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionResources()
-	 */
-	public List getExtensionResources() {
-		// TODO: What is this? No extensions so far.
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getName()
-	 */
-	public String getName() {
-		return getAlias();
-	}
-
 }
diff --git a/src/main/java/org/olat/course/nodes/fo/FOCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/fo/FOCourseNodeConfiguration.java
index eedcb7f38c6456f865fb424add3de3924e9d8184..4223a450f2473fbdbfc2da2aa0217c4ce819e02e 100644
--- a/src/main/java/org/olat/course/nodes/fo/FOCourseNodeConfiguration.java
+++ b/src/main/java/org/olat/course/nodes/fo/FOCourseNodeConfiguration.java
@@ -25,10 +25,8 @@
 
 package org.olat.course.nodes.fo;
 
-import java.util.List;
 import java.util.Locale;
 
-import org.olat.core.extensions.ExtensionResource;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.AbstractCourseNodeConfiguration;
@@ -80,36 +78,4 @@ public class FOCourseNodeConfiguration extends AbstractCourseNodeConfiguration i
 	public String getAlias() {
 		return "fo";
 	}
-
-	//
-	// OLATExtension interface implementations.
-	//
-
-	public String getName() {
-		return getAlias();
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionResources()
-	 */
-	public List getExtensionResources() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionCSS()
-	 */
-	public ExtensionResource getExtensionCSS() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#setURLBuilder(org.olat.core.gui.render.URLBuilder)
-	 */
-	public void setExtensionResourcesBaseURI(String ubi) {
-	// no need for the URLBuilder
-	}
-
 }
diff --git a/src/main/java/org/olat/course/nodes/fo/FOPreviewController.java b/src/main/java/org/olat/course/nodes/fo/FOPreviewController.java
index 3feb338da693bafdf2f0b78f9cfa52c2bd715b81..8b5dbdfc31a9e049e740d233849866ada4bc0048 100644
--- a/src/main/java/org/olat/course/nodes/fo/FOPreviewController.java
+++ b/src/main/java/org/olat/course/nodes/fo/FOPreviewController.java
@@ -31,7 +31,6 @@ import org.olat.core.gui.components.velocity.VelocityContainer;
 import org.olat.core.gui.control.DefaultController;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.FOCourseNode;
@@ -43,7 +42,6 @@ import org.olat.course.run.userview.NodeEvaluation;
  * @author Mike Stock
  */
 public class FOPreviewController extends DefaultController {
-	private static final String PACKAGE = Util.getPackageName(FOPreviewController.class);
 	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(FOPreviewController.class);
 
 	private Translator trans;
@@ -56,7 +54,7 @@ public class FOPreviewController extends DefaultController {
 	 * @param ne
 	 */
 	public FOPreviewController(UserRequest ureq, WindowControl wControl, FOCourseNode node, NodeEvaluation ne) { super(wControl);
-		trans = new PackageTranslator(PACKAGE, ureq.getLocale());
+		trans = Util.createPackageTranslator(FOPreviewController.class, ureq.getLocale());
 		previewVC = new VelocityContainer("foPreviewVC", VELOCITY_ROOT + "/preview.html", trans, this);
 		previewVC.contextPut("canRead", Boolean.valueOf(ne.isCapabilityAccessible("reader")));
 		previewVC.contextPut("canPost", Boolean.valueOf(ne.isCapabilityAccessible("poster")));
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/InlineEditDetailsFormController.java b/src/main/java/org/olat/course/nodes/projectbroker/InlineEditDetailsFormController.java
index e031b40ea9d4891a266e122e30ecdda41fabd5a7..aaa929e05b9a7099c093aa8cdce9b827997cc120 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/InlineEditDetailsFormController.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/InlineEditDetailsFormController.java
@@ -35,6 +35,7 @@ import java.util.StringTokenizer;
 
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.elements.DateChooser;
 import org.olat.core.gui.components.form.flexible.elements.FileElement;
@@ -69,8 +70,6 @@ import org.olat.resource.OLATResource;
 
 public class InlineEditDetailsFormController extends FormBasicController {
 	private static final String CUSTOM_DATE_FORMAT = "dd.MM.yyyy HH:mm";
-
-	private static final String CHOOSER_DATE_FORMAT = "%d.%m.%Y %H:%M";
 	
 	private final String DROPDOWN_NO_SELECETION = "dropdown.nothing.selected";
 	
@@ -91,7 +90,7 @@ public class InlineEditDetailsFormController extends FormBasicController {
 	private CourseNode courseNode;
 	private ProjectBrokerModuleConfiguration projectBrokerModuleConfiguration;
 
-	private List customfieldElementList;
+	private List<FormItem> customfieldElementList;
 	private HashMap<Project.EventType, DateChooser> eventStartElementList;
 	private HashMap<Project.EventType, DateChooser> eventEndElementList;
 	
@@ -116,7 +115,7 @@ public class InlineEditDetailsFormController extends FormBasicController {
 		projectBrokerManager = CoreSpringFactory.getImpl(ProjectBrokerManager.class);
 		stateKeys    = new String[] {Project.STATE_NOT_ASSIGNED, Project.STATE_ASSIGNED};
 		stateValues  = new String[] {translate(Project.STATE_NOT_ASSIGNED),	translate(Project.STATE_ASSIGNED)	};
-		customfieldElementList = new ArrayList();
+		customfieldElementList = new ArrayList<FormItem>();
 		eventStartElementList = new HashMap<Project.EventType, DateChooser>();
 		eventEndElementList = new HashMap<Project.EventType, DateChooser>();
 		initForm(this.flc, this, ureq);
@@ -142,8 +141,8 @@ public class InlineEditDetailsFormController extends FormBasicController {
 
 		// account-Managers
 		StringBuilder projectLeaderString = new StringBuilder();
-		for (Iterator iterator = project.getProjectLeaders().iterator(); iterator.hasNext();) {
-			Identity identity = (Identity) iterator.next();
+		for (Iterator<Identity> iterator = project.getProjectLeaders().iterator(); iterator.hasNext();) {
+			Identity identity = iterator.next();
 			String last = identity.getUser().getProperty(UserConstants.LASTNAME, getLocale());
 			String first= identity.getUser().getProperty(UserConstants.FIRSTNAME, getLocale());
 			if (projectLeaderString.length() > 0) {
@@ -294,8 +293,8 @@ public class InlineEditDetailsFormController extends FormBasicController {
 		}
 		// store customfields
 		int index = 0;
-		for (Iterator iterator = customfieldElementList.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
+		for (Iterator<FormItem> iterator = customfieldElementList.iterator(); iterator.hasNext();) {
+			FormItem element = iterator.next();
 			String value = "";
 			if (element instanceof TextElement) {
 				TextElement textElement = (TextElement)element;
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerCourseEditorController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerCourseEditorController.java
index 2b40060649ac1b532b4ee3f317f639c61b0e316c..d11d6f827a834a665eda5f00fae3f9e698764c3a 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerCourseEditorController.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerCourseEditorController.java
@@ -50,7 +50,6 @@ import org.olat.core.gui.control.generic.closablewrapper.CloseableModalControlle
 import org.olat.core.gui.control.generic.modal.DialogBoxController;
 import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
 import org.olat.core.gui.control.generic.tabbable.ActivateableTabbableDefaultController;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.core.util.mail.MailTemplate;
@@ -110,7 +109,7 @@ public class ProjectBrokerCourseEditorController extends ActivateableTabbableDef
 	private VelocityContainer accessabilityVC, optionsFormVC, accountManagementFormVC;
 	private VelocityContainer editModules, editDropbox, editScoring;
 	private TabbedPane myTabbedPane;
-	private int  dropboxTabPosition, scoringTabPosition;
+	private int dropboxTabPosition;
 	private ModulesFormController modulesForm;
 	private DropboxForm dropboxForm;
 	private MSEditFormController scoringController;
@@ -155,8 +154,8 @@ public class ProjectBrokerCourseEditorController extends ActivateableTabbableDef
 		this.courseId = course.getResourceableId();
 		this.config = node.getModuleConfiguration();
 		projectBrokerModuleConfiguration	= new ProjectBrokerModuleConfiguration(node.getModuleConfiguration());
-		Translator fallbackTranslator = new PackageTranslator(Util.getPackageName(DropboxForm.class), ureq.getLocale(), new PackageTranslator(Util.getPackageName(MSCourseNodeEditController.class), ureq.getLocale()));
-		Translator myTranslator = new PackageTranslator( Util.getPackageName(ProjectBrokerCourseEditorController.class), ureq.getLocale(),	fallbackTranslator);
+		Translator fallbackTranslator = Util.createPackageTranslator(DropboxForm.class, ureq.getLocale(), Util.createPackageTranslator(MSCourseNodeEditController.class, ureq.getLocale()));
+		Translator myTranslator = Util.createPackageTranslator(ProjectBrokerCourseEditorController.class, ureq.getLocale(),	fallbackTranslator);
 		setTranslator(myTranslator);
 
 		// check if a project-broker exists
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerDropboxScoringViewController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerDropboxScoringViewController.java
index 7eac43f36e91c2edb2e6a087e4907b053b3b544a..b74c03c8d338218f18f304ccfb242fc93f3fbfb3 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerDropboxScoringViewController.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerDropboxScoringViewController.java
@@ -31,7 +31,6 @@ import org.olat.admin.quota.QuotaConstants;
 import org.olat.core.commons.services.notifications.SubscriptionContext;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.core.util.vfs.Quota;
@@ -66,9 +65,9 @@ public class ProjectBrokerDropboxScoringViewController extends DropboxScoringVie
 		super(ureq, wControl, node, userCourseEnv, false);	
 		this.project = project;
 		this.setVelocityRoot(Util.getPackageVelocityRoot(DropboxScoringViewController.class));
-		Translator fallbackTranslator = new PackageTranslator( Util.getPackageName(this.getClass()), ureq.getLocale());
-		Translator myTranslator = new PackageTranslator( Util.getPackageName(DropboxScoringViewController.class), ureq.getLocale(), fallbackTranslator);
-		this.setTranslator(myTranslator);
+		Translator fallbackTranslator = Util.createPackageTranslator(this.getClass(), ureq.getLocale());
+		Translator myTranslator = Util.createPackageTranslator(DropboxScoringViewController.class, ureq.getLocale(), fallbackTranslator);
+		setTranslator(myTranslator);
 		init(ureq);
 	}
 	
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerNodeConfiguration.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerNodeConfiguration.java
index b8a5b18f4e9fe10dce6a7fc39a8822617dba4e27..04aa8b5749afe3d3e48ea05e955c86ab14875900 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerNodeConfiguration.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerNodeConfiguration.java
@@ -25,10 +25,8 @@
 
 package org.olat.course.nodes.projectbroker;
 
-import java.util.List;
 import java.util.Locale;
 
-import org.olat.core.extensions.ExtensionResource;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.AbstractCourseNodeConfiguration;
@@ -75,36 +73,4 @@ public class ProjectBrokerNodeConfiguration extends AbstractCourseNodeConfigurat
 	public String getAlias() {
 		return "projectbroker";
 	}
-
-	//
-	// OLATExtension interface implementations.
-	//
-
-	public String getName() {
-		return getAlias();
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionResources()
-	 */
-	public List getExtensionResources() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionCSS()
-	 */
-	public ExtensionResource getExtensionCSS() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#setURLBuilder(org.olat.core.gui.render.URLBuilder)
-	 */
-	public void setExtensionResourcesBaseURI(String ubi) {
-	// no need for the URLBuilder
-	}
-
 }
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerPeekViewRunController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerPeekViewRunController.java
index c034209df054ad031bb23d23afda5c9acc7747be..7f15fbc1ed8dea3215efdd1043ae6147a7ad8649 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerPeekViewRunController.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerPeekViewRunController.java
@@ -80,8 +80,8 @@ public class ProjectBrokerPeekViewRunController extends BasicController implemen
 			myProjects = myProjects.subList(0, MAX_NBR_PROJECTS);
 		}
 		peekviewVC.contextPut("myProjects", myProjects);
-		for (Iterator iterator = myProjects.iterator(); iterator.hasNext();) {
-			Project project = (Project) iterator.next();
+		for (Iterator<Project> iterator = myProjects.iterator(); iterator.hasNext();) {
+			Project project = iterator.next();
 			// Add link to show all items (go to node)
 			Link nodeLink = LinkFactory.createLink("nodeLink_" + project.getKey(), peekviewVC, this);
 			nodeLink.setCustomDisplayText(project.getTitle());
@@ -102,8 +102,8 @@ public class ProjectBrokerPeekViewRunController extends BasicController implemen
 			myCoachedProjects = myCoachedProjects.subList(0, MAX_NBR_PROJECTS);
 		}
 		peekviewVC.contextPut("myCoachedProjects", myCoachedProjects);
-		for (Iterator iterator = myCoachedProjects.iterator(); iterator.hasNext();) {
-			Project project = (Project) iterator.next();
+		for (Iterator<Project> iterator = myCoachedProjects.iterator(); iterator.hasNext();) {
+			Project project = iterator.next();
 			// Add link to show all items (go to node)
 			Link nodeLink = LinkFactory.createLink("coachedNodeLink_" + project.getKey(), peekviewVC, this);
 			nodeLink.setCustomDisplayText(project.getTitle());
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectDetailsDisplayController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectDetailsDisplayController.java
index dc014cc0ab5b5a9be783d24478985170466d8721..63510ff6972436915af5bb6fa99ff8f8e81314fd 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectDetailsDisplayController.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectDetailsDisplayController.java
@@ -76,7 +76,7 @@ public class ProjectDetailsDisplayController extends BasicController {
 	private Link editProjectButton;
 	private Link deleteProjectButton;
 	private DialogBoxController deleteConfirmController;
-	private List projectLeaderLinkNameList;
+	private List<String> projectLeaderLinkNameList;
 	private Link attachedFileLink;
 
 	private Project project;
@@ -133,9 +133,8 @@ public class ProjectDetailsDisplayController extends BasicController {
 		myContent.contextPut("title", project.getTitle());
 		// account-Managers
 		int i = 0;
-		projectLeaderLinkNameList = new ArrayList();
-		for (Iterator iterator = project.getProjectLeaders().iterator(); iterator.hasNext();) {
-			Identity identity = (Identity) iterator.next();
+		projectLeaderLinkNameList = new ArrayList<>();
+		for (Identity identity : project.getProjectLeaders()) {
 			String last = identity.getUser().getProperty(UserConstants.LASTNAME, getLocale());
 			String first= identity.getUser().getProperty(UserConstants.FIRSTNAME, getLocale());
 			StringBuilder projectLeaderString = new StringBuilder();
@@ -153,7 +152,7 @@ public class ProjectDetailsDisplayController extends BasicController {
 
 		myContent.contextPut("description", project.getDescription());
 		// Custom-fields
-		List customFieldList = new ArrayList();
+		List<CustomField> customFieldList = new ArrayList<>();
 		int customFieldIndex = 0;
 		for (Iterator<CustomField> iterator =  projectBrokerModuleConfiguration.getCustomFields().iterator(); iterator.hasNext();) {
 			CustomField customField = iterator.next();
@@ -166,7 +165,7 @@ public class ProjectDetailsDisplayController extends BasicController {
 		myContent.contextPut("customFieldList", customFieldList);
 		
 		// events
-		List eventList = new ArrayList();
+		List<ProjectEvent> eventList = new ArrayList<>();
 		for (Project.EventType eventType : Project.EventType.values()) {
 			if (projectBrokerModuleConfiguration.isProjectEventEnabled(eventType) ) {
 				ProjectEvent projectEvent = project.getProjectEvent(eventType);
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectEditDetailsFormController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectEditDetailsFormController.java
index 20c9db89f5ec8a6715821d54e7ca67bb0a87ad63..5aa3de9e8261f428475e43719ebc6a6753c66be8 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectEditDetailsFormController.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectEditDetailsFormController.java
@@ -31,6 +31,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.StringTokenizer;
 
 import org.olat.core.CoreSpringFactory;
@@ -76,8 +77,6 @@ import org.olat.resource.OLATResource;
 public class ProjectEditDetailsFormController extends FormBasicController {
 
 	private static final String CUSTOM_DATE_FORMAT = "dd.MM.yyyy HH:mm";
-
-	private static final String CHOOSER_DATE_FORMAT = "%d.%m.%Y %H:%M";
 	
 	private final String DROPDOWN_NO_SELECETION = "dropdown.nothing.selected";
 	
@@ -95,9 +94,9 @@ public class ProjectEditDetailsFormController extends FormBasicController {
 	private CourseNode courseNode;
 	private ProjectBrokerModuleConfiguration projectBrokerModuleConfiguration;
 
-	private List customfieldElementList;
-	private HashMap<Project.EventType, DateChooser> eventStartElementList;
-	private HashMap<Project.EventType, DateChooser> eventEndElementList;
+	private List<FormItem> customfieldElementList;
+	private Map<Project.EventType, DateChooser> eventStartElementList;
+	private Map<Project.EventType, DateChooser> eventEndElementList;
 
 	private MultipleSelectionElement selectionMaxMembers;
 
@@ -130,7 +129,7 @@ public class ProjectEditDetailsFormController extends FormBasicController {
 		projectBrokerMailer = CoreSpringFactory.getImpl(ProjectBrokerMailer.class);
 		projectGroupManager = CoreSpringFactory.getImpl(ProjectGroupManager.class);
 		projectBrokerManager = CoreSpringFactory.getImpl(ProjectBrokerManager.class);
-		customfieldElementList = new ArrayList();
+		customfieldElementList = new ArrayList<FormItem>();
 		eventStartElementList = new HashMap<Project.EventType, DateChooser>();
 		eventEndElementList = new HashMap<Project.EventType, DateChooser>();
 		initForm(ureq);
@@ -176,8 +175,8 @@ public class ProjectEditDetailsFormController extends FormBasicController {
 		
 		// account-Managers
 		StringBuilder projectLeaderString = new StringBuilder();
-		for (Iterator iterator = project.getProjectLeaders().iterator(); iterator.hasNext();) {
-			Identity identity = (Identity) iterator.next();
+		for (Iterator<Identity> iterator = project.getProjectLeaders().iterator(); iterator.hasNext();) {
+			Identity identity = iterator.next();
 			String last = identity.getUser().getProperty(UserConstants.LASTNAME, getLocale());
 			String first= identity.getUser().getProperty(UserConstants.FIRSTNAME, getLocale());
 			if (projectLeaderString.length() > 0) {
@@ -350,8 +349,8 @@ public class ProjectEditDetailsFormController extends FormBasicController {
 		}
 		// store customfields
 		int index = 0;
-		for (Iterator iterator = customfieldElementList.iterator(); iterator.hasNext();) {
-			Object element = iterator.next();
+		for (Iterator<FormItem> iterator = customfieldElementList.iterator(); iterator.hasNext();) {
+			FormItem element = iterator.next();
 			String value = "";
 			if (element instanceof TextElement) {
 				TextElement textElement = (TextElement)element;
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectEventColumnRenderer.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectEventColumnRenderer.java
index 58494bc12089155dddf65122ac8f49ac525bb7db..0b75b9cc006c5263cbb53b74118c125128d10223 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectEventColumnRenderer.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectEventColumnRenderer.java
@@ -30,7 +30,7 @@ import java.util.Locale;
 import org.olat.core.gui.components.table.CustomCellRenderer;
 import org.olat.core.gui.render.Renderer;
 import org.olat.core.gui.render.StringOutput;
-import org.olat.core.gui.translator.PackageTranslator;
+import org.olat.core.gui.translator.Translator;
 import org.olat.core.logging.AssertException;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.projectbroker.datamodel.ProjectEvent;
@@ -54,7 +54,7 @@ public class ProjectEventColumnRenderer implements CustomCellRenderer {
 	@Override
 	public void render(StringOutput sb, Renderer renderer, Object val, Locale locale, int alignment, String action) {
 		ProjectEvent projectEvent;
-		PackageTranslator translator = new PackageTranslator( Util.getPackageName(this.getClass()) , locale);
+		Translator translator = Util.createPackageTranslator(this.getClass() , locale);
 		if (val==null) {
 			// don't render nulls
 			return;
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectEventFormController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectEventFormController.java
index 89181c0929a6b025ec10b9b1f50a81b7ab73127a..7a5fd7defecbbe218716451cbc8e8b6fd72eb531 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectEventFormController.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectEventFormController.java
@@ -26,6 +26,7 @@
 package org.olat.course.nodes.projectbroker;
 
 import java.util.HashMap;
+import java.util.Map;
 
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItem;
@@ -33,7 +34,6 @@ import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
 import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
 import org.olat.core.gui.components.form.flexible.impl.FormEvent;
-import org.olat.core.gui.components.form.flexible.impl.elements.FormSubmit;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
@@ -51,9 +51,8 @@ public class ProjectEventFormController extends FormBasicController {
 	
 	
 	private ProjectBrokerModuleConfiguration config;
-	private HashMap<Project.EventType, MultipleSelectionElement> projectEventElementList;
+	private Map<Project.EventType, MultipleSelectionElement> projectEventElementList;
 
-	private FormSubmit formSubmit;
 	/**
 	 * Modules selection form.
 	 * @param name
@@ -87,7 +86,7 @@ public class ProjectEventFormController extends FormBasicController {
 			projectEventElement.addActionListener(FormEvent.ONCLICK);
 			projectEventElementList.put(eventType, projectEventElement);
 		}
-		formSubmit = uifactory.addFormSubmitButton("save", formLayout);		
+		uifactory.addFormSubmitButton("save", formLayout);		
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectListTableModel.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectListTableModel.java
index 76f110e25993c8c06eccfb3e575705ee82f162f4..4400036d4516075267d6b15222c1e7b2a6d7d68e 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectListTableModel.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectListTableModel.java
@@ -47,7 +47,7 @@ import org.olat.group.BusinessGroupService;
  * @author guretzki
  */
 
-public class ProjectListTableModel extends DefaultTableDataModel {
+public class ProjectListTableModel extends DefaultTableDataModel<Project> {
 	private static final int COLUMN_COUNT = 6;
 	private Identity identity;
 	private Translator translator;
@@ -66,7 +66,7 @@ public class ProjectListTableModel extends DefaultTableDataModel {
 	/**
 	 * @param owned list of projects 
 	 */
-	public ProjectListTableModel(List owned, Identity identity, Translator translator, ProjectBrokerModuleConfiguration moduleConfig, 
+	public ProjectListTableModel(List<Project> owned, Identity identity, Translator translator, ProjectBrokerModuleConfiguration moduleConfig, 
 			                         int numberOfCustomFieldInTable, int numberOfEventInTable, int nbrSelectedProjects, boolean isParticipantInAnyProject) {
 		super(owned);
 		this.identity = identity;
@@ -102,7 +102,7 @@ public class ProjectListTableModel extends DefaultTableDataModel {
 	 * @see org.olat.core.gui.components.table.TableDataModel#getValueAt(int, int)
 	 */
 	public Object getValueAt(int row, int col) {
-		Project project = (Project) objects.get(row);
+		Project project = objects.get(row);
 		if (col == 0) {
 			log.debug("project=" + project); // debug-output only once for each project
 			String name = project.getTitle();
@@ -171,7 +171,7 @@ public class ProjectListTableModel extends DefaultTableDataModel {
 	/**
 	 * @param owned
 	 */
-	public void setEntries(List owned) {
+	public void setEntries(List<Project> owned) {
 		this.objects = owned;
 	}
 
@@ -180,11 +180,11 @@ public class ProjectListTableModel extends DefaultTableDataModel {
 	 * @return the project at the given row
 	 */
 	public Project getProjectAt(int row) {
-		return (Project) objects.get(row);
+		return objects.get(row);
 	}
 
 	public Object createCopyWithEmptyList() {
-		ProjectListTableModel copy = new ProjectListTableModel(new ArrayList(), identity, translator, moduleConfig, numberOfCustomFieldInTable, numberOfEventInTable, nbrSelectedProjects, isParticipantInAnyProject);
+		ProjectListTableModel copy = new ProjectListTableModel(new ArrayList<Project>(), identity, translator, moduleConfig, numberOfCustomFieldInTable, numberOfEventInTable, nbrSelectedProjects, isParticipantInAnyProject);
 		return copy;
 	}
 
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectStateColumnRenderer.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectStateColumnRenderer.java
index 1df54935293f2ffb1527f7a8c1a152e3d527a9e0..f50184ebbeba217d8b4fa6329a754a8ce3a8c49c 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectStateColumnRenderer.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectStateColumnRenderer.java
@@ -30,7 +30,7 @@ import java.util.Locale;
 import org.olat.core.gui.components.table.CustomCellRenderer;
 import org.olat.core.gui.render.Renderer;
 import org.olat.core.gui.render.StringOutput;
-import org.olat.core.gui.translator.PackageTranslator;
+import org.olat.core.gui.translator.Translator;
 import org.olat.core.logging.AssertException;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.projectbroker.datamodel.Project;
@@ -54,7 +54,7 @@ public class ProjectStateColumnRenderer implements CustomCellRenderer {
 	@Override
 	public void render(StringOutput sb, Renderer renderer, Object val, Locale locale, int alignment, String action) {
 		String projectState;
-		PackageTranslator translator = new PackageTranslator( Util.getPackageName(this.getClass()) , locale);
+		Translator translator = Util.createPackageTranslator(this.getClass(), locale);
 		if (val==null) {
 			// don't render nulls
 			return;
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/service/ProjectBrokerExportGenerator.java b/src/main/java/org/olat/course/nodes/projectbroker/service/ProjectBrokerExportGenerator.java
index c413e7d95bd7683804bea557b87e322174f3d4ab..2db66f9af420c7555c93d8fe8b45122d858ccd15 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/service/ProjectBrokerExportGenerator.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/service/ProjectBrokerExportGenerator.java
@@ -31,7 +31,6 @@ import java.util.Locale;
 
 import org.olat.basesecurity.GroupRoles;
 import org.olat.core.CoreSpringFactory;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.UserConstants;
@@ -40,7 +39,6 @@ import org.olat.core.logging.Tracing;
 import org.olat.core.util.Util;
 import org.olat.course.ICourse;
 import org.olat.course.nodes.CourseNode;
-import org.olat.course.nodes.projectbroker.ProjectListController;
 import org.olat.course.nodes.projectbroker.datamodel.CustomField;
 import org.olat.course.nodes.projectbroker.datamodel.Project;
 import org.olat.course.nodes.projectbroker.datamodel.ProjectEvent;
@@ -52,7 +50,6 @@ import org.olat.group.BusinessGroupService;
  */
 public class ProjectBrokerExportGenerator {
 	private static OLog log = Tracing.createLoggerFor(ProjectBrokerExportGenerator.class);
-  private static final String PACKAGE = Util.getPackageName(ProjectListController.class);
   
   private static final String END_OF_LINE = "\t\n";
   private static final String TABLE_DELIMITER = "\t";
@@ -69,7 +66,7 @@ public class ProjectBrokerExportGenerator {
 	 * @return String
 	 */
 	public static String createCourseResultsOverviewTable(CourseNode courseNode, ICourse course, Locale locale) {
-	  Translator translator = new PackageTranslator(PACKAGE, locale);
+	  Translator translator = Util.createPackageTranslator(ProjectBrokerExportGenerator.class, locale);
 		StringBuilder table = new StringBuilder();
 		ProjectBrokerModuleConfiguration moduleConfig = new ProjectBrokerModuleConfiguration(courseNode.getModuleConfiguration());
 		
diff --git a/src/main/java/org/olat/course/nodes/ta/TACourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/ta/TACourseNodeConfiguration.java
index 7782e105f945114a0624714af192a4934fee7d8a..238f67f95b6ef27e11a5a77b9b2bc5a3bb2f3d38 100644
--- a/src/main/java/org/olat/course/nodes/ta/TACourseNodeConfiguration.java
+++ b/src/main/java/org/olat/course/nodes/ta/TACourseNodeConfiguration.java
@@ -25,10 +25,8 @@
 
 package org.olat.course.nodes.ta;
 
-import java.util.List;
 import java.util.Locale;
 
-import org.olat.core.extensions.ExtensionResource;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.AbstractCourseNodeConfiguration;
@@ -75,36 +73,4 @@ public class TACourseNodeConfiguration extends AbstractCourseNodeConfiguration i
 	public String getAlias() {
 		return "ta";
 	}
-
-	//
-	// OLATExtension interface implementations.
-	//
-
-	public String getName() {
-		return getAlias();
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionResources()
-	 */
-	public List getExtensionResources() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionCSS()
-	 */
-	public ExtensionResource getExtensionCSS() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#setURLBuilder(org.olat.core.gui.render.URLBuilder)
-	 */
-	public void setExtensionResourcesBaseURI(String ubi) {
-	// no need for the URLBuilder
-	}
-
 }
diff --git a/src/main/java/org/olat/course/nodes/ta/TACourseNodeEditController.java b/src/main/java/org/olat/course/nodes/ta/TACourseNodeEditController.java
index 77abf5efcaa9711b22561b81f8c426c38e34fed4..e567c5374885f3703e8034210b4147088f79a025 100644
--- a/src/main/java/org/olat/course/nodes/ta/TACourseNodeEditController.java
+++ b/src/main/java/org/olat/course/nodes/ta/TACourseNodeEditController.java
@@ -53,7 +53,6 @@ import org.olat.core.gui.control.generic.modal.DialogBoxController;
 import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
 import org.olat.core.gui.control.generic.tabbable.ActivateableTabbableDefaultController;
 import org.olat.core.gui.render.velocity.VelocityHelper;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.helpers.Settings;
 import org.olat.core.id.Identity;
@@ -165,8 +164,8 @@ public class TACourseNodeEditController extends ActivateableTabbableDefaultContr
 		//o_clusterOk by guido: save to hold reference to course inside editor
 		this.course = course;
 		this.config = node.getModuleConfiguration();
-		Translator newTranslator = new PackageTranslator(Util.getPackageName(TACourseNodeEditController.class), ureq.getLocale(), new PackageTranslator(Util
-				.getPackageName(MSCourseNodeEditController.class), ureq.getLocale()));
+		Translator newTranslator = Util.createPackageTranslator(TACourseNodeEditController.class, ureq.getLocale(),
+				Util.createPackageTranslator(MSCourseNodeEditController.class, ureq.getLocale()));
 		setTranslator(newTranslator);
 		
 		accessabilityVC = this.createVelocityContainer("edit");
diff --git a/src/main/java/org/olat/course/nodes/tu/TUCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/tu/TUCourseNodeConfiguration.java
index 5008f1689a83197ce99e641c253832862f5534b0..11a9d2873f690edd5979dbd3dbeb5d78722583bf 100644
--- a/src/main/java/org/olat/course/nodes/tu/TUCourseNodeConfiguration.java
+++ b/src/main/java/org/olat/course/nodes/tu/TUCourseNodeConfiguration.java
@@ -25,10 +25,8 @@
 
 package org.olat.course.nodes.tu;
 
-import java.util.List;
 import java.util.Locale;
 
-import org.olat.core.extensions.ExtensionResource;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.AbstractCourseNodeConfiguration;
@@ -80,36 +78,4 @@ public class TUCourseNodeConfiguration extends AbstractCourseNodeConfiguration i
 	public String getAlias() {
 		return "tu";
 	}
-
-	//
-	// OLATExtension interface implementations.
-	//
-
-	public String getName() {
-		return getAlias();
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionResources()
-	 */
-	public List getExtensionResources() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionCSS()
-	 */
-	public ExtensionResource getExtensionCSS() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#setURLBuilder(org.olat.core.gui.render.URLBuilder)
-	 */
-	public void setExtensionResourcesBaseURI(String ubi) {
-	// no need for the URLBuilder
-	}
-
 }
diff --git a/src/main/java/org/olat/course/nodes/wiki/WikiCourseNodeConfiguration.java b/src/main/java/org/olat/course/nodes/wiki/WikiCourseNodeConfiguration.java
index 9044945500bcb1123d3407befca106b8a8dbc6a9..882ebecd30cd08844e2e4e5a96696d6f65ae7368 100644
--- a/src/main/java/org/olat/course/nodes/wiki/WikiCourseNodeConfiguration.java
+++ b/src/main/java/org/olat/course/nodes/wiki/WikiCourseNodeConfiguration.java
@@ -25,12 +25,10 @@
 
 package org.olat.course.nodes.wiki;
 
-import java.util.List;
 import java.util.Locale;
 
 import org.olat.basesecurity.BaseSecurityModule;
 import org.olat.core.CoreSpringFactory;
-import org.olat.core.extensions.ExtensionResource;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.course.nodes.AbstractCourseNodeConfiguration;
@@ -85,29 +83,4 @@ public class WikiCourseNodeConfiguration extends AbstractCourseNodeConfiguration
 	public String getAlias() {
 		return WikiCourseNode.TYPE;
 	}
-
-	//
-	// OLATExtension interface implementations.
-	//
-
-	public String getName() {
-		return getAlias();
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionResources()
-	 */
-	public List getExtensionResources() {
-		// no ressources, part of main css
-		return null;
-	}
-
-	/**
-	 * @see org.olat.core.extensions.OLATExtension#getExtensionCSS()
-	 */
-	public ExtensionResource getExtensionCSS() {
-		// no ressources, part of main css
-		return null;
-	}
-
 }
diff --git a/src/main/java/org/olat/course/run/RunMainController.java b/src/main/java/org/olat/course/run/RunMainController.java
index 9511565f2693a8291ac79f32d48950c7a81cd6f5..08dc5fcd5edcbaf2fa326fd3884de8213a43d8b8 100644
--- a/src/main/java/org/olat/course/run/RunMainController.java
+++ b/src/main/java/org/olat/course/run/RunMainController.java
@@ -66,7 +66,7 @@ import org.olat.core.gui.control.generic.textmarker.GlossaryMarkupItemController
 import org.olat.core.gui.control.generic.title.TitledWrapperController;
 import org.olat.core.gui.control.generic.tool.ToolController;
 import org.olat.core.gui.control.generic.tool.ToolFactory;
-import org.olat.core.gui.translator.PackageTranslator;
+import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.id.Roles;
@@ -78,6 +78,7 @@ import org.olat.core.logging.OLATSecurityException;
 import org.olat.core.logging.activity.CourseLoggingAction;
 import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.Util;
 import org.olat.core.util.coordinate.CoordinatorManager;
 import org.olat.core.util.event.GenericEventListener;
 import org.olat.core.util.event.MultiUserEvent;
@@ -367,7 +368,7 @@ public class RunMainController extends MainLayoutBasicController implements Gene
 		String extendedCourseTitle = this.courseTitle;
 		RepositoryEntry repositoryEntry = RepositoryManager.getInstance().lookupRepositoryEntry(course, false);
 		if (repositoryEntry != null && RepositoryManager.getInstance().createRepositoryEntryStatus(repositoryEntry.getStatusCode()).isClosed()) {
-			PackageTranslator pT = new PackageTranslator(RepositoryEntryStatus.class.getPackage().getName(), locale);
+			Translator pT = Util.createPackageTranslator(RepositoryEntryStatus.class, locale);
 			extendedCourseTitle = "[" + pT.translate("title.prefix.closed") + "] ".concat(extendedCourseTitle);
 		}
 		return extendedCourseTitle;
diff --git a/src/main/java/org/olat/course/statistic/ExportManager.java b/src/main/java/org/olat/course/statistic/ExportManager.java
index 27b5c1efcad130ccde087d47c0b4d373e43ebb8d..8c6f5a5ef8457942d356fc3fa044d775bc07724a 100644
--- a/src/main/java/org/olat/course/statistic/ExportManager.java
+++ b/src/main/java/org/olat/course/statistic/ExportManager.java
@@ -80,10 +80,6 @@ public class ExportManager extends BasicManager {
 	 * filename used to store all user's activities (anonymized) in the course
 	 */
 	private static final String FILENAME_STATISTIC_LOG = "course_statistic_log.csv";
-	/** 
-	 * filename course statistic
-	 */
-	private static final String FILENAME_COURSE_STATISTIC = "course_statistic.csv";
 	/**
 	 * zip filename substring (archive log files)
 	 */
diff --git a/src/main/java/org/olat/course/statistic/MySQLTempStatTableCreator.java b/src/main/java/org/olat/course/statistic/MySQLTempStatTableCreator.java
index bb2157376bf2eb972675be0865a326ddfb58390b..2f0e20a9d52759291342d41762ff04b068ce450f 100644
--- a/src/main/java/org/olat/course/statistic/MySQLTempStatTableCreator.java
+++ b/src/main/java/org/olat/course/statistic/MySQLTempStatTableCreator.java
@@ -29,6 +29,7 @@ import java.sql.SQLException;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 import javax.sql.DataSource;
 
@@ -104,7 +105,7 @@ public class MySQLTempStatTableCreator implements IStatisticUpdater {
 					monthStr = "0"+monthStr;
 				}
 				String sameMonthTable = "o_loggingtable_"+String.valueOf(lastUpdatedCalendar.get(Calendar.YEAR))+monthStr;
-				List tables = jdbcTemplate_.queryForList("show tables like '"+sameMonthTable+"'");
+				List<Map<String,Object>> tables = jdbcTemplate_.queryForList("show tables like '"+sameMonthTable+"'");
 				if (tables!=null && tables.size()==1) {
 					log_.info("updateStatistic: using "+sameMonthTable+" instead of "+oLoggingTable);
 					oLoggingTable = sameMonthTable;
diff --git a/src/main/java/org/olat/course/statistic/daily/DailyStatisticDisplayController.java b/src/main/java/org/olat/course/statistic/daily/DailyStatisticDisplayController.java
index cd60ad0785f4c46509a88183ba169ad87809fcbf..c57f3a178c9367b03797fef25338cbd1511f199e 100644
--- a/src/main/java/org/olat/course/statistic/daily/DailyStatisticDisplayController.java
+++ b/src/main/java/org/olat/course/statistic/daily/DailyStatisticDisplayController.java
@@ -30,8 +30,6 @@ 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.logging.OLog;
-import org.olat.core.logging.Tracing;
 import org.olat.core.util.Util;
 import org.olat.course.ICourse;
 import org.olat.course.statistic.DateChooserForm;
@@ -41,9 +39,6 @@ import org.olat.course.statistic.StatisticResult;
 
 public class DailyStatisticDisplayController extends StatisticDisplayController {
 
-	/** the logging object used in this class **/
-	private static final OLog log_ = Tracing.createLoggerFor(DailyStatisticDisplayController.class);
-
 	private VelocityContainer dailyStatisticFormVc_;
 	private VelocityContainer dailyStatisticVc_;
 	private DateChooserForm form_;
diff --git a/src/main/java/org/olat/course/statistic/weekly/WeeklyStatisticDisplayController.java b/src/main/java/org/olat/course/statistic/weekly/WeeklyStatisticDisplayController.java
index d50e6311b0cd5a776e3d4802d935ab9317e17d80..2315f9b00e57d20c678b1bfcc602e012c2564613 100644
--- a/src/main/java/org/olat/course/statistic/weekly/WeeklyStatisticDisplayController.java
+++ b/src/main/java/org/olat/course/statistic/weekly/WeeklyStatisticDisplayController.java
@@ -30,8 +30,6 @@ 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.logging.OLog;
-import org.olat.core.logging.Tracing;
 import org.olat.core.util.Util;
 import org.olat.course.ICourse;
 import org.olat.course.statistic.DateChooserForm;
@@ -41,9 +39,6 @@ import org.olat.course.statistic.StatisticResult;
 
 public class WeeklyStatisticDisplayController extends StatisticDisplayController {
 
-	/** the logging object used in this class **/
-	private static final OLog log_ = Tracing.createLoggerFor(WeeklyStatisticDisplayController.class);
-
 	private VelocityContainer weeklyStatisticFormVc_;
 	private VelocityContainer weeklyStatisticVc_;
 	private DateChooserForm form_;
diff --git a/src/main/java/org/olat/fileresource/types/AddingResourceException.java b/src/main/java/org/olat/fileresource/types/AddingResourceException.java
index 474f6913ec98dd4078a8b74cefa727ba93e041f6..9cab7c5a37ddaca4272e3d30fa24c515d9506c7d 100644
--- a/src/main/java/org/olat/fileresource/types/AddingResourceException.java
+++ b/src/main/java/org/olat/fileresource/types/AddingResourceException.java
@@ -37,6 +37,8 @@ package org.olat.fileresource.types;
  * @author guido
  */
 public class AddingResourceException extends Exception {
+
+	private static final long serialVersionUID = 4598004122080558856L;
 	private String errorKey;
 	
 	/**
diff --git a/src/main/java/org/olat/fileresource/types/ImsCPFileResource.java b/src/main/java/org/olat/fileresource/types/ImsCPFileResource.java
index e129bd40c768106d5ad31094eabc3ddeb09b5c2c..7895c07ff025772e5a5287b8112214a893441cee 100644
--- a/src/main/java/org/olat/fileresource/types/ImsCPFileResource.java
+++ b/src/main/java/org/olat/fileresource/types/ImsCPFileResource.java
@@ -67,7 +67,7 @@ public class ImsCPFileResource extends FileResource {
 		// get all organization elements. need to set namespace
 		Element rootElement = doc.getRootElement();
 		String nsuri = rootElement.getNamespace().getURI();
-		Map nsuris = new HashMap(1);
+		Map<String,String> nsuris = new HashMap<>(1);
 		nsuris.put("ns", nsuri);
 
 		// Check for organiztaion element. Must provide at least one... title gets ectracted from either
diff --git a/src/main/java/org/olat/gui/demo/CheckTranslationKeys.java b/src/main/java/org/olat/gui/demo/CheckTranslationKeys.java
index 866c0228c505635fd859e8f12b7ea4792d79542e..029949e117f1c0b530011d12af94b1e7fa742aba 100644
--- a/src/main/java/org/olat/gui/demo/CheckTranslationKeys.java
+++ b/src/main/java/org/olat/gui/demo/CheckTranslationKeys.java
@@ -45,8 +45,8 @@ import org.olat.core.util.FileUtils;
  * @author Felix Jost
  */
 public class CheckTranslationKeys {
-	private static Map fileToProp = new HashMap();
-	private static Map fileToCont = new HashMap();
+	private static Map<File,Properties> fileToProp = new HashMap<>();
+	private static Map<File,String> fileToCont = new HashMap<>();
 	
 	/**
 	 * @param args
@@ -55,10 +55,10 @@ public class CheckTranslationKeys {
 	public static void main(String[] args) throws Exception {
 		String path ="c:/workspace/olat3/webapp/";
 		File basedir = new File(path);
-		List res = new ArrayList();
+		List<File> res = new ArrayList<>();
 		buildList(res, basedir);
-		for (Iterator iter = res.iterator(); iter.hasNext();) {
-			File file = (File) iter.next();
+		for (Iterator<File> iter = res.iterator(); iter.hasNext();) {
+			File file = iter.next();
 			String name = file.getName();
 			if (name.startsWith("LocalStrings") && name.endsWith(".properties")) {
 				//
@@ -79,11 +79,11 @@ public class CheckTranslationKeys {
 		// check
 		findInHTMLorJava("sdfsdfsdfaaaaa"+"aaaaaaaaaaaafsdf");
 		
-		List dispList = new ArrayList();
-		for (Iterator iter = fileToProp.keySet().iterator(); iter.hasNext();) {
-			File fil = (File) iter.next();
-			Properties p = (Properties)fileToProp.get(fil);
-			for (Iterator iterator = p.keySet().iterator(); iterator.hasNext(); ) {
+		List<String> dispList = new ArrayList<>();
+		for (Iterator<File> iter = fileToProp.keySet().iterator(); iter.hasNext();) {
+			File fil = iter.next();
+			Properties p = fileToProp.get(fil);
+			for (Iterator<Object> iterator = p.keySet().iterator(); iterator.hasNext(); ) {
 				String key = (String) iterator.next();
 				boolean ok = findInHTMLorJava(key);
 				String value = p.getProperty(key);
@@ -94,8 +94,8 @@ public class CheckTranslationKeys {
 			}
 		}
 		Collections.sort(dispList);
-		for (Iterator iter = dispList.iterator(); iter.hasNext();) {
-			String out = (String) iter.next();
+		for (Iterator<String> iter = dispList.iterator(); iter.hasNext();) {
+			String out = iter.next();
 			System.out.println(out);
 		}
 		
@@ -107,9 +107,9 @@ public class CheckTranslationKeys {
 	 */
 	private static boolean findInHTMLorJava(String key) {
 		String search = "\""+key+"\"";
-		for (Iterator iter = fileToCont.keySet().iterator(); iter.hasNext();) {
-			File fil = (File) iter.next();
-			String cont = (String) fileToCont.get(fil);
+		for (Iterator<File> iter = fileToCont.keySet().iterator(); iter.hasNext();) {
+			File fil = iter.next();
+			String cont = fileToCont.get(fil);
 			if (cont.indexOf(search) != -1) {
 				return true;
 			}
@@ -117,7 +117,7 @@ public class CheckTranslationKeys {
 		return false;
 	}
 
-	private static void buildList(List fileList, File cur) { 
+	private static void buildList(List<File> fileList, File cur) { 
 		if (cur.isDirectory()) {
 			File[] children = cur.listFiles();
 			for (int i = 0; i < children.length; i++) {
diff --git a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormAdvancedController.java b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormAdvancedController.java
index 02d766d8ce8263c0277ceb65bdb75f02b9952286..b95c336a93724ea69137e36e8788a7d187b06ce9 100644
--- a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormAdvancedController.java
+++ b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormAdvancedController.java
@@ -27,10 +27,8 @@ package org.olat.gui.demo.guidemo;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
-import org.olat.core.gui.components.form.flexible.elements.DateChooser;
 import org.olat.core.gui.components.form.flexible.elements.FileElement;
 import org.olat.core.gui.components.form.flexible.elements.FormLink;
-import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
 import org.olat.core.gui.components.form.flexible.elements.RichTextElement;
 import org.olat.core.gui.components.form.flexible.elements.SingleSelection;
 import org.olat.core.gui.components.form.flexible.elements.TextElement;
@@ -66,7 +64,7 @@ public class GuiDemoFlexiFormAdvancedController extends FormBasicController {
 	// For yes and no we'll use i18n keys and translate the values
 	private final static String[] yesOrNoKeys = new String[] { "advanced_form.yes", "advanced_form.no" };
 
-	private RichTextElement richTextElement, richTextElement2, disabledRichTextElement;
+	private RichTextElement richTextElement, disabledRichTextElement;
 	
 	public GuiDemoFlexiFormAdvancedController(UserRequest ureq, WindowControl wControl) {
 		super(ureq, wControl);
@@ -85,7 +83,6 @@ public class GuiDemoFlexiFormAdvancedController extends FormBasicController {
 	 * @see org.olat.core.gui.components.form.flexible.impl.FormBasicController#formOK(org.olat.core.gui.UserRequest)
 	 */
 	@Override
-	@SuppressWarnings("unused")
 	protected void formOK(UserRequest ureq) {		
 		showInfo("advanced_form.successfully_submitted", file.getUploadFileName());
 		// add your code here:
@@ -98,8 +95,6 @@ public class GuiDemoFlexiFormAdvancedController extends FormBasicController {
 	 *      org.olat.core.gui.control.Controller, org.olat.core.gui.UserRequest)
 	 */
 	@Override
-	@SuppressWarnings("unused")
-	// listener is never used because listener == this!
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		setFormTitle("guidemo_flexi_form_advanced");
 		setFormDescription("advanced_form.description");
@@ -131,7 +126,7 @@ public class GuiDemoFlexiFormAdvancedController extends FormBasicController {
 		richTextElement = uifactory.addRichTextElementForStringData("guidemo.form.richtext.simple", "guidemo.form.richtext.simple", "click <i>to</i> <b>edit</b>. This one has an event listener and an <b>external menu with auto hide</b>", -1, -1, false, null, null, formLayout, ureq.getUserSession(), getWindowControl());
 		//richTextElement.addActionListener(FormEvent.ONCHANGE);
 
-		richTextElement2 = uifactory.addRichTextElementForStringData("guidemo.form.richtext.simple2", null, "one <i>with</i> <b>height</b> and <span style='color:red'>no</span> event listener and an <b>internal</b> menu", 10, 40, true, null, null, formLayout, ureq.getUserSession(), getWindowControl());
+		uifactory.addRichTextElementForStringData("guidemo.form.richtext.simple2", null, "one <i>with</i> <b>height</b> and <span style='color:red'>no</span> event listener and an <b>internal</b> menu", 10, 40, true, null, null, formLayout, ureq.getUserSession(), getWindowControl());
 
 		disabledRichTextElement = uifactory.addRichTextElementForStringData("guidemo.form.richtext.simple3", "guidemo.form.richtext.simple", "this <i>is</i> <b>disabled</b>", -1, -1, false, null, null, formLayout, ureq.getUserSession(), getWindowControl());
 		disabledRichTextElement.setEnabled(false);
@@ -171,7 +166,7 @@ public class GuiDemoFlexiFormAdvancedController extends FormBasicController {
 	 */
 	private void addDateLinkAndFileItems(FormItemContainer form) {
 		// Date picker
-		final DateChooser date = uifactory.addDateChooser("dateChooser", "guidemo.form.date", null, form);
+		uifactory.addDateChooser("dateChooser", "guidemo.form.date", null, form);
 
 		// Link
 		final FormLink link = uifactory.addFormLink("link", form);
@@ -201,7 +196,7 @@ public class GuiDemoFlexiFormAdvancedController extends FormBasicController {
 		verticalRadioButtons.addActionListener(FormEvent.ONCLICK);
 
 		// checkboxes
-		final MultipleSelectionElement checkboxes = uifactory.addCheckboxesVertical("checkboxes", "advanced_form.checkboxes", form, keys, options, null, 1);
+		uifactory.addCheckboxesVertical("checkboxes", "advanced_form.checkboxes", form, keys, options, null, 1);
 
 		// Translate the keys to the yes and no option values
 		final String[] yesOrNoOptions = new String[yesOrNoKeys.length];
@@ -251,7 +246,6 @@ public class GuiDemoFlexiFormAdvancedController extends FormBasicController {
 	 * @param source
 	 * @param event
 	 */
-	@SuppressWarnings("unused")
 	protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
 		if (source == verticalRadioButtons) {
 			if (event.wasTriggerdBy(FormEvent.ONCLICK)) {
diff --git a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormSubworkflow.java b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormSubworkflow.java
index 3819834b1c80362ea52af9458a173f074bf29d01..f94a94e11a36b212d8a87d5f0f0fa5123e564f92 100644
--- a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormSubworkflow.java
+++ b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiFormSubworkflow.java
@@ -167,7 +167,6 @@ public class GuiDemoFlexiFormSubworkflow extends FormBasicController {
 		// Example3: Set a context help link
 		setFormContextHelp("org.olat.core.commons.modules.bc", "bc-webdav.html", "guidemo_flexi_form_withchooser.helphover");		
 		
-		final int defaultDisplaySize = 32;
 		final boolean inputMode = !personData.isReadOnly();
 		
 		firstName = uifactory.addTextElement("firstname", "guidemo.flexi.form.firstname", 256, personData.getFirstName(), formLayout);
diff --git a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoInlineEditingBasedOnFlexiForm.java b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoInlineEditingBasedOnFlexiForm.java
index eb51f9b8d36461e933b6191f8e1603009268317c..73ea5907c29c834ffdfd2b999b937fd3903cc069 100644
--- a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoInlineEditingBasedOnFlexiForm.java
+++ b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoInlineEditingBasedOnFlexiForm.java
@@ -28,7 +28,6 @@ import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.FormUIFactory;
 import org.olat.core.gui.components.form.flexible.elements.IntegerElement;
-import org.olat.core.gui.components.form.flexible.elements.StaticTextElement;
 import org.olat.core.gui.components.form.flexible.elements.TextElement;
 import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
 import org.olat.core.gui.control.Controller;
@@ -104,7 +103,6 @@ public class GuiDemoInlineEditingBasedOnFlexiForm extends FormBasicController {
 		// the inlineLable is used as Label for the addStaticTextElement
 		// Avoid translation error by setting i18nLabel key null first and then set the LabelComponent, and also you need to call showLabel(true)
 		inlineLabel = formUIf.addInlineTextElement("inline.label.int"+i+ii+1, "mytext"+i+ii+1, formLayout, null);
-		StaticTextElement theElement = formUIf.addStaticTextElement("inline.label.text"+i+ii,  null,"my bony", formLayout);
-		//theElement.setLabelComponent(inlineLabel, formLayout).showLabel(true);
+		formUIf.addStaticTextElement("inline.label.text"+i+ii,  null,"my bony", formLayout);
 	}
 }
diff --git a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoPushPopController.java b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoPushPopController.java
index ca295ce4b25d4e5ce5c8c170f31f094dfa87151e..bad3ee6da1564ecbe48255ce63bc55ebf45d8ea5 100644
--- a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoPushPopController.java
+++ b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoPushPopController.java
@@ -39,10 +39,10 @@ import org.olat.core.gui.control.controller.BasicController;
 
 public class GuiDemoPushPopController extends BasicController {
 	
-	VelocityContainer vcMain, vcPush;
-	Stack windowStack = new Stack();
-	private Link pushButton;
-	private Link popButton;
+	private final VelocityContainer vcMain;
+	private final Stack<Component> windowStack = new Stack<>();
+	private final Link pushButton;
+	private final Link popButton;
 	
 	public GuiDemoPushPopController(UserRequest ureq, WindowControl wControl) {
 		super(ureq,wControl);
diff --git a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoTooltipsController.java b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoTooltipsController.java
index 7245c0a246d5cfae198b21650dce42672cacfc59..7db1e7683eb6b58c07755f84b94c9dccf8693495 100644
--- a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoTooltipsController.java
+++ b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoTooltipsController.java
@@ -71,7 +71,7 @@ public class GuiDemoTooltipsController extends BasicController {
 		 * and somehow not 
 		 */
 		
-		Link link3 = LinkFactory.createLink("link3", content, this);
+		LinkFactory.createLink("link3", content, this);
 		content.put("tooltipContent", tooltipContent);
 		link4 = LinkFactory.createLink("link4", tooltipContent, this);
 		
diff --git a/src/main/java/org/olat/gui/demo/guidemo/error/ErrorDemoController.java b/src/main/java/org/olat/gui/demo/guidemo/error/ErrorDemoController.java
index 32db1c8d67df7cb079d946b1e16005f13aa17bb4..319ba9787fa136af2b6f66d517e322e72a0e13f8 100644
--- a/src/main/java/org/olat/gui/demo/guidemo/error/ErrorDemoController.java
+++ b/src/main/java/org/olat/gui/demo/guidemo/error/ErrorDemoController.java
@@ -86,8 +86,7 @@ public class ErrorDemoController extends BasicController {
 			// cause a nullpointer exception
 			String s = new String();
 			s = null;
-			Class c = s.getClass();
-			getWindowControl().setInfo("get class of "+c.getName());
+			getWindowControl().setInfo("get class of " + s.getClass().getName());
 		} else if (source == assertLink){
 			// create a assertexception sample
 			try {
diff --git a/src/main/java/org/olat/gui/demo/guidemo/guisoa/GuiDemoSoaController.java b/src/main/java/org/olat/gui/demo/guidemo/guisoa/GuiDemoSoaController.java
index 8753619c4266f63f0792c045b2e0496146981be4..59f69493d658034ab248384b4430b27d33b7c897 100644
--- a/src/main/java/org/olat/gui/demo/guidemo/guisoa/GuiDemoSoaController.java
+++ b/src/main/java/org/olat/gui/demo/guidemo/guisoa/GuiDemoSoaController.java
@@ -44,7 +44,7 @@ public class GuiDemoSoaController extends BasicController {
 
 	private Panel usersearchHolder;
 	private VelocityContainer mainVC;
-	private Link button, button2;
+	private Link button;
 	
 	private Controller userSearch;
 
diff --git a/src/main/java/org/olat/ims/cp/ui/CPContentController.java b/src/main/java/org/olat/ims/cp/ui/CPContentController.java
index bf20ae6fbe2aa28d3419ba7a7e53679f6ec44a4c..2c1dc443abb85975e373188537de7e4fb1d3b3b7 100644
--- a/src/main/java/org/olat/ims/cp/ui/CPContentController.java
+++ b/src/main/java/org/olat/ims/cp/ui/CPContentController.java
@@ -200,7 +200,7 @@ public class CPContentController extends BasicController {
 	 * @param ureq
 	 */
 	private void displayMetadataEditor(UserRequest ureq) {
-		editMetadataCtr = new CPMetadataEditController(ureq, getWindowControl(), currentPage, cp);
+		editMetadataCtr = new CPMetadataEditController(ureq, getWindowControl(), currentPage);
 		listenTo(editMetadataCtr);
 		dialogCtr = new CloseableModalController(getWindowControl(), getTranslator().translate("close"), editMetadataCtr.getInitialComponent());
 		listenTo(dialogCtr);
diff --git a/src/main/java/org/olat/ims/cp/ui/CPFileImportController.java b/src/main/java/org/olat/ims/cp/ui/CPFileImportController.java
index 64806743bfe8347b546da3c4c8b81853823d715a..6713345a2f38f9a7c7c186dab2a324de752ef725 100644
--- a/src/main/java/org/olat/ims/cp/ui/CPFileImportController.java
+++ b/src/main/java/org/olat/ims/cp/ui/CPFileImportController.java
@@ -41,7 +41,7 @@ import org.olat.core.gui.components.link.Link;
 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.translator.PackageTranslator;
+import org.olat.core.util.Util;
 import org.olat.core.util.ZipUtil;
 import org.olat.core.util.vfs.LocalFileImpl;
 import org.olat.core.util.vfs.VFSContainer;
@@ -86,7 +86,7 @@ public class CPFileImportController extends FormBasicController {
 		this.currentPage = currentPage;
 		
 		//need a translation from FileUploadController (avoiding key-duplicates)
-		setTranslator(new PackageTranslator(FileUploadController.class.getPackage().getName(), getLocale(), getTranslator()));
+		setTranslator(Util.createPackageTranslator(FileUploadController.class, getLocale(), getTranslator()));
 		
 		initForm(ureq);
 	}
diff --git a/src/main/java/org/olat/ims/cp/ui/CPMetadataEditController.java b/src/main/java/org/olat/ims/cp/ui/CPMetadataEditController.java
index 47b44d1c5abcf0fe5e474bb0a6ac2e7e8d01b449..0c819d5eae27154009a1a14f32ece78e54e57d7d 100644
--- a/src/main/java/org/olat/ims/cp/ui/CPMetadataEditController.java
+++ b/src/main/java/org/olat/ims/cp/ui/CPMetadataEditController.java
@@ -33,7 +33,6 @@ 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.ims.cp.ContentPackage;
 
 /**
  * 
@@ -51,12 +50,10 @@ public class CPMetadataEditController extends BasicController {
 
 	private Link closeLink;
 	private CPMDFlexiForm mdCtr; // MetadataController
-	private ContentPackage cp;
 	private CPPage page;
 
-	protected CPMetadataEditController(UserRequest ureq, WindowControl control, CPPage page, ContentPackage cp) {
+	protected CPMetadataEditController(UserRequest ureq, WindowControl control, CPPage page) {
 		super(ureq, control);
-		this.cp = cp;
 		this.page = page;
 		mdCtr = new CPMDFlexiForm(ureq, getWindowControl(), page);
 		listenTo(mdCtr);
diff --git a/src/main/java/org/olat/ims/cp/ui/CPPageEditController.java b/src/main/java/org/olat/ims/cp/ui/CPPageEditController.java
deleted file mode 100644
index a72f590e69075acf27626b306d3ebce295b3997c..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/ims/cp/ui/CPPageEditController.java
+++ /dev/null
@@ -1,108 +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.ims.cp.ui;
-
-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.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.ims.cp.ContentPackage;
-
-/**
- * 
- * Description:<br>
- * This controller controls the workflows regarding the edit-process of a
- * cp-page
- * 
- * 
- * <P>
- * Initial Date: 25.07.2008 <br>
- * 
- * @author sergio
- */
-public class CPPageEditController extends BasicController {
-
-	private Link closeLink;
-	private CPMDFlexiForm mdCtr; // MetadataController
-	private ContentPackage cp;
-	private CPPage currentPage;
-
-	protected CPPageEditController(UserRequest ureq, WindowControl control, CPPage page, ContentPackage cp) {
-		super(ureq, control);
-		this.cp = cp;
-		currentPage = page;
-		mdCtr = new CPMDFlexiForm(ureq, getWindowControl(), currentPage);
-		listenTo(mdCtr);
-		putInitialPanel(mdCtr.getInitialComponent());
-	}
-
-	/**
-	 * Returns true, if the currentPage to Edit is a new one (not yet added to the
-	 * manifest)
-	 * 
-	 * @return
-	 */
-	public boolean isNewPage() {
-		return currentPage.getIdentifier().equals("-1");
-	}
-
-	protected void newPageAdded(String newNodeID) {
-		this.currentPage.setIdentifier(newNodeID);
-	}
-
-	/**
-	 * returns the CPPage, which is edited
-	 * 
-	 * @return
-	 */
-	public CPPage getCurrentPage() {
-		return currentPage;
-	}
-
-	@Override
-	protected void doDispose() {
-	// TODO Auto-generated method stub
-	}
-
-	protected void event(UserRequest ureq, Component source, Event event) {
-		if (source == closeLink) {
-			fireEvent(ureq, Event.CANCELLED_EVENT);
-		}
-	}
-
-	protected void event(UserRequest ureq, Controller source, Event event) {
-		if (source == mdCtr) {
-			currentPage = mdCtr.getPage();
-			fireEvent(ureq, event);
-		}
-
-	}
-
-}
diff --git a/src/main/java/org/olat/ims/cp/ui/NewCPPageEvent.java b/src/main/java/org/olat/ims/cp/ui/NewCPPageEvent.java
index 6af6929566172f6d3f31f7afc6cbec96ac62822f..dbe77fb24b05bc3aa05c02a8dc35cf4ea3f6974e 100644
--- a/src/main/java/org/olat/ims/cp/ui/NewCPPageEvent.java
+++ b/src/main/java/org/olat/ims/cp/ui/NewCPPageEvent.java
@@ -31,6 +31,7 @@ import org.olat.core.gui.control.Event;
 
 public class NewCPPageEvent extends Event {
 
+	private static final long serialVersionUID = 7224789467625871502L;
 	private CPPage page;
 
 	public NewCPPageEvent(String command,CPPage page) {
diff --git a/src/main/java/org/olat/ims/cp/ui/VFSCPNamedContainerItem.java b/src/main/java/org/olat/ims/cp/ui/VFSCPNamedContainerItem.java
index 49e98026f12e40a8f73c19cf125625950acf2437..b28c67f84279d97d2882fba0361ca134f6fb564b 100644
--- a/src/main/java/org/olat/ims/cp/ui/VFSCPNamedContainerItem.java
+++ b/src/main/java/org/olat/ims/cp/ui/VFSCPNamedContainerItem.java
@@ -29,8 +29,6 @@ import org.olat.core.util.vfs.VFSLeaf;
 import org.olat.core.util.vfs.VFSManager;
 import org.olat.core.util.vfs.VFSStatus;
 import org.olat.core.util.vfs.filters.VFSItemFilter;
-import org.olat.ims.cp.CPManager;
-import org.olat.ims.cp.CPManagerImpl;
 import org.olat.ims.cp.CPTreeDataModel;
 import org.olat.ims.cp.ContentPackage;
 
@@ -48,7 +46,6 @@ import org.olat.ims.cp.ContentPackage;
 public class VFSCPNamedContainerItem extends NamedLeaf implements VFSContainer {
 	
 	private final CPTreeDataModel treeModel;
-	private final CPManagerImpl cpMgm;
 	private final ContentPackage cp;
 	private final String ident;
 	
@@ -57,7 +54,6 @@ public class VFSCPNamedContainerItem extends NamedLeaf implements VFSContainer {
 		
 		this.cp = cp;
 		this.ident = ident;
-		cpMgm = (CPManagerImpl) CPManager.getInstance();
 		this.treeModel = treeModel;
 	}
 
diff --git a/src/main/java/org/olat/ims/qti/container/ItemContext.java b/src/main/java/org/olat/ims/qti/container/ItemContext.java
index 2a72e44b2620ffbbb4e91340bf4523ec2f3f785e..d674e5ce27f089d7d87f5b3c72fad4f85d28e347 100644
--- a/src/main/java/org/olat/ims/qti/container/ItemContext.java
+++ b/src/main/java/org/olat/ims/qti/container/ItemContext.java
@@ -201,8 +201,8 @@ public class ItemContext implements Serializable {
 
 		// set up a list of children with their parents and the position of the
 		// child (in case several children have the same parent
-		List respList = new ArrayList(shusize);
-		List parentList = new ArrayList(shusize);
+		List<Element> respList = new ArrayList<>(shusize);
+		List<Element> parentList = new ArrayList<>(shusize);
 		int[] posList = new int[shusize];
 		int j = 0;
 
@@ -211,7 +211,7 @@ public class ItemContext implements Serializable {
 			Element parent = response.getParent();
 			int pos = parent.indexOf(response);
 			posList[j++] = pos;
-			respList.add(response.clone()); // need to use clones so they are not
+			respList.add((Element)response.clone()); // need to use clones so they are not
 			// attached anymore
 			parentList.add(parent);
 		}
diff --git a/src/main/java/org/olat/ims/qti/container/ItemsInput.java b/src/main/java/org/olat/ims/qti/container/ItemsInput.java
index fd83c08e3adb896ab481a0ba201b7dca1141dce2..a89c67e94bd6fa26c3b3c4fd8fc6687b507c5644 100644
--- a/src/main/java/org/olat/ims/qti/container/ItemsInput.java
+++ b/src/main/java/org/olat/ims/qti/container/ItemsInput.java
@@ -34,21 +34,21 @@ import java.util.Iterator;
  */
 public class ItemsInput implements Serializable{
 
-	private HashMap map;
+	private HashMap<String,ItemInput> map;
 
 	/**
 	 * Constructor for ItemsInput.
 	 */
 	public ItemsInput() {
 		super();
-		map = new HashMap();
+		map = new HashMap<String,ItemInput>();
 	}
 	
 	public void addItemInput(ItemInput iip) {
 		map.put(iip.getIdent(), iip);
 	}
 	
-	public Iterator getItemInputIterator() {
+	public Iterator<ItemInput> getItemInputIterator() {
 		return map.values().iterator();
 	}
 	
diff --git a/src/main/java/org/olat/ims/qti/container/SectionContext.java b/src/main/java/org/olat/ims/qti/container/SectionContext.java
index b77267d5b2b7dd649713cf929d229f27f933a550..9625fc2b5658eb0a89d7e91a21d5af48405aea4f 100644
--- a/src/main/java/org/olat/ims/qti/container/SectionContext.java
+++ b/src/main/java/org/olat/ims/qti/container/SectionContext.java
@@ -165,7 +165,7 @@ public class SectionContext implements Serializable {
 		}
 
 		// ----------------------- selection
-		List el_items = new ArrayList();
+		List<Element> el_items = new ArrayList<>();
 		// determine which items (sections not implemented) will be chosen/selected
 		// for this section
 		// --- 1. take all items and resolved itemrefs which are in the section
@@ -255,7 +255,7 @@ public class SectionContext implements Serializable {
 					String sNum = el_selection_number.getText();
 					int num = new Integer(sNum).intValue();
 					// now choose some x out of the items if selection_number exists
-					List newList = new ArrayList();
+					List<Element> newList = new ArrayList<>();
 					Random r = new Random();
 					int size = el_items.size();
 					// if num > size ??e.g. 5 elements should be picked, but there are
@@ -263,7 +263,7 @@ public class SectionContext implements Serializable {
 					if (num > size) num = size;
 					for (int i = 0; i < num; i++) {
 						int n = r.nextInt(size--);
-						Object o = el_items.remove(n);
+						Element o = el_items.remove(n);
 						newList.add(o);
 					}
 					el_items = newList;
@@ -295,8 +295,8 @@ public class SectionContext implements Serializable {
 
 		// now wrap all item contexts
 		itemContexts = new ArrayList<ItemContext>(10);
-		for (Iterator iter = el_items.iterator(); iter.hasNext();) {
-			Element item = (Element) iter.next();
+		for (Iterator<Element> iter = el_items.iterator(); iter.hasNext();) {
+			Element item = iter.next();
 			item.detach();
 			ItemContext itc = new ItemContext();
 			itc.setUp(assessInstance, item, sw);
diff --git a/src/main/java/org/olat/ims/qti/editor/AddNewQTIDocumentController.java b/src/main/java/org/olat/ims/qti/editor/AddNewQTIDocumentController.java
index 2c4152ddab0699644ab0d7523361690000710e20..f5f09c94a83d8aceb322060383f856d4eda361cb 100644
--- a/src/main/java/org/olat/ims/qti/editor/AddNewQTIDocumentController.java
+++ b/src/main/java/org/olat/ims/qti/editor/AddNewQTIDocumentController.java
@@ -35,8 +35,8 @@ import org.olat.core.gui.control.ControllerEventListener;
 import org.olat.core.gui.control.DefaultController;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.CodeHelper;
 import org.olat.core.util.Util;
@@ -60,8 +60,8 @@ import org.olat.repository.controllers.RepositoryAddCallback;
  * @author Mike Stock
  */
 public class AddNewQTIDocumentController extends DefaultController implements IAddController, ControllerEventListener {
-
-	private static final String PACKAGE_REPOSITORY = Util.getPackageName(RepositoryManager.class);
+	
+	private static final OLog log = Tracing.createLoggerFor(AddNewQTIDocumentController.class);
 	private static final String DUMMY_TITLE = "__DUMMYTITLE__";
 	private final String type;
 	private FileResource resource;
@@ -79,8 +79,8 @@ public class AddNewQTIDocumentController extends DefaultController implements IA
 	public AddNewQTIDocumentController(String type, RepositoryAddCallback addCallback, UserRequest ureq, WindowControl wControl) {
 		super(wControl);		
 		this.type = type;
-		this.translator = new PackageTranslator(PACKAGE_REPOSITORY, ureq.getLocale());
-		this.locale = ureq.getLocale();
+		translator = Util.createPackageTranslator(RepositoryManager.class, ureq.getLocale());
+		locale = ureq.getLocale();
 		if (type.equals(AssessmentInstance.QMD_ENTRY_TYPE_ASSESS)) {
 			resource = new TestFileResource();
 		} else if (type.equals(AssessmentInstance.QMD_ENTRY_TYPE_SURVEY)) {
@@ -123,7 +123,7 @@ public class AddNewQTIDocumentController extends DefaultController implements IA
 		try {
 			return (FileResourceManager.getInstance().addFileResource(fTempQTI, "qti.zip", resource) != null);
 		} catch (AddingResourceException e) {
-			Tracing.logWarn("Error while adding new qti.zip resource", e, AddNewQTIDocumentController.class);
+			log.warn("Error while adding new qti.zip resource", e);
 			return false;
 		}
 	}
diff --git a/src/main/java/org/olat/ims/qti/editor/ItemPreviewController.java b/src/main/java/org/olat/ims/qti/editor/ItemPreviewController.java
index 78daffeba7e3bfab852e373bfa6d975e40457ffa..f1ba2e8ca7ac33675df9dee933f19385e77bf4c7 100644
--- a/src/main/java/org/olat/ims/qti/editor/ItemPreviewController.java
+++ b/src/main/java/org/olat/ims/qti/editor/ItemPreviewController.java
@@ -53,12 +53,7 @@ import org.olat.ims.qti.editor.beecom.objects.Item;
  */
 public class ItemPreviewController extends DefaultController implements ControllerEventListener {
 	private static final OLog log = Tracing.createLoggerFor(ItemPreviewController.class);
-	
-	/*
-	 * Logging, Velocity
-	 */
-	private static final String PACKAGE = Util.getPackageName(ItemPreviewController.class);
-	private static final String VC_ROOT = Util.getPackageVelocityRoot(PACKAGE);
+	private static final String VC_ROOT = Util.getPackageVelocityRoot(ItemPreviewController.class);
 
 	private Panel mainPanel;
 	private VelocityContainer main;
diff --git a/src/main/java/org/olat/ims/qti/editor/NodeBeforeChangeEvent.java b/src/main/java/org/olat/ims/qti/editor/NodeBeforeChangeEvent.java
index 37bcf7b01e12661699f7d4b173114a0dd8d0ce6e..7ec75b8c61d1af95061d81de5df6a44a052526d7 100644
--- a/src/main/java/org/olat/ims/qti/editor/NodeBeforeChangeEvent.java
+++ b/src/main/java/org/olat/ims/qti/editor/NodeBeforeChangeEvent.java
@@ -33,6 +33,8 @@ import org.olat.core.gui.control.Event;
  * @author Mike Stock
  */
 public class NodeBeforeChangeEvent extends Event {
+
+	private static final long serialVersionUID = -564355640265507966L;
 	/**
 	 * the affected controllers can access without getter this boolean.
 	 */
diff --git a/src/main/java/org/olat/ims/qti/editor/QTIEditorMainController.java b/src/main/java/org/olat/ims/qti/editor/QTIEditorMainController.java
index c664170d8682d1a3ff227d9a79e24584fa81dd19..1c042322695359e1b5420c02ad9bb2a1c6763b7c 100644
--- a/src/main/java/org/olat/ims/qti/editor/QTIEditorMainController.java
+++ b/src/main/java/org/olat/ims/qti/editor/QTIEditorMainController.java
@@ -1169,9 +1169,7 @@ public class QTIEditorMainController extends MainLayoutBasicController implement
 				 * sectionkey+"/"+itemkey+"/"+questionkey+"/"+responsekey
 				 */
 				String sectionKey = null;
-				String itemkey = null;
-				int pos = 0;
-				Map itemMap = new HashMap();
+				Map<String,String> itemMap = new HashMap<>();
 
 				public void visit(INode node) {
 					if (node instanceof AssessmentNode) {
diff --git a/src/main/java/org/olat/ims/qti/editor/QTIObjectBeforeChangeEvent.java b/src/main/java/org/olat/ims/qti/editor/QTIObjectBeforeChangeEvent.java
index d3ca68a15b2467cdb445f511b09418a2773b6b3d..ff4ef26b0fa8a0304335881849c9672a8ae605d4 100644
--- a/src/main/java/org/olat/ims/qti/editor/QTIObjectBeforeChangeEvent.java
+++ b/src/main/java/org/olat/ims/qti/editor/QTIObjectBeforeChangeEvent.java
@@ -34,6 +34,7 @@ import org.olat.core.gui.control.Event;
  */
 public class QTIObjectBeforeChangeEvent extends Event {
 
+	private static final long serialVersionUID = -8628375483709082132L;
 	private String content;
 	private String id;
 
diff --git a/src/main/java/org/olat/ims/qti/editor/beecom/objects/Metadata.java b/src/main/java/org/olat/ims/qti/editor/beecom/objects/Metadata.java
index c73e7a382be7018bb9775ff0afbf3a7c78797ff1..2f1396965a531de697cf4b6983bb460304301acf 100644
--- a/src/main/java/org/olat/ims/qti/editor/beecom/objects/Metadata.java
+++ b/src/main/java/org/olat/ims/qti/editor/beecom/objects/Metadata.java
@@ -37,7 +37,7 @@ import org.dom4j.Element;
  */
 public class Metadata implements QTIObject {
 
-	private HashMap metadata = new HashMap();
+	private HashMap<String,String> metadata = new HashMap<>();
 	
 	
 	/* (non-Javadoc)
@@ -46,16 +46,16 @@ public class Metadata implements QTIObject {
 	public void addToElement(Element root) {
 		if (metadata.size() == 0) return;
 		Element qtimetadata = root.addElement("qtimetadata");
-		for (Iterator iter = metadata.keySet().iterator(); iter.hasNext();) {
-			String key = (String) iter.next();
-			String value = (String)metadata.get(key);
+		for (Iterator<String> iter = metadata.keySet().iterator(); iter.hasNext();) {
+			String key = iter.next();
+			String value = metadata.get(key);
 			Element metadatafield = qtimetadata.addElement("qtimetadatafield");
 			metadatafield.addElement("fieldlabel").setText(key);
 			metadatafield.addElement("fieldentry").setText(value);
 		}
 	}
 
-	public String getField(String key) { return (String)metadata.get(key); }
+	public String getField(String key) { return metadata.get(key); }
 	
 	public void setField(String key, String value) { metadata.put(key, value); }
 
diff --git a/src/main/java/org/olat/ims/qti/editor/beecom/parser/FeedbackParser.java b/src/main/java/org/olat/ims/qti/editor/beecom/parser/FeedbackParser.java
index b31fec695966f5e2c7ff9786d9a26b97285b8b15..8b98f479aea13dadd427f9e470f75d67935b2f39 100644
--- a/src/main/java/org/olat/ims/qti/editor/beecom/parser/FeedbackParser.java
+++ b/src/main/java/org/olat/ims/qti/editor/beecom/parser/FeedbackParser.java
@@ -67,7 +67,7 @@ public class FeedbackParser implements IParser {
 		
 		// parse Material
 		//MATERIAL
-		List materials = new ArrayList();
+		List<Object> materials = new ArrayList<>();
 		for(Iterator i = materialsXML.iterator();i.hasNext();) {
 			materials.add(parserManager.parse((Element)i.next()));	
 		}
diff --git a/src/main/java/org/olat/ims/qti/editor/beecom/parser/ParserManager.java b/src/main/java/org/olat/ims/qti/editor/beecom/parser/ParserManager.java
index c11f7807b990e20e73809603fd30561490ca0daa..d2f7d81c446ef98e454d5303517178a1ce6b17c2 100644
--- a/src/main/java/org/olat/ims/qti/editor/beecom/parser/ParserManager.java
+++ b/src/main/java/org/olat/ims/qti/editor/beecom/parser/ParserManager.java
@@ -27,20 +27,23 @@ package org.olat.ims.qti.editor.beecom.parser;
 
 import java.util.Enumeration;
 import java.util.HashMap;
+import java.util.Map;
 import java.util.Properties;
 
 import org.dom4j.Document;
 import org.dom4j.Element;
 import org.olat.core.logging.OLATRuntimeException;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 
 /**
  * @author rkulow
  */
 public class ParserManager implements IParser {
+	private static final OLog log = Tracing.createLoggerFor(ParserManager.class);
 
 	private static String PROPERTIES_FILENAME = "org/olat/ims/qti/editor/beecom/parser/qtiparser.properties";
-	private HashMap parserMap = null;
+	private Map<String,String> parserMap = null;
 	private static String PARSER_DEFAULT = "defaultparser";
 
 	/**
@@ -51,16 +54,16 @@ public class ParserManager implements IParser {
 	}
 
 	private void init() {
-		this.parserMap = new HashMap();
+		this.parserMap = new HashMap<>();
 
 		try {
 			Properties prop = new Properties();
 			prop.load(this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILENAME));
-			Enumeration enumeration = prop.keys();
+			Enumeration<Object> enumeration = prop.keys();
 			while (enumeration.hasMoreElements()) {
 				String key = (String) enumeration.nextElement();
 				String value = prop.getProperty(key);
-				this.parserMap.put(key, value);
+				parserMap.put(key, value);
 			}
 		} catch (Exception e) {
 			//
@@ -85,16 +88,16 @@ public class ParserManager implements IParser {
 			if (element == null) return null;
 			String name = element.getName();
 			String parserClassName = null;
-			Object tmpName = this.parserMap.get(name);
+			String tmpName = parserMap.get(name);
 			if (tmpName == null) {
-				parserClassName = (String) this.parserMap.get(PARSER_DEFAULT);
+				parserClassName = parserMap.get(PARSER_DEFAULT);
 			} else {
-				parserClassName = (String) tmpName;
+				parserClassName = tmpName;
 			}
-			if(Tracing.isDebugEnabled(ParserManager.class)){
-				Tracing.logDebug("ELEMENTNAME:" + name + "PARSERNAME" + parserClassName,ParserManager.class);
+			if(log.isDebug()){
+				log.debug("ELEMENTNAME:" + name + "PARSERNAME" + parserClassName);
 			}
-			Class parserClass = this.getClass().getClassLoader().loadClass(parserClassName);
+			Class<?> parserClass = this.getClass().getClassLoader().loadClass(parserClassName);
 			IParser parser = (IParser) parserClass.newInstance();
 			return parser.parse(element);
 		} catch (ClassNotFoundException e) {
diff --git a/src/main/java/org/olat/ims/qti/editor/beecom/parser/SectionParser.java b/src/main/java/org/olat/ims/qti/editor/beecom/parser/SectionParser.java
index 54e079f4bdf3d3ae8438daf23ed9c5b7c4822d9f..77c32fed39adc9c2a24b169ad74bbf309b8f008a 100644
--- a/src/main/java/org/olat/ims/qti/editor/beecom/parser/SectionParser.java
+++ b/src/main/java/org/olat/ims/qti/editor/beecom/parser/SectionParser.java
@@ -58,7 +58,7 @@ public class SectionParser implements IParser {
 			section.setDuration(duration);
 			
 			List sectioncontrolsXML = element.elements("sectioncontrol");
-			List sectioncontrols = new ArrayList();
+			List<Object> sectioncontrols = new ArrayList<>();
 			for(Iterator i= sectioncontrolsXML.iterator();i.hasNext();) {
 				sectioncontrols.add(parserManager.parse((Element)i.next()));
 			}
@@ -77,7 +77,7 @@ public class SectionParser implements IParser {
 
 			//SECTIONS
 			List sectionsXML = element.elements("section");
-			List sections = new ArrayList();
+			List<Object> sections = new ArrayList<>();
 			for(Iterator i = sectionsXML.iterator();i.hasNext();) {
 				sections.add(parserManager.parse((Element)i.next()));	
 			}
@@ -86,7 +86,7 @@ public class SectionParser implements IParser {
 		
 			//ITEMS
 			List itemsXML = element.elements("item");
-			List items = new ArrayList();
+			List<Object> items = new ArrayList<>();
 			for(Iterator i = itemsXML.iterator();i.hasNext();) {
 				items.add(parserManager.parse((Element)i.next()));	
 			}
@@ -99,7 +99,7 @@ public class SectionParser implements IParser {
 			
 			//FEEDBACKS
 			List feedbacksXML = element.elements("sectionfeedback");
-			List feedbacks = new ArrayList();
+			List<QTIObject> feedbacks = new ArrayList<>();
 			for(Iterator i = feedbacksXML.iterator();i.hasNext();) {
 				QTIObject tmp = (QTIObject)parserManager.parse((Element)i.next());
 				feedbacks.add(tmp);
diff --git a/src/main/java/org/olat/ims/qti/export/OptionsChooseForm.java b/src/main/java/org/olat/ims/qti/export/OptionsChooseForm.java
index d78ff22b324ef43168a02c75dc03b65f69101b61..b28342cfac56ffce2a01c83c1910cba2acf28e48 100644
--- a/src/main/java/org/olat/ims/qti/export/OptionsChooseForm.java
+++ b/src/main/java/org/olat/ims/qti/export/OptionsChooseForm.java
@@ -135,7 +135,7 @@ public class OptionsChooseForm extends FormBasicController {
 		// Single Choice
 		if(hasSCQ){
 			QTIExportSCQItemFormatConfig c = (QTIExportSCQItemFormatConfig) mapWithConfigs.get(QTIExportSCQItemFormatConfig.class);
-			Set s = scq.getSelectedKeys();
+			Set<String> s = scq.getSelectedKeys();
 			c.setResponseCols(s.contains(SCQ_ITEMCOLS));
 			c.setPositionsOfResponsesCol(s.contains(SCQ_POSCOL));
 			c.setPointCol(s.contains(SCQ_POINTCOL));
@@ -145,7 +145,7 @@ public class OptionsChooseForm extends FormBasicController {
 		// Multiple Choice
 		if(hasMCQ){
 			QTIExportMCQItemFormatConfig c = (QTIExportMCQItemFormatConfig) mapWithConfigs.get(QTIExportMCQItemFormatConfig.class);
-			Set s = mcq.getSelectedKeys();
+			Set<String> s = mcq.getSelectedKeys();
 			c.setResponseCols(s.contains(MCQ_ITEMCOLS));
 			c.setPositionsOfResponsesCol(s.contains(MCQ_POSCOL));
 			c.setPointCol(s.contains(MCQ_POINTCOL));
@@ -155,7 +155,7 @@ public class OptionsChooseForm extends FormBasicController {
 		// KPRIM
 		if(hasKRIM){
 			QTIExportKPRIMItemFormatConfig c = (QTIExportKPRIMItemFormatConfig) mapWithConfigs.get(QTIExportKPRIMItemFormatConfig.class);
-			Set s = kprim.getSelectedKeys();
+			Set<String> s = kprim.getSelectedKeys();
 			c.setResponseCols(s.contains(KPRIM_ITEMCOLS));
 			c.setPointCol(s.contains(KPRIM_POINTCOL));
 			c.setTimeCols(s.contains(KPRIM_TIMECOLS));
@@ -164,7 +164,7 @@ public class OptionsChooseForm extends FormBasicController {
 		// Fill in the Blank
 		if(hasFIB){
 			QTIExportFIBItemFormatConfig c = (QTIExportFIBItemFormatConfig) mapWithConfigs.get(QTIExportFIBItemFormatConfig.class);
-			Set s = fib.getSelectedKeys();
+			Set<String> s = fib.getSelectedKeys();
 			c.setResponseCols(s.contains(FIB_ITEMCOLS));
 			c.setPointCol(s.contains(FIB_POINTCOL));
 			c.setTimeCols(s.contains(FIB_TIMECOLS));
@@ -173,7 +173,7 @@ public class OptionsChooseForm extends FormBasicController {
 		// Essay
 		if(hasEssay){
 			QTIExportEssayItemFormatConfig c = (QTIExportEssayItemFormatConfig) mapWithConfigs.get(QTIExportEssayItemFormatConfig.class);
-			Set s = essay.getSelectedKeys();
+			Set<String> s = essay.getSelectedKeys();
 			c.setResponseCols(s.contains(ESSAY_ITEMCOLS));
 			c.setTimeCols(s.contains(ESSAY_TIMECOLS));
 		}
diff --git a/src/main/java/org/olat/ims/qti/export/QTIExportFormatter.java b/src/main/java/org/olat/ims/qti/export/QTIExportFormatter.java
index f2e2753ba3eeec65ec0280b69385e0a020ea74ae..ca973393e84b22d544dd6bc229e0045bca2d6b16 100644
--- a/src/main/java/org/olat/ims/qti/export/QTIExportFormatter.java
+++ b/src/main/java/org/olat/ims/qti/export/QTIExportFormatter.java
@@ -30,7 +30,6 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 import org.olat.ims.qti.export.helper.IdentityAnonymizerCallback;
@@ -42,7 +41,6 @@ import org.olat.ims.qti.export.helper.QTIItemObject;
  * @author Alexander Schneider
  */
 public abstract class QTIExportFormatter {
-	protected static final String PACKAGE = Util.getPackageName(QTIExportFormatter.class);
 	protected StringBuilder sb;
 	protected Translator translator;
 	protected IdentityAnonymizerCallback anonymizerCallback;
@@ -53,8 +51,8 @@ public abstract class QTIExportFormatter {
 	 *
 	 */
 	public QTIExportFormatter(Locale locale, IdentityAnonymizerCallback anonymizerCallback){
-		this.sb = new StringBuilder();
-		this.translator = new PackageTranslator(PACKAGE, locale);
+		sb = new StringBuilder();
+		translator = Util.createPackageTranslator(QTIExportFormatter.class, locale);
 		this.anonymizerCallback = anonymizerCallback;
 	}
 	
diff --git a/src/main/java/org/olat/ims/qti/navigator/DefaultNavigator.java b/src/main/java/org/olat/ims/qti/navigator/DefaultNavigator.java
index 440fdc95603afe6599de27aca9b5ac0b3aca64a5..d4132f988b6466b1f983890c333c822865657c42 100644
--- a/src/main/java/org/olat/ims/qti/navigator/DefaultNavigator.java
+++ b/src/main/java/org/olat/ims/qti/navigator/DefaultNavigator.java
@@ -85,7 +85,7 @@ public class DefaultNavigator implements Serializable {
 		int cnt = curitsinp.getItemCount();
 		if (cnt == 0) throw new RuntimeException("program bug: not even one iteminput in the answer");
 		if (cnt > 1) throw new RuntimeException("may only submit 1 item");
-		ItemInput itemInput = (ItemInput) curitsinp.getItemInputIterator().next();
+		ItemInput itemInput = curitsinp.getItemInputIterator().next();
 		String ident = itemInput.getIdent();
 		AssessmentContext ac = getAssessmentContext();
 		SectionContext sc = ac.getCurrentSectionContext();
@@ -128,8 +128,8 @@ public class DefaultNavigator implements Serializable {
 			return QTIConstants.ERROR_SUBMITTEDSECTION_OUTOFTIME;
 
 		int sectionResult = QTIConstants.SECTION_SUBMITTED;
-		for (Iterator it_inp = curitsinp.getItemInputIterator(); it_inp.hasNext();) {
-			ItemInput itemInput = (ItemInput) it_inp.next();
+		for (Iterator<ItemInput> it_inp = curitsinp.getItemInputIterator(); it_inp.hasNext();) {
+			ItemInput itemInput = it_inp.next();
 			String ident = itemInput.getIdent();
 			ItemContext ict = sc.getItemContext(ident);
 			if (ict == null) throw new RuntimeException("submitted item id ("+ident+") not found in section sectioncontext "+sc.getIdent());
diff --git a/src/main/java/org/olat/ims/qti/process/AssessmentFactory.java b/src/main/java/org/olat/ims/qti/process/AssessmentFactory.java
index b231244be1b2037237a800b8a9c1cfe296e99941..b6eed0e4c1c8925c8e277e7ccb1332d290e41a3c 100644
--- a/src/main/java/org/olat/ims/qti/process/AssessmentFactory.java
+++ b/src/main/java/org/olat/ims/qti/process/AssessmentFactory.java
@@ -26,6 +26,7 @@
 package org.olat.ims.qti.process;
 
 import org.olat.core.id.Identity;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.CodeHelper;
 import org.olat.core.util.StringHelper;
@@ -39,6 +40,8 @@ import org.olat.repository.RepositoryManager;
  * @author Felix Jost
  */
 public class AssessmentFactory {
+	
+	private static final OLog log = Tracing.createLoggerFor(AssessmentFactory.class);
 
 	/**
 	 * Create an assessment instance from a Repository resource referenced by repoPointer.
@@ -65,7 +68,7 @@ public class AssessmentFactory {
 				FilePersister oldPersister = new FilePersister(subj, re.getKey().toString());
 				ai = (AssessmentInstance) oldPersister.toRAM();
 				if (ai != null) {
-					Tracing.logAudit("Read assessment instance from old path version,",subj + "," + re.getKey().toString(), AssessmentFactory.class);
+					log.audit("Read assessment instance from old path version,",subj + "," + re.getKey().toString());
 				}
 			}
 		}
diff --git a/src/main/java/org/olat/ims/qti/render/ResultsBuilder.java b/src/main/java/org/olat/ims/qti/render/ResultsBuilder.java
index e8e990127da02fe17b4a1b1d73305370bbf21013..ec356636ae93ec0deb6fc6a9c7b8bbc65f86b641 100644
--- a/src/main/java/org/olat/ims/qti/render/ResultsBuilder.java
+++ b/src/main/java/org/olat/ims/qti/render/ResultsBuilder.java
@@ -125,10 +125,11 @@ public class ResultsBuilder {
 		context.addElement("name").addText(name);
 
 		String institution;
-		if (instName == null) institution = "N/A";
-		else institution = instName;
-		if (institution == null) institution = "N/A";
-
+		if (instName == null) {
+			institution = "N/A";
+		} else {
+			institution = instName;
+		}
 		// Add institutional identifier (e.g. Matrikelnummer)
 		Element generic_identifier = context.addElement("generic_identifier");
 		generic_identifier.addElement("type_label").addText(institution);
@@ -214,7 +215,7 @@ public class ResultsBuilder {
 				it_score.addElement("score_cut").addText(strVal);
 
 				Element el_item = itemc.getEl_item();
-				Map res_responsehash = new HashMap(3);
+				Map<String, Element> res_responsehash = new HashMap<>(3);
 
 				// iterate over all responses of this item
 				List resps = el_item.selectNodes(".//response_lid|.//response_xy|.//response_str|.//response_num|.//response_grp");
@@ -351,7 +352,7 @@ public class ResultsBuilder {
 				for (Iterator<String> idents = resp_ids.iterator(); idents.hasNext();) {
 					String respIdent = idents.next();
 					Set<String> respIdent_corr_answers = corr_answers.get(respIdent);
-					Element res_response = (Element) res_responsehash.get(respIdent);
+					Element res_response = res_responsehash.get(respIdent);
 					Element res_respform = res_response.element("response_form");
 					for (Iterator<String> iter = respIdent_corr_answers.iterator(); iter.hasNext();) {
 						String answer = iter.next();
diff --git a/src/main/java/org/olat/ims/qti/repository/handlers/QTIHandler.java b/src/main/java/org/olat/ims/qti/repository/handlers/QTIHandler.java
index 6c1db7873990ebeffa2f9850ca291b8c96832085..bdb317ac314d9d2649e24d1f6e66e22b08834cc9 100644
--- a/src/main/java/org/olat/ims/qti/repository/handlers/QTIHandler.java
+++ b/src/main/java/org/olat/ims/qti/repository/handlers/QTIHandler.java
@@ -32,7 +32,6 @@ import org.olat.core.commons.fullWebApp.LayoutMain3ColsController;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.layout.MainLayoutController;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
@@ -68,8 +67,6 @@ import org.olat.resource.references.ReferenceManager;
  */
 public abstract class QTIHandler extends FileHandler implements RepositoryHandler {
 
-	private static final String PACKAGE = Util.getPackageName(RepositoryManager.class);
-
 	/**
 	 * Default constructor.
 	 */
@@ -105,13 +102,13 @@ public abstract class QTIHandler extends FileHandler implements RepositoryHandle
 		ReferenceManager refM = ReferenceManager.getInstance();
 		String referencesSummary = refM.getReferencesToSummary(res, ureq.getLocale());
 		if (referencesSummary != null) {
-			Translator translator = new PackageTranslator(PACKAGE, ureq.getLocale());
+			Translator translator = Util.createPackageTranslator(RepositoryManager.class, ureq.getLocale());
 			wControl.setError(translator.translate("details.delete.error.references",
 					new String[] { referencesSummary }));
 			return false;
 		}
 		if (CoordinatorManager.getInstance().getCoordinator().getLocker().isLocked(res, null)) {
-			Translator translator = new PackageTranslator(PACKAGE, ureq.getLocale());
+			Translator translator = Util.createPackageTranslator(RepositoryManager.class, ureq.getLocale());
 			wControl.setError(translator.translate("details.delete.error.editor"));
 			return false;
 		}
diff --git a/src/main/java/org/olat/ldap/LDAPError.java b/src/main/java/org/olat/ldap/LDAPError.java
index 87758bf7a81758e49f9441e4522a2861f181ddd8..13ea1631f8dd76814bfe3846a8ad243e15ec9768 100644
--- a/src/main/java/org/olat/ldap/LDAPError.java
+++ b/src/main/java/org/olat/ldap/LDAPError.java
@@ -22,7 +22,8 @@ package org.olat.ldap;
 import java.io.Serializable;
 
 public class LDAPError implements Serializable {
-	
+
+	private static final long serialVersionUID = 3195738602137330173L;
 	private ErrorNode head, end;
 	private int size;
 	
@@ -60,8 +61,9 @@ public class LDAPError implements Serializable {
 	}
 	
 	
-	public class ErrorNode implements Serializable{
-		
+	public static class ErrorNode implements Serializable{
+
+		private static final long serialVersionUID = 233510588950547484L;
 		private String error;
 		private ErrorNode next, prev;
 		
diff --git a/src/main/java/org/olat/ldap/LDAPEvent.java b/src/main/java/org/olat/ldap/LDAPEvent.java
index c8c9d83c932649d46412cc9573c893527b44ab36..bb0ba1795611787dfe84e8edf600d71f7ada49fa 100644
--- a/src/main/java/org/olat/ldap/LDAPEvent.java
+++ b/src/main/java/org/olat/ldap/LDAPEvent.java
@@ -34,6 +34,8 @@ import org.olat.core.util.event.MultiUserEvent;
  * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
  */
 public class LDAPEvent extends MultiUserEvent {
+
+	private static final long serialVersionUID = -3733295775896629486L;
 	
 	public static final String SYNCHING = "synching";
 	public static final String DO_SYNCHING = "do_synching";
diff --git a/src/main/java/org/olat/ldap/ui/DeletStep01.java b/src/main/java/org/olat/ldap/ui/DeletStep01.java
index 9c28463f3a35112faa8f4d2911602ce9e00b42c0..607656527c908bb392bcf925ad1dfd1ddc4ecb76 100644
--- a/src/main/java/org/olat/ldap/ui/DeletStep01.java
+++ b/src/main/java/org/olat/ldap/ui/DeletStep01.java
@@ -87,7 +87,7 @@ public class DeletStep01 extends BasicStep {
 	private final class DeletStepForm01 extends StepFormBasicController {
 		private FormLayoutContainer textContainer;
 		boolean hasIdentitesToDelete;
-		private FlexiTableDataModel tableDataModel;
+		private FlexiTableDataModel<List<String>> tableDataModel;
 		private List<Identity> identitiesToDelete;
 
 		public DeletStepForm01(UserRequest ureq, WindowControl control, Form rootForm, StepsRunContext runContext) {
@@ -126,7 +126,7 @@ public class DeletStep01 extends BasicStep {
 
 			identitiesToDelete = (List<Identity>) getFromRunContext("identitiesToDelete");
 			for (Identity identityToDelete : identitiesToDelete) {
-				List rowData = new ArrayList();
+				List<String> rowData = new ArrayList<>();
 				rowData.add(identityToDelete.getName());
 				for (String property : reqProberty) {
 					rowData.add(identityToDelete.getUser().getProperty(property, null));
@@ -146,7 +146,7 @@ public class DeletStep01 extends BasicStep {
 				}
 			}
 
-			tableDataModel = new FlexiTableDataModelImpl(new IdentityFlexiTableModel(mergedDataChanges, colPos + 1), tableColumnModel);
+			tableDataModel = new FlexiTableDataModelImpl<List<String>>(new IdentityFlexiTableModel(mergedDataChanges, colPos + 1), tableColumnModel);
 			uifactory.addTableElement(ureq, getWindowControl(), "newUsers", tableDataModel, formLayout);
 		}
 
diff --git a/src/main/java/org/olat/ldap/ui/IdentityFlexiTableModel.java b/src/main/java/org/olat/ldap/ui/IdentityFlexiTableModel.java
index 8f8ee59a60ec75c1ebc3bd31b382076cbd0f1e02..cd4d0bec42013cf43725c313a0c2feeab2d46edb 100644
--- a/src/main/java/org/olat/ldap/ui/IdentityFlexiTableModel.java
+++ b/src/main/java/org/olat/ldap/ui/IdentityFlexiTableModel.java
@@ -23,10 +23,10 @@ import java.util.List;
 
 import org.olat.core.gui.components.table.DefaultTableDataModel;
 
-public class IdentityFlexiTableModel  extends DefaultTableDataModel {
+public class IdentityFlexiTableModel extends DefaultTableDataModel<List<String>> {
 		private int columnCount = 0;
 		
-		public IdentityFlexiTableModel(List objects, int columnCount){
+		public IdentityFlexiTableModel(List<List<String>> objects, int columnCount){
 			super(objects);
 			this.columnCount = columnCount;
 		}
@@ -37,7 +37,7 @@ public class IdentityFlexiTableModel  extends DefaultTableDataModel {
 
 
 		public Object getValueAt(int row, int col) {
-			List entry = (List)objects.get(row);
+			List<String> entry = objects.get(row);
 			Object value = entry.get(col);
 			return (value == null ? "n/a" : value);
 		}
diff --git a/src/main/java/org/olat/modules/dialog/DialogElementsPropertyManager.java b/src/main/java/org/olat/modules/dialog/DialogElementsPropertyManager.java
index 25998c6566a3f40b24eb921c004945eef73507fe..ff219d074e2f94d10d01a6f1fcfdc7f8a473aae4 100644
--- a/src/main/java/org/olat/modules/dialog/DialogElementsPropertyManager.java
+++ b/src/main/java/org/olat/modules/dialog/DialogElementsPropertyManager.java
@@ -99,9 +99,8 @@ public class DialogElementsPropertyManager extends BasicManager {
 	protected DialogElement findDialogElement(CoursePropertyManager coursePropMgr, CourseNode courseNode, Long forumKey) {
 		DialogPropertyElements elements = findDialogElements(coursePropMgr, courseNode);
 		if (elements != null) {
-			List list = elements.getDialogPropertyElements();
-			for (Iterator iter = list.iterator(); iter.hasNext();) {
-				DialogElement element = (DialogElement) iter.next();
+			List<DialogElement> list = elements.getDialogPropertyElements();
+			for (DialogElement element : list) {
 				if (element.getForumKey().equals(forumKey)) return element;
 			}
 		} else {
@@ -123,9 +122,9 @@ public class DialogElementsPropertyManager extends BasicManager {
 	protected void deleteDialogElement(final CoursePropertyManager coursePropMgr, final CourseNode courseNode, Long forumKey) {
 		final DialogPropertyElements elements = findDialogElements(coursePropMgr, courseNode);
 		if (elements != null) {
-			final List list = elements.getDialogPropertyElements();
-			for (Iterator iter = list.iterator(); iter.hasNext();) {
-				final DialogElement element = (DialogElement) iter.next();
+			final List<DialogElement> list = elements.getDialogPropertyElements();
+			for (Iterator<DialogElement> iter = list.iterator(); iter.hasNext();) {
+				final DialogElement element = iter.next();
 				if (element.getForumKey().equals(forumKey)) {					
           //o_clusterOK by:ld 
 					OLATResourceable courseNodeResourceable = OresHelper.createOLATResourceableInstance(DialogCourseNode.class, new Long(courseNode.getIdent()));
@@ -180,7 +179,7 @@ public class DialogElementsPropertyManager extends BasicManager {
 	private Property findProperty(Long courseId, String courseNodeId) {
 		PropertyManager propMrg = PropertyManager.getInstance();
 		String category = "NID:dial::" + courseNodeId;
-		List elements = propMrg.findProperties(null, null, "CourseModule", courseId, category, PROPERTY_NAME);
+		List<Property> elements = propMrg.findProperties(null, null, "CourseModule", courseId, category, PROPERTY_NAME);
 		if (elements.size() == 0) return null; //no match
 		if (elements.size() != 1) throw new AssertException(
 				"Found more then one property for a course node 'dialog element' which should never happen!");
diff --git a/src/main/java/org/olat/modules/fo/ForumChangedEvent.java b/src/main/java/org/olat/modules/fo/ForumChangedEvent.java
index 3bbe987b84b9ba1a3ba4f25c073dae8592f09961..554729273f2094ea970be5c7b2e544f889492c7e 100644
--- a/src/main/java/org/olat/modules/fo/ForumChangedEvent.java
+++ b/src/main/java/org/olat/modules/fo/ForumChangedEvent.java
@@ -38,6 +38,8 @@ import org.olat.core.util.event.MultiUserEvent;
  */
 public class ForumChangedEvent extends MultiUserEvent {
 
+	private static final long serialVersionUID = -6798225990538608024L;
+
 	public ForumChangedEvent(String command) {
 		super(command);		
 	}	
diff --git a/src/main/java/org/olat/modules/fo/OpenMessageInThreadEvent.java b/src/main/java/org/olat/modules/fo/OpenMessageInThreadEvent.java
index eb5137503d97a8172ecba55ae8686608f10b2292..e6d1ec97579eecc9b4aec32f39b01be23f291b0b 100644
--- a/src/main/java/org/olat/modules/fo/OpenMessageInThreadEvent.java
+++ b/src/main/java/org/olat/modules/fo/OpenMessageInThreadEvent.java
@@ -31,6 +31,9 @@ import org.olat.core.gui.control.Event;
  * @author srosse
  */
 public class OpenMessageInThreadEvent extends Event {
+
+	private static final long serialVersionUID = -1215014162134562259L;
+
 	public static final String OPEN_MSG_IN_THREAD = "open_msg_in_thread";
 	
 	private final Message message;
diff --git a/src/main/java/org/olat/modules/fo/restapi/MyForumsWebService.java b/src/main/java/org/olat/modules/fo/restapi/MyForumsWebService.java
index 8c67eb605aefe166b743c7e96404039b83a789dc..e8f27d2f2e3336d04c787ce31a430efc391e9228 100644
--- a/src/main/java/org/olat/modules/fo/restapi/MyForumsWebService.java
+++ b/src/main/java/org/olat/modules/fo/restapi/MyForumsWebService.java
@@ -54,8 +54,6 @@ import org.olat.core.commons.services.notifications.Subscriber;
 import org.olat.core.id.Identity;
 import org.olat.core.id.IdentityEnvironment;
 import org.olat.core.id.Roles;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.Tracing;
 import org.olat.core.util.nodes.INode;
 import org.olat.core.util.resource.OresHelper;
 import org.olat.core.util.tree.Visitor;
@@ -81,8 +79,6 @@ import org.olat.restapi.group.LearningGroupWebService;
  */
 @Path("users/{identityKey}/forums")
 public class MyForumsWebService {
-	
-	private OLog log = Tracing.createLoggerFor(MyForumsWebService.class);
 
 	/**
 	 * Retrieves the forum of a group
diff --git a/src/main/java/org/olat/modules/glossary/CreateNewGlossaryController.java b/src/main/java/org/olat/modules/glossary/CreateNewGlossaryController.java
index 686cc39e3d67a13d6170a5b02ab67f42f9f2cae4..85aa213c8d83713d91346c73b60f02294d2b1736 100644
--- a/src/main/java/org/olat/modules/glossary/CreateNewGlossaryController.java
+++ b/src/main/java/org/olat/modules/glossary/CreateNewGlossaryController.java
@@ -30,10 +30,11 @@ import org.olat.core.gui.components.Component;
 import org.olat.core.gui.control.DefaultController;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
+import org.olat.core.util.Util;
 import org.olat.fileresource.types.FileResource;
 import org.olat.repository.RepositoryEntry;
+import org.olat.repository.RepositoryManager;
 import org.olat.repository.controllers.IAddController;
 import org.olat.repository.controllers.RepositoryAddCallback;
 
@@ -59,7 +60,7 @@ public class CreateNewGlossaryController extends DefaultController implements IA
 		super(wControl);
 		if (addCallback != null) {
 			newFileResource = GlossaryManager.getInstance().createGlossary();
-			Translator trnsltr = new PackageTranslator("org.olat.repository", ureq.getLocale());
+			Translator trnsltr = Util.createPackageTranslator(RepositoryManager.class, ureq.getLocale());
 			addCallback.setDisplayName(trnsltr.translate(newFileResource.getResourceableTypeName()));
 			addCallback.setResourceable(newFileResource);
 			addCallback.setResourceName("-");
diff --git a/src/main/java/org/olat/modules/iq/IQComponentRenderer.java b/src/main/java/org/olat/modules/iq/IQComponentRenderer.java
index 44d302fd4b9941f0308c2c985a238c0e2e6f0a13..cded356ad867772e7dde774cc1e8da9b34bd9b74 100644
--- a/src/main/java/org/olat/modules/iq/IQComponentRenderer.java
+++ b/src/main/java/org/olat/modules/iq/IQComponentRenderer.java
@@ -26,7 +26,6 @@
 package org.olat.modules.iq;
 
 import java.util.Date;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 
@@ -530,9 +529,8 @@ public class IQComponentRenderer implements ComponentRenderer {
 
 	private void displayItems(StringOutput sb, Renderer renderer, URLBuilder ubu, SectionContext sc, AssessmentInstance ai) {
 		// display the whole current section on one page
-		List items = sc.getItemContextsToRender();
-		for (Iterator iter= items.iterator(); iter.hasNext();) {
-			ItemContext itc	= (ItemContext) iter.next();
+		List<ItemContext> items = sc.getItemContextsToRender();
+		for (ItemContext itc:items) {
 			if (itc.isOpen()) {
 			  displayItem(sb, renderer, ubu, itc, ai);
 			} else {
diff --git a/src/main/java/org/olat/modules/iq/IQDisplayController.java b/src/main/java/org/olat/modules/iq/IQDisplayController.java
index f6c489c763bb96c5d9c16794d42649bdffdf0f84..333d5e453a60fec3b9964195fa53f70905ebb60a 100644
--- a/src/main/java/org/olat/modules/iq/IQDisplayController.java
+++ b/src/main/java/org/olat/modules/iq/IQDisplayController.java
@@ -45,7 +45,6 @@ import org.olat.core.gui.control.DefaultController;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.dtabs.Activateable2;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
@@ -85,7 +84,6 @@ import org.olat.util.logging.activity.LoggingResourceable;
  */
 public class IQDisplayController extends DefaultController implements GenericEventListener, Activateable2, NavigatorDelegate {
 
-	private static final String PACKAGE = Util.getPackageName(IQDisplayController.class);
 	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(IQDisplayController.class);
 
 	private static OLog log = Tracing.createLoggerFor(IQDisplayController.class);
@@ -184,7 +182,7 @@ public class IQDisplayController extends DefaultController implements GenericEve
 
 	private void init(IQSecurityCallback secCallback, UserRequest ureq) {
 		this.iqsec = secCallback;
-		this.translator = new PackageTranslator(PACKAGE, ureq.getLocale());
+		this.translator = Util.createPackageTranslator(IQDisplayController.class, ureq.getLocale());
 		this.ready = false;
 
 		retrieveListenerOres =  new IQRetrievedEvent(ureq.getIdentity(), callingResId, callingResDetail);
diff --git a/src/main/java/org/olat/modules/scorm/contentpackaging/DocumentHandlerException.java b/src/main/java/org/olat/modules/scorm/contentpackaging/DocumentHandlerException.java
index 902e106fd24972b0990680abcc4da8d6266ee4dc..89d75dfdf969d268b13c858de5500aec38964f24 100644
--- a/src/main/java/org/olat/modules/scorm/contentpackaging/DocumentHandlerException.java
+++ b/src/main/java/org/olat/modules/scorm/contentpackaging/DocumentHandlerException.java
@@ -49,6 +49,8 @@ package org.olat.modules.scorm.contentpackaging;
  * @author Phillip Beauvoir
 */
 public class DocumentHandlerException extends Exception {
+
+	private static final long serialVersionUID = -1461184029704890282L;
 	/**
 	 * 
 	 */
diff --git a/src/main/java/org/olat/modules/scorm/contentpackaging/NoItemFoundException.java b/src/main/java/org/olat/modules/scorm/contentpackaging/NoItemFoundException.java
index 7b1084ac963503e25f185662b62e63c993828aff..3084c129db8e940cb875349f67a76874daebd7a2 100644
--- a/src/main/java/org/olat/modules/scorm/contentpackaging/NoItemFoundException.java
+++ b/src/main/java/org/olat/modules/scorm/contentpackaging/NoItemFoundException.java
@@ -51,8 +51,10 @@ package org.olat.modules.scorm.contentpackaging;
  * @author Paul Sharples
 */
 public class NoItemFoundException extends Exception{
-    
-    public static String CR = System.getProperty("line.separator");
+
+	private static final long serialVersionUID = -5966627685214023530L;
+
+	public static String CR = System.getProperty("line.separator");
     
     public static String NO_ITEM_FOUND_MSG =
         "The package you are importing conforms to SCORM 1.2." + CR +
diff --git a/src/main/java/org/olat/modules/scorm/contentpackaging/SCORM12_DocumentHandler.java b/src/main/java/org/olat/modules/scorm/contentpackaging/SCORM12_DocumentHandler.java
index fdb67d0a422e3110682c1a633f38e32d0549591f..e860707dd77955033bf39a1c024ee51b483799b1 100644
--- a/src/main/java/org/olat/modules/scorm/contentpackaging/SCORM12_DocumentHandler.java
+++ b/src/main/java/org/olat/modules/scorm/contentpackaging/SCORM12_DocumentHandler.java
@@ -90,8 +90,8 @@ public class SCORM12_DocumentHandler {
     // ADL SCORM Version 1.3 - we don't support this
     protected static Namespace ADLCP_NAMESPACE_13 = Namespace.getNamespace("adlcp", "http://www.adlnet.org/xsd/adlcp_v1p3");
 
-    static Hashtable SUPPORTED_NAMESPACES = new Hashtable();
-    static Hashtable SUPPORTED_SCORM_NAMESPACES = new Hashtable();
+    static Hashtable<Namespace,String> SUPPORTED_NAMESPACES = new Hashtable<>();
+    static Hashtable<Namespace,String> SUPPORTED_SCORM_NAMESPACES = new Hashtable<>();
     
     static {
 		// Add to table of Supported Namespaces mapped to Friendly Names
diff --git a/src/main/java/org/olat/modules/scorm/manager/ScormManager.java b/src/main/java/org/olat/modules/scorm/manager/ScormManager.java
index bd4bb1a78538f5c9492982459832391e7f0ac9d8..8d52a0c290e1ed16867b4d15f70bb98ea3ed9a6a 100644
--- a/src/main/java/org/olat/modules/scorm/manager/ScormManager.java
+++ b/src/main/java/org/olat/modules/scorm/manager/ScormManager.java
@@ -95,7 +95,7 @@ public class ScormManager extends BasicManager {
 	 * Keep hold of the default org (JDOM) element
 	 */
 	private Element _defaultorg;
-	private List organizationElements;
+	private List<Element> organizationElements;
 
 	/**
 	 * A count of organizations (should really only be one for the tree widget)
@@ -170,7 +170,7 @@ public class ScormManager extends BasicManager {
 			// now get the organizations node
 			Element orgs = manifestRoot.getChild(CP_Core.ORGANIZATIONS, manifestRoot.getNamespace());
 			Element[] tmp = _navViewer.getOrganizationList();
-			organizationElements = new LinkedList();
+			organizationElements = new LinkedList<>();
 			for (int i = 0; i < tmp.length; ++i) {
 				organizationElements.add(tmp[i]);
 			}
@@ -262,7 +262,7 @@ public class ScormManager extends BasicManager {
 	 */
 	protected String[] parse(boolean useRelativePaths) {
 		// New Vector
-		Vector v = new Vector();
+		Vector<String> v = new Vector<>();
 		writePackageSettings(v, "packageName", getProjectName());
 		// now call createNavLinks() which should interrogate the org/item structure
 		createNavLinksForAllOranizations(v, "menu", useRelativePaths);
@@ -280,10 +280,10 @@ public class ScormManager extends BasicManager {
 		return _navViewer.getAllScoIdentifiers().length;
 	}
 
-	protected void createNavLinksForAllOranizations(Vector javascriptStrings, String menuParent, boolean useRelativePaths) {
+	protected void createNavLinksForAllOranizations(List<String> javascriptStrings, String menuParent, boolean useRelativePaths) {
 		_itemCount = -1;
 		for (int i = 0; i < organizationElements.size(); ++i) {
-			createNavLinks(javascriptStrings, (Element)organizationElements.get(i), menuParent, useRelativePaths);
+			createNavLinks(javascriptStrings, organizationElements.get(i), menuParent, useRelativePaths);
 		}
 	}
 	
@@ -296,7 +296,7 @@ public class ScormManager extends BasicManager {
 	 * @param menuParent
 	 * @param useRelativePaths
 	 */
-	protected void createNavLinks(Vector javascriptStrings, Element element, String menuParent, boolean useRelativePaths) {
+	protected void createNavLinks(List<String> javascriptStrings, Element element, String menuParent, boolean useRelativePaths) {
 		String name = element.getName();
 		// ORGANIZATION
 		if (name.equals(CP_Core.ORGANIZATION) && _navViewer.isDocumentNamespace(element)) {
@@ -410,7 +410,7 @@ public class ScormManager extends BasicManager {
 	 * @param name - the name of the item to set
 	 * @param value - the value of the item to set (String)
 	 */
-	protected void writePackageSettings(Vector javascriptStrings, String name, String value) {
+	protected void writePackageSettings(List<String> javascriptStrings, String name, String value) {
 		javascriptStrings.add("CPAPI." + name + " = \"" + value + "\";");
 	}
 
@@ -420,7 +420,7 @@ public class ScormManager extends BasicManager {
 	 * @param name - the name of the item to set
 	 * @param value - the value of the item to set (int)
 	 */
-	protected void writePackageSettings(Vector javascriptStrings, String name, int value) {
+	protected void writePackageSettings(List<String> javascriptStrings, String name, int value) {
 		javascriptStrings.add("CPAPI." + name + " = " + value + ";");
 	}
 
@@ -430,7 +430,7 @@ public class ScormManager extends BasicManager {
 	 * @param title - the title of this organization
 	 * @param orgId - the organization identifier
 	 */
-	protected void writeOrganization(Vector javascriptStrings, String title, String orgId) {
+	protected void writeOrganization(List<String> javascriptStrings, String title, String orgId) {
 		javascriptStrings.add("CPAPI.orgArray(" + _orgCount + ").organizationName = \"" + escapeQuotes(title) + "\";");
 		javascriptStrings.add("CPAPI.orgArray(" + _orgCount + ").organizationIdentifier = \"" + orgId + "\";");
 	}
@@ -444,7 +444,7 @@ public class ScormManager extends BasicManager {
 	 * @param itemId - the item identifier
 	 * @param parentMenu - the tree node to attach this to.
 	 */
-	protected void writeItem(Vector javascriptStrings, String title, String url, String itemId, String parentMenu) {
+	protected void writeItem(List<String> javascriptStrings, String title, String url, String itemId, String parentMenu) {
 		// the javscript tree widget doesn't like hyphens, so replace them with
 		// underscores...
 		parentMenu = parentMenu.replace('-', '_');
diff --git a/src/main/java/org/olat/modules/scorm/server/beans/LMSDataFormBean.java b/src/main/java/org/olat/modules/scorm/server/beans/LMSDataFormBean.java
index 51ca9e06efbe3f4115c27216c56611d3972f2c2c..74dc3ba0c89c279fa7426d74b2bdc73a8314ab54 100644
--- a/src/main/java/org/olat/modules/scorm/server/beans/LMSDataFormBean.java
+++ b/src/main/java/org/olat/modules/scorm/server/beans/LMSDataFormBean.java
@@ -58,7 +58,7 @@ public class LMSDataFormBean {
 
     private String itemID;
     private String data;
-    private Map dataMap;
+    private Map<String,String> dataMap;
     private String lmsAction;
     private String nextAction;
     
@@ -140,13 +140,13 @@ public class LMSDataFormBean {
 	/**
 	 * @return data as map
 	 */
-	public Map getDataAsMap() {
+	public Map<String,String> getDataAsMap() {
 		return dataMap;
 	}
 	/**
 	 * set the cmi data as map
 	 */
-	public void setDataAsMap(Map dataMap) {
+	public void setDataAsMap(Map<String,String> dataMap) {
 		this.dataMap = dataMap;
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/scorm/server/beans/LMSDataHandler.java b/src/main/java/org/olat/modules/scorm/server/beans/LMSDataHandler.java
index 07086e85837bfadded488976e0e2405540e44084..bc772f2f9d997c184f0500c990337f133780755c 100644
--- a/src/main/java/org/olat/modules/scorm/server/beans/LMSDataHandler.java
+++ b/src/main/java/org/olat/modules/scorm/server/beans/LMSDataHandler.java
@@ -25,6 +25,7 @@ package org.olat.modules.scorm.server.beans;
 import java.util.Iterator;
 import java.util.Map;
 
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.modules.scorm.ISettingsHandler;
 import org.olat.modules.scorm.manager.ScormManager;
@@ -39,6 +40,9 @@ import org.olat.modules.scorm.server.servermodels.SequencerModel;
  * @author Paul Sharples
  */
 public class LMSDataHandler {
+	
+	private static final OLog log = Tracing.createLoggerFor(LMSDataHandler.class);
+	
 	protected ScormManager theCourse;
 
 	protected LMSDataFormBean _inputBean;
@@ -155,14 +159,14 @@ public class LMSDataHandler {
 	 * @param dataAsMap
 	 * @return a 2d String array
 	 */
-	private String[][] convertTo2dArray(Map dataAsMap) {
+	private String[][] convertTo2dArray(Map<String,String> dataAsMap) {
 		String[][] cmiData = new String[dataAsMap.size()][2];
 		int j = 0;
-		for (Iterator it = dataAsMap.keySet().iterator(); it.hasNext(); j++) {
-			Object l = it.next();
-			Object r = dataAsMap.get(l);
-			cmiData[j][0] = (String) l;
-			cmiData[j][1] = (String) r;
+		for (Iterator<String> it = dataAsMap.keySet().iterator(); it.hasNext(); j++) {
+			String l = it.next();
+			String r = dataAsMap.get(l);
+			cmiData[j][0] = l;
+			cmiData[j][1] = r;
 			if (l.toString().equals("cmi.core.lesson_status")) {
 				status = r.toString();
 			}
@@ -248,8 +252,8 @@ public class LMSDataHandler {
 			} else {
 				cmiComponents[i][1] = "";
 			}
-			if (Tracing.isDebugEnabled(LMSDataHandler.class)){
-				Tracing.logDebug("name: " + cmiComponents[i][0] + "   value:" + cmiComponents[i][1],LMSDataHandler.class);
+			if (log.isDebug()){
+				log.debug("name: " + cmiComponents[i][0] + "   value:" + cmiComponents[i][1]);
 			}
 		}
 		return cmiComponents;
diff --git a/src/main/java/org/olat/modules/scorm/server/sequence/PrerequisiteManager.java b/src/main/java/org/olat/modules/scorm/server/sequence/PrerequisiteManager.java
index 1df567ea97da333771d9183dc7a9a54cc2d27ad8..6f1d2d404256a41cafad0bb5e815837e2b784abc 100644
--- a/src/main/java/org/olat/modules/scorm/server/sequence/PrerequisiteManager.java
+++ b/src/main/java/org/olat/modules/scorm/server/sequence/PrerequisiteManager.java
@@ -21,16 +21,17 @@
 package org.olat.modules.scorm.server.sequence;
 
 
-import java.util.Enumeration;
+import java.util.ArrayList;
 import java.util.Hashtable;
 import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
 import java.util.StringTokenizer;
-import java.util.Vector;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
-import org.olat.core.manager.BasicManager;
 import org.olat.modules.scorm.ISettingsHandler;
 import org.olat.modules.scorm.server.servermodels.SequencerModel;
 
@@ -43,9 +44,11 @@ import bsh.Interpreter;
  * 
  * @author Paul Sharples
  */
-public class PrerequisiteManager extends BasicManager{
+public class PrerequisiteManager {
+	private static final OLog log = Tracing.createLoggerFor(PrerequisiteManager.class);
+	
 	// A hashtable of all key (scoIDs) and values (status)
-	private Hashtable _prereqTable = new Hashtable();
+	private Map<String,String> _prereqTable = new Hashtable<>();
 	/**
 	 * the disk version of the model
 	 */
@@ -61,7 +64,7 @@ public class PrerequisiteManager extends BasicManager{
 	public PrerequisiteManager(String org, ISettingsHandler settings) {
 		this.settings = settings;
 		if (!populateFromDisk(org)) {
-			logError("could not load in tracking model: " + org, null);
+			log.error("could not load in tracking model: " + org);
 		}
 	}
 
@@ -167,7 +170,7 @@ public class PrerequisiteManager extends BasicManager{
 			prereq = prereq.replaceAll("=", ".equals(");
 			// System.out.println("1. "+prereq);
 			if (prereq.indexOf("@") != -1) {
-				Vector v = new Vector();
+				List<String> v = new ArrayList<String>();
 				StringBuilder sb = new StringBuilder();
 				sb.append(prereq);
 				boolean notSymbFound = false;
@@ -184,9 +187,9 @@ public class PrerequisiteManager extends BasicManager{
 						}
 					}
 				}
-				Iterator it = v.iterator();
+				Iterator<String> it = v.iterator();
 				while (it.hasNext()) {
-					sb.insert(Integer.parseInt(it.next().toString()), '!');
+					sb.insert(Integer.parseInt(it.next()), '!');
 				}
 				if (notSymbFound) {
 					// the ! must be at the beginning
@@ -199,12 +202,12 @@ public class PrerequisiteManager extends BasicManager{
 			Object result = i.eval(prereq);
 			String a = result.toString();
 			boolean retVal = Boolean.valueOf(a).booleanValue();
-			if (Tracing.isDebugEnabled(PrerequisiteManager.class)){
-				Tracing.logDebug("eval: " + prereq + " result was: " + retVal,PrerequisiteManager.class);
+			if (log.isDebug()){
+				log.debug("eval: " + prereq + " result was: " + retVal);
 			}
 			return retVal;
 		} catch (EvalError ex) {
-			Tracing.logError("Could not parse prerequisites: ",ex, PrerequisiteManager.class);
+			log.error("Could not parse prerequisites: ", ex);
 			/* __FIXME:gs:a:[pb] guido is it correct to send true in the exception case?
 			 * Could please leave a comment why you return true, although an exception occured. thx
 			 * 
@@ -237,10 +240,10 @@ public class PrerequisiteManager extends BasicManager{
 		System.out.println("-------prereq table ---");
 		System.out.println("-----------------------");
 		if (_prereqTable != null) {
-			Enumeration keys = _prereqTable.keys();
-			while (keys.hasMoreElements()) {
-				String scoID = (String) keys.nextElement();
-				String theStatus = (String) _prereqTable.get(scoID);
+			Iterator<String> keys = _prereqTable.keySet().iterator();
+			while (keys.hasNext()) {
+				String scoID = keys.next();
+				String theStatus = _prereqTable.get(scoID);
 				System.out.println("SCO ID: " + scoID + "  status: " + theStatus);
 			}
 		}
diff --git a/src/main/java/org/olat/modules/scorm/server/servermodels/ScoDocument.java b/src/main/java/org/olat/modules/scorm/server/servermodels/ScoDocument.java
index c5f79d060efa2f786f11e12ee57a18bef55cc613..bf7507a0e779eaa7d38815fdf0339d1ef6856497 100644
--- a/src/main/java/org/olat/modules/scorm/server/servermodels/ScoDocument.java
+++ b/src/main/java/org/olat/modules/scorm/server/servermodels/ScoDocument.java
@@ -201,7 +201,7 @@ public class ScoDocument extends XMLDocument {
 			}
 		}
 
-		Vector allElements = new Vector();
+		Vector<String[]> allElements = new Vector<String[]>();
 		// first add all part A cmi model components...
 		for (int i = 0; i < _cmivalues_a.length; i++) {
 			String[] _cmicomponents = new String[2];
@@ -257,8 +257,8 @@ public class ScoDocument extends XMLDocument {
 	 * 
 	 * @return a vector containing a 2-d array of name/values for interactions
 	 */
-	private Vector getInteractionsNodesFromModel() {
-		Vector interactionsElements = new Vector();
+	private Vector<String[]> getInteractionsNodesFromModel() {
+		Vector<String[]> interactionsElements = new Vector<>();
 		Element id = getElement(getDocument().getRootElement(), "cmi.interactions");
 		List interactionList = id.getChildren("interaction");
 		Iterator listElement = interactionList.iterator();
@@ -350,8 +350,8 @@ public class ScoDocument extends XMLDocument {
 	 * @return objectives nodes
 	 * @returns a vector of obectives found in model
 	 */
-	private Vector getObjectivesNodesFromModel(int numberOfObjectives) {
-		Vector objectiveElements = new Vector();
+	private Vector<String[]> getObjectivesNodesFromModel(int numberOfObjectives) {
+		Vector<String[]> objectiveElements = new Vector<>();
 		Element id = getElement(getDocument().getRootElement(), "cmi.objectives");
 		List objectiveList = id.getChildren("objective");
 		Iterator listElement = objectiveList.iterator();
@@ -485,8 +485,8 @@ public class ScoDocument extends XMLDocument {
 	public void doLmsCommit(String[][] scoElementsPreUpdate) {
 		// System.out.println("reloadScoDocuement - dolmscommit is called");
 		String[][] scoElements = doFinalPreUpdate(scoElementsPreUpdate, false);
-		Vector objectives = new Vector();
-		Vector interactions = new Vector();
+		Vector<String[]> objectives = new Vector<>();
+		Vector<String[]> interactions = new Vector<>();
 		int objectivesCount = 0;
 		int interactionsCount = 0;
 
@@ -561,7 +561,7 @@ public class ScoDocument extends XMLDocument {
 		int interactionsCount = Integer.parseInt(getElement(getDocument().getRootElement(), "cmi.interactions._count").getText());
 
 		// Keying the elements into a hashtable will make this easier
-		Hashtable keyedInteractions = new Hashtable();
+		Hashtable<String,String> keyedInteractions = new Hashtable<>();
 		for (int i = 0; i < interactions.length; i++) {
 			keyedInteractions.put(interactions[i][0], interactions[i][1]);
 		}
@@ -594,7 +594,7 @@ public class ScoDocument extends XMLDocument {
 			Element anInteraction = (Element) listElement.next();
 			String interactionIndex = anInteraction.getAttributeValue("index");
 			// set the ID for this interaction
-			anInteraction.getChild("id").setText((String) keyedInteractions.get("cmi.interactions." + interactionIndex + ".id"));
+			anInteraction.getChild("id").setText(keyedInteractions.get("cmi.interactions." + interactionIndex + ".id"));
 			// next we need to update 'n' number of of <cmi.interactions.n.objective>
 			// nodes
 			Element objectives = anInteraction.getChild("objectives");
@@ -609,12 +609,12 @@ public class ScoDocument extends XMLDocument {
 				// now use that index to get the correct key from the hashtable
 				// and update the correct JDOM node in our model
 				anObjective.getChild("id").setText(
-						(String) keyedInteractions.get("cmi.interactions." + interactionIndex + ".objectives." + objectiveIndex + ".id"));
+						keyedInteractions.get("cmi.interactions." + interactionIndex + ".objectives." + objectiveIndex + ".id"));
 			}
 			// update the time
-			anInteraction.getChild("time").setText((String) keyedInteractions.get("cmi.interactions." + interactionIndex + ".time"));
+			anInteraction.getChild("time").setText(keyedInteractions.get("cmi.interactions." + interactionIndex + ".time"));
 			// update the type
-			anInteraction.getChild("type").setText((String) keyedInteractions.get("cmi.interactions." + interactionIndex + ".type"));
+			anInteraction.getChild("type").setText(keyedInteractions.get("cmi.interactions." + interactionIndex + ".type"));
 
 			// correct_responses
 			Element correct_responses = anInteraction.getChild("correct_responses");
@@ -625,14 +625,14 @@ public class ScoDocument extends XMLDocument {
 				Element aCorrectResponse = (Element) crListElement.next();
 				String crIndex = aCorrectResponse.getAttributeValue("index");
 				aCorrectResponse.getChild("pattern").setText(
-						(String) keyedInteractions.get("cmi.interactions." + interactionIndex + ".correct_responses." + crIndex + ".pattern"));
+						keyedInteractions.get("cmi.interactions." + interactionIndex + ".correct_responses." + crIndex + ".pattern"));
 			}
 
-			anInteraction.getChild("weighting").setText((String) keyedInteractions.get("cmi.interactions." + interactionIndex + ".weighting"));
+			anInteraction.getChild("weighting").setText(keyedInteractions.get("cmi.interactions." + interactionIndex + ".weighting"));
 			anInteraction.getChild("student_response").setText(
-					(String) keyedInteractions.get("cmi.interactions." + interactionIndex + ".student_response"));
-			anInteraction.getChild("result").setText((String) keyedInteractions.get("cmi.interactions." + interactionIndex + ".result"));
-			anInteraction.getChild("latency").setText((String) keyedInteractions.get("cmi.interactions." + interactionIndex + ".latency"));
+					keyedInteractions.get("cmi.interactions." + interactionIndex + ".student_response"));
+			anInteraction.getChild("result").setText(keyedInteractions.get("cmi.interactions." + interactionIndex + ".result"));
+			anInteraction.getChild("latency").setText(keyedInteractions.get("cmi.interactions." + interactionIndex + ".latency"));
 		}
 		// once finished, update the <_count> to reflect the changes
 		getElement(getDocument().getRootElement(), "cmi.interactions._count").setText(count + "");
@@ -664,7 +664,7 @@ public class ScoDocument extends XMLDocument {
 		}
 		// next update the elements...
 		// Keying the elements into a hashtable will make this easier
-		Hashtable keyedObjectives = new Hashtable();
+		Hashtable<String,String> keyedObjectives = new Hashtable<>();
 		for (int i = 0; i < objectives.length; i++) {
 			keyedObjectives.put(objectives[i][0], objectives[i][1]);
 		}
@@ -675,15 +675,15 @@ public class ScoDocument extends XMLDocument {
 			Element anObjective = (Element) listElement.next();
 			String objectiveIndex = anObjective.getAttributeValue("index");
 			// set the ID for this objective
-			anObjective.getChild("id").setText((String) keyedObjectives.get("cmi.objectives." + objectiveIndex + ".id"));
+			anObjective.getChild("id").setText(keyedObjectives.get("cmi.objectives." + objectiveIndex + ".id"));
 			// now move onto the score
 			Element score = anObjective.getChild("score");
 			// next update the children of <score>
-			score.getChild("raw").setText((String) keyedObjectives.get("cmi.objectives." + objectiveIndex + ".score.raw"));
-			score.getChild("max").setText((String) keyedObjectives.get("cmi.objectives." + objectiveIndex + ".score.max"));
-			score.getChild("min").setText((String) keyedObjectives.get("cmi.objectives." + objectiveIndex + ".score.min"));
+			score.getChild("raw").setText(keyedObjectives.get("cmi.objectives." + objectiveIndex + ".score.raw"));
+			score.getChild("max").setText(keyedObjectives.get("cmi.objectives." + objectiveIndex + ".score.max"));
+			score.getChild("min").setText(keyedObjectives.get("cmi.objectives." + objectiveIndex + ".score.min"));
 			// finally update <status>
-			anObjective.getChild("status").setText((String) keyedObjectives.get("cmi.objectives." + objectiveIndex + ".status"));
+			anObjective.getChild("status").setText(keyedObjectives.get("cmi.objectives." + objectiveIndex + ".status"));
 		}
 		// once finished, update the <_count> to reflect the changes
 		getElement(getDocument().getRootElement(), "cmi.objectives._count").setText(count + "");
diff --git a/src/main/java/org/olat/modules/scorm/server/servermodels/SequencerModel.java b/src/main/java/org/olat/modules/scorm/server/servermodels/SequencerModel.java
index c15f25f9a146e7454ff8bce9d298a1d3f928ee81..5845958fe231900343cc4debd902ab9aa70c2ac0 100644
--- a/src/main/java/org/olat/modules/scorm/server/servermodels/SequencerModel.java
+++ b/src/main/java/org/olat/modules/scorm/server/servermodels/SequencerModel.java
@@ -26,6 +26,7 @@ import java.io.IOException;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Vector;
 
 import org.jdom.Comment;
@@ -34,6 +35,7 @@ import org.jdom.Element;
 import org.jdom.JDOMException;
 import org.jdom.Parent;
 import org.olat.core.logging.OLATRuntimeException;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.modules.scorm.ISettingsHandler;
 
@@ -46,6 +48,8 @@ import uk.ac.reload.jdom.XMLDocument;
  * @author Paul Sharples
 */
 public class SequencerModel extends XMLDocument {
+	private static final OLog log = Tracing.createLoggerFor(SequencerModel.class);
+	
 	protected static final String ROOT_NODE_NAME = "navigation";
 	protected static final String ORG_NODE = "organization";
 	protected static final String ITEM_NODE = "item";
@@ -70,7 +74,7 @@ public class SequencerModel extends XMLDocument {
 	 * A vector used to house which items have been added to the navigation - used
 	 * to determine which nodes have been deleted since last import
 	 */
-	Vector _items = new Vector();
+	Vector<String> _items = new Vector<>();
 
 	/**
 	 * Our unique signature
@@ -173,8 +177,8 @@ public class SequencerModel extends XMLDocument {
 	 * @param org
 	 * @return - has table with idenitifer and current status
 	 */
-	public Hashtable getItemsAsHash(String org) {
-		Hashtable hash = new Hashtable();
+	public Map<String,String> getItemsAsHash(String org) {
+		Map<String,String> hash = new Hashtable<>();
 		List itemList = getDocument().getRootElement().getChildren(ITEM_NODE);
 		Iterator itemListElement = itemList.iterator();
 		while (itemListElement.hasNext()) {
@@ -264,7 +268,7 @@ public class SequencerModel extends XMLDocument {
 	 * @param items
 	 */
 	protected void removeOldNodes(String[] items) {
-		Vector v = new Vector();
+		List<Element> v = new Vector<>();
 		List itemList = getDocument().getRootElement().getChildren(ITEM_NODE);
 		if (itemList != null && !itemList.isEmpty()) {
 			Iterator itemListElement = itemList.iterator();
@@ -276,12 +280,12 @@ public class SequencerModel extends XMLDocument {
 					v.add(anItem);
 				}
 			}
-			Iterator itemsToRemove = v.iterator();
+			Iterator<Element> itemsToRemove = v.iterator();
 			while (itemsToRemove.hasNext()) {
-				Element anItemToDelete = (Element) itemsToRemove.next();
+				Element anItemToDelete = itemsToRemove.next();
 				Parent parent = anItemToDelete.getParent();
 				if (parent != null) {
-					Tracing.logWarn("item no longer exists so remove " + anItemToDelete.getAttributeValue(ITEM_IDENTIFIER),null,SequencerModel.class);
+					log.warn("item no longer exists so remove " + anItemToDelete.getAttributeValue(ITEM_IDENTIFIER), null);
 					parent.removeContent(anItemToDelete);
 				}
 			}
diff --git a/src/main/java/org/olat/modules/sharedfolder/CreateNewSharedFolderController.java b/src/main/java/org/olat/modules/sharedfolder/CreateNewSharedFolderController.java
index 0c76ad279d3620582a197130814a4f4379efb342..a6b6742ff1a9a0e3219a8e787d2cbd73a07391e1 100644
--- a/src/main/java/org/olat/modules/sharedfolder/CreateNewSharedFolderController.java
+++ b/src/main/java/org/olat/modules/sharedfolder/CreateNewSharedFolderController.java
@@ -30,11 +30,12 @@ import org.olat.core.gui.components.Component;
 import org.olat.core.gui.control.DefaultController;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
+import org.olat.core.util.Util;
 import org.olat.fileresource.types.FileResource;
 import org.olat.fileresource.types.SharedFolderFileResource;
 import org.olat.repository.RepositoryEntry;
+import org.olat.repository.RepositoryManager;
 import org.olat.repository.controllers.IAddController;
 import org.olat.repository.controllers.RepositoryAddCallback;
 
@@ -54,7 +55,7 @@ public class CreateNewSharedFolderController extends DefaultController implement
 		super(wControl);
 		if (addCallback != null) {
 			newFileResource = SharedFolderManager.getInstance().createSharedFolder();
-			Translator trnsltr = new PackageTranslator("org.olat.repository", ureq.getLocale());
+			Translator trnsltr = Util.createPackageTranslator(RepositoryManager.class, ureq.getLocale());
 			addCallback.setDisplayName(trnsltr.translate(newFileResource.getResourceableTypeName()));
 			addCallback.setResourceable(newFileResource);
 			addCallback.setResourceName(SharedFolderFileResource.RESOURCE_NAME);
diff --git a/src/main/java/org/olat/modules/sharedfolder/SharedFolderDisplayController.java b/src/main/java/org/olat/modules/sharedfolder/SharedFolderDisplayController.java
index cc6463d3f5d3ca481bf879ff5560b0ce0ac7b606..847accbc1574df7d30ccbc493074af49cde18d46 100644
--- a/src/main/java/org/olat/modules/sharedfolder/SharedFolderDisplayController.java
+++ b/src/main/java/org/olat/modules/sharedfolder/SharedFolderDisplayController.java
@@ -33,7 +33,6 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.DefaultController;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.logging.activity.LearningResourceLoggingAction;
@@ -56,8 +55,7 @@ import org.olat.util.logging.activity.LoggingResourceable;
  * @author Alexander Schneider
  */
 public class SharedFolderDisplayController extends DefaultController {
-	private static final String PACKAGE = Util.getPackageName(SharedFolderDisplayController.class);
-	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(PACKAGE);
+	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(SharedFolderDisplayController.class);
 
 	/**
 	 * Name of a file (1. priority) that prevents directory listing in the
@@ -98,7 +96,7 @@ public class SharedFolderDisplayController extends DefaultController {
 		super(wControl);
 		addLoggingResourceable(LoggingResourceable.wrap(ores, OlatResourceableType.genRepoEntry));
 		ThreadLocalUserActivityLogger.log(LearningResourceLoggingAction.LEARNING_RESOURCE_OPEN, getClass());
-		translator = new PackageTranslator(PACKAGE, ureq.getLocale());
+		translator = Util.createPackageTranslator(SharedFolderDisplayController.class, ureq.getLocale());
 
 		vcDisplay = new VelocityContainer("main", VELOCITY_ROOT + "/display.html", translator, this);
 
diff --git a/src/main/java/org/olat/modules/sharedfolder/SharedFolderEditorController.java b/src/main/java/org/olat/modules/sharedfolder/SharedFolderEditorController.java
index 157afae1f6c44db1009dceae756b5da92c233a85..1bf24676e43735eac246589983744cf096f9d664 100644
--- a/src/main/java/org/olat/modules/sharedfolder/SharedFolderEditorController.java
+++ b/src/main/java/org/olat/modules/sharedfolder/SharedFolderEditorController.java
@@ -46,8 +46,7 @@ import org.olat.repository.RepositoryEntry;
  * @author Alexander Schneider
  */
 public class SharedFolderEditorController extends DefaultController {
-	private static final String PACKAGE = Util.getPackageName(SharedFolderEditorController.class);
-	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(PACKAGE);
+	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(SharedFolderEditorController.class);
 	
 	private Translator translator;
 	private VelocityContainer vcEdit;
diff --git a/src/main/java/org/olat/modules/webFeed/dispatching/InvalidPathException.java b/src/main/java/org/olat/modules/webFeed/dispatching/InvalidPathException.java
index 4a56d14251925f671ecec32b8fe9d9a89b092ad1..7a0e259668fec417a51c909097b292353149e5e0 100644
--- a/src/main/java/org/olat/modules/webFeed/dispatching/InvalidPathException.java
+++ b/src/main/java/org/olat/modules/webFeed/dispatching/InvalidPathException.java
@@ -27,5 +27,7 @@ package org.olat.modules.webFeed.dispatching;
  * @author gwassmann
  */
 public class InvalidPathException extends Exception {
+
+	private static final long serialVersionUID = -6049546992993178914L;
 	// Nothing to implement
 }
diff --git a/src/main/java/org/olat/modules/webFeed/ui/blog/CreateBlogController.java b/src/main/java/org/olat/modules/webFeed/ui/blog/CreateBlogController.java
index 415df6374c7189017bde7608cd82cc6d62ea66f1..66d3da0ad28526f2a7cd4403ce64ec56c14b2bd3 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/blog/CreateBlogController.java
+++ b/src/main/java/org/olat/modules/webFeed/ui/blog/CreateBlogController.java
@@ -24,11 +24,12 @@ import org.olat.core.gui.components.Component;
 import org.olat.core.gui.control.DefaultController;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.OLATResourceable;
+import org.olat.core.util.Util;
 import org.olat.modules.webFeed.managers.FeedManager;
 import org.olat.repository.RepositoryEntry;
+import org.olat.repository.RepositoryManager;
 import org.olat.repository.controllers.IAddController;
 import org.olat.repository.controllers.RepositoryAddCallback;
 
@@ -55,7 +56,7 @@ public class CreateBlogController extends DefaultController implements IAddContr
 			FeedManager manager = FeedManager.getInstance();
 			// Create a new podcast feed resource
 			feedResource = manager.createBlogResource();
-			Translator trans = new PackageTranslator("org.olat.repository", ureq.getLocale());
+			Translator trans = Util.createPackageTranslator(RepositoryManager.class, ureq.getLocale());
 			addCallback.setDisplayName(trans.translate(feedResource.getResourceableTypeName()));
 			addCallback.setResourceable(feedResource);
 			addCallback.setResourceName(manager.getFeedKind(feedResource));
diff --git a/src/main/java/org/olat/modules/webFeed/ui/podcast/CreatePodcastController.java b/src/main/java/org/olat/modules/webFeed/ui/podcast/CreatePodcastController.java
index 0026f4066235ccef6ced20e9e71bf1305d8b42e6..89fc25f75aa26d1a92971849520a13f38b906413 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/podcast/CreatePodcastController.java
+++ b/src/main/java/org/olat/modules/webFeed/ui/podcast/CreatePodcastController.java
@@ -24,11 +24,12 @@ import org.olat.core.gui.components.Component;
 import org.olat.core.gui.control.DefaultController;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.OLATResourceable;
+import org.olat.core.util.Util;
 import org.olat.modules.webFeed.managers.FeedManager;
 import org.olat.repository.RepositoryEntry;
+import org.olat.repository.RepositoryManager;
 import org.olat.repository.controllers.IAddController;
 import org.olat.repository.controllers.RepositoryAddCallback;
 
@@ -55,7 +56,7 @@ public class CreatePodcastController extends DefaultController implements IAddCo
 			FeedManager manager = FeedManager.getInstance();
 			// Create a new podcast feed resource
 			feedResource = manager.createPodcastResource();
-			Translator trans = new PackageTranslator("org.olat.repository", ureq.getLocale());
+			Translator trans = Util.createPackageTranslator(RepositoryManager.class, ureq.getLocale());
 			addCallback.setDisplayName(trans.translate(feedResource.getResourceableTypeName()));
 			addCallback.setResourceable(feedResource);
 			addCallback.setResourceName(manager.getFeedKind(feedResource));
diff --git a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/ErrorEvent.java b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/ErrorEvent.java
index cebd48aee7d5c32d15e7959bae040449eeb9001f..7d4b1aa6b0921b0883b6e20b2bd882f89e86a535 100644
--- a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/ErrorEvent.java
+++ b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/ErrorEvent.java
@@ -35,7 +35,9 @@ import org.olat.core.gui.control.Event;
  * @author guido
  */
 public class ErrorEvent extends Event {
-	
+
+	private static final long serialVersionUID = -9057606133682633706L;
+
 	public ErrorEvent(String errorKey) {
 		super(errorKey);
 	}
diff --git a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/OlatWikiDataHandler.java b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/OlatWikiDataHandler.java
index a97372aeed8c21dd7b9f42c9f754ddd6f8335c8b..0d5f59b80ba698504460de4b218d0045cbdbe429 100644
--- a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/OlatWikiDataHandler.java
+++ b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/OlatWikiDataHandler.java
@@ -33,6 +33,7 @@ import org.jamwiki.model.WikiFile;
 import org.jamwiki.utils.InterWikiHandler;
 import org.jamwiki.utils.PseudoTopicHandler;
 import org.olat.core.id.OLATResourceable;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.modules.wiki.Wiki;
 import org.olat.modules.wiki.WikiManager;
@@ -46,6 +47,8 @@ import org.springframework.util.StringUtils;
  * @author guido
  */
 public class OlatWikiDataHandler implements DataHandler {
+	
+	private static final OLog log = Tracing.createLoggerFor(OlatWikiDataHandler.class);
 
 	private OLATResourceable ores;
 	private String imageUri;
@@ -74,15 +77,14 @@ public class OlatWikiDataHandler implements DataHandler {
 		} catch (UnsupportedEncodingException e) {
 			//
 		}
-		if (Tracing.isDebugEnabled(OlatWikiDataHandler.class)) {
-			Tracing.logDebug("page name not normalized: " + topicName, OlatWikiDataHandler.class);
-			Tracing.logDebug("page name normalized: " + FilterUtil.normalizeWikiLink(topicName), OlatWikiDataHandler.class);
+		if (log.isDebug()) {
+			log.debug("page name not normalized: " + topicName);
+			log.debug("page name normalized: " + FilterUtil.normalizeWikiLink(topicName));
 			try {
-				Tracing.logDebug("page name urldecoded name: " + URLDecoder.decode(topicName, "utf-8"), OlatWikiDataHandler.class);
-				Tracing.logDebug("page name urldecoded and normalized: " + FilterUtil.normalizeWikiLink(URLDecoder.decode(topicName, "utf-8")),
-						OlatWikiDataHandler.class);
-				Tracing.logDebug("page name urldecoded normalized and transformed to id: "
-						+ wiki.generatePageId(FilterUtil.normalizeWikiLink(decodedName)), OlatWikiDataHandler.class);
+				log.debug("page name urldecoded name: " + URLDecoder.decode(topicName, "utf-8"));
+				log.debug("page name urldecoded and normalized: " + FilterUtil.normalizeWikiLink(URLDecoder.decode(topicName, "utf-8")));
+				log.debug("page name urldecoded normalized and transformed to id: "
+						+ wiki.generatePageId(FilterUtil.normalizeWikiLink(decodedName)));
 			} catch (UnsupportedEncodingException e) {
 				//
 			}
diff --git a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestImageEvent.java b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestImageEvent.java
index df2998a70f034e8eb80785b2f8fecdc4d6b61db2..cb2f2598408526a68d5af170c201473427e7d972 100644
--- a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestImageEvent.java
+++ b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestImageEvent.java
@@ -36,6 +36,8 @@ import org.olat.core.gui.control.Event;
  */
 public class RequestImageEvent extends Event {
 
+	private static final long serialVersionUID = -2167337744405866804L;
+
 	public RequestImageEvent(String command) {
 		super(command);
 	}
diff --git a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestMediaEvent.java b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestMediaEvent.java
index 51bf40172d75acfef277e8e5d6e725a989de659f..ee46776088f9d1aa053fe245763354a08d602d87 100644
--- a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestMediaEvent.java
+++ b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestMediaEvent.java
@@ -36,6 +36,8 @@ import org.olat.core.gui.control.Event;
  */
 public class RequestMediaEvent extends Event {
 
+	private static final long serialVersionUID = -5514816907190031512L;
+
 	public RequestMediaEvent(String mediaFileName) {
 		super(mediaFileName);
 	}
diff --git a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestNewPageEvent.java b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestNewPageEvent.java
index a8c33ee7921d8fe11d8f1174faabfd3f8a2c8713..0237772934e3c9b8cad09186ae471f6819ae13be 100644
--- a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestNewPageEvent.java
+++ b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestNewPageEvent.java
@@ -38,6 +38,8 @@ import org.olat.core.gui.control.Event;
  */
 public class RequestNewPageEvent extends Event {
 
+	private static final long serialVersionUID = -7935191850934966649L;
+
 	public RequestNewPageEvent(String pageName) {
 		super(pageName);
 	}
diff --git a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestPageEvent.java b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestPageEvent.java
index 08c95724d31ebbc343388b05228ac263a201c936..0382e0047ab299ef430dad699d8391616f19008e 100644
--- a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestPageEvent.java
+++ b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/RequestPageEvent.java
@@ -38,6 +38,8 @@ import org.olat.core.gui.control.Event;
  */
 public class RequestPageEvent extends Event {
 
+	private static final long serialVersionUID = -1718545602894806740L;
+
 	public RequestPageEvent(String pageId) {
 		super(pageId);
 	}
diff --git a/src/main/java/org/olat/portal/calendar/CalendarPortletRunController.java b/src/main/java/org/olat/portal/calendar/CalendarPortletRunController.java
index 01f5efc053eb3022739b52d1b4c568f571b98e16..6337c660df5f259787735d86046c4509c2099031 100644
--- a/src/main/java/org/olat/portal/calendar/CalendarPortletRunController.java
+++ b/src/main/java/org/olat/portal/calendar/CalendarPortletRunController.java
@@ -110,7 +110,7 @@ public class CalendarPortletRunController extends BasicController {
 				ColumnDescriptor.ALIGNMENT_LEFT));
 		
 		
-		List events = getMatchingEvents(ureq, wControl);
+		List<KalendarEvent> events = getMatchingEvents(ureq, wControl);
 		tableController.setTableDataModel(new EventsModel(events));
 		listenTo(tableController);
 		
@@ -119,30 +119,29 @@ public class CalendarPortletRunController extends BasicController {
 		putInitialPanel(this.calendarVC);
 	}
 
-	private List getMatchingEvents(UserRequest ureq, WindowControl wControl) {
+	private List<KalendarEvent> getMatchingEvents(UserRequest ureq, WindowControl wControl) {
 		Date startDate = new Date();
 		Calendar cal = Calendar.getInstance();
 		cal.set(Calendar.DAY_OF_YEAR, cal.get(Calendar.DAY_OF_YEAR) + 7);
 		Date endDate = cal.getTime();
-		List events = new ArrayList();
-		List calendars = HomeCalendarController.getListOfCalendarWrappers(ureq, wControl);
+		List<KalendarEvent> events = new ArrayList<>();
+		List<KalendarRenderWrapper> calendars = HomeCalendarController.getListOfCalendarWrappers(ureq, wControl);
 		calendars.addAll( HomeCalendarController.getListOfImportedCalendarWrappers(ureq) );
-		for (Iterator iter = calendars.iterator(); iter.hasNext();) {
-			KalendarRenderWrapper calendarWrapper = (KalendarRenderWrapper) iter.next();
+		for (Iterator<KalendarRenderWrapper> iter = calendars.iterator(); iter.hasNext();) {
+			KalendarRenderWrapper calendarWrapper = iter.next();
 			boolean readOnly = (calendarWrapper.getAccess() == KalendarRenderWrapper.ACCESS_READ_ONLY) && !calendarWrapper.isImported();
-			List eventsWithinPeriod = CalendarUtils.listEventsForPeriod(calendarWrapper.getKalendar(), startDate, endDate);
-			for (Iterator iterator = eventsWithinPeriod.iterator(); iterator.hasNext();) {
-				KalendarEvent event = (KalendarEvent) iterator.next();
+			List<KalendarEvent> eventsWithinPeriod = CalendarUtils.listEventsForPeriod(calendarWrapper.getKalendar(), startDate, endDate);
+			for (KalendarEvent event : eventsWithinPeriod) {
 				// skip non-public events
 				if (readOnly && event.getClassification() != KalendarEvent.CLASS_PUBLIC) continue;
 				events.add(event);
 			}
 		}
 		// sort events
-		Collections.sort(events, new Comparator() {
-			public int compare(Object arg0, Object arg1) {
-				Date begin0 = ((KalendarEvent) arg0).getBegin();
-				Date begin1 = ((KalendarEvent) arg1).getBegin();
+		Collections.sort(events, new Comparator<KalendarEvent>() {
+			public int compare(KalendarEvent arg0, KalendarEvent arg1) {
+				Date begin0 = arg0.getBegin();
+				Date begin1 = arg1.getBegin();
 				return begin0.compareTo(begin1);
 			}
 		});
@@ -163,7 +162,7 @@ public class CalendarPortletRunController extends BasicController {
 			WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(bc, getWindowControl());
 			NewControllerFactory.getInstance().launch(ureq, bwControl);
 		} else if (event == ComponentUtil.VALIDATE_EVENT && dirty) {
-			List events = getMatchingEvents(ureq, getWindowControl());
+			List<KalendarEvent> events = getMatchingEvents(ureq, getWindowControl());
 			tableController.setTableDataModel(new EventsModel(events));
 		}
 	}
@@ -179,7 +178,7 @@ public class CalendarPortletRunController extends BasicController {
 				String actionid = te.getActionId();
 				if (actionid.equals(CMD_LAUNCH)) {
 					int rowid = te.getRowId();
-					KalendarEvent kalendarEvent = (KalendarEvent)((DefaultTableDataModel)tableController.getTableDataModel()).getObject(rowid);
+					KalendarEvent kalendarEvent = ((EventsModel)tableController.getTableDataModel()).getObject(rowid);
 					String resourceUrl = "[HomeSite:" + ureq.getIdentity().getKey() + "][calendar:0]"
 							+ BusinessControlFactory.getInstance().getContextEntryStringForDate(kalendarEvent.getBegin());
 					BusinessControl bc = BusinessControlFactory.getInstance().createFromString(resourceUrl);
@@ -201,12 +200,12 @@ public class CalendarPortletRunController extends BasicController {
 
 }
 
-class EventsModel extends DefaultTableDataModel {
+class EventsModel extends DefaultTableDataModel<KalendarEvent> {
 
 	private static final int COLUMNS = 2;
 	private int MAX_SUBJECT_LENGTH = 30;
 	
-	public EventsModel(List events) {
+	public EventsModel(List<KalendarEvent> events) {
 		super(events);
 	}
 
@@ -215,7 +214,7 @@ class EventsModel extends DefaultTableDataModel {
 	}
 
 	public Object getValueAt(int row, int col) {
-		KalendarEvent event = (KalendarEvent)getObject(row);
+		KalendarEvent event = getObject(row);
 		switch (col) {
 			case 0:
 				return event;
diff --git a/src/main/java/org/olat/portal/infomsg/InfoMsgPortletRunController.java b/src/main/java/org/olat/portal/infomsg/InfoMsgPortletRunController.java
index 9871633e9f8946b35553c947c4812f47f88bba08..98eaf3dc2c4b8a08a676d80136398b53f2a7ee87 100644
--- a/src/main/java/org/olat/portal/infomsg/InfoMsgPortletRunController.java
+++ b/src/main/java/org/olat/portal/infomsg/InfoMsgPortletRunController.java
@@ -33,7 +33,6 @@ import org.olat.core.gui.components.velocity.VelocityContainer;
 import org.olat.core.gui.control.DefaultController;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.StringHelper;
 import org.olat.core.util.Util;
@@ -59,8 +58,8 @@ public class InfoMsgPortletRunController extends DefaultController {
 	 */
 	protected InfoMsgPortletRunController(UserRequest ureq, WindowControl wControl) {
 		super(wControl);
-		this.trans = new PackageTranslator(Util.getPackageName(InfoMsgPortletRunController.class), ureq.getLocale());
-		this.infoVC = new VelocityContainer("infoVC", VELOCITY_ROOT + "/portlet.html", trans, this);
+		trans = Util.createPackageTranslator(InfoMsgPortletRunController.class, ureq.getLocale());
+		infoVC = new VelocityContainer("infoVC", VELOCITY_ROOT + "/portlet.html", trans, this);
 		InfoMessageManager mrg = (InfoMessageManager)CoreSpringFactory.getBean(InfoMessageManager.class);
 		String infoMsg = mrg.getInfoMessage();
 		if (StringHelper.containsNonWhitespace(infoMsg)) {
diff --git a/src/main/java/org/olat/portfolio/EPAbstractHandler.java b/src/main/java/org/olat/portfolio/EPAbstractHandler.java
index 5788786f4c71858a51ec585c76ac97060b03cb0c..a50e244d2eaa34a0def8f3324b7d7403bb9dac73 100755
--- a/src/main/java/org/olat/portfolio/EPAbstractHandler.java
+++ b/src/main/java/org/olat/portfolio/EPAbstractHandler.java
@@ -24,12 +24,12 @@ import java.util.Date;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
+import org.olat.core.util.Util;
 import org.olat.core.util.filter.Filter;
 import org.olat.core.util.filter.FilterFactory;
 import org.olat.portfolio.manager.EPFrontendManager;
@@ -86,9 +86,8 @@ public abstract class EPAbstractHandler<U extends AbstractArtefact> implements E
 	 * @see org.olat.portfolio.EPArtefactHandler#getHandlerTranslator(org.olat.core.gui.translator.Translator)
 	 */
 	@Override
-	public PackageTranslator getHandlerTranslator(Translator fallBackTrans){
-		PackageTranslator pT = new PackageTranslator(this.getClass().getPackage().getName(), fallBackTrans.getLocale(), fallBackTrans);
-		return pT; 
+	public Translator getHandlerTranslator(Translator fallBackTrans){
+		return Util.createPackageTranslator(this.getClass(), fallBackTrans.getLocale(), fallBackTrans);
 	}
 	
 	@Override
diff --git a/src/main/java/org/olat/portfolio/EPArtefactHandler.java b/src/main/java/org/olat/portfolio/EPArtefactHandler.java
index 1ca1c388e859620669e0ab637b86a7053afb988a..0872cffc0f6742045c0bac51ba85550ee482147e 100644
--- a/src/main/java/org/olat/portfolio/EPArtefactHandler.java
+++ b/src/main/java/org/olat/portfolio/EPArtefactHandler.java
@@ -23,7 +23,6 @@ import org.olat.core.configuration.ConfigOnOff;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.portfolio.manager.EPFrontendManager;
 import org.olat.portfolio.model.artefacts.AbstractArtefact;
@@ -62,7 +61,7 @@ public interface EPArtefactHandler<U extends AbstractArtefact> extends ConfigOnO
 	 * @param fallBackTrans - your yet existing translator
 	 * @return
 	 */
-	public PackageTranslator getHandlerTranslator(Translator fallBackTrans);
+	public Translator getHandlerTranslator(Translator fallBackTrans);
 	
 	/**
 	 * create a controller to present / manipulate artefact-specific stuff
diff --git a/src/main/java/org/olat/portfolio/_spring/portfolioContext.xml b/src/main/java/org/olat/portfolio/_spring/portfolioContext.xml
index 0d5b4b48d1dbd894829eedc9ab56322dd02c9b08..8745453cb4e813ebb27df442fd89a23ca6acca0c 100644
--- a/src/main/java/org/olat/portfolio/_spring/portfolioContext.xml
+++ b/src/main/java/org/olat/portfolio/_spring/portfolioContext.xml
@@ -92,7 +92,6 @@
 		<property name="resourceManager" ref="resourceManager"/>
 		<property name="repositoryManager" ref="repositoryManager"/>
 		<property name="dbInstance" ref="database"/>
-		<property name="baseSecurity" ref="baseSecurityManager"/>
 	</bean>
 	
 	<bean name="epSettingsManager" class="org.olat.portfolio.manager.EPSettingsManager" />
diff --git a/src/main/java/org/olat/portfolio/manager/EPStructureManager.java b/src/main/java/org/olat/portfolio/manager/EPStructureManager.java
index 477add4cb9d4c603c08a3516886a97448b75f843..00f5cafbce6354f786c60cb1e8a7e64688524442 100755
--- a/src/main/java/org/olat/portfolio/manager/EPStructureManager.java
+++ b/src/main/java/org/olat/portfolio/manager/EPStructureManager.java
@@ -30,7 +30,6 @@ import java.util.List;
 import javax.persistence.TypedQuery;
 
 import org.hibernate.ObjectNotFoundException;
-import org.olat.basesecurity.BaseSecurity;
 import org.olat.basesecurity.Constants;
 import org.olat.basesecurity.Group;
 import org.olat.basesecurity.GroupRoles;
@@ -97,7 +96,7 @@ public class EPStructureManager extends BasicManager {
 	private DB dbInstance;
 	private RepositoryManager repositoryManager;
 	private OLATResourceManager resourceManager;
-	private BaseSecurity securityManager;
+
 	private EPPolicyManager policyManager;
 	@Autowired
 	private GroupDAO groupDao;
@@ -141,14 +140,6 @@ public class EPStructureManager extends BasicManager {
 	public void setpolicyManager(final EPPolicyManager policyManager) {
 		this.policyManager = policyManager;
 	}
-	
-	/**
-	 * [used by Spring]
-	 * @param baseSecurity
-	 */
-	public void setBaseSecurity(BaseSecurity baseSecurity) {
-		this.securityManager = baseSecurity;
-	}
 
 	/**
 	 * Return the list of artefacts glued to this structure element
diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm00.java b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm00.java
index 4122a3e87f2fff1abd6428095dd13aa5b935508e..ed75e0be41000ac95e24f11400df29ed4caa9569 100644
--- a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm00.java
+++ b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm00.java
@@ -35,11 +35,12 @@ import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.wizard.StepFormBasicController;
 import org.olat.core.gui.control.generic.wizard.StepsEvent;
 import org.olat.core.gui.control.generic.wizard.StepsRunContext;
-import org.olat.core.gui.translator.PackageTranslator;
+import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.context.BusinessControlFactory;
 import org.olat.core.id.context.ContextEntry;
 import org.olat.core.util.Formatter;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.Util;
 import org.olat.portfolio.model.artefacts.AbstractArtefact;
 import org.olat.portfolio.ui.artefacts.view.EPArtefactViewController;
 
@@ -62,17 +63,17 @@ public class EPCollectStepForm00 extends StepFormBasicController {
 			String customLayoutPageName, AbstractArtefact artefact) {
 		super(ureq, wControl, rootForm, runContext, layout, customLayoutPageName);
 		// set fallback translator to re-use given strings
-		PackageTranslator pt = new PackageTranslator(EPArtefactViewController.class.getPackage().getName(), ureq.getLocale(), getTranslator());
-		this.flc.setTranslator(pt);
+		Translator pt = Util.createPackageTranslator(EPArtefactViewController.class, ureq.getLocale(), getTranslator());
+		flc.setTranslator(pt);
 		this.artefact = artefact;
-		initForm(this.flc, this, ureq);
+		initForm(flc, this, ureq);
 	}
 
 	// this constructor is used when editing an artefact, therefore the form doesn't show all fields!
 	public EPCollectStepForm00(UserRequest ureq, WindowControl wControl, AbstractArtefact artefact) {
 		super(ureq, wControl, FormBasicController.LAYOUT_VERTICAL);
 		// set fallback translator to re-use given strings
-		PackageTranslator pt = new PackageTranslator(EPArtefactViewController.class.getPackage().getName(), ureq.getLocale(), getTranslator());
+		Translator pt = Util.createPackageTranslator(EPArtefactViewController.class, ureq.getLocale(), getTranslator());
 		this.flc.setTranslator(pt);
 		this.artefact = artefact;
 		this.simpleMode = true;
diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm03.java b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm03.java
index 82df3ed2b338b3a15460eaa2e883552ca7aa323c..b51cc86c096a5543417f3881d77e63a0875091b4 100644
--- a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm03.java
+++ b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCollectStepForm03.java
@@ -29,8 +29,9 @@ import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.wizard.StepFormBasicController;
 import org.olat.core.gui.control.generic.wizard.StepsEvent;
 import org.olat.core.gui.control.generic.wizard.StepsRunContext;
-import org.olat.core.gui.translator.PackageTranslator;
+import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.Util;
 import org.olat.portfolio.model.artefacts.AbstractArtefact;
 import org.olat.portfolio.ui.artefacts.view.EPArtefactViewController;
 
@@ -66,7 +67,7 @@ public class EPCollectStepForm03 extends StepFormBasicController {
 	public EPCollectStepForm03(UserRequest ureq, WindowControl wControl, AbstractArtefact artefact) {
 		super(ureq, wControl, FormBasicController.LAYOUT_VERTICAL);
 		// set fallback translator to re-use given strings
-		PackageTranslator pt = new PackageTranslator(EPArtefactViewController.class.getPackage().getName(), ureq.getLocale(), getTranslator());
+		Translator pt = Util.createPackageTranslator(EPArtefactViewController.class, ureq.getLocale(), getTranslator());
 		this.flc.setTranslator(pt);
 		this.artefact = artefact;
 		this.artefactReflexion = artefact.getReflexion();
@@ -83,7 +84,7 @@ public class EPCollectStepForm03 extends StepFormBasicController {
 	public EPCollectStepForm03(UserRequest ureq, WindowControl wControl, AbstractArtefact artefact, boolean showHint) {
 		super(ureq, wControl, FormBasicController.LAYOUT_VERTICAL);
 		// set fallback translator to re-use given strings
-		PackageTranslator pt = new PackageTranslator(EPArtefactViewController.class.getPackage().getName(), ureq.getLocale(), getTranslator());
+		Translator pt = Util.createPackageTranslator(EPArtefactViewController.class, ureq.getLocale(), getTranslator());
 		this.flc.setTranslator(pt);
 		this.showNoReflexionOnStructLinkYetWarning = showHint;
 		this.artefact = artefact;
@@ -101,7 +102,7 @@ public class EPCollectStepForm03 extends StepFormBasicController {
 	public EPCollectStepForm03(UserRequest ureq, WindowControl wControl, AbstractArtefact artefact, String reflexion) {
 		super(ureq, wControl, FormBasicController.LAYOUT_VERTICAL);
 		// set fallback translator to re-use given strings
-		PackageTranslator pt = new PackageTranslator(EPArtefactViewController.class.getPackage().getName(), ureq.getLocale(), getTranslator());
+		Translator pt = Util.createPackageTranslator(EPArtefactViewController.class, ureq.getLocale(), getTranslator());
 		this.flc.setTranslator(pt);
 		this.artefact = artefact;
 		this.reflexion = reflexion;
@@ -115,7 +116,7 @@ public class EPCollectStepForm03 extends StepFormBasicController {
 			String customLayoutPageName, AbstractArtefact artefact) {
 		super(ureq, wControl, rootForm, runContext, layout, customLayoutPageName);
 		// set fallback translator to re-use given strings
-		PackageTranslator pt = new PackageTranslator(EPArtefactViewController.class.getPackage().getName(), ureq.getLocale(), getTranslator());
+		Translator pt = Util.createPackageTranslator(EPArtefactViewController.class, ureq.getLocale(), getTranslator());
 		this.flc.setTranslator(pt);
 		this.artefact = artefact;
 		this.artefactReflexion = artefact.getReflexion();
diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCreateTextArtefactStepForm00.java b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCreateTextArtefactStepForm00.java
index d973362356839099a25332cb2c61c0fdd26a1ca0..eca0e8d86f746c93838f295ee63b527983df8185 100644
--- a/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCreateTextArtefactStepForm00.java
+++ b/src/main/java/org/olat/portfolio/ui/artefacts/collect/EPCreateTextArtefactStepForm00.java
@@ -33,7 +33,8 @@ import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.wizard.StepFormBasicController;
 import org.olat.core.gui.control.generic.wizard.StepsEvent;
 import org.olat.core.gui.control.generic.wizard.StepsRunContext;
-import org.olat.core.gui.translator.PackageTranslator;
+import org.olat.core.gui.translator.Translator;
+import org.olat.core.util.Util;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VFSItem;
 import org.olat.core.util.vfs.VFSLeaf;
@@ -64,25 +65,25 @@ public class EPCreateTextArtefactStepForm00 extends StepFormBasicController {
 	// use this constructor to edit an already existing artefact
 	public EPCreateTextArtefactStepForm00(UserRequest ureq, WindowControl wControl, AbstractArtefact artefact){
 		super(ureq, wControl, FormBasicController.LAYOUT_VERTICAL);
-		PackageTranslator pt = new PackageTranslator(EPArtefactViewController.class.getPackage().getName(), ureq.getLocale(), getTranslator());
-		this.flc.setTranslator(pt);
+		Translator pt = Util.createPackageTranslator(EPArtefactViewController.class, ureq.getLocale(), getTranslator());
+		flc.setTranslator(pt);
 		this.artefact = artefact;
 		ePFMgr = (EPFrontendManager) CoreSpringFactory.getBean("epFrontendManager");
 		this.artFulltextContent = ePFMgr.getArtefactFullTextContent(artefact);
 		this.vfsTemp = ePFMgr.getArtefactContainer(artefact);
-		initForm(this.flc, this, ureq);		
+		initForm(flc, this, ureq);		
 	}
 	
 	public EPCreateTextArtefactStepForm00(UserRequest ureq, WindowControl wControl, Form rootForm, StepsRunContext runContext, int layout,
 			String customLayoutPageName, AbstractArtefact artefact, VFSContainer vfsTemp) {
 		super(ureq, wControl, rootForm, runContext, layout, customLayoutPageName);
 		// set fallback translator to re-use given strings
-		PackageTranslator pt = new PackageTranslator(EPArtefactViewController.class.getPackage().getName(), ureq.getLocale(), getTranslator());
-		this.flc.setTranslator(pt);
+		Translator pt = Util.createPackageTranslator(EPArtefactViewController.class, ureq.getLocale(), getTranslator());
+		flc.setTranslator(pt);
 		this.artefact = artefact;
 		this.artFulltextContent = artefact.getFulltextContent(); // during collection the fulltextcontent is not persisted and therefore might be longer than db-length restriction
 		this.vfsTemp = vfsTemp;
-		initForm(this.flc, this, ureq);
+		initForm(flc, this, ureq);
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/edit/EPReflexionWrapperController.java b/src/main/java/org/olat/portfolio/ui/artefacts/edit/EPReflexionWrapperController.java
index 9ceea1f2ce7a6aa540372de15be5d6b25e73793c..07f95b36e4a23854feac83be215b07da06acd82c 100644
--- a/src/main/java/org/olat/portfolio/ui/artefacts/edit/EPReflexionWrapperController.java
+++ b/src/main/java/org/olat/portfolio/ui/artefacts/edit/EPReflexionWrapperController.java
@@ -28,8 +28,9 @@ import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
 import org.olat.core.gui.control.generic.closablewrapper.CloseableCalloutWindowController;
 import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController;
-import org.olat.core.gui.translator.PackageTranslator;
+import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.Util;
 import org.olat.portfolio.EPSecurityCallback;
 import org.olat.portfolio.manager.EPFrontendManager;
 import org.olat.portfolio.model.artefacts.AbstractArtefact;
@@ -73,7 +74,7 @@ public class EPReflexionWrapperController extends BasicController {
 		this.secCallback = secCallback;
 		this.artefact = artefact;
 		this.struct = struct;
-		PackageTranslator pt = new PackageTranslator(EPArtefactViewController.class.getPackage().getName(), ureq.getLocale(), getTranslator());
+		Translator pt = Util.createPackageTranslator(EPArtefactViewController.class, ureq.getLocale(), getTranslator());
 		setTranslator(pt);
 
 		init(ureq);
diff --git a/src/main/java/org/olat/portfolio/ui/artefacts/view/ArtefactTypeImageCellRenderer.java b/src/main/java/org/olat/portfolio/ui/artefacts/view/ArtefactTypeImageCellRenderer.java
index 772af4ce7e95ad21984eb17d83b6df2ad63d4186..c90d2179f7c272448aa88ea37b92c15009fe5192 100644
--- a/src/main/java/org/olat/portfolio/ui/artefacts/view/ArtefactTypeImageCellRenderer.java
+++ b/src/main/java/org/olat/portfolio/ui/artefacts/view/ArtefactTypeImageCellRenderer.java
@@ -25,8 +25,8 @@ import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.components.table.CustomCellRenderer;
 import org.olat.core.gui.render.Renderer;
 import org.olat.core.gui.render.StringOutput;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
+import org.olat.core.util.Util;
 import org.olat.portfolio.EPArtefactHandler;
 import org.olat.portfolio.PortfolioModule;
 import org.olat.portfolio.model.artefacts.AbstractArtefact;
@@ -51,7 +51,7 @@ public class ArtefactTypeImageCellRenderer implements CustomCellRenderer {
 			AbstractArtefact artefact = (AbstractArtefact) val;
 			PortfolioModule portfolioModule = (PortfolioModule)CoreSpringFactory.getBean("portfolioModule");
 			EPArtefactHandler<?> artHandler = portfolioModule.getArtefactHandler(artefact.getResourceableTypeName());
-			PackageTranslator pT = new PackageTranslator(this.getClass().getPackage().getName(), locale);
+			Translator pT = Util.createPackageTranslator(this.getClass(), locale);
 			Translator handlerTrans = artHandler.getHandlerTranslator(pT);
 			String handlerClass = PortfolioFilterController.HANDLER_PREFIX + artHandler.getClass().getSimpleName() + PortfolioFilterController.HANDLER_TITLE_SUFFIX;
 			String artType = handlerTrans.translate(handlerClass);
diff --git a/src/main/java/org/olat/portfolio/ui/filter/PortfolioFilterController.java b/src/main/java/org/olat/portfolio/ui/filter/PortfolioFilterController.java
index 266b46a3eabe89fd69898d3df7541d6f340e9d5d..45ffa4b3db43e03841cd9f69f05cbcdfbb3d9cfd 100644
--- a/src/main/java/org/olat/portfolio/ui/filter/PortfolioFilterController.java
+++ b/src/main/java/org/olat/portfolio/ui/filter/PortfolioFilterController.java
@@ -46,7 +46,7 @@ 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.generic.closablewrapper.CloseableCalloutWindowController;
-import org.olat.core.gui.translator.PackageTranslator;
+import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.StringHelper;
 import org.olat.portfolio.EPArtefactHandler;
 import org.olat.portfolio.PortfolioModule;
@@ -132,7 +132,6 @@ public class PortfolioFilterController extends FormBasicController {
 		initOrUpdateForm(formLayout, listener, ureq);
 	}
 
-	@SuppressWarnings("unused")
 	protected void initOrUpdateForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		// filter by tag
 		if(formLayout.getFormComponent("tagLayout") == null) {
@@ -340,7 +339,7 @@ public class PortfolioFilterController extends FormBasicController {
 			String handlerClass = PortfolioFilterController.HANDLER_PREFIX + handler.getClass().getSimpleName() + HANDLER_TITLE_SUFFIX;
 			FormToggle link = (FormToggle) typeFlc.getFormComponent(handlerClass);
 			if (link==null) {
-				PackageTranslator handlerTrans = handler.getHandlerTranslator(getTranslator());
+				Translator handlerTrans = handler.getHandlerTranslator(getTranslator());
 				typeFlc.setTranslator(handlerTrans);
 				link = uifactory.addToggleButton(handlerClass, null, typeFlc, null, null);
 				link.setUserObject(handler.getType());
diff --git a/src/main/java/org/olat/portfolio/ui/structel/edit/EPStructureDetailsController.java b/src/main/java/org/olat/portfolio/ui/structel/edit/EPStructureDetailsController.java
index cec4db04525782af9d04015a66a05e745b15f8ff..0234630115ad042e406cc9889234d6e5fb543291 100644
--- a/src/main/java/org/olat/portfolio/ui/structel/edit/EPStructureDetailsController.java
+++ b/src/main/java/org/olat/portfolio/ui/structel/edit/EPStructureDetailsController.java
@@ -41,8 +41,9 @@ import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
 import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
+import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.Util;
 import org.olat.portfolio.EPArtefactHandler;
 import org.olat.portfolio.PortfolioModule;
 import org.olat.portfolio.manager.EPFrontendManager;
@@ -85,8 +86,8 @@ public class EPStructureDetailsController extends FormBasicController {
 	public EPStructureDetailsController(final UserRequest ureq, final WindowControl wControl, final Form rootForm, final PortfolioStructure rootStructure) {
 		super(ureq, wControl, FormBasicController.LAYOUT_DEFAULT, null, rootForm);
 
-		final PackageTranslator pt = new PackageTranslator(EPMapViewController.class.getPackage().getName(), ureq.getLocale(), getTranslator());
-		this.flc.setTranslator(pt);
+		final Translator pt = Util.createPackageTranslator(EPMapViewController.class, ureq.getLocale(), getTranslator());
+		flc.setTranslator(pt);
 		ePFMgr = (EPFrontendManager) CoreSpringFactory.getBean("epFrontendManager");
 		portfolioModule = (PortfolioModule) CoreSpringFactory.getBean("portfolioModule");
 		this.rootStructure = rootStructure;
diff --git a/src/main/java/org/olat/repository/RepositoryTableModel.java b/src/main/java/org/olat/repository/RepositoryTableModel.java
index 0b5b4c3ca34ad2b9cb21f813ce1d99b83fcc8723..6de0ff89100e58fc7b4e6138acb208eafcf9fa5b 100644
--- a/src/main/java/org/olat/repository/RepositoryTableModel.java
+++ b/src/main/java/org/olat/repository/RepositoryTableModel.java
@@ -43,9 +43,9 @@ import org.olat.core.gui.components.table.DefaultColumnDescriptor;
 import org.olat.core.gui.components.table.DefaultTableDataModel;
 import org.olat.core.gui.components.table.StaticColumnDescriptor;
 import org.olat.core.gui.components.table.TableController;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.Util;
 import org.olat.login.LoginModule;
 import org.olat.repository.manager.RepositoryEntryLifecycleDAO;
 import org.olat.repository.model.RepositoryEntryLifecycle;
@@ -385,7 +385,7 @@ public class RepositoryTableModel extends DefaultTableDataModel<RepositoryEntry>
 	private String getDisplayName(RepositoryEntry repositoryEntry, Locale locale) {
 		String displayName = repositoryEntry.getDisplayname();
 		if (repositoryEntry != null && RepositoryManager.getInstance().createRepositoryEntryStatus(repositoryEntry.getStatusCode()).isClosed()) {
-			PackageTranslator pT = new PackageTranslator(RepositoryEntryStatus.class.getPackage().getName(), locale);
+			Translator pT = Util.createPackageTranslator(RepositoryEntryStatus.class, locale);
 			displayName = "[" + pT.translate("title.prefix.closed") + "] ".concat(displayName);
 		}
 		return displayName;
diff --git a/src/main/java/org/olat/repository/controllers/AddFileResourceController.java b/src/main/java/org/olat/repository/controllers/AddFileResourceController.java
index a091c8aefc36f81fc25443b834e31b44ded4cf8b..18e177a3b6dbb93810c7fc2f21f82e78aa4b41ea 100644
--- a/src/main/java/org/olat/repository/controllers/AddFileResourceController.java
+++ b/src/main/java/org/olat/repository/controllers/AddFileResourceController.java
@@ -93,7 +93,7 @@ public class AddFileResourceController extends BasicController implements IAddCo
 
 	private FileChooserController cfc;
 	private RepositoryAddCallback addCallback;
-	private List limitTypes;
+	private List<String> limitTypes;
 	private FileResource newFileResource;
 
 	/**
@@ -104,7 +104,7 @@ public class AddFileResourceController extends BasicController implements IAddCo
 	 * @param ureq
 	 * @param wControl
 	 */
-	public AddFileResourceController(RepositoryAddCallback addCallback, List limitTypes, UserRequest ureq, WindowControl wControl) {
+	public AddFileResourceController(RepositoryAddCallback addCallback, List<String> limitTypes, UserRequest ureq, WindowControl wControl) {
 		super(ureq, wControl);
 		init(addCallback, limitTypes, null, ureq);
 	}
@@ -118,12 +118,12 @@ public class AddFileResourceController extends BasicController implements IAddCo
 	 * @param ureq
 	 * @param wControl
 	 */
-	public AddFileResourceController(RepositoryAddCallback addCallback, List limitTypes, String[] suffixFilter, UserRequest ureq, WindowControl wControl) {
+	public AddFileResourceController(RepositoryAddCallback addCallback, List<String> limitTypes, String[] suffixFilter, UserRequest ureq, WindowControl wControl) {
 		super(ureq, wControl);
 		init(addCallback, limitTypes, suffixFilter, ureq);
 	}
 
-	private void init(RepositoryAddCallback rac, List lt, String[] suffixFilter, UserRequest ureq) {
+	private void init(RepositoryAddCallback rac, List<String> lt, String[] suffixFilter, UserRequest ureq) {
 
 		this.addCallback = rac;
 		this.limitTypes = lt;
@@ -224,8 +224,8 @@ public class AddFileResourceController extends BasicController implements IAddCo
 
 				if (limitTypes != null && limitTypes.size() > 0) { // check for type
 					boolean validType = false;
-					for (Iterator iter = limitTypes.iterator(); iter.hasNext();) {
-						String limitType = (String) iter.next();
+					for (Iterator<String> iter = limitTypes.iterator(); iter.hasNext();) {
+						String limitType = iter.next();
 						if (newFileResource.getResourceableTypeName().equals(limitType)) validType = true;
 					}
 					if (!validType) { // rollback
diff --git a/src/main/java/org/olat/repository/controllers/EntryChangedEvent.java b/src/main/java/org/olat/repository/controllers/EntryChangedEvent.java
index 1f4e36ecc9db1c9b162c0b8f04e54a7a13e6db0f..6ff27631455c7fb9ffd2d6e1fb5cc115a14884b7 100644
--- a/src/main/java/org/olat/repository/controllers/EntryChangedEvent.java
+++ b/src/main/java/org/olat/repository/controllers/EntryChangedEvent.java
@@ -35,6 +35,7 @@ import org.olat.repository.RepositoryEntry;
  */
 public class EntryChangedEvent extends MultiUserEvent {
 
+	private static final long serialVersionUID = 8339474599787388699L;
 	private int change;
 	private Long changedEntryKey;
 	
diff --git a/src/main/java/org/olat/repository/controllers/RepositoryAddChooseStepsController.java b/src/main/java/org/olat/repository/controllers/RepositoryAddChooseStepsController.java
index 8d70335bfb117e6ce9c681cbaef8ef29c462f3d0..1ebbe3df0b3d13ae09a508a7eef1e5fdfcc0b9e6 100644
--- a/src/main/java/org/olat/repository/controllers/RepositoryAddChooseStepsController.java
+++ b/src/main/java/org/olat/repository/controllers/RepositoryAddChooseStepsController.java
@@ -43,8 +43,8 @@ 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.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
+import org.olat.core.util.Util;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
 
@@ -104,8 +104,6 @@ public class RepositoryAddChooseStepsController extends BasicController {
 	/** Step to start the raw course editor has been chosen. */
 	public static Event COURSE_EDIT = new Event(ChooseStepsForm.KEY_COURSE_EDIT);
 
-	// package name
-	private static final String PACKAGE = RepositoryEntry.class.getPackage().getName();
 	// translator object
 	private Translator translator;
 	// velocity template
@@ -124,7 +122,7 @@ public class RepositoryAddChooseStepsController extends BasicController {
 		super(ureq, control);
 		this.addedEntry = addedEntry;
 		// translator for this class
-		translator = new PackageTranslator(PACKAGE, ureq.getLocale());
+		translator = Util.createPackageTranslator(RepositoryManager.class, ureq.getLocale());
 		// velocity template
 		vc = new VelocityContainer("addSteps", RepositoryManager.class, "addSteps", translator, this);
 		// chooser form
diff --git a/src/main/java/org/olat/repository/controllers/RepositoryAddController.java b/src/main/java/org/olat/repository/controllers/RepositoryAddController.java
index bac64339f61795813743d521464c82edfbe50421..c2ee397dc1f9cc357800925c3f9d90d89c4416d1 100644
--- a/src/main/java/org/olat/repository/controllers/RepositoryAddController.java
+++ b/src/main/java/org/olat/repository/controllers/RepositoryAddController.java
@@ -25,8 +25,6 @@
 
 package org.olat.repository.controllers;
 
-import org.olat.basesecurity.BaseSecurity;
-import org.olat.basesecurity.BaseSecurityManager;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.persistence.DBFactory;
 import org.olat.core.gui.UserRequest;
@@ -106,7 +104,6 @@ public class RepositoryAddController extends BasicController {
 	private IAddController addController;
 	private RepositoryHandler typeToAdd;
 	private RepositoryAddCallback addCallback;
-	private BaseSecurity securityManager;
 	private RepositoryEntry addedEntry;
 	
 	// flag is true when workflow has been finished successfully, 
@@ -130,7 +127,6 @@ public class RepositoryAddController extends BasicController {
 		setBasePackage(RepositoryManager.class);
 		
 		this.actionAddCommand = actionAddCommand;
-		securityManager = BaseSecurityManager.getInstance();
 
 		/*
 		 * FIXME:pb: review: during constructor call -> /addDelegate.html is active first, then typeToAdd.getAddController() with
diff --git a/src/main/java/org/olat/repository/controllers/RepositoryDetailsController.java b/src/main/java/org/olat/repository/controllers/RepositoryDetailsController.java
index f0b18845a4d5aa05b421c2bef0498a1cb2d6c5e4..b786cb760810bed42c2b028a1c00c69bd635c05a 100644
--- a/src/main/java/org/olat/repository/controllers/RepositoryDetailsController.java
+++ b/src/main/java/org/olat/repository/controllers/RepositoryDetailsController.java
@@ -64,7 +64,7 @@ import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
 import org.olat.core.gui.control.generic.tool.ToolController;
 import org.olat.core.gui.control.generic.tool.ToolFactory;
 import org.olat.core.gui.media.MediaResource;
-import org.olat.core.gui.translator.PackageTranslator;
+import org.olat.core.gui.translator.Translator;
 import org.olat.core.helpers.Settings;
 import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
@@ -375,7 +375,7 @@ public class RepositoryDetailsController extends BasicController implements Gene
 			String tName = ControllerFactory.translateResourceableTypeName(typeName, getLocale());
 			typeDisplayText.append(tName);
 			if (repositoryEntry != null && RepositoryManager.getInstance().createRepositoryEntryStatus(repositoryEntry.getStatusCode()).isClosed()) {
-				PackageTranslator pT = new PackageTranslator(RepositoryEntryStatus.class.getPackage().getName(), ureq.getLocale());
+				Translator pT = Util.createPackageTranslator(RepositoryEntryStatus.class, ureq.getLocale());
 				typeDisplayText.append(" " + "(" + pT.translate("title.prefix.closed") + ")");
 			}
 			typeDisplayText.append("</span>");
@@ -732,7 +732,7 @@ public class RepositoryDetailsController extends BasicController implements Gene
 		repositoryEntry = (RepositoryEntry) DBFactory.getInstance().loadObject(repositoryEntry);
 		String displayName = repositoryEntry.getDisplayname();
 		if (repositoryEntry != null && RepositoryManager.getInstance().createRepositoryEntryStatus(repositoryEntry.getStatusCode()).isClosed()) {
-			PackageTranslator pT = new PackageTranslator(RepositoryEntryStatus.class.getPackage().getName(), locale);
+			Translator pT = Util.createPackageTranslator(RepositoryEntryStatus.class, locale);
 			displayName = "[" + pT.translate("title.prefix.closed") + "] ".concat(displayName);
 		}
 		
diff --git a/src/main/java/org/olat/repository/controllers/WizardCloseCourseController.java b/src/main/java/org/olat/repository/controllers/WizardCloseCourseController.java
index 3324306212e74df2b21c19d22eae03cfce152166..8f160b1313a7da0cc03fe6ca1efe9f998d051126 100644
--- a/src/main/java/org/olat/repository/controllers/WizardCloseCourseController.java
+++ b/src/main/java/org/olat/repository/controllers/WizardCloseCourseController.java
@@ -51,10 +51,10 @@ 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.generic.wizard.WizardController;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.UserConstants;
+import org.olat.core.util.Util;
 import org.olat.core.util.mail.MailBundle;
 import org.olat.core.util.mail.MailContext;
 import org.olat.core.util.mail.MailContextImpl;
@@ -294,11 +294,10 @@ class CloseRessourceOptionForm extends FormBasicController {
 	private MultipleSelectionElement checkboxClean;
 	private FormReset back;
 	private Translator translator;
-	private static final String PACKAGE = RepositoryManager.class.getPackage().getName();
 	
 	public CloseRessourceOptionForm(UserRequest ureq, WindowControl control) {
 		super(ureq, control);
-		this.translator = new PackageTranslator(PACKAGE, ureq.getLocale());
+		this.translator = Util.createPackageTranslator(RepositoryManager.class, ureq.getLocale());
 		initForm(ureq);
 	}
 	
diff --git a/src/main/java/org/olat/resource/lock/pessimistic/PessimisticLockManager.java b/src/main/java/org/olat/resource/lock/pessimistic/PessimisticLockManager.java
index 9785f7190b74394e970895805d8d3d357ad9a933..f13f58eebb802ed34661d5436fe02821668e0214 100644
--- a/src/main/java/org/olat/resource/lock/pessimistic/PessimisticLockManager.java
+++ b/src/main/java/org/olat/resource/lock/pessimistic/PessimisticLockManager.java
@@ -33,8 +33,8 @@ import org.olat.core.commons.persistence.DBFactory;
 import org.olat.core.commons.persistence.DBQuery;
 import org.olat.core.configuration.Initializable;
 import org.olat.core.logging.AssertException;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
-import org.olat.core.manager.BasicManager;
 
 
 /**
@@ -47,7 +47,9 @@ import org.olat.core.manager.BasicManager;
  * Initial Date:  25.10.2007 <br>
  * @author Felix Jost, http://www.goodsolutions.ch
  */
-public class PessimisticLockManager extends BasicManager implements Initializable {
+public class PessimisticLockManager implements Initializable {
+	
+	private static final OLog log = Tracing.createLoggerFor(PessimisticLockManager.class);
 	
 	private static PessimisticLockManager INSTANCE;
 	private final String ASSET_INSERT_LOCK = "SYS_plock_global";
@@ -107,15 +109,17 @@ public class PessimisticLockManager extends BasicManager implements Initializabl
 	 */
 	public PLock findOrPersistPLock(String asset) {
 		if (!initDone) throw new AssertException("init not called yet - make sure the ClusterModule is enabled in your olat.local.properties file");
-		if (Tracing.isDebugEnabled(PessimisticLockManager.class)) {
-			Tracing.logDebug("findOrPersistPLock START asset="+asset, PessimisticLockManager.class);
+		
+		boolean debug = log.isDebug();
+		if (debug) {
+			log.debug("findOrPersistPLock START asset="+asset);
 		}
 		PLock plock = findPLock(asset);
-		if (Tracing.isDebugEnabled(PessimisticLockManager.class)) {
+		if (debug) {
 			if (plock==null) {
-				Tracing.logDebug("findOrPersistPLock PLock not found", PessimisticLockManager.class);
+				log.debug("findOrPersistPLock PLock not found");
 			} else {
-				Tracing.logDebug("findOrPersistPLock found and locked PLock: "+plock, PessimisticLockManager.class);
+				log.debug("findOrPersistPLock found and locked PLock: "+plock);
 			}
 		}
 		// if not found, persist it.
@@ -123,22 +127,22 @@ public class PessimisticLockManager extends BasicManager implements Initializabl
 			// synchronize the findOrCreate by using the special row with the global-lock-asset
 			// locks the global lock - which is only used to sync creation of new resource entries, so that those can later be locked.
 			findPLock(ASSET_INSERT_LOCK);
-			if (Tracing.isDebugEnabled(PessimisticLockManager.class)) {
-				Tracing.logDebug("findOrPersistPLock global insert lock locked", PessimisticLockManager.class);
+			if (debug) {
+				log.debug("findOrPersistPLock global insert lock locked");
 			}
 			// need to read again within the protected region
 			plock = findPLock(asset);
 			if (plock == null) {
-				if (Tracing.isDebugEnabled(PessimisticLockManager.class)) {
-					Tracing.logDebug("findOrPersistPLock creating new plock: "+asset, PessimisticLockManager.class);
+				if (debug) {
+					log.debug("findOrPersistPLock creating new plock: "+asset);
 				}
 				plock = createPLock(asset);
-				if (Tracing.isDebugEnabled(PessimisticLockManager.class)) {
-					Tracing.logDebug("findOrPersistPLock created new plock: "+asset, PessimisticLockManager.class);
+				if (debug) {
+					log.debug("findOrPersistPLock created new plock: "+asset);
 				}
 				savePLock(plock);
-				if (Tracing.isDebugEnabled(PessimisticLockManager.class)) {
-					Tracing.logDebug("findOrPersistPLock saved new plock: "+asset, PessimisticLockManager.class);
+				if (debug) {
+					log.debug("findOrPersistPLock saved new plock: "+asset);
 				}
 			} // else plock got created by another thread in the meantime
 
diff --git a/src/main/java/org/olat/restapi/repository/course/CourseWebService.java b/src/main/java/org/olat/restapi/repository/course/CourseWebService.java
index 66bf66a728ab771dec2e91943cb6cda3ff1bfdee..5fc695fe7f6590f64ec136e4c96a2767a31343b8 100644
--- a/src/main/java/org/olat/restapi/repository/course/CourseWebService.java
+++ b/src/main/java/org/olat/restapi/repository/course/CourseWebService.java
@@ -771,7 +771,6 @@ public class CourseWebService {
 	}
 	
 	private RepositoryEntry getCourseEntry(OLATResource courseResource) {
-		String typeName = OresHelper.calculateTypeName(CourseModule.class);
 		return RepositoryManager.getInstance().lookupRepositoryEntry(courseResource, false);
 	}
 	
diff --git a/src/main/java/org/olat/shibboleth/ShibbolethException.java b/src/main/java/org/olat/shibboleth/ShibbolethException.java
index 3adb98b4247923c08b2bbb848003eb6115ee6506..8f65951b474027b2a139694e110cebe1e6e166a2 100644
--- a/src/main/java/org/olat/shibboleth/ShibbolethException.java
+++ b/src/main/java/org/olat/shibboleth/ShibbolethException.java
@@ -33,7 +33,8 @@ package org.olat.shibboleth;
  * @author Lavinia Dumitrescu
  */
 public class ShibbolethException extends Exception {
-	
+
+	private static final long serialVersionUID = 9055605164344300611L;
 	//error codes
 	public static final int GENERAL_SAML_ERROR = 0;	
 	public static final int UNIQUE_ID_NOT_FOUND = 1;
diff --git a/src/main/java/org/olat/shibboleth/ShibbolethRegistrationController.java b/src/main/java/org/olat/shibboleth/ShibbolethRegistrationController.java
index 02cbee0014f5e9840536fa8c33d893b695aaa545..022e902e7a76976c8d798c92e804e1341844294a 100644
--- a/src/main/java/org/olat/shibboleth/ShibbolethRegistrationController.java
+++ b/src/main/java/org/olat/shibboleth/ShibbolethRegistrationController.java
@@ -51,7 +51,6 @@ import org.olat.core.gui.control.DefaultController;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.LocaleChangedEvent;
 import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.User;
@@ -89,8 +88,7 @@ import org.olat.user.UserManager;
 
 public class ShibbolethRegistrationController extends DefaultController implements ControllerEventListener {
 
-	private static final String PACKAGE = Util.getPackageName(ShibbolethModule.class);
-	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(PACKAGE);
+	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(ShibbolethModule.class);
 	private static final String KEY_SHIBATTRIBUTES = "shibattr";
 	private static final String KEY_SHIBUNIQUEID = "shibuid";
 	
@@ -121,7 +119,7 @@ public class ShibbolethRegistrationController extends DefaultController implemen
 	public ShibbolethRegistrationController(UserRequest ureq, WindowControl wControl) {
 		super(wControl);
 
-		translator = new PackageTranslator(PACKAGE, ureq.getLocale());
+		translator = Util.createPackageTranslator(ShibbolethModule.class, ureq.getLocale());
 		shibbolethAttributesMap = (Map<String,String>)ureq.getUserSession().getEntry(KEY_SHIBATTRIBUTES);
 		shibbolethUniqueID = (String)ureq.getUserSession().getEntry(KEY_SHIBUNIQUEID);
 		
@@ -153,7 +151,7 @@ public class ShibbolethRegistrationController extends DefaultController implemen
 		I18nManager.updateLocaleInfoToThread(ureq.getUserSession());
 		ureq.getUserSession().putEntry(LocaleNegotiator.NEGOTIATED_LOCALE, locale);
 		
-		translator = new PackageTranslator(PACKAGE, ureq.getLocale());
+		translator = Util.createPackageTranslator(ShibbolethModule.class, ureq.getLocale());
 		mainContainer = new VelocityContainer("main", VELOCITY_ROOT + "/langchooser.html", translator, this);
 	
 		languageChooserController = new LanguageChooserController(ureq, wControl, false);
diff --git a/src/main/java/org/olat/shibboleth/util/ShibbolethAttribute.java b/src/main/java/org/olat/shibboleth/util/ShibbolethAttribute.java
index 6bd7b3b06ecea2837b3d760323e5e0fe574241ff..d1e9b62bb1ec564d684bfca7111cffeb73389b41 100644
--- a/src/main/java/org/olat/shibboleth/util/ShibbolethAttribute.java
+++ b/src/main/java/org/olat/shibboleth/util/ShibbolethAttribute.java
@@ -28,6 +28,7 @@ import java.io.UnsupportedEncodingException;
 import java.util.regex.Pattern;
 
 import org.olat.core.logging.AssertException;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.StringHelper;
 
@@ -42,7 +43,7 @@ import org.olat.core.util.StringHelper;
  */
 public final class ShibbolethAttribute{
 	
-	
+	private static final OLog log = Tracing.createLoggerFor(ShibbolethAttribute.class);
 	
 	private static final Pattern SPLITTER = Pattern.compile(";");
 	private final String attributeName;
@@ -84,8 +85,8 @@ public final class ShibbolethAttribute{
 	
 	public static ShibbolethAttribute createFromUserRequestValue(String name, String rawRequestValue){
 		if(isInvalidValue(rawRequestValue)){
-			if(Tracing.isDebugEnabled(ShibbolethAttribute.class)){
-				Tracing.logDebug("invalid attribute: " + name + " attributeValue: " + rawRequestValue, ShibbolethAttribute.class);
+			if(log.isDebug()){
+				log.debug("invalid attribute: " + name + " attributeValue: " + rawRequestValue);
 			}
 			return INVALID_ATTRIBUTE;
 		}
diff --git a/src/main/java/org/olat/upgrade/UpgradeHistoryData.java b/src/main/java/org/olat/upgrade/UpgradeHistoryData.java
index 2837cc6b498478b85f5245234b457bb5d017bcb6..0001cc318fb5da298e4bd721bf4f8c8aae172675 100644
--- a/src/main/java/org/olat/upgrade/UpgradeHistoryData.java
+++ b/src/main/java/org/olat/upgrade/UpgradeHistoryData.java
@@ -43,14 +43,14 @@ import java.util.Map;
  */
 public class UpgradeHistoryData {
 
-	private Map upgradeData;
+	private Map<String, Serializable> upgradeData;
 	boolean installationComplete = false;
 
 	/**
 	 * Constructor, initializes everything
 	 */
 	public UpgradeHistoryData() {
-		upgradeData = new HashMap();
+		upgradeData = new HashMap<String, Serializable>();
 		installationComplete = false;
 	}
 
diff --git a/src/main/java/org/olat/user/HomePageConfig.java b/src/main/java/org/olat/user/HomePageConfig.java
index 9fb31a7e23aa0f68aa58d9d94a9873c2e15e0d4e..e8362e443659e71cda7b92e992ecede0240468b7 100644
--- a/src/main/java/org/olat/user/HomePageConfig.java
+++ b/src/main/java/org/olat/user/HomePageConfig.java
@@ -96,7 +96,7 @@ public class HomePageConfig implements OLATResourceable{
 	/**
 	 * holds the configuration
 	 */
-	private Map configuration = new Hashtable();
+	private Map<String,Object> configuration = new Hashtable<>();
 
 	public HomePageConfig() {
 	// empty, for XSTream
diff --git a/src/main/java/org/olat/user/PersonalFolderManager.java b/src/main/java/org/olat/user/PersonalFolderManager.java
index 99e6ea6499116b01c846a571af1bbe0de8e838e6..e958c13e3e95598a9e85e50970f8971f385e9a60 100644
--- a/src/main/java/org/olat/user/PersonalFolderManager.java
+++ b/src/main/java/org/olat/user/PersonalFolderManager.java
@@ -28,12 +28,15 @@ package org.olat.user;
 import org.olat.core.commons.modules.bc.BriefcaseWebDAVProvider;
 import org.olat.core.commons.modules.bc.vfs.OlatRootFolderImpl;
 import org.olat.core.id.Identity;
+import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 
 /**
  * Manager for the personal-folder of a user.
  */
 public class PersonalFolderManager extends BriefcaseWebDAVProvider implements  UserDataDeletable {
+	
+	private static final OLog log = Tracing.createLoggerFor(PersonalFolderManager.class);
 
 	private static PersonalFolderManager instance;
 
@@ -57,7 +60,7 @@ public class PersonalFolderManager extends BriefcaseWebDAVProvider implements  U
 	 */
 	public void deleteUserData(Identity identity, String newDeletedUserName) {
 		new OlatRootFolderImpl(getRootPathFor(identity), null).delete();
-		Tracing.logDebug("Personal-folder deleted for identity=" + identity, this.getClass());
+		log.debug("Personal-folder deleted for identity=" + identity);
 	}
 
 }
diff --git a/src/main/java/org/olat/user/restapi/UserWebService.java b/src/main/java/org/olat/user/restapi/UserWebService.java
index c576583ad1389994c5a3487e15495fe53b8358c1..479a0c37d3c489ed5b9afdd186a99ecaeca53d76 100644
--- a/src/main/java/org/olat/user/restapi/UserWebService.java
+++ b/src/main/java/org/olat/user/restapi/UserWebService.java
@@ -58,6 +58,7 @@ import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
 import javax.ws.rs.core.UriInfo;
 
+import org.olat.admin.user.UserShortDescription;
 import org.olat.admin.user.delete.service.UserDeletionManager;
 import org.olat.basesecurity.AuthHelper;
 import org.olat.basesecurity.Authentication;
@@ -75,6 +76,7 @@ import org.olat.core.id.UserConstants;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.Util;
 import org.olat.restapi.group.MyGroupWebService;
 import org.olat.restapi.support.MultipartReader;
 import org.olat.restapi.support.vo.ErrorVO;
@@ -222,7 +224,7 @@ public class UserWebService {
 		Identity identity = BaseSecurityManager.getInstance().findIdentityByName(user.getLogin());
 		if (identity != null) {
 			Locale locale = getLocale(request);
-			Translator translator = new PackageTranslator("org.olat.admin.user", locale);
+			Translator translator = Util.createPackageTranslator(UserShortDescription.class, locale);
 			String translation = translator.translate("new.error.loginname.choosen");
 			ErrorVO[] errorVos = new ErrorVO[]{
 				new ErrorVO("org.olat.admin.user", "new.error.loginname.choosen", translation)
diff --git a/src/test/java/org/olat/course/nodes/projectbroker/ProjectBrokerManagerTest.java b/src/test/java/org/olat/course/nodes/projectbroker/ProjectBrokerManagerTest.java
index 9185ab46cc5eb9984dcd2a0d0ee22445476a2344..43345f56c7c922385f8b9dafc19352ef25d549de 100644
--- a/src/test/java/org/olat/course/nodes/projectbroker/ProjectBrokerManagerTest.java
+++ b/src/test/java/org/olat/course/nodes/projectbroker/ProjectBrokerManagerTest.java
@@ -48,8 +48,9 @@ import org.junit.Test;
 import org.olat.basesecurity.SecurityGroupImpl;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.persistence.DBFactory;
-import org.olat.core.gui.translator.PackageTranslator;
+import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
+import org.olat.core.util.Util;
 import org.olat.course.nodes.projectbroker.datamodel.Project;
 import org.olat.course.nodes.projectbroker.datamodel.ProjectBroker;
 import org.olat.course.nodes.projectbroker.datamodel.ProjectEvent;
@@ -228,11 +229,12 @@ public class ProjectBrokerManagerTest extends OlatTestCase {
 		System.out.println("testPerformance: done");
 	}
 
-	@Test public void testPerformanceTableModel() throws Exception {
+	@Test
+	public void testPerformanceTableModel() throws Exception {
 		int ITERATION = 300;
 		int START_PAGE_INDEX = 100;
 		int PAGE_SIZE = 20;
-		PackageTranslator translator = new PackageTranslator(this.getClass().getPackage().getName(), Locale.GERMAN);
+		Translator translator = Util.createPackageTranslator(this.getClass(), Locale.GERMAN);
 
 		ProjectBroker projectBrokerD = projectBrokerManager.createAndSaveProjectBroker();
 		Long idProjectBrokerD = projectBrokerD.getKey();
diff --git a/src/test/java/org/olat/test/OlatJerseyTestCase.java b/src/test/java/org/olat/test/OlatJerseyTestCase.java
index 582f71a2d24a3270ef8e69a128d0f4fb5f99ad00..43cdd70c57c1d5d823123f81a477887af2132d4d 100644
--- a/src/test/java/org/olat/test/OlatJerseyTestCase.java
+++ b/src/test/java/org/olat/test/OlatJerseyTestCase.java
@@ -113,7 +113,7 @@ public abstract class OlatJerseyTestCase extends OlatTestCase {
 				manager.deploy();
 
 				webServer = Undertow.builder()
-				        .addListener(PORT, HOST)
+				        .addHttpListener(PORT, HOST)
 				        .setHandler(manager.start())
 				        .build();
 				webServer.start();