From 3e084a4175b14033c61c2ce4a08be091d408812e Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Wed, 8 Aug 2012 17:08:30 +0200
Subject: [PATCH] OO-291: update postgresql schema, add more generics to
 portlets

---
 .../institution/InstitutionPortlet.java       |  5 +--
 .../bps/olat/portal/links/LinksPortlet.java   |  2 +-
 .../org/olat/bookmark/BookmarksPortlet.java   |  7 ++--
 .../info/portlet/InfoMessagePortlet.java      |  4 +-
 .../didYouKnow/DidYouKnowPortlet.java         |  5 +--
 .../portlets/iframe/IframePortlet.java        |  7 +---
 .../generic/portal/AbstractPortlet.java       |  6 +--
 .../gui/control/generic/portal/Portlet.java   |  6 +--
 .../EfficiencyStatementsPortlet.java          | 10 ++---
 .../org/olat/group/BusinessGroupView.java     | 10 ++---
 .../group/model/BusinessGroupViewImpl.hbm.xml | 10 ++---
 .../group/model/BusinessGroupViewImpl.java    | 29 +++++++-------
 .../org/olat/group/ui/main/BGTableItem.java   |  6 +--
 .../main/BusinessGroupTableModelWithType.java |  4 +-
 .../olat/group/ui/portlet/GroupsPortlet.java  |  2 +-
 src/main/java/org/olat/note/NotesPortlet.java |  8 ++--
 .../notifications/NotificationsPortlet.java   |  5 ++-
 .../NotificationsPortletRunController.java    |  3 --
 .../olat/portal/calendar/CalendarPortlet.java |  5 +--
 .../olat/portal/infomsg/InfoMsgPortlet.java   |  5 +--
 .../portal/quickstart/QuickstartPortlet.java  |  5 +--
 .../portal/shiblogin/ShibLoginPortlet.java    |  2 +-
 .../repository/portlet/RepositoryPortlet.java |  7 ++--
 .../postgresql/alter_8_1_x_to_8_2_0.sql       |  2 +-
 .../database/postgresql/setupDatabase.sql     | 40 +++++++++----------
 25 files changed, 90 insertions(+), 105 deletions(-)

diff --git a/src/main/java/de/bps/olat/portal/institution/InstitutionPortlet.java b/src/main/java/de/bps/olat/portal/institution/InstitutionPortlet.java
index 0fc3172f3f4..acb18592cb8 100644
--- a/src/main/java/de/bps/olat/portal/institution/InstitutionPortlet.java
+++ b/src/main/java/de/bps/olat/portal/institution/InstitutionPortlet.java
@@ -31,7 +31,6 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.portal.AbstractPortlet;
 import org.olat.core.gui.control.generic.portal.Portlet;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.id.UserConstants;
 import org.olat.core.logging.StartupException;
 import org.olat.core.util.Util;
