From 254972dd055cdecb7a962e1162fe41a5ef4ae6bc Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Fri, 23 May 2014 08:45:58 +0200
Subject: [PATCH] OO-990:  improve reliability of import due to lacking of
 initial author

---
 .../olat/course/nodes/AbstractFeedCourseNode.java  |  4 ++--
 .../java/org/olat/course/nodes/CPCourseNode.java   |  6 +++---
 .../org/olat/course/nodes/IQSELFCourseNode.java    |  4 ++--
 .../org/olat/course/nodes/IQSURVCourseNode.java    |  4 ++--
 .../org/olat/course/nodes/IQTESTCourseNode.java    |  4 ++--
 .../org/olat/course/nodes/PortfolioCourseNode.java |  4 ++--
 .../org/olat/course/nodes/ScormCourseNode.java     |  4 ++--
 .../java/org/olat/course/nodes/WikiCourseNode.java |  4 ++--
 .../org/olat/course/nodes/cp/CPEditController.java |  7 ++-----
 .../org/olat/course/nodes/cp/CPRunController.java  |  3 +--
 .../ImportGlossaryReferencesController.java        |  2 +-
 .../ImportSharedfolderReferencesController.java    |  4 ++--
 .../ims/qti/repository/handlers/QTIHandler.java    |  4 ++--
 .../qti/repository/handlers/QTISurveyHandler.java  |  4 ++--
 .../qti/repository/handlers/QTITestHandler.java    |  4 ++--
 .../olat/portfolio/manager/EPStructureManager.java |  2 +-
 .../org/olat/repository/RepositoryService.java     |  4 ++--
 .../org/olat/repository/handlers/BlogHandler.java  |  8 ++++----
 .../olat/repository/handlers/CourseHandler.java    | 14 +++++++-------
 .../olat/repository/handlers/GlossaryHandler.java  |  8 ++++----
 .../org/olat/repository/handlers/ImsCPHandler.java |  8 ++++----
 .../olat/repository/handlers/PodcastHandler.java   |  8 ++++----
 .../olat/repository/handlers/PortfolioHandler.java |  8 ++++----
 .../repository/handlers/RepositoryHandler.java     |  5 +++--
 .../olat/repository/handlers/SCORMCPHandler.java   |  6 +++---
 .../repository/handlers/SharedFolderHandler.java   |  8 ++++----
 .../repository/handlers/WebDocumentHandler.java    |  6 +++---
 .../org/olat/repository/handlers/WikiHandler.java  | 10 +++++-----
 .../repository/manager/RepositoryServiceImpl.java  |  8 +++++---
 .../ui/author/CopyRepositoryEntryController.java   |  4 ++--
 .../ui/author/ImportRepositoryEntryController.java |  4 ++--
 .../repository/RepositoryEntriesResource.java      |  2 +-
 .../repository/course/CoursesWebService.java       |  8 ++++----
 .../org/olat/portfolio/EPFrontendManagerTest.java  |  2 +-
 .../repository/RepositoryManagerQueryTest.java     |  4 ++--
 .../org/olat/repository/RepositoryManagerTest.java | 10 +++++-----
 .../manager/RepositoryEntryStatisticsDAOTest.java  |  4 ++--
 .../manager/RepositoryServiceImplTest.java         |  4 ++--
 src/test/java/org/olat/test/JunitTestHelper.java   |  2 +-
 39 files changed, 104 insertions(+), 105 deletions(-)

diff --git a/src/main/java/org/olat/course/nodes/AbstractFeedCourseNode.java b/src/main/java/org/olat/course/nodes/AbstractFeedCourseNode.java
index e2b7c36ad33..e29a34ef6a9 100644
--- a/src/main/java/org/olat/course/nodes/AbstractFeedCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/AbstractFeedCourseNode.java
@@ -239,8 +239,8 @@ public abstract class AbstractFeedCourseNode extends GenericCourseNode {
 	public void importNode(RepositoryHandler handler, File importDirectory, Identity owner, Locale locale) {
 		RepositoryEntryImportExport rie = new RepositoryEntryImportExport(importDirectory, getIdent());
 		if (rie.anyExportedPropertiesAvailable()) {
-			RepositoryEntry re = handler.importResource(owner, rie.getDisplayName(), rie.getDescription(),
-				false, locale, rie.importGetExportedFile(), null);
+			RepositoryEntry re = handler.importResource(owner, rie.getInitialAuthor(), rie.getDisplayName(),
+				rie.getDescription(), false, locale, rie.importGetExportedFile(), null);
 			FeedNodeEditController.setReference(re, getModuleConfiguration());
 		}
 	}
diff --git a/src/main/java/org/olat/course/nodes/CPCourseNode.java b/src/main/java/org/olat/course/nodes/CPCourseNode.java
index 494607a3060..372bc5be607 100644
--- a/src/main/java/org/olat/course/nodes/CPCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/CPCourseNode.java
@@ -101,7 +101,7 @@ public class CPCourseNode extends AbstractAccessableCourseNode {
 		NodeRunConstructionResult ncr;
 		updateModuleConfigDefaults(false);
 		OLATResourceable ores = OresHelper.createOLATResourceableInstance(ICourse.class, userCourseEnv.getCourseEnvironment().getCourseResourceableId());
-		CPRunController cprunC = new CPRunController(getModuleConfiguration(), ureq, userCourseEnv, wControl, this, nodecmd, ores);
+		CPRunController cprunC = new CPRunController(getModuleConfiguration(), ureq, wControl, this, nodecmd, ores);
 		ncr = cprunC.createNodeRunConstructionResult(ureq);
 		return ncr;
 	}
@@ -294,8 +294,8 @@ public class CPCourseNode extends AbstractAccessableCourseNode {
 		RepositoryEntryImportExport rie = new RepositoryEntryImportExport(importDirectory, getIdent());
 		if(rie.anyExportedPropertiesAvailable()) {
 			RepositoryHandler handler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(ImsCPFileResource.TYPE_NAME);
-			RepositoryEntry re = handler.importResource(owner, rie.getDisplayName(), rie.getDescription(),
-					false, locale, rie.importGetExportedFile(), null);
+			RepositoryEntry re = handler.importResource(owner, rie.getInitialAuthor(), rie.getDisplayName(),
+					rie.getDescription(), false, locale, rie.importGetExportedFile(), null);
 			CPEditController.setCPReference(re, getModuleConfiguration());
 		}
 	}
diff --git a/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java b/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java
index abb1963db90..840ee2f70de 100644
--- a/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java
@@ -249,8 +249,8 @@ public class IQSELFCourseNode extends AbstractAccessableCourseNode implements Se
 		RepositoryEntryImportExport rie = new RepositoryEntryImportExport(importDirectory, getIdent());
 		if(rie.anyExportedPropertiesAvailable()) {
 			RepositoryHandler handler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(TestFileResource.TYPE_NAME);
-			RepositoryEntry re = handler.importResource(owner, rie.getDisplayName(), rie.getDescription(),
-				false, locale, rie.importGetExportedFile(), null);
+			RepositoryEntry re = handler.importResource(owner, rie.getInitialAuthor(), rie.getDisplayName(),
+				rie.getDescription(), false, locale, rie.importGetExportedFile(), null);
 			IQEditController.setIQReference(re, getModuleConfiguration());
 		}
 	}
diff --git a/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java b/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java
index 9a835de9f83..383acd94a2d 100644
--- a/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java
@@ -293,8 +293,8 @@ public class IQSURVCourseNode extends AbstractAccessableCourseNode implements QT
 		RepositoryEntryImportExport rie = new RepositoryEntryImportExport(importDirectory, getIdent());
 		if(rie.anyExportedPropertiesAvailable()) {
 			RepositoryHandler handler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(SurveyFileResource.TYPE_NAME);
-			RepositoryEntry re = handler.importResource(owner, rie.getDisplayName(), rie.getDescription(),
-				false, locale, rie.importGetExportedFile(), null);
+			RepositoryEntry re = handler.importResource(owner, rie.getInitialAuthor(), rie.getDisplayName(),
+				rie.getDescription(), false, locale, rie.importGetExportedFile(), null);
 			IQEditController.setIQReference(re, getModuleConfiguration());
 		}
 	}
diff --git a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java
index 8f016efa494..7151b9e6781 100644
--- a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java
@@ -474,8 +474,8 @@ public class IQTESTCourseNode extends AbstractAccessableCourseNode implements As
 		RepositoryEntryImportExport rie = new RepositoryEntryImportExport(importDirectory, getIdent());
 		if(rie.anyExportedPropertiesAvailable()) {
 			RepositoryHandler handler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(TestFileResource.TYPE_NAME);
-			RepositoryEntry re = handler.importResource(owner, rie.getDisplayName(), rie.getDescription(),
-				false, locale, rie.importGetExportedFile(), null);
+			RepositoryEntry re = handler.importResource(owner, rie.getInitialAuthor(), rie.getDisplayName(),
+				rie.getDescription(), false, locale, rie.importGetExportedFile(), null);
 			IQEditController.setIQReference(re, getModuleConfiguration());
 		}
 	}
diff --git a/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java b/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java
index 0497e41d0d3..7af0faa92ea 100644
--- a/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java
@@ -426,8 +426,8 @@ public class PortfolioCourseNode extends AbstractAccessableCourseNode implements
 		RepositoryEntryImportExport rie = new RepositoryEntryImportExport(importDirectory, getIdent());
 		if (rie.anyExportedPropertiesAvailable()) {
 			RepositoryHandler handler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(EPTemplateMapResource.TYPE_NAME);
-			RepositoryEntry re = handler.importResource(owner, rie.getDisplayName(), rie.getDescription(),
-					false, locale, rie.importGetExportedFile(), null);
+			RepositoryEntry re = handler.importResource(owner, rie.getInitialAuthor(), rie.getDisplayName(),
+					rie.getDescription(), false, locale, rie.importGetExportedFile(), null);
 			if(re != null) {
 				EPFrontendManager ePFMgr = CoreSpringFactory.getImpl(EPFrontendManager.class);
 				PortfolioStructure map = ePFMgr.loadPortfolioStructure(re.getOlatResource());
diff --git a/src/main/java/org/olat/course/nodes/ScormCourseNode.java b/src/main/java/org/olat/course/nodes/ScormCourseNode.java
index afc077a4f65..eaf3e8081ea 100644
--- a/src/main/java/org/olat/course/nodes/ScormCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/ScormCourseNode.java
@@ -329,8 +329,8 @@ public class ScormCourseNode extends AbstractAccessableCourseNode implements Ass
 		RepositoryEntryImportExport rie = new RepositoryEntryImportExport(importDirectory, getIdent());
 		if(rie.anyExportedPropertiesAvailable()) {
 			RepositoryHandler handler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(ScormCPFileResource.TYPE_NAME);
-			RepositoryEntry re = handler.importResource(owner, rie.getDisplayName(), rie.getDescription(),
-				false, locale, rie.importGetExportedFile(), null);
+			RepositoryEntry re = handler.importResource(owner, rie.getInitialAuthor(), rie.getDisplayName(),
+				rie.getDescription(), false, locale, rie.importGetExportedFile(), null);
 			ScormEditController.setScormCPReference(re, getModuleConfiguration());
 		}
 	}
diff --git a/src/main/java/org/olat/course/nodes/WikiCourseNode.java b/src/main/java/org/olat/course/nodes/WikiCourseNode.java
index 32e07ea522f..e7823c1a614 100644
--- a/src/main/java/org/olat/course/nodes/WikiCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/WikiCourseNode.java
@@ -212,8 +212,8 @@ public class WikiCourseNode extends AbstractAccessableCourseNode {
 		RepositoryEntryImportExport rie = new RepositoryEntryImportExport(importDirectory, getIdent());
 		if(rie.anyExportedPropertiesAvailable()) {
 			RepositoryHandler handler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(WikiResource.TYPE_NAME);
-			RepositoryEntry re = handler.importResource(owner, rie.getDisplayName(), rie.getDescription(),
-				false, locale, rie.importGetExportedFile(), null);
+			RepositoryEntry re = handler.importResource(owner, rie.getInitialAuthor(), rie.getDisplayName(),
+				rie.getDescription(), false, locale, rie.importGetExportedFile(), null);
 			WikiEditController.setWikiRepoReference(re, getModuleConfiguration());
 		}
 	}
diff --git a/src/main/java/org/olat/course/nodes/cp/CPEditController.java b/src/main/java/org/olat/course/nodes/cp/CPEditController.java
index 7f15ca25504..f0449363f9e 100644
--- a/src/main/java/org/olat/course/nodes/cp/CPEditController.java
+++ b/src/main/java/org/olat/course/nodes/cp/CPEditController.java
@@ -168,11 +168,8 @@ public class CPEditController extends ActivateableTabbableDefaultController impl
 		}
 		
 		Boolean cpMenu = config.getBooleanEntry(NodeEditController.CONFIG_COMPONENT_MENU);
-		//fxdiff VCRP-13: cp navigation
 		Boolean cpNavButtons = config.getBooleanEntry(CPEditController.CONFIG_SHOWNAVBUTTONS);
-		String contentEncoding = (String)config.get(NodeEditController.CONFIG_CONTENT_ENCODING);
-		String jsEncoding = (String)config.get(NodeEditController.CONFIG_JS_ENCODING);
-		cpMenuForm = new CompMenuForm(ureq, wControl, cpMenu, cpNavButtons, contentEncoding, jsEncoding);
+		cpMenuForm = new CompMenuForm(ureq, wControl, cpMenu, cpNavButtons);
 		listenTo(cpMenuForm);
 		
 		cpConfigurationVc.put("cpMenuForm", cpMenuForm.getInitialComponent());