@@ -79,12 +78,12 @@ public class InstitutionPortlet extends AbstractPortlet {
 	/**
 	 * @see org.olat.gui.control.generic.portal.AbstractPortlet#createInstance(org.olat.gui.control.WindowControl, org.olat.gui.UserRequest, java.util.Map)
 	 */
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map configuration) {
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> configuration) {
 		if (institutions == null) init();
 		InstitutionPortlet p = new InstitutionPortlet();
 		p.setName(this.getName());
 		p.setConfiguration(configuration);
-		p.setTranslator(new PackageTranslator(Util.getPackageName(InstitutionPortlet.class), ureq.getLocale()));
+		p.setTranslator(Util.createPackageTranslator(InstitutionPortlet.class, ureq.getLocale()));
 		// override css class if configured
 		String cssClass = (String) configuration.get("cssWrapperClass");
 		if (cssClass != null) p.setCssWrapperClass(cssClass);
diff --git a/src/main/java/de/bps/olat/portal/links/LinksPortlet.java b/src/main/java/de/bps/olat/portal/links/LinksPortlet.java
index 1c778fffe24..a89130f0f9c 100644
--- a/src/main/java/de/bps/olat/portal/links/LinksPortlet.java
+++ b/src/main/java/de/bps/olat/portal/links/LinksPortlet.java
@@ -85,7 +85,7 @@ public class LinksPortlet extends AbstractPortlet {
 	/**
 	 * @see org.olat.gui.control.generic.portal.AbstractPortlet#createInstance(org.olat.gui.control.WindowControl, org.olat.gui.UserRequest, java.util.Map)
 	 */
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map configuration) {
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> configuration) {
 		if(content == null) init();
 		LinksPortlet p = new LinksPortlet();
 		p.setName(this.getName());
diff --git a/src/main/java/org/olat/bookmark/BookmarksPortlet.java b/src/main/java/org/olat/bookmark/BookmarksPortlet.java
index 56f559848c8..3a3d4680490 100644
--- a/src/main/java/org/olat/bookmark/BookmarksPortlet.java
+++ b/src/main/java/org/olat/bookmark/BookmarksPortlet.java
@@ -33,7 +33,6 @@ import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.portal.AbstractPortlet;
 import org.olat.core.gui.control.generic.portal.Portlet;
 import org.olat.core.gui.control.generic.portal.PortletToolController;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 /**
@@ -50,8 +49,8 @@ public class BookmarksPortlet extends AbstractPortlet {
 	/**
 	 * @see org.olat.gui.control.generic.portal.AbstractPortlet#createInstance(org.olat.core.gui.control.WindowControl, org.olat.core.gui.UserRequest, java.util.Map)
 	 */
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map configuration) {
-		Translator translator = new PackageTranslator(Util.getPackageName(BookmarksPortlet.class), ureq.getLocale());
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> configuration) {
+		Translator translator = Util.createPackageTranslator(BookmarksPortlet.class, ureq.getLocale());
 		Portlet p = new BookmarksPortlet();
 		p.setName(this.getName());
 		p.setConfiguration(configuration);			
@@ -106,7 +105,7 @@ public class BookmarksPortlet extends AbstractPortlet {
 		}
 	}
 	
-	public PortletToolController getTools(UserRequest ureq, WindowControl wControl) {
+	public PortletToolController<Bookmark> getTools(UserRequest ureq, WindowControl wControl) {
 		if (runCtr == null ) {
 			this.runCtr = new BookmarksPortletRunController(wControl, ureq, getTranslator(), this.getName());		
 		}
diff --git a/src/main/java/org/olat/commons/info/portlet/InfoMessagePortlet.java b/src/main/java/org/olat/commons/info/portlet/InfoMessagePortlet.java
index 6db4050b03e..8adc18b7090 100644
--- a/src/main/java/org/olat/commons/info/portlet/InfoMessagePortlet.java
+++ b/src/main/java/org/olat/commons/info/portlet/InfoMessagePortlet.java
@@ -54,7 +54,7 @@ public class InfoMessagePortlet extends AbstractPortlet {
 	}
 
 	@Override
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map portletConfig) {
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> portletConfig) {
 		Translator translator = Util.createPackageTranslator(InfoMessagePortlet.class, ureq.getLocale());
 		Portlet p = new InfoMessagePortlet();
 		p.setName(getName());			
@@ -88,7 +88,7 @@ public class InfoMessagePortlet extends AbstractPortlet {
 	}
 
 	@Override
-	public PortletToolController getTools(UserRequest ureq, WindowControl wControl) {
+	public PortletToolController<InfoSubscriptionItem> getTools(UserRequest ureq, WindowControl wControl) {
 		if (runCtrl == null ) {
 			runCtrl = new InfoMessagePortletRunController(wControl, ureq, getTranslator(), getName());
 		}
diff --git a/src/main/java/org/olat/core/commons/portlets/didYouKnow/DidYouKnowPortlet.java b/src/main/java/org/olat/core/commons/portlets/didYouKnow/DidYouKnowPortlet.java
index 76e4830e36c..9ba363dbc07 100644
--- a/src/main/java/org/olat/core/commons/portlets/didYouKnow/DidYouKnowPortlet.java
+++ b/src/main/java/org/olat/core/commons/portlets/didYouKnow/DidYouKnowPortlet.java
@@ -34,7 +34,6 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.portal.AbstractPortlet;
 import org.olat.core.gui.control.generic.portal.Portlet;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.util.Util;
 
 /**
@@ -58,11 +57,11 @@ public class DidYouKnowPortlet extends AbstractPortlet {
 	/**
 	 * @see org.olat.gui.control.generic.portal.AbstractPortlet#createInstance(org.olat.core.gui.control.WindowControl, org.olat.core.gui.UserRequest, java.util.Map)
 	 */
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map configuration) {
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> configuration) {
 		Portlet p = new DidYouKnowPortlet();
 		p.setName(this.getName());
 		p.setConfiguration(configuration);
-		p.setTranslator(new PackageTranslator(Util.getPackageName(DidYouKnowPortlet.class), ureq.getLocale()));
+		p.setTranslator(Util.createPackageTranslator(DidYouKnowPortlet.class, ureq.getLocale()));
 		return p;
 	}
 
diff --git a/src/main/java/org/olat/core/commons/portlets/iframe/IframePortlet.java b/src/main/java/org/olat/core/commons/portlets/iframe/IframePortlet.java
index c0bfa12172c..433c511031d 100644
--- a/src/main/java/org/olat/core/commons/portlets/iframe/IframePortlet.java
+++ b/src/main/java/org/olat/core/commons/portlets/iframe/IframePortlet.java
@@ -28,14 +28,11 @@ package org.olat.core.commons.portlets.iframe;
 
 import java.util.Map;
 
-import org.olat.core.commons.portlets.iframe.IframePortlet;
-import org.olat.core.commons.portlets.iframe.IframePortletRunController;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.portal.AbstractPortlet;
 import org.olat.core.gui.control.generic.portal.Portlet;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.util.Util;
 
 /**
@@ -76,11 +73,11 @@ public class IframePortlet extends AbstractPortlet {
 	/**
 	 * @see org.olat.gui.control.generic.portal.AbstractPortlet#createInstance(org.olat.core.gui.control.WindowControl, org.olat.core.gui.UserRequest, java.util.Map)
 	 */
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map configuration) {
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> configuration) {
 		IframePortlet p = new IframePortlet();
 		p.setName(this.getName());
 		p.setConfiguration(configuration);
-		p.setTranslator(new PackageTranslator(Util.getPackageName(IframePortlet.class), ureq.getLocale()));
+		p.setTranslator(Util.createPackageTranslator(IframePortlet.class, ureq.getLocale()));
 		// override css class if configured
 		String cssClass = (String)configuration.get("cssWrapperClass");
 		if (cssClass != null) p.setCssWrapperClass(cssClass);
diff --git a/src/main/java/org/olat/core/gui/control/generic/portal/AbstractPortlet.java b/src/main/java/org/olat/core/gui/control/generic/portal/AbstractPortlet.java
index 0452998e907..a1be2248183 100644
--- a/src/main/java/org/olat/core/gui/control/generic/portal/AbstractPortlet.java
+++ b/src/main/java/org/olat/core/gui/control/generic/portal/AbstractPortlet.java
@@ -42,21 +42,21 @@ import org.olat.core.gui.translator.Translator;
  * @author gnaegi
  */
 public abstract class AbstractPortlet extends AbstractConfigOnOff implements Portlet {
-	private Map configuration = new HashMap();
+	private Map<String,String> configuration = new HashMap<String,String>();
 	private String name;
 	private Translator trans;
 
 	/**
 	 * @return The configuration map
 	 */
-	public Map getConfiguration() {
+	public Map<String,String> getConfiguration() {
 		return this.configuration;
 	}
 
 	/**
 	 * @param configuration The configuration map
 	 */
-	public void setConfiguration(Map configuration) {
+	public void setConfiguration(Map<String,String> configuration) {
 		this.configuration = configuration;
 	}
 
diff --git a/src/main/java/org/olat/core/gui/control/generic/portal/Portlet.java b/src/main/java/org/olat/core/gui/control/generic/portal/Portlet.java
index fb9773a07b6..e50ffffa99e 100644
--- a/src/main/java/org/olat/core/gui/control/generic/portal/Portlet.java
+++ b/src/main/java/org/olat/core/gui/control/generic/portal/Portlet.java
@@ -60,7 +60,7 @@ public interface Portlet extends ConfigOnOff,Disposable{
 	 * @param configuration
 	 * @return AbstractPortlet
 	 */
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map portletConfig);
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> portletConfig);
 
 	/**
 	 * Get the run component of this portlet
@@ -78,12 +78,12 @@ public interface Portlet extends ConfigOnOff,Disposable{
 	/**
 	 * @return The configuration map
 	 */
-	public Map getConfiguration();
+	public Map<String,String> getConfiguration();
 
 	/**
 	 * @param configuration The configuration map
 	 */
-	public void setConfiguration(Map configuration);
+	public void setConfiguration(Map<String,String> configuration);
 
 	/**
 	 * @return The unique name of this portlet. 
diff --git a/src/main/java/org/olat/course/assessment/EfficiencyStatementsPortlet.java b/src/main/java/org/olat/course/assessment/EfficiencyStatementsPortlet.java
index 707422b9b40..f7a5777966c 100644
--- a/src/main/java/org/olat/course/assessment/EfficiencyStatementsPortlet.java
+++ b/src/main/java/org/olat/course/assessment/EfficiencyStatementsPortlet.java
@@ -29,15 +29,13 @@ import java.util.Map;
 
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
-import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.portal.AbstractPortlet;
-import org.olat.core.gui.control.generic.portal.AbstractPortletRunController;
 import org.olat.core.gui.control.generic.portal.Portlet;
 import org.olat.core.gui.control.generic.portal.PortletToolController;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
+import org.olat.course.assessment.model.UserEfficiencyStatementLight;
 
 /**
  * Description:<br>
@@ -52,8 +50,8 @@ public class EfficiencyStatementsPortlet extends AbstractPortlet {
 	/**
 	 * @see org.olat.gui.control.generic.portal.AbstractPortlet#createInstance(org.olat.core.gui.control.WindowControl, org.olat.core.gui.UserRequest, java.util.Map)
 	 */
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map configuration) {
-		Translator translator = new PackageTranslator(Util.getPackageName(EfficiencyStatementsPortlet.class), ureq.getLocale());
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> configuration) {
+		Translator translator = Util.createPackageTranslator(EfficiencyStatementsPortlet.class, ureq.getLocale());
 		Portlet p = new EfficiencyStatementsPortlet();
 		p.setName(this.getName());
 		p.setConfiguration(configuration);
@@ -108,7 +106,7 @@ public class EfficiencyStatementsPortlet extends AbstractPortlet {
 		}
 	}
 	
-	public PortletToolController getTools(UserRequest ureq, WindowControl wControl) {
+	public PortletToolController<UserEfficiencyStatementLight> getTools(UserRequest ureq, WindowControl wControl) {
 		if (runCtr == null) {
 			this.runCtr = new EfficiencyStatementsPortletRunController(wControl, ureq, getTranslator(), this.getName());
 		}
diff --git a/src/main/java/org/olat/group/BusinessGroupView.java b/src/main/java/org/olat/group/BusinessGroupView.java
index 271b0dced2c..c7627711fb9 100644
--- a/src/main/java/org/olat/group/BusinessGroupView.java
+++ b/src/main/java/org/olat/group/BusinessGroupView.java
@@ -50,15 +50,15 @@ public interface BusinessGroupView extends BusinessGroupShort, Persistable, Crea
 	public OLATResource getResource();
 	
 	
-	public int getNumOfRelations();
+	public long getNumOfRelations();
 	
-	public int getNumOfOwners();
+	public long getNumOfOwners();
 	
-	public int getNumOfParticipants();
+	public long getNumOfParticipants();
 	
-	public int getNumOfOffers();
+	public long getNumOfOffers();
 	
-	public int getNumOfValidOffers();
+	public long getNumOfValidOffers();
 
 	/**
 	 * The BusinessGroup has 1..n Owners acting as <i>administrators </i>.
diff --git a/src/main/java/org/olat/group/model/BusinessGroupViewImpl.hbm.xml b/src/main/java/org/olat/group/model/BusinessGroupViewImpl.hbm.xml
index d5427dcf3ba..49fa73c1c10 100644
--- a/src/main/java/org/olat/group/model/BusinessGroupViewImpl.hbm.xml
+++ b/src/main/java/org/olat/group/model/BusinessGroupViewImpl.hbm.xml
@@ -21,11 +21,11 @@
 		<property name="waitingListEnabled" type="boolean" column="waitinglist_enabled" unique="false" not-null="false"/>	
 		<property name="autoCloseRanksEnabled" type="boolean" column="autocloseranks_enabled" unique="false" not-null="false"/>	
 		<!--  statistics informations -->
-  		<property name="numOfOwners" column="num_of_owners" type="integer" />
-  		<property name="numOfParticipants" column="num_of_participants" type="integer" />
-  		<property name="numOfRelations" column="num_of_relations" type="integer" />
-  		<property name="numOfOffers" column="num_of_offers" type="integer" />
-  		<property name="numOfValidOffers" column="num_of_valid_offers" type="integer" />
+  		<property name="numOfOwners" column="num_of_owners" type="long" />
+  		<property name="numOfParticipants" column="num_of_participants" type="long" />
+  		<property name="numOfRelations" column="num_of_relations" type="long" />
+  		<property name="numOfOffers" column="num_of_offers" type="long" />
+  		<property name="numOfValidOffers" column="num_of_valid_offers" type="long" />
 
 		<many-to-one name="resource" class="org.olat.resource.OLATResourceImpl"
     		outer-join="true" cascade="none" lazy="false">  
diff --git a/src/main/java/org/olat/group/model/BusinessGroupViewImpl.java b/src/main/java/org/olat/group/model/BusinessGroupViewImpl.java
index 361a004649e..e408b880dd0 100644
--- a/src/main/java/org/olat/group/model/BusinessGroupViewImpl.java
+++ b/src/main/java/org/olat/group/model/BusinessGroupViewImpl.java
@@ -50,32 +50,32 @@ public class BusinessGroupViewImpl extends PersistentObject implements BusinessG
 	private Boolean autoCloseRanksEnabled;
 	private Date lastModified;
 
-	private int numOfOwners;
-	private int numOfParticipants;
-	private int numOfRelations;
-	private int numOfOffers;
-	private int numOfValidOffers;
+	private long numOfOwners;
+	private long numOfParticipants;
+	private long numOfRelations;
+	private long numOfOffers;
+	private long numOfValidOffers;
 
 	@Override
-	public int getNumOfRelations() {
+	public long getNumOfRelations() {
 		return numOfRelations;
 	}
 
-	public void setNumOfRelations(int numOfRelations) {
+	public void setNumOfRelations(long numOfRelations) {
 		this.numOfRelations = numOfRelations;
 	}
 
 	@Override
-	public int getNumOfOwners() {
+	public long getNumOfOwners() {
 		return numOfOwners;
 	}
 
-	public void setNumOfOwners(int numOfOwners) {
+	public void setNumOfOwners(long numOfOwners) {
 		this.numOfOwners = numOfOwners;
 	}
 
 	@Override
-	public int getNumOfParticipants() {
+	public long getNumOfParticipants() {
 		return numOfParticipants;
 	}
 
@@ -83,22 +83,21 @@ public class BusinessGroupViewImpl extends PersistentObject implements BusinessG
 		this.numOfParticipants = numOfParticipants;
 	}
 
-
 	@Override
-	public int getNumOfOffers() {
+	public long getNumOfOffers() {
 		return numOfOffers;
 	}
 	
-	public void setNumOfOffers(int numOfOffers) {
+	public void setNumOfOffers(long numOfOffers) {
 		this.numOfOffers = numOfOffers;
 	}
 
 	@Override
-	public int getNumOfValidOffers() {
+	public long getNumOfValidOffers() {
 		return numOfValidOffers;
 	}
 
-	public void setNumOfValidOffers(int numOfValidOffers) {
+	public void setNumOfValidOffers(long numOfValidOffers) {
 		this.numOfValidOffers = numOfValidOffers;
 	}
 
diff --git a/src/main/java/org/olat/group/ui/main/BGTableItem.java b/src/main/java/org/olat/group/ui/main/BGTableItem.java
index 4825a804175..31ff6c09249 100644
--- a/src/main/java/org/olat/group/ui/main/BGTableItem.java
+++ b/src/main/java/org/olat/group/ui/main/BGTableItem.java
@@ -82,7 +82,7 @@ public class BGTableItem {
 		return businessGroup.getName();
 	}
 	
-	public int getNumOfParticipants() {
+	public long getNumOfParticipants() {
 		return businessGroup.getNumOfParticipants();
 	}
 	
@@ -186,7 +186,7 @@ public class BGTableItem {
 		private final Long key;
 		private final String name;
 		private final Integer maxParticipants;
-		private int numOfParticipants;
+		private long numOfParticipants;
 		private final boolean waitingListEnabled;
 		
 		public BGShort(BusinessGroup group) {
@@ -228,7 +228,7 @@ public class BGTableItem {
 			return maxParticipants;
 		}
 
-		public int getNumOfParticipants() {
+		public long getNumOfParticipants() {
 			return numOfParticipants;
 		}
 		
diff --git a/src/main/java/org/olat/group/ui/main/BusinessGroupTableModelWithType.java b/src/main/java/org/olat/group/ui/main/BusinessGroupTableModelWithType.java
index 690e58433d4..132ad1f7ca9 100644
--- a/src/main/java/org/olat/group/ui/main/BusinessGroupTableModelWithType.java
+++ b/src/main/java/org/olat/group/ui/main/BusinessGroupTableModelWithType.java
@@ -120,8 +120,8 @@ public class BusinessGroupTableModelWithType extends DefaultTableDataModel<BGTab
 			case freePlaces: {
 				Integer maxParticipants = wrapped.getMaxParticipants();
 				if(maxParticipants != null && maxParticipants.intValue() > 0) {
-					int free = maxParticipants - wrapped.getNumOfParticipants();
-					return Integer.toString(free);
+					long free = maxParticipants - wrapped.getNumOfParticipants();
+					return Long.toString(free);
 				}
 				return "&infin;";
 			}
diff --git a/src/main/java/org/olat/group/ui/portlet/GroupsPortlet.java b/src/main/java/org/olat/group/ui/portlet/GroupsPortlet.java
index e61d5ae3e2f..889294b8301 100644
--- a/src/main/java/org/olat/group/ui/portlet/GroupsPortlet.java
+++ b/src/main/java/org/olat/group/ui/portlet/GroupsPortlet.java
@@ -52,7 +52,7 @@ public class GroupsPortlet extends AbstractPortlet {
 	 * @see org.olat.gui.control.generic.portal.AbstractPortlet#createInstance(org.olat.core.gui.control.WindowControl,
 	 *      org.olat.core.gui.UserRequest, java.util.Map)
 	 */
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map configuration) {
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> configuration) {
 		Translator translator = Util.createPackageTranslator(BGControllerFactory.class, ureq.getLocale());
 		Portlet p = new GroupsPortlet();
 		p.setName(this.getName());
diff --git a/src/main/java/org/olat/note/NotesPortlet.java b/src/main/java/org/olat/note/NotesPortlet.java
index d2679de0ab1..db4576b92f5 100644
--- a/src/main/java/org/olat/note/NotesPortlet.java
+++ b/src/main/java/org/olat/note/NotesPortlet.java
@@ -33,7 +33,6 @@ import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.portal.AbstractPortlet;
 import org.olat.core.gui.control.generic.portal.Portlet;
 import org.olat.core.gui.control.generic.portal.PortletToolController;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
 
@@ -50,9 +49,8 @@ public class NotesPortlet extends AbstractPortlet {
 	/**
 	 * @see org.olat.gui.control.generic.portal.AbstractPortlet#createInstance(org.olat.core.gui.control.WindowControl, org.olat.core.gui.UserRequest, java.util.Map)
 	 */
-	@SuppressWarnings("unused")
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map configuration) {
-		Translator translator = new PackageTranslator(Util.getPackageName(NotesPortlet.class), ureq.getLocale());
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> configuration) {
+		Translator translator = Util.createPackageTranslator(NotesPortlet.class, ureq.getLocale());
 		Portlet p = new NotesPortlet();
 		p.setName(this.getName());
 		p.setConfiguration(configuration);
@@ -107,7 +105,7 @@ public class NotesPortlet extends AbstractPortlet {
 		}
 	}
 
-	public PortletToolController getTools(UserRequest ureq, WindowControl wControl) {
+	public PortletToolController<Note> getTools(UserRequest ureq, WindowControl wControl) {
 		if (runCtr == null) {
 			this.runCtr = new NotesPortletRunController(wControl, ureq, getTranslator(), this.getName());
 		}
diff --git a/src/main/java/org/olat/notifications/NotificationsPortlet.java b/src/main/java/org/olat/notifications/NotificationsPortlet.java
index 705eab4e49d..ef687a4ec4f 100644
--- a/src/main/java/org/olat/notifications/NotificationsPortlet.java
+++ b/src/main/java/org/olat/notifications/NotificationsPortlet.java
@@ -35,6 +35,7 @@ import org.olat.core.gui.control.generic.portal.Portlet;
 import org.olat.core.gui.control.generic.portal.PortletToolController;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
+import org.olat.core.util.notifications.Subscriber;
 
 /**
  * Description:<br>
@@ -49,7 +50,7 @@ public class NotificationsPortlet extends AbstractPortlet {
 	/**
 	 * @see org.olat.gui.control.generic.portal.AbstractPortlet#createInstance(org.olat.core.gui.control.WindowControl, org.olat.core.gui.UserRequest, java.util.Map)
 	 */
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map configuration) {
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> configuration) {
 		Translator translator = Util.createPackageTranslator(NotificationsPortlet.class, ureq.getLocale());
 		Portlet p = new NotificationsPortlet();
 		p.setName(this.getName());
@@ -105,7 +106,7 @@ public class NotificationsPortlet extends AbstractPortlet {
 		}
 	}
 	
-	public PortletToolController getTools(UserRequest ureq, WindowControl wControl) {
+	public PortletToolController<Subscriber> getTools(UserRequest ureq, WindowControl wControl) {
 		if (runCtr == null) {
 			this.runCtr = new NotificationsPortletRunController(wControl, ureq, getTranslator(), this.getName());
 		}
diff --git a/src/main/java/org/olat/notifications/NotificationsPortletRunController.java b/src/main/java/org/olat/notifications/NotificationsPortletRunController.java
index 0d1f75d6d97..8cd9cd49555 100644
--- a/src/main/java/org/olat/notifications/NotificationsPortletRunController.java
+++ b/src/main/java/org/olat/notifications/NotificationsPortletRunController.java
@@ -36,7 +36,6 @@ import java.util.Map;
 import org.olat.ControllerFactory;
 import org.olat.NewControllerFactory;
 import org.olat.commons.calendar.ui.CalendarController;
-import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.Windows;
 import org.olat.core.gui.components.Component;
@@ -74,9 +73,7 @@ import org.olat.core.util.notifications.Subscriber;
 import org.olat.core.util.notifications.SubscriptionInfo;
 import org.olat.core.util.resource.OresHelper;
 import org.olat.course.CourseModule;
-import org.olat.group.BusinessGroup;
 import org.olat.group.BusinessGroupModule;
-import org.olat.group.BusinessGroupService;
 
 /**
  * Description:<br>
diff --git a/src/main/java/org/olat/portal/calendar/CalendarPortlet.java b/src/main/java/org/olat/portal/calendar/CalendarPortlet.java
index 7558e7853f9..430f5a728e7 100644
--- a/src/main/java/org/olat/portal/calendar/CalendarPortlet.java
+++ b/src/main/java/org/olat/portal/calendar/CalendarPortlet.java
@@ -37,7 +37,6 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.portal.AbstractPortlet;
 import org.olat.core.gui.control.generic.portal.Portlet;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.util.Util;
 
 /**
@@ -56,11 +55,11 @@ public class CalendarPortlet extends AbstractPortlet {
 	/**
 	 * @see org.olat.gui.control.generic.portal.AbstractPortlet#createInstance(org.olat.core.gui.control.WindowControl, org.olat.core.gui.UserRequest, java.util.Map)
 	 */
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map configuration) {
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> configuration) {
 		CalendarPortlet p = new CalendarPortlet();
 		p.setName(this.getName());
 		p.setConfiguration(configuration);
-		p.setTranslator(new PackageTranslator(Util.getPackageName(CalendarPortlet.class), ureq.getLocale()));
+		p.setTranslator(Util.createPackageTranslator(CalendarPortlet.class, ureq.getLocale()));
 		p.setLocale(ureq.getLocale());
 		return p;
 	}
diff --git a/src/main/java/org/olat/portal/infomsg/InfoMsgPortlet.java b/src/main/java/org/olat/portal/infomsg/InfoMsgPortlet.java
index 84e4ae702c6..fa022a0560c 100644
--- a/src/main/java/org/olat/portal/infomsg/InfoMsgPortlet.java
+++ b/src/main/java/org/olat/portal/infomsg/InfoMsgPortlet.java
@@ -33,7 +33,6 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.portal.AbstractPortlet;
 import org.olat.core.gui.control.generic.portal.Portlet;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.util.Util;
 
 /**
@@ -50,11 +49,11 @@ public class InfoMsgPortlet extends AbstractPortlet {
 	/**
 	 * @see org.olat.gui.control.generic.portal.AbstractPortlet#createInstance(org.olat.gui.control.WindowControl, org.olat.gui.UserRequest, java.util.Map)
 	 */
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map configuration) {
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> configuration) {
 		Portlet p = new InfoMsgPortlet();
 		p.setName(this.getName());
 		p.setConfiguration(configuration);
-		p.setTranslator(new PackageTranslator(Util.getPackageName(InfoMsgPortlet.class), ureq.getLocale()));
+		p.setTranslator(Util.createPackageTranslator(InfoMsgPortlet.class, ureq.getLocale()));
 		return p;
 	}
 
diff --git a/src/main/java/org/olat/portal/quickstart/QuickstartPortlet.java b/src/main/java/org/olat/portal/quickstart/QuickstartPortlet.java
index bc447508b33..bfe4e77080d 100644
--- a/src/main/java/org/olat/portal/quickstart/QuickstartPortlet.java
+++ b/src/main/java/org/olat/portal/quickstart/QuickstartPortlet.java
@@ -33,7 +33,6 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.portal.AbstractPortlet;
 import org.olat.core.gui.control.generic.portal.Portlet;
-import org.olat.core.gui.translator.PackageTranslator;
 import org.olat.core.util.Util;
 
 /**
@@ -49,11 +48,11 @@ public class QuickstartPortlet extends AbstractPortlet {
 	/**
 	 * @see org.olat.gui.control.generic.portal.AbstractPortlet#createInstance(org.olat.core.gui.control.WindowControl, org.olat.core.gui.UserRequest, java.util.Map)
 	 */
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map configuration) {
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> configuration) {
 		Portlet p = new QuickstartPortlet();
 		p.setName(this.getName());
 		p.setConfiguration(configuration);
-		p.setTranslator(new PackageTranslator(Util.getPackageName(QuickstartPortlet.class), ureq.getLocale()));
+		p.setTranslator(Util.createPackageTranslator(QuickstartPortlet.class, ureq.getLocale()));
 		return p;
 	}
 
diff --git a/src/main/java/org/olat/portal/shiblogin/ShibLoginPortlet.java b/src/main/java/org/olat/portal/shiblogin/ShibLoginPortlet.java
index 9546de65f45..7b9757465a4 100644
--- a/src/main/java/org/olat/portal/shiblogin/ShibLoginPortlet.java
+++ b/src/main/java/org/olat/portal/shiblogin/ShibLoginPortlet.java
@@ -93,7 +93,7 @@ public class ShibLoginPortlet extends AbstractPortlet {
 	/**
 	 * @see org.olat.gui.control.generic.portal.AbstractPortlet#createInstance(org.olat.gui.control.WindowControl, org.olat.gui.UserRequest, java.util.Map)
 	 */
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map configuration) {
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> configuration) {
 		if (!ShibbolethModule.isEnableShibbolethLogins())
 			throw new OLATSecurityException("Got shibboleth wayf form request but shibboleth is not enabled.");		
 		ShibLoginPortlet p = new ShibLoginPortlet(config);
diff --git a/src/main/java/org/olat/repository/portlet/RepositoryPortlet.java b/src/main/java/org/olat/repository/portlet/RepositoryPortlet.java
index db5fa15478d..5d29364fd2b 100644
--- a/src/main/java/org/olat/repository/portlet/RepositoryPortlet.java
+++ b/src/main/java/org/olat/repository/portlet/RepositoryPortlet.java
@@ -30,6 +30,7 @@ import org.olat.core.gui.control.generic.portal.Portlet;
 import org.olat.core.gui.control.generic.portal.PortletToolController;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.util.Util;
+import org.olat.repository.RepositoryEntryShort;
 
 /**
  * Description:<br>
@@ -44,14 +45,14 @@ public class RepositoryPortlet extends AbstractPortlet {
 	private RepositoryPortletRunController runCtr;
 	private static final String CONFIG_KEY_ROLE = "role";
 	private static final String CONFIG_KEY_ROLE_STUDENT = "student";
-	private static final String CONFIG_KEY_ROLE_TEACHER = "teacher";
+	protected static final String CONFIG_KEY_ROLE_TEACHER = "teacher";
 	
 	
 	/**
 	 * @see org.olat.gui.control.generic.portal.AbstractPortlet#createInstance(org.olat.core.gui.control.WindowControl,
 	 *      org.olat.core.gui.UserRequest, java.util.Map)
 	 */
-	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map configuration) {
+	public Portlet createInstance(WindowControl wControl, UserRequest ureq, Map<String,String> configuration) {
 		Translator translator = Util.createPackageTranslator(RepositoryPortlet.class, ureq.getLocale());
 		Portlet p = new RepositoryPortlet();
 		p.setName(this.getName());
@@ -121,7 +122,7 @@ public class RepositoryPortlet extends AbstractPortlet {
 		}
 	}
 	
-	public PortletToolController getTools(UserRequest ureq, WindowControl wControl) {
+	public PortletToolController<RepositoryEntryShort> getTools(UserRequest ureq, WindowControl wControl) {
 		//portlet was not yet visible
 		if ( runCtr == null ) {
 			boolean studentView = CONFIG_KEY_ROLE_STUDENT.equals(getConfiguration().get(CONFIG_KEY_ROLE));
diff --git a/src/main/resources/database/postgresql/alter_8_1_x_to_8_2_0.sql b/src/main/resources/database/postgresql/alter_8_1_x_to_8_2_0.sql
index 1cabe48a32d..c12e69e1f00 100644
--- a/src/main/resources/database/postgresql/alter_8_1_x_to_8_2_0.sql
+++ b/src/main/resources/database/postgresql/alter_8_1_x_to_8_2_0.sql
@@ -184,7 +184,7 @@ create index paypal_pay_key_idx on o_ac_paypal_transaction (pay_key);
 create index paypal_pay_trx_id_idx on o_ac_paypal_transaction (ipn_transaction_id);
 create index paypal_pay_s_trx_id_idx on o_ac_paypal_transaction (ipn_sender_transaction_id);
 
-create table  if not exists o_ac_reservation (
+create table o_ac_reservation (
    reservation_id int8 NOT NULL,
    creationdate timestamp,
    lastmodified timestamp,
diff --git a/src/main/resources/database/postgresql/setupDatabase.sql b/src/main/resources/database/postgresql/setupDatabase.sql
index fed48bb3bbe..b75881276ca 100644
--- a/src/main/resources/database/postgresql/setupDatabase.sql
+++ b/src/main/resources/database/postgresql/setupDatabase.sql
@@ -525,7 +525,7 @@ create table o_info_message (
 
 create table o_co_db_entry (
    id int8 not null,
-   version int8 not null,
+   version int4 not null,
    lastmodified timestamp,
    creationdate timestamp,
    courseid int8,
@@ -797,7 +797,7 @@ create table o_ac_transaction (
 	primary key (transaction_id)
 );
 
-create table  if not exists o_ac_reservation (
+create table o_ac_reservation (
    reservation_id int8 NOT NULL,
    creationdate timestamp,
    lastmodified timestamp,
@@ -809,32 +809,32 @@ create table  if not exists o_ac_reservation (
 
 create table o_ac_paypal_transaction (
    transaction_id int8 not null,
-   version int8 not null,
+   version int4 not null,
    creationdate timestamp,
    ref_no varchar(255),
    order_id int8 not null,
    order_part_id int8 not null,
    method_id int8 not null,
    success_uuid varchar(32) not null,
-	 cancel_uuid varchar(32) not null,
-	 amount_amount DECIMAL,
-	 amount_currency_code VARCHAR(3),
+   cancel_uuid varchar(32) not null,
+   amount_amount DECIMAL,
+   amount_currency_code VARCHAR(3),
    pay_response_date timestamp,
    pay_key varchar(255),
-	 ack varchar(255),
-	 build varchar(255),
-	 coorelation_id varchar(255),
-	 payment_exec_status varchar(255),
-	 ipn_transaction_id varchar(255),
-	 ipn_transaction_status varchar(255),
-	 ipn_sender_transaction_id varchar(255),
-	 ipn_sender_transaction_status varchar(255),
-	 ipn_sender_email varchar(255),
-	 ipn_verify_sign varchar(255),
-	 ipn_pending_reason varchar(255),
-	 trx_status VARCHAR(32) not null default 'NEW',
-	 trx_amount DECIMAL,
-	 trx_currency_code VARCHAR(3),
+   ack varchar(255),
+   build varchar(255),
+   coorelation_id varchar(255),
+   payment_exec_status varchar(255),
+   ipn_transaction_id varchar(255),
+   ipn_transaction_status varchar(255),
+   ipn_sender_transaction_id varchar(255),
+   ipn_sender_transaction_status varchar(255),
+   ipn_sender_email varchar(255),
+   ipn_verify_sign varchar(255),
+   ipn_pending_reason varchar(255),
+   trx_status VARCHAR(32) not null default 'NEW',
+   trx_amount DECIMAL,
+   trx_currency_code VARCHAR(3),
    primary key (transaction_id)
 );
 
-- 
GitLab