@@ -399,7 +396,7 @@ class CompMenuForm extends FormBasicController {
 	private boolean compNavButtonsConfig;
 
 	
-	CompMenuForm(UserRequest ureq, WindowControl wControl, Boolean compMenuConfig, Boolean compNavButtons, String contentEncoding, String jsEncoding) {
+	CompMenuForm(UserRequest ureq, WindowControl wControl, Boolean compMenuConfig, Boolean compNavButtons) {
 		super(ureq, wControl);
 		compMenuConfig = compMenuConfig == null ? true:compMenuConfig.booleanValue();
 		//fxdiff VCRP-13: cp navigation
diff --git a/src/main/java/org/olat/course/nodes/cp/CPRunController.java b/src/main/java/org/olat/course/nodes/cp/CPRunController.java
index 232bd81dede..45aa06babf0 100644
--- a/src/main/java/org/olat/course/nodes/cp/CPRunController.java
+++ b/src/main/java/org/olat/course/nodes/cp/CPRunController.java
@@ -53,7 +53,6 @@ import org.olat.course.editor.NodeEditController;
 import org.olat.course.nodes.CPCourseNode;
 import org.olat.course.nodes.TitledWrapperHelper;
 import org.olat.course.run.navigation.NodeRunConstructionResult;
-import org.olat.course.run.userview.UserCourseEnvironment;
 import org.olat.fileresource.FileResourceManager;
 import org.olat.ims.cp.CPManager;
 import org.olat.ims.cp.ui.CPPackageConfig;
@@ -102,7 +101,7 @@ public class CPRunController extends BasicController implements ControllerEventL
 	 * @param wControl
 	 * @param cpNode
 	 */
-	public CPRunController(ModuleConfiguration config, UserRequest ureq, UserCourseEnvironment userCourseEnv, WindowControl wControl, CPCourseNode cpNode, String nodecmd, OLATResourceable course) {
+	public CPRunController(ModuleConfiguration config, UserRequest ureq, WindowControl wControl, CPCourseNode cpNode, String nodecmd, OLATResourceable course) {
 		super(ureq, wControl);
 		this.nodecmd = nodecmd;
 		this.courseResource = OresHelper.clone(course);
diff --git a/src/main/java/org/olat/course/repository/ImportGlossaryReferencesController.java b/src/main/java/org/olat/course/repository/ImportGlossaryReferencesController.java
index 1167d1d391a..87585946d13 100644
--- a/src/main/java/org/olat/course/repository/ImportGlossaryReferencesController.java
+++ b/src/main/java/org/olat/course/repository/ImportGlossaryReferencesController.java
@@ -96,7 +96,7 @@ public class ImportGlossaryReferencesController {
 		OLATResource ores = OLATResourceManager.getInstance().findOrPersistResourceable(resource);
 		
 		RepositoryEntry importedRepositoryEntry = repositoryService.create(owner,
-				importExport.getResourceName(), importExport.getDisplayName(), importExport.getDescription(), ores, 0);
+				null, importExport.getResourceName(), importExport.getDisplayName(), importExport.getDescription(), ores, 0);
 
 			// set the new glossary reference
 		CourseConfig courseConfig = course.getCourseEnvironment().getCourseConfig();
diff --git a/src/main/java/org/olat/course/repository/ImportSharedfolderReferencesController.java b/src/main/java/org/olat/course/repository/ImportSharedfolderReferencesController.java
index da5f9de27e2..708be13459a 100644
--- a/src/main/java/org/olat/course/repository/ImportSharedfolderReferencesController.java
+++ b/src/main/java/org/olat/course/repository/ImportSharedfolderReferencesController.java
@@ -85,8 +85,8 @@ public class ImportSharedfolderReferencesController  {
 		// create repository entry
 		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
 		OLATResource ores = OLATResourceManager.getInstance().findOrPersistResourceable(resource);
-		RepositoryEntry importedRepositoryEntry = repositoryService.create(owner, importExport.getResourceName(),
-				importExport.getDisplayName(), importExport.getDescription(), ores, 0);
+		RepositoryEntry importedRepositoryEntry = repositoryService.create(owner, null,
+				importExport.getResourceName(), importExport.getDisplayName(), importExport.getDescription(), ores, 0);
 
 		// set the new shared folder reference
 		CourseConfig courseConfig = course.getCourseEnvironment().getCourseConfig();
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 4e289228ef1..e09900fbf3b 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
@@ -82,7 +82,7 @@ public abstract class QTIHandler extends FileHandler {
 			String displayname, String description, Locale locale) {
 		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
 		OLATResource resource = OLATResourceManager.getInstance().findOrPersistResourceable(ores);
-		RepositoryEntry re = repositoryService.create(initialAuthor, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+		RepositoryEntry re = repositoryService.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		DBFactory.getInstance().commit();
 		
 		File fRepositoryQTI = new File(FileResourceManager.getInstance().getFileResourceRoot(re.getOlatResource()), "qti.zip");
@@ -100,7 +100,7 @@ public abstract class QTIHandler extends FileHandler {
 		FileResource.copyResource(file, filename, zipDir);
 		ZipUtil.zipAll(zipDir, new File(fResourceFileroot, "qti.zip"));
 		RepositoryEntry re = CoreSpringFactory.getImpl(RepositoryService.class)
-				.create(initialAuthor, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+				.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		DBFactory.getInstance().commit();
 		//zip it
 		return re;
diff --git a/src/main/java/org/olat/ims/qti/repository/handlers/QTISurveyHandler.java b/src/main/java/org/olat/ims/qti/repository/handlers/QTISurveyHandler.java
index 1726e062078..925609acdf0 100644
--- a/src/main/java/org/olat/ims/qti/repository/handlers/QTISurveyHandler.java
+++ b/src/main/java/org/olat/ims/qti/repository/handlers/QTISurveyHandler.java
@@ -90,8 +90,8 @@ public class QTISurveyHandler extends QTIHandler {
 	}
 
 	@Override
-	public RepositoryEntry importResource(Identity initialAuthor, String displayname, String description, boolean withReferences,
-			Locale locale, File file, String filename) {
+	public RepositoryEntry importResource(Identity initialAuthor, String initialAuthorAlt, String displayname, String description,
+			boolean withReferences, Locale locale, File file, String filename) {
 		return super.importResource(initialAuthor, displayname, description, new SurveyFileResource(), file, filename);
 	}
 
diff --git a/src/main/java/org/olat/ims/qti/repository/handlers/QTITestHandler.java b/src/main/java/org/olat/ims/qti/repository/handlers/QTITestHandler.java
index 5837e7b100d..0ffa5de6096 100644
--- a/src/main/java/org/olat/ims/qti/repository/handlers/QTITestHandler.java
+++ b/src/main/java/org/olat/ims/qti/repository/handlers/QTITestHandler.java
@@ -90,8 +90,8 @@ public class QTITestHandler extends QTIHandler {
 	}
 
 	@Override
-	public RepositoryEntry importResource(Identity initialAuthor, String displayname, String description, boolean withReferences,
-			Locale locale, File file, String filename) {
+	public RepositoryEntry importResource(Identity initialAuthor, String initialAuthorAlt, String displayname, String description,
+			boolean withReferences, Locale locale, File file, String filename) {
 		return super.importResource(initialAuthor, displayname, description, new TestFileResource(), file, filename);
 	}
 
diff --git a/src/main/java/org/olat/portfolio/manager/EPStructureManager.java b/src/main/java/org/olat/portfolio/manager/EPStructureManager.java
index 38ff0314b25..1d38633009f 100755
--- a/src/main/java/org/olat/portfolio/manager/EPStructureManager.java
+++ b/src/main/java/org/olat/portfolio/manager/EPStructureManager.java
@@ -1809,7 +1809,7 @@ public class EPStructureManager extends BasicManager {
 	
 	private RepositoryEntry createRepositoryEntry(Identity identity, OLATResource oresable, String title) {
 		// create a repository entry
-		RepositoryEntry addedEntry = repositoryService.create(identity, "-", title, null, oresable, RepositoryEntry.ACC_OWNERS);
+		RepositoryEntry addedEntry = repositoryService.create(identity, null, "-", title, null, oresable, RepositoryEntry.ACC_OWNERS);
 
 		return addedEntry;
 	}
diff --git a/src/main/java/org/olat/repository/RepositoryService.java b/src/main/java/org/olat/repository/RepositoryService.java
index 2cd5127ce50..f10ef34da5e 100644
--- a/src/main/java/org/olat/repository/RepositoryService.java
+++ b/src/main/java/org/olat/repository/RepositoryService.java
@@ -42,8 +42,8 @@ import org.olat.resource.OLATResource;
 public interface RepositoryService {
 	
 	
-	public RepositoryEntry create(Identity initialAuthor, String resourceName,
-			String displayname, String description, OLATResource resource, int access);
+	public RepositoryEntry create(Identity initialAuthor, String initialAuthorAlt,
+			String resourceName, String displayname, String description, OLATResource resource, int access);
 	
 	public RepositoryEntry create(String initialAuthor, String resourceName,
 			String displayname, String description, OLATResource resource);
diff --git a/src/main/java/org/olat/repository/handlers/BlogHandler.java b/src/main/java/org/olat/repository/handlers/BlogHandler.java
index b0ee44eda83..cf4dc28d42d 100644
--- a/src/main/java/org/olat/repository/handlers/BlogHandler.java
+++ b/src/main/java/org/olat/repository/handlers/BlogHandler.java
@@ -87,7 +87,7 @@ public class BlogHandler implements RepositoryHandler {
 		OLATResourceable ores = FeedManager.getInstance().createBlogResource();
 		OLATResource resource = OLATResourceManager.getInstance().findOrPersistResourceable(ores);
 		RepositoryEntry re = CoreSpringFactory.getImpl(RepositoryService.class)
-				.create(initialAuthor, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+				.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		DBFactory.getInstance().commit();
 		return re;
 	}
@@ -103,15 +103,15 @@ public class BlogHandler implements RepositoryHandler {
 	}
 
 	@Override
-	public RepositoryEntry importResource(Identity initialAuthor, String displayname, String description,
-			boolean withReferences, Locale locale, File file, String filename) {
+	public RepositoryEntry importResource(Identity initialAuthor, String initialAuthorAlt, String displayname,
+			String description, boolean withReferences, Locale locale, File file, String filename) {
 
 		OLATResource resource = OLATResourceManager.getInstance().createAndPersistOLATResourceInstance(new BlogFileResource());
 		File fResourceFileroot = FileResourceManager.getInstance().getFileResourceRootImpl(resource).getBasefile();
 		File blogRoot = new File(fResourceFileroot, FeedManager.getInstance().getFeedKind(resource));
 		FileResource.copyResource(file, filename, blogRoot);
 		RepositoryEntry re = CoreSpringFactory.getImpl(RepositoryService.class)
-				.create(initialAuthor, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+				.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		DBFactory.getInstance().commit();
 		return re;
 	}
diff --git a/src/main/java/org/olat/repository/handlers/CourseHandler.java b/src/main/java/org/olat/repository/handlers/CourseHandler.java
index e2aee84ad9a..c3cd587e3f0 100644
--- a/src/main/java/org/olat/repository/handlers/CourseHandler.java
+++ b/src/main/java/org/olat/repository/handlers/CourseHandler.java
@@ -140,7 +140,7 @@ public class CourseHandler implements RepositoryHandler {
 	public RepositoryEntry createResource(Identity initialAuthor, String displayname, String description, Locale locale) {
 		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
 		OLATResource resource = OLATResourceManager.getInstance().createOLATResourceInstance(CourseModule.class);
-		RepositoryEntry re = repositoryService.create(initialAuthor, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+		RepositoryEntry re = repositoryService.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		DBFactory.getInstance().commit();
 		
 		ICourse course = CourseFactory.createEmptyCourse(resource, "New Course", "New Course", "");
@@ -229,8 +229,8 @@ public class CourseHandler implements RepositoryHandler {
 	}
 	
 	@Override
-	public RepositoryEntry importResource(Identity initialAuthor, String displayname, String description,
-			boolean withReferences, Locale locale, File file, String filename) {
+	public RepositoryEntry importResource(Identity initialAuthor, String initialAuthorAlt, String displayname,
+			String description, boolean withReferences, Locale locale, File file, String filename) {
 
 		OLATResource newCourseResource = OLATResourceManager.getInstance().createOLATResourceInstance(CourseModule.class);
 		ICourse course = CourseFactory.importCourseFromZip(newCourseResource, file);
@@ -243,7 +243,7 @@ public class CourseHandler implements RepositoryHandler {
 		OLATResource courseResource = cgm.getCourseResource();
 		
 		RepositoryEntry re = CoreSpringFactory.getImpl(RepositoryService.class)
-				.create(initialAuthor, "", displayname, description, courseResource, RepositoryEntry.ACC_OWNERS);
+				.create(initialAuthor, null, "", displayname, description, courseResource, RepositoryEntry.ACC_OWNERS);
 		DBFactory.getInstance().commit();
 		
 
@@ -312,8 +312,8 @@ public class CourseHandler implements RepositoryHandler {
 		// create repository entry
 		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
 		OLATResource ores = OLATResourceManager.getInstance().findOrPersistResourceable(resource);
-		RepositoryEntry importedRepositoryEntry = repositoryService.create(owner, importExport.getResourceName(),
-				importExport.getDisplayName(), importExport.getDescription(), ores, 0);
+		RepositoryEntry importedRepositoryEntry = repositoryService.create(owner, null,
+				importExport.getResourceName(), importExport.getDisplayName(), importExport.getDescription(), ores, 0);
 
 		// set the new shared folder reference
 		CourseConfig courseConfig = course.getCourseEnvironment().getCourseConfig();
@@ -345,7 +345,7 @@ public class CourseHandler implements RepositoryHandler {
 		OLATResource ores = OLATResourceManager.getInstance().findOrPersistResourceable(resource);
 		
 		RepositoryEntry importedRepositoryEntry = repositoryService.create(owner,
-				importExport.getResourceName(), importExport.getDisplayName(), importExport.getDescription(), ores, 0);
+				null, importExport.getResourceName(), importExport.getDisplayName(), importExport.getDescription(), ores, 0);
 
 			// set the new glossary reference
 		CourseConfig courseConfig = course.getCourseEnvironment().getCourseConfig();
diff --git a/src/main/java/org/olat/repository/handlers/GlossaryHandler.java b/src/main/java/org/olat/repository/handlers/GlossaryHandler.java
index a88f97e7d3a..77fe9c006d4 100644
--- a/src/main/java/org/olat/repository/handlers/GlossaryHandler.java
+++ b/src/main/java/org/olat/repository/handlers/GlossaryHandler.java
@@ -94,7 +94,7 @@ public class GlossaryHandler implements RepositoryHandler {
 		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
 		GlossaryResource glossaryResource = GlossaryManager.getInstance().createGlossary();
 		OLATResource resource = OLATResourceManager.getInstance().findOrPersistResourceable(glossaryResource);
-		RepositoryEntry re = repositoryService.create(initialAuthor, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+		RepositoryEntry re = repositoryService.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		DBFactory.getInstance().commit();
 		return re;
 	}
@@ -115,15 +115,15 @@ public class GlossaryHandler implements RepositoryHandler {
 	}
 	
 	@Override
-	public RepositoryEntry importResource(Identity initialAuthor, String displayname, String description, boolean withReferences,
-			Locale locale, File file, String filename) {
+	public RepositoryEntry importResource(Identity initialAuthor, String initialAuthorAlt, String displayname, String description,
+			boolean withReferences, Locale locale, File file, String filename) {
 		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
 		GlossaryResource glossaryResource = GlossaryManager.getInstance().createGlossary();
 		OLATResource resource = OLATResourceManager.getInstance().findOrPersistResourceable(glossaryResource);
 		//copy resources
 		File glossyPath = GlossaryManager.getInstance().getGlossaryRootFolder(glossaryResource).getBasefile();
 		FileResource.copyResource(file, filename, glossyPath);
-		RepositoryEntry re = repositoryService.create(initialAuthor, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+		RepositoryEntry re = repositoryService.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		DBFactory.getInstance().commit();
 		return re;
 	}
diff --git a/src/main/java/org/olat/repository/handlers/ImsCPHandler.java b/src/main/java/org/olat/repository/handlers/ImsCPHandler.java
index 45b0fb268c6..f77b00342bc 100644
--- a/src/main/java/org/olat/repository/handlers/ImsCPHandler.java
+++ b/src/main/java/org/olat/repository/handlers/ImsCPHandler.java
@@ -97,7 +97,7 @@ public class ImsCPHandler extends FileHandler {
 	public RepositoryEntry createResource(Identity initialAuthor, String displayname, String description, Locale locale) {
 		OLATResource resource = OLATResourceManager.getInstance().createOLATResourceInstance("FileResource.IMSCP");
 		RepositoryEntry re = CoreSpringFactory.getImpl(RepositoryService.class)
-				.create(initialAuthor, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+				.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		DBFactory.getInstance().commit();
 
 		Translator translator = Util.createPackageTranslator(CPContentController.class, locale);
@@ -122,13 +122,13 @@ public class ImsCPHandler extends FileHandler {
 	}
 	
 	@Override
-	public RepositoryEntry importResource(Identity initialAuthor, String displayname, String description, boolean withReferences,
-			Locale locale, File file, String filename) {
+	public RepositoryEntry importResource(Identity initialAuthor, String initialAuthorAlt, String displayname, String description,
+			boolean withReferences, Locale locale, File file, String filename) {
 
 		ImsCPFileResource cpResource = new ImsCPFileResource();
 		OLATResource resource = OLATResourceManager.getInstance().findOrPersistResourceable(cpResource);
 		RepositoryEntry re = CoreSpringFactory.getImpl(RepositoryService.class)
-				.create(initialAuthor, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+				.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		
 		File fResourceFileroot = FileResourceManager.getInstance().getFileResourceRootImpl(resource).getBasefile();
 		File zipRoot = new File(fResourceFileroot, FileResourceManager.ZIPDIR);
diff --git a/src/main/java/org/olat/repository/handlers/PodcastHandler.java b/src/main/java/org/olat/repository/handlers/PodcastHandler.java
index 58d04ea109d..6d16ed2aaed 100644
--- a/src/main/java/org/olat/repository/handlers/PodcastHandler.java
+++ b/src/main/java/org/olat/repository/handlers/PodcastHandler.java
@@ -87,7 +87,7 @@ public class PodcastHandler implements RepositoryHandler {
 		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
 		OLATResourceable ores = FeedManager.getInstance().createPodcastResource();
 		OLATResource resource = OLATResourceManager.getInstance().findOrPersistResourceable(ores);
-		RepositoryEntry re = repositoryService.create(initialAuthor, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+		RepositoryEntry re = repositoryService.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		DBFactory.getInstance().commit();
 		return re;
 	}
@@ -103,15 +103,15 @@ public class PodcastHandler implements RepositoryHandler {
 	}
 	
 	@Override
-	public RepositoryEntry importResource(Identity initialAuthor, String displayname, String description, boolean withReferences,
-			Locale locale, File file, String filename) {
+	public RepositoryEntry importResource(Identity initialAuthor, String initialAuthorAlt, String displayname, String description,
+			boolean withReferences, Locale locale, File file, String filename) {
 		
 		OLATResource resource = OLATResourceManager.getInstance().createAndPersistOLATResourceInstance(new PodcastFileResource());
 		File fResourceFileroot = FileResourceManager.getInstance().getFileResourceRootImpl(resource).getBasefile();
 		File blogRoot = new File(fResourceFileroot, FeedManager.getInstance().getFeedKind(resource));
 		FileResource.copyResource(file, filename, blogRoot);
 		RepositoryEntry re = CoreSpringFactory.getImpl(RepositoryService.class)
-				.create(initialAuthor, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+				.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		DBFactory.getInstance().commit();
 		return re;
 	}
diff --git a/src/main/java/org/olat/repository/handlers/PortfolioHandler.java b/src/main/java/org/olat/repository/handlers/PortfolioHandler.java
index ef3b9cf2493..a53ebe78414 100644
--- a/src/main/java/org/olat/repository/handlers/PortfolioHandler.java
+++ b/src/main/java/org/olat/repository/handlers/PortfolioHandler.java
@@ -99,7 +99,7 @@ public class PortfolioHandler implements RepositoryHandler {
 		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
 		
 		OLATResource resource = eSTMgr.createPortfolioMapTemplateResource();
-		RepositoryEntry re = repositoryService.create(initialAuthor, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+		RepositoryEntry re = repositoryService.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 
 		PortfolioStructureMap mapTemp = eSTMgr.createAndPersistPortfolioMapTemplateFromEntry(initialAuthor, re);
 		// add a page, as each map should have at least one per default!
@@ -124,15 +124,15 @@ public class PortfolioHandler implements RepositoryHandler {
 	}
 	
 	@Override
-	public RepositoryEntry importResource(Identity initialAuthor, String displayname, String description, boolean withReferences,
-			Locale locale, File file, String filename) {
+	public RepositoryEntry importResource(Identity initialAuthor, String initialAuthorAlt, String displayname, String description,
+			boolean withReferences, Locale locale, File file, String filename) {
 		EPFrontendManager ePFMgr = CoreSpringFactory.getImpl(EPFrontendManager.class);
 		EPStructureManager eSTMgr = CoreSpringFactory.getImpl(EPStructureManager.class);
 		
 		PortfolioStructure structure = EPXStreamHandler.getAsObject(file, false);
 		OLATResource resource = eSTMgr.createPortfolioMapTemplateResource();
 		RepositoryEntry re = CoreSpringFactory.getImpl(RepositoryService.class)
-				.create(initialAuthor, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+				.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		
 		ePFMgr.importPortfolioMapTemplate(structure, resource);
 		return re;
diff --git a/src/main/java/org/olat/repository/handlers/RepositoryHandler.java b/src/main/java/org/olat/repository/handlers/RepositoryHandler.java
index 8676234caaf..2c738a5ead5 100644
--- a/src/main/java/org/olat/repository/handlers/RepositoryHandler.java
+++ b/src/main/java/org/olat/repository/handlers/RepositoryHandler.java
@@ -86,6 +86,7 @@ public interface RepositoryHandler {
 	/**
 	 * 
 	 * @param initialAuthor
+	 * @param initialAuthorAlt TODO
 	 * @param displayname
 	 * @param description
 	 * @param withReferences if true import references
@@ -94,8 +95,8 @@ public interface RepositoryHandler {
 	 * @param filename
 	 * @return
 	 */
-	public RepositoryEntry importResource(Identity initialAuthor, String displayname, String description,
-			boolean withReferences, Locale locale, File file, String filename);	
+	public RepositoryEntry importResource(Identity initialAuthor, String initialAuthorAlt, String displayname,
+			String description, boolean withReferences, Locale locale, File file, String filename);	
 	
 	/**
 	 * 
diff --git a/src/main/java/org/olat/repository/handlers/SCORMCPHandler.java b/src/main/java/org/olat/repository/handlers/SCORMCPHandler.java
index 425940dd16e..149a90af4ff 100644
--- a/src/main/java/org/olat/repository/handlers/SCORMCPHandler.java
+++ b/src/main/java/org/olat/repository/handlers/SCORMCPHandler.java
@@ -95,13 +95,13 @@ public class SCORMCPHandler extends FileHandler {
 	}
 	
 	@Override
-	public RepositoryEntry importResource(Identity initialAuthor, String displayname, String description, boolean withReferences,
-			Locale locale, File file, String filename) {
+	public RepositoryEntry importResource(Identity initialAuthor, String initialAuthorAlt, String displayname, String description,
+			boolean withReferences, Locale locale, File file, String filename) {
 		
 		ScormCPFileResource scormResource = new ScormCPFileResource();
 		OLATResource resource = OLATResourceManager.getInstance().findOrPersistResourceable(scormResource);
 		RepositoryEntry re = CoreSpringFactory.getImpl(RepositoryService.class)
-				.create(initialAuthor, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+				.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		
 		File fResourceFileroot = FileResourceManager.getInstance().getFileResourceRootImpl(resource).getBasefile();
 		File zipRoot = new File(fResourceFileroot, FileResourceManager.ZIPDIR);
diff --git a/src/main/java/org/olat/repository/handlers/SharedFolderHandler.java b/src/main/java/org/olat/repository/handlers/SharedFolderHandler.java
index 29ae4255ea7..88d37764501 100644
--- a/src/main/java/org/olat/repository/handlers/SharedFolderHandler.java
+++ b/src/main/java/org/olat/repository/handlers/SharedFolderHandler.java
@@ -91,8 +91,8 @@ public class SharedFolderHandler implements RepositoryHandler {
 		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
 		SharedFolderFileResource folderResource = SharedFolderManager.getInstance().createSharedFolder();
 		OLATResource resource = OLATResourceManager.getInstance().findOrPersistResourceable(folderResource);
-		RepositoryEntry re = repositoryService.create(initialAuthor, SharedFolderFileResource.RESOURCE_NAME,
-				displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+		RepositoryEntry re = repositoryService.create(initialAuthor, null,
+				SharedFolderFileResource.RESOURCE_NAME, displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		DBFactory.getInstance().commit();
 		return re;
 	}
@@ -108,8 +108,8 @@ public class SharedFolderHandler implements RepositoryHandler {
 	}
 	
 	@Override
-	public RepositoryEntry importResource(Identity initialAuthor, String displayname, String description, boolean withReferences,
-			Locale locale, File file, String filename) {
+	public RepositoryEntry importResource(Identity initialAuthor, String initialAuthorAlt, String displayname, String description,
+			boolean withReferences, Locale locale, File file, String filename) {
 		return null;
 	}
 	
diff --git a/src/main/java/org/olat/repository/handlers/WebDocumentHandler.java b/src/main/java/org/olat/repository/handlers/WebDocumentHandler.java
index c3e2ba9dccd..79d9648999d 100644
--- a/src/main/java/org/olat/repository/handlers/WebDocumentHandler.java
+++ b/src/main/java/org/olat/repository/handlers/WebDocumentHandler.java
@@ -133,8 +133,8 @@ public class WebDocumentHandler extends FileHandler {
 	}
 	
 	@Override
-	public RepositoryEntry importResource(Identity initialAuthor, String displayname, String description, boolean withReferences,
-			Locale locale, File file, String filename) {
+	public RepositoryEntry importResource(Identity initialAuthor, String initialAuthorAlt, String displayname, String description,
+			boolean withReferences, Locale locale, File file, String filename) {
 		
 		FileResource ores;
 		if (DocFileResource.TYPE_NAME.equals(supportedType) && DocFileResource.validate(filename)) {
@@ -168,7 +168,7 @@ public class WebDocumentHandler extends FileHandler {
 		}
 
 		RepositoryEntry re = CoreSpringFactory.getImpl(RepositoryService.class)
-				.create(initialAuthor, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+				.create(initialAuthor, null, "", displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		DBFactory.getInstance().commit();
 		return re;
 	}
diff --git a/src/main/java/org/olat/repository/handlers/WikiHandler.java b/src/main/java/org/olat/repository/handlers/WikiHandler.java
index a510ac66ca1..c15687cd5f1 100644
--- a/src/main/java/org/olat/repository/handlers/WikiHandler.java
+++ b/src/main/java/org/olat/repository/handlers/WikiHandler.java
@@ -113,8 +113,8 @@ public class WikiHandler implements RepositoryHandler {
 		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
 		WikiResource wikiResource = WikiManager.getInstance().createWiki();
 		OLATResource resource = OLATResourceManager.getInstance().findOrPersistResourceable(wikiResource);
-		RepositoryEntry re = repositoryService.create(initialAuthor, WikiManager.WIKI_RESOURCE_FOLDER_NAME,
-				displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+		RepositoryEntry re = repositoryService.create(initialAuthor, null,
+				WikiManager.WIKI_RESOURCE_FOLDER_NAME, displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		DBFactory.getInstance().commit();
 		return re;
 	}
@@ -130,14 +130,14 @@ public class WikiHandler implements RepositoryHandler {
 	}
 	
 	@Override
-	public RepositoryEntry importResource(Identity initialAuthor, String displayname, String description, boolean withReferences,
-			Locale locale, File file, String filename) {
+	public RepositoryEntry importResource(Identity initialAuthor, String initialAuthorAlt, String displayname, String description,
+			boolean withReferences, Locale locale, File file, String filename) {
 		WikiResource wikiResource = new WikiResource();
 		OLATResource resource = OLATResourceManager.getInstance().findOrPersistResourceable(wikiResource);
 		File rootDirectory = WikiManager.getInstance().getWikiRootContainer(resource).getBasefile();
 		WikiManager.getInstance().importWiki(file, filename, rootDirectory);
 		RepositoryEntry re = CoreSpringFactory.getImpl(RepositoryService.class)
-			.create(initialAuthor, WikiManager.WIKI_RESOURCE_FOLDER_NAME, displayname, description, resource, RepositoryEntry.ACC_OWNERS);
+			.create(initialAuthor, null, WikiManager.WIKI_RESOURCE_FOLDER_NAME, displayname, description, resource, RepositoryEntry.ACC_OWNERS);
 		DBFactory.getInstance().commit();
 		return re;
 	}
diff --git a/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java b/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
index 2cc77b4a7ff..a4ffaa8bc6e 100644
--- a/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
+++ b/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
@@ -98,9 +98,9 @@ public class RepositoryServiceImpl implements RepositoryService {
 	}
 
 	@Override
-	public RepositoryEntry create(Identity initialAuthor, String resourceName,
-			String displayname, String description, OLATResource resource, int access) {
-		return create(null, initialAuthor, resourceName, displayname, description, resource, access);
+	public RepositoryEntry create(Identity initialAuthor, String initialAuthorAlt,
+			String resourceName, String displayname, String description, OLATResource resource, int access) {
+		return create(initialAuthorAlt, initialAuthor, resourceName, displayname, description, resource, access);
 	}
 	
 	private RepositoryEntry create(String initialAuthorName, Identity initialAuthor, String resourceName,
@@ -112,6 +112,8 @@ public class RepositoryServiceImpl implements RepositoryService {
 			re.setInitialAuthor(initialAuthorName);
 		} else if(initialAuthor != null) {
 			re.setInitialAuthor(initialAuthor.getName());
+		} else {
+			re.setInitialAuthor("-");
 		}
 		re.setCreationDate(now);
 		re.setLastModified(now);
diff --git a/src/main/java/org/olat/repository/ui/author/CopyRepositoryEntryController.java b/src/main/java/org/olat/repository/ui/author/CopyRepositoryEntryController.java
index 78174edab28..3da84da2998 100644
--- a/src/main/java/org/olat/repository/ui/author/CopyRepositoryEntryController.java
+++ b/src/main/java/org/olat/repository/ui/author/CopyRepositoryEntryController.java
@@ -140,8 +140,8 @@ public class CopyRepositoryEntryController extends FormBasicController {
 		
 		OLATResource sourceResource = sourceEntry.getOlatResource();
 		OLATResource copyResource = resourceManager.createOLATResourceInstance(sourceResource.getResourceableTypeName());
-		copyEntry = repositoryService.create(getIdentity(), sourceEntry.getResourcename(), displayname, description,
-				copyResource, RepositoryEntry.ACC_OWNERS);
+		copyEntry = repositoryService.create(getIdentity(), null, sourceEntry.getResourcename(), displayname,
+				description, copyResource, RepositoryEntry.ACC_OWNERS);
 	
 		RepositoryHandler handler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(sourceEntry);
 		copyEntry = handler.copy(sourceEntry, copyEntry);
diff --git a/src/main/java/org/olat/repository/ui/author/ImportRepositoryEntryController.java b/src/main/java/org/olat/repository/ui/author/ImportRepositoryEntryController.java
index 298b40d69f0..cc6a5f4becb 100644
--- a/src/main/java/org/olat/repository/ui/author/ImportRepositoryEntryController.java
+++ b/src/main/java/org/olat/repository/ui/author/ImportRepositoryEntryController.java
@@ -167,8 +167,8 @@ public class ImportRepositoryEntryController extends FormBasicController {
 		String uploadedFilename = uploadFileEl.getUploadFileName();
 		boolean withReferences = referencesEl.isAtLeastSelected(1);
 		
-		importedEntry = handlerForUploadedResource.importResource(getIdentity(), displayname, "",
-				withReferences, getLocale(), uploadedFile, uploadedFilename);
+		importedEntry = handlerForUploadedResource.importResource(getIdentity(), null, displayname,
+				"", withReferences, getLocale(), uploadedFile, uploadedFilename);
 
 		ThreadLocalUserActivityLogger.log(LearningResourceLoggingAction.LEARNING_RESOURCE_CREATE, getClass(),
 				LoggingResourceable.wrap(importedEntry, OlatResourceableType.genRepoEntry));
diff --git a/src/main/java/org/olat/restapi/repository/RepositoryEntriesResource.java b/src/main/java/org/olat/restapi/repository/RepositoryEntriesResource.java
index 9960690469f..52aeecc1d67 100644
--- a/src/main/java/org/olat/restapi/repository/RepositoryEntriesResource.java
+++ b/src/main/java/org/olat/restapi/repository/RepositoryEntriesResource.java
@@ -341,7 +341,7 @@ public class RepositoryEntriesResource {
 		
 		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
 		OLATResource ores = OLATResourceManager.getInstance().findOrPersistResourceable(newResource);
-		RepositoryEntry addedEntry = repositoryService.create(identity, resourcename, displayname, null, ores, 0);
+		RepositoryEntry addedEntry = repositoryService.create(identity, null, resourcename, displayname, null, ores, 0);
 		if(StringHelper.containsNonWhitespace(softkey)) {
 			addedEntry.setSoftkey(softkey);
 		}
diff --git a/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java b/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java
index ba451cce91a..a27a8048767 100644
--- a/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java
+++ b/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java
@@ -348,7 +348,7 @@ public class CoursesWebService {
 		}
 		
 		RepositoryHandler handler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(CourseModule.getCourseTypeName());
-		RepositoryEntry re = handler.importResource(identity, displayName, null, true, Locale.ENGLISH, fCourseImportZIP, null);
+		RepositoryEntry re = handler.importResource(identity, null, displayName, null, true, Locale.ENGLISH, fCourseImportZIP, null);
 
 		if(StringHelper.containsNonWhitespace(softKey)) {
 			re.setSoftkey(softKey);
@@ -410,8 +410,8 @@ public class CoursesWebService {
 			
 			OLATResource sourceResource = src.getOlatResource();
 			OLATResource copyResource = OLATResourceManager.getInstance().createOLATResourceInstance(sourceResource.getResourceableTypeName());
-			RepositoryEntry preparedEntry = repositoryService.create(ureq.getIdentity(), resName, name, description,
-					copyResource, RepositoryEntry.ACC_OWNERS);
+			RepositoryEntry preparedEntry = repositoryService.create(ureq.getIdentity(), null, resName, name,
+					description, copyResource, RepositoryEntry.ACC_OWNERS);
 		
 			RepositoryHandler handler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(src);
 			preparedEntry = handler.copy(src, preparedEntry);
@@ -504,7 +504,7 @@ public class CoursesWebService {
 		// create a repository entry
 		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
 		OLATResource ores = OLATResourceManager.getInstance().findOrPersistResourceable(oresable);
-		RepositoryEntry addedEntry = repositoryService.create(initialAuthor, "-", shortTitle, null, ores, 0);
+		RepositoryEntry addedEntry = repositoryService.create(initialAuthor, null, "-", shortTitle, null, ores, 0);
 		if(StringHelper.containsNonWhitespace(softKey) && softKey.length() <= 30) {
 			addedEntry.setSoftkey(softKey);
 		}
diff --git a/src/test/java/org/olat/portfolio/EPFrontendManagerTest.java b/src/test/java/org/olat/portfolio/EPFrontendManagerTest.java
index f09528d2bbb..799d0f7a918 100644
--- a/src/test/java/org/olat/portfolio/EPFrontendManagerTest.java
+++ b/src/test/java/org/olat/portfolio/EPFrontendManagerTest.java
@@ -464,7 +464,7 @@ public class EPFrontendManagerTest extends OlatTestCase {
 		OLATResource resource = epStructureManager.createPortfolioMapTemplateResource();
 		
 		//create a repository entry
-		RepositoryEntry addedEntry = repositoryService.create(ident1, "-", "test repo", "desc repo", resource, RepositoryEntry.ACC_OWNERS);
+		RepositoryEntry addedEntry = repositoryService.create(ident1, null, "-", "test repo", "desc repo", resource, RepositoryEntry.ACC_OWNERS);
 		dbInstance.commitAndCloseSession();
 		
 		//create the template owned by ident1
diff --git a/src/test/java/org/olat/repository/RepositoryManagerQueryTest.java b/src/test/java/org/olat/repository/RepositoryManagerQueryTest.java
index 5a9a8d6a742..966e40a7a0c 100644
--- a/src/test/java/org/olat/repository/RepositoryManagerQueryTest.java
+++ b/src/test/java/org/olat/repository/RepositoryManagerQueryTest.java
@@ -236,8 +236,8 @@ public class RepositoryManagerQueryTest extends OlatTestCase {
 		OLATResource r =  OLATResourceManager.getInstance().createOLATResourceInstance(TEST_RES_NAME);
 		db.saveObject(r);
 		// now make a repository entry for this course
-		RepositoryEntry re = repositoryService.create(owner, "Lernen mit OLAT " + i,
-				"JunitTest_RepositoryEntry_" + i, "Description of learning by OLAT " + i, r, RepositoryEntry.ACC_OWNERS);
+		RepositoryEntry re = repositoryService.create(owner, null,
+				"Lernen mit OLAT " + i, "JunitTest_RepositoryEntry_" + i, "Description of learning by OLAT " + i, r, RepositoryEntry.ACC_OWNERS);
 		//db.commit();
 		return re;
 	}
diff --git a/src/test/java/org/olat/repository/RepositoryManagerTest.java b/src/test/java/org/olat/repository/RepositoryManagerTest.java
index a73bcd18ec4..acfc65ab951 100644
--- a/src/test/java/org/olat/repository/RepositoryManagerTest.java
+++ b/src/test/java/org/olat/repository/RepositoryManagerTest.java
@@ -647,8 +647,8 @@ public class RepositoryManagerTest extends OlatTestCase {
 			dbInstance.getCurrentEntityManager().persist(r);
 			
 			// now make a repository entry for this course
-			RepositoryEntry re = repositoryService.create(owner, "Lernen mit OLAT " + i,
-					"JunitTest_RepositoryEntry_" + i, "yo man description bla bla + i", r, RepositoryEntry.ACC_OWNERS_AUTHORS);			
+			RepositoryEntry re = repositoryService.create(owner, null,
+					"Lernen mit OLAT " + i, "JunitTest_RepositoryEntry_" + i, "yo man description bla bla + i", r, RepositoryEntry.ACC_OWNERS_AUTHORS);			
 			if ((i % 2 > 0)) {
 				re.setCanReference(true);
 			}
@@ -1115,9 +1115,9 @@ public class RepositoryManagerTest extends OlatTestCase {
 		dbInstance.saveObject(r);
 		
 		// now make a repository entry for this course
-		final RepositoryEntry re = repositoryService.create(owner, "Lernen mit OLAT " + i,
-				"JunitTest_RepositoryEntry_" + i, "yo man description bla bla + i", r,
-				RepositoryEntry.ACC_OWNERS_AUTHORS);
+		final RepositoryEntry re = repositoryService.create(owner, null,
+				"Lernen mit OLAT " + i, "JunitTest_RepositoryEntry_" + i, "yo man description bla bla + i",
+				r, RepositoryEntry.ACC_OWNERS_AUTHORS);
 		return re;
 	}
 }
diff --git a/src/test/java/org/olat/repository/manager/RepositoryEntryStatisticsDAOTest.java b/src/test/java/org/olat/repository/manager/RepositoryEntryStatisticsDAOTest.java
index d5f664eaa6a..4b2410902ae 100644
--- a/src/test/java/org/olat/repository/manager/RepositoryEntryStatisticsDAOTest.java
+++ b/src/test/java/org/olat/repository/manager/RepositoryEntryStatisticsDAOTest.java
@@ -92,7 +92,7 @@ public class RepositoryEntryStatisticsDAOTest extends OlatTestCase {
 	public void updateRatingStatistics() {
 		//create an entry
 		Identity id = JunitTestHelper.createAndPersistIdentityAsAuthor("update-mark-");
-		RepositoryEntry re = repositoryService.create(id, "-", "Statistics", "", null, 0);
+		RepositoryEntry re = repositoryService.create(id, null, "-", "Statistics", "", null, 0);
 		dbInstance.commitAndCloseSession();
 		Assert.assertNotNull(re);
 		Assert.assertNotNull(re.getStatistics());
@@ -110,7 +110,7 @@ public class RepositoryEntryStatisticsDAOTest extends OlatTestCase {
 	public void updateCommentsStatistics() {
 		//create an entry
 		Identity id = JunitTestHelper.createAndPersistIdentityAsAuthor("update-comment-");
-		RepositoryEntry re = repositoryService.create(id, "-", "Statistics", "", null, 0);
+		RepositoryEntry re = repositoryService.create(id, null, "-", "Statistics", "", null, 0);
 		dbInstance.commitAndCloseSession();
 		Assert.assertNotNull(re);
 		Assert.assertNotNull(re.getStatistics());
diff --git a/src/test/java/org/olat/repository/manager/RepositoryServiceImplTest.java b/src/test/java/org/olat/repository/manager/RepositoryServiceImplTest.java
index 8bb81f63d20..680b7551d0f 100644
--- a/src/test/java/org/olat/repository/manager/RepositoryServiceImplTest.java
+++ b/src/test/java/org/olat/repository/manager/RepositoryServiceImplTest.java
@@ -48,7 +48,7 @@ public class RepositoryServiceImplTest extends OlatTestCase {
 		String displayName = "ServiceTest";
 		String resourceName = "ServiceTest";
 		String description = "Test the brand new service";
-		RepositoryEntry re = repositoryService.create(initialAuthor, resourceName, displayName, description, null, 0);
+		RepositoryEntry re = repositoryService.create(initialAuthor, null, resourceName, displayName, description, null, 0);
 		dbInstance.commit();
 		
 		Assert.assertNotNull(re);
@@ -64,7 +64,7 @@ public class RepositoryServiceImplTest extends OlatTestCase {
 		String displayName = "Service test 2";
 		String resourceName = "ServiceTest";
 		String description = "Test the brand new service";
-		RepositoryEntry re = repositoryService.create(initialAuthor, resourceName, displayName, description, null, 0);
+		RepositoryEntry re = repositoryService.create(initialAuthor, null, resourceName, displayName, description, null, 0);
 		dbInstance.commitAndCloseSession();
 		Assert.assertNotNull(re);
 		
diff --git a/src/test/java/org/olat/test/JunitTestHelper.java b/src/test/java/org/olat/test/JunitTestHelper.java
index d40ea03f8e0..f5c05615e21 100644
--- a/src/test/java/org/olat/test/JunitTestHelper.java
+++ b/src/test/java/org/olat/test/JunitTestHelper.java
@@ -206,7 +206,7 @@ public class JunitTestHelper {
 			
 			RepositoryHandler courseHandler = RepositoryHandlerFactory.getInstance()
 					.getRepositoryHandler(CourseModule.getCourseTypeName());
-			re = courseHandler.importResource(initialAuthor, displayname, description, true, Locale.ENGLISH, courseFile, null);
+			re = courseHandler.importResource(initialAuthor, null, displayname, description, true, Locale.ENGLISH, courseFile, null);
 			
 			ICourse course = CourseFactory.loadCourse(re.getOlatResource());
 			CourseFactory.publishCourse(course, RepositoryEntry.ACC_USERS, false,  initialAuthor, Locale.ENGLISH);
-- 
GitLab