From 3e7d0fa04ce56eecd872d81e5b02302f8735c304 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Tue, 18 Sep 2018 20:31:08 +0200
Subject: [PATCH] OO-3648: update to vitero 9.0

---
 pom.xml                                       |  2 +-
 .../modules/vitero/manager/ViteroManager.java | 55 ++++++++-----------
 .../vitero/ui/ViteroBookingDataModel.java     |  5 +-
 .../ui/ViteroConfigurationController.java     |  1 +
 .../ui/_i18n/LocalStrings_de.properties       |  1 +
 .../ui/_i18n/LocalStrings_en.properties       |  3 +-
 .../ui/_i18n/LocalStrings_fr.properties       |  1 +
 .../ui/_i18n/LocalStrings_it.properties       |  1 +
 .../ui/_i18n/LocalStrings_pl.properties       |  1 +
 .../ui/_i18n/LocalStrings_pt_BR.properties    |  1 +
 .../ui/_i18n/LocalStrings_zh_CN.properties    |  1 +
 11 files changed, 35 insertions(+), 37 deletions(-)

diff --git a/pom.xml b/pom.xml
index 46b54ff71c1..dad9b8737f8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1903,7 +1903,7 @@
 		<dependency>
 			<groupId>org.openolat</groupId>
 			<artifactId>viterows</artifactId>
-			<version>6.0</version>
+			<version>9.0</version>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.poi</groupId>
diff --git a/src/main/java/org/olat/modules/vitero/manager/ViteroManager.java b/src/main/java/org/olat/modules/vitero/manager/ViteroManager.java
index d5bb2053d11..bdd1fb78df0 100644
--- a/src/main/java/org/olat/modules/vitero/manager/ViteroManager.java
+++ b/src/main/java/org/olat/modules/vitero/manager/ViteroManager.java
@@ -101,11 +101,12 @@ import de.vitero.schema.booking.UpdateBookingRequest;
 import de.vitero.schema.group.ChangeGroupRoleRequest;
 import de.vitero.schema.group.Completegrouptype;
 import de.vitero.schema.group.CreateGroupRequest;
+import de.vitero.schema.group.DeleteGroupRequest;
 import de.vitero.schema.group.Group;
 import de.vitero.schema.group.GroupService;
 import de.vitero.schema.group.Group_Type;
 import de.vitero.schema.group.Groupid;
-import de.vitero.schema.group.Groupiduserid;
+import de.vitero.schema.group.Groupiduseridstrict;
 import de.vitero.schema.group.Groupnamecustomerid;
 import de.vitero.schema.licence.GetBookableRoomsForGroupResponse;
 import de.vitero.schema.licence.GetBookableRoomsForGroupResponse.Rooms;
@@ -126,12 +127,13 @@ import de.vitero.schema.sessioncode.SessionCode;
 import de.vitero.schema.sessioncode.SessionCodeService;
 import de.vitero.schema.user.Completeusertype;
 import de.vitero.schema.user.CreateUserRequest;
+import de.vitero.schema.user.CreateUserResponse;
+import de.vitero.schema.user.DeleteUserRequest;
 import de.vitero.schema.user.GetUserListByCustomerRequest;
 import de.vitero.schema.user.GetUserListByGroupRequest;
 import de.vitero.schema.user.Newusertype;
 import de.vitero.schema.user.UpdateUserRequest;
 import de.vitero.schema.user.UserService;
-import de.vitero.schema.user.Userid;
 import de.vitero.schema.user.Userlist;
 import de.vitero.schema.user.Usertype;
 
@@ -228,8 +230,7 @@ public class ViteroManager implements UserDataDeletable {
 	public String getURLToBooking(Identity identity, ViteroBooking booking)
 	throws VmsNotAvailableException {
 		String sessionCode = createPersonalBookingSessionCode(identity, booking);
-		String url = getStartPoint(sessionCode);
-		return url;
+		return getStartPoint(sessionCode);
 	}
 	
 	public String getURLToGroup(Identity identity, ViteroBooking booking)
@@ -237,10 +238,8 @@ public class ViteroManager implements UserDataDeletable {
 		String sessionCode = createVMSSessionCode(identity);
 		if(sessionCode == null) {
 			return null;
-		} else {
-			String url = getGroupURL(sessionCode, booking.getGroupId());
-			return url;
 		}
+		return getGroupURL(sessionCode, booking.getGroupId());
 	}
 	
 	/**
@@ -320,7 +319,6 @@ public class ViteroManager implements UserDataDeletable {
 					log.error("Cannot update user on vitero system:" + identity.getKey(), e);
 				}
 			}
-
 			
 			CreatePersonalBookingSessionCodeRequest.Sessioncode code = new CreatePersonalBookingSessionCodeRequest.Sessioncode();
 			code.setBookingid(booking.getBookingId());
@@ -377,11 +375,11 @@ public class ViteroManager implements UserDataDeletable {
 
 			ViteroGroupRoles groupRoles = new ViteroGroupRoles();
 			if(numOfParticipants > 0) {
-				Map<Integer,String> idToEmails = new HashMap<Integer,String>();
+				Map<Integer,String> idToEmails = new HashMap<>();
 				List<Usertype> vmsUsers = getVmsUsersByGroup(id);
 				if(vmsUsers != null) {
 					for(Usertype vmsUser:vmsUsers) {
-						Integer userId = new Integer(vmsUser.getId());
+						Integer userId = Integer.valueOf(vmsUser.getId());
 						String email = vmsUser.getEmail();
 						groupRoles.getEmailsOfParticipants().add(email);
 						idToEmails.put(userId, email);
@@ -390,7 +388,7 @@ public class ViteroManager implements UserDataDeletable {
 				
 				for(int i=0; i<numOfParticipants; i++) {
 					Completegrouptype.Participant participant = participants.get(i);
-					Integer userId = new Integer(participant.getUserid());
+					Integer userId = Integer.valueOf(participant.getUserid());
 					String email = idToEmails.get(userId);
 					if(email != null) {
 						GroupRole role = GroupRole.valueOf(participant.getRole());
@@ -443,8 +441,7 @@ public class ViteroManager implements UserDataDeletable {
 			GetUserListByCustomerRequest listRequest = new GetUserListByCustomerRequest();
 			listRequest.setCustomerid(viteroModule.getCustomerId());
 			Userlist userList = getUserWebService().getUserListByCustomer(listRequest);
-			List<Usertype> userTypes = userList.getUser();
-			return userTypes;
+			return userList.getUser();
 		} catch(SOAPFaultException f) {
 			ErrorCode code = handleAxisFault(f);
 			switch(code) {
@@ -466,8 +463,7 @@ public class ViteroManager implements UserDataDeletable {
 			GetUserListByGroupRequest listRequest = new GetUserListByGroupRequest();
 			listRequest.setGroupid(groupId);
 			Userlist userList = getUserWebService().getUserListByGroup(listRequest);
-			List<Usertype> userTypes = userList.getUser();
-			return userTypes;
+			return userList.getUser();
 		} catch(SOAPFaultException f) {
 			ErrorCode code = handleAxisFault(f);
 			switch(code) {
@@ -615,7 +611,7 @@ public class ViteroManager implements UserDataDeletable {
 			user.setEmail(olatUser.getProperty(UserConstants.EMAIL, null));
 			user.setPassword("changeme");
 			int customerId =viteroModule.getCustomerId();
-			user.getCustomeridlist().add(new Integer(customerId));
+			user.getCustomeridlist().add(String.valueOf(customerId));
 
 			//optional
 			String language = identity.getUser().getPreferences().getLanguage();
@@ -660,13 +656,10 @@ public class ViteroManager implements UserDataDeletable {
 			if(StringHelper.containsNonWhitespace(institution)) {
 				user.setCompany(institution);
 			}
-			/*
-			user.setTitle("");
-			*/
 			user.setTechnicalnote("Generated by OpenOLAT");
 			
 			createRequest.setUser(user);
-			Userid userId = getUserWebService().createUser(createRequest);
+			CreateUserResponse userId = getUserWebService().createUser(createRequest);
 			
 			storePortrait(identity, userId.getUserid());
 			return userId.getUserid();
@@ -738,9 +731,9 @@ public class ViteroManager implements UserDataDeletable {
 	protected void deleteVmsUser(int userId) 
 	throws VmsNotAvailableException {
 		try {
-			Userid userIdType = new Userid();
-			userIdType.setUserid(userId);
-			getUserWebService().deleteUser(userIdType);
+			DeleteUserRequest deleteUserRequest = new DeleteUserRequest();
+			deleteUserRequest.setUserid(userId);
+			getUserWebService().deleteUser(deleteUserRequest);
 		} catch (SOAPFaultException f) {
 			ErrorCode code = handleAxisFault(f);
 			switch(code) {
@@ -756,7 +749,7 @@ public class ViteroManager implements UserDataDeletable {
 
 	public List<Integer> getLicencedRoomSizes() 
 	throws VmsNotAvailableException {
-		List<Integer> roomSizes = new ArrayList<Integer>();
+		List<Integer> roomSizes = new ArrayList<>();
 		try {
 			GetModulesForCustomerRequest licenceRequest = new GetModulesForCustomerRequest();
 			licenceRequest.setCustomerid(viteroModule.getCustomerId());
@@ -788,7 +781,7 @@ public class ViteroManager implements UserDataDeletable {
 	
 	public List<Integer> getLicenceForAvailableRooms(Date begin, Date end) 
 	throws VmsNotAvailableException {
-		List<Integer> roomSizes = new ArrayList<Integer>();
+		List<Integer> roomSizes = new ArrayList<>();
 		try {
 			Grouprequesttype groupRequest = new Grouprequesttype();
 			groupRequest.setStart(format(begin));
@@ -868,9 +861,9 @@ public class ViteroManager implements UserDataDeletable {
 	public boolean deleteGroup(ViteroBooking vBooking)
 	throws VmsNotAvailableException {
 		try {
-			Groupid groupId = new Groupid();
-			groupId.setGroupid(vBooking.getGroupId());
-			getGroupWebService().deleteGroup(groupId);
+			DeleteGroupRequest deleteGroupRequest = new DeleteGroupRequest();
+			deleteGroupRequest.setGroupid(vBooking.getGroupId());
+			getGroupWebService().deleteGroup(deleteGroupRequest);
 			return true;
 		} catch(SOAPFaultException f) {
 			ErrorCode code = handleAxisFault(f);
@@ -929,16 +922,16 @@ public class ViteroManager implements UserDataDeletable {
 			//update user information
 				try {
 					updateVmsUser(identity, userId);
-					//storePortrait(identity, userId);
 				} catch (Exception e) {
 					log.error("Cannot update user on vitero system:" + identity.getKey(), e);
 				}
 			}
 			
 			Group groupWs = getGroupWebService();
-			Groupiduserid groupuserId = new Groupiduserid();
+			Groupiduseridstrict groupuserId = new Groupiduseridstrict();
 			groupuserId.setGroupid(booking.getGroupId());
 			groupuserId.setUserid(userId);
+			groupuserId.setStrictwsdl(Boolean.FALSE);
 			groupWs.addUserToGroup(groupuserId);
 			
 			if(role != null) {
@@ -983,7 +976,7 @@ public class ViteroManager implements UserDataDeletable {
 	public ViteroStatus removeFromRoom(ViteroBooking booking, int userId)
 	throws VmsNotAvailableException {
 		try {
-			Groupiduserid groupuserId = new Groupiduserid();
+			Groupiduseridstrict groupuserId = new Groupiduseridstrict();
 			groupuserId.setGroupid(booking.getGroupId());
 			groupuserId.setUserid(userId);
 			getGroupWebService().removeUserFromGroup(groupuserId);
diff --git a/src/main/java/org/olat/modules/vitero/ui/ViteroBookingDataModel.java b/src/main/java/org/olat/modules/vitero/ui/ViteroBookingDataModel.java
index b4fabc6a40e..e07f4b19426 100644
--- a/src/main/java/org/olat/modules/vitero/ui/ViteroBookingDataModel.java
+++ b/src/main/java/org/olat/modules/vitero/ui/ViteroBookingDataModel.java
@@ -73,10 +73,7 @@ public class ViteroBookingDataModel implements TableDataModel<ViteroBooking> {
 	public Object getValueAt(int row, int col) {
 		ViteroBooking booking = getObject(row);
 		switch(Column.values()[col]) {
-			case name: {
-				String name = booking.getGroupName();
-				return name;
-			}
+			case name: return booking.getGroupName();
 			case begin: return booking.getStart();
 			case end: return booking.getEnd();
 			case roomSize: {
diff --git a/src/main/java/org/olat/modules/vitero/ui/ViteroConfigurationController.java b/src/main/java/org/olat/modules/vitero/ui/ViteroConfigurationController.java
index f2206142a07..1652c257c36 100644
--- a/src/main/java/org/olat/modules/vitero/ui/ViteroConfigurationController.java
+++ b/src/main/java/org/olat/modules/vitero/ui/ViteroConfigurationController.java
@@ -119,6 +119,7 @@ public class ViteroConfigurationController extends FormBasicController {
 			//account configuration
 			String vmsUri = viteroModule.getVmsURI().toString();
 			urlEl = uifactory.addTextElement("vitero-url", "option.baseurl", 255, vmsUri, moduleFlc);
+			urlEl.setExampleKey("option.baseurl.example", null);
 			urlEl.setDisplaySize(60);
 			String login = viteroModule.getAdminLogin();
 			loginEl = uifactory.addTextElement("vitero-login", "option.adminlogin", 32, login, moduleFlc);
diff --git a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_de.properties
index 376c39edaeb..7f113eb57c5 100644
--- a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_de.properties
@@ -60,6 +60,7 @@ check.ok=Der Verbindungstest war erfolgreich, Sie k\u00F6nnen vitero nun benutze
 check.nok=Der Verbindungstest war nicht erfolgreich. Bitte pr\u00FCfen Sie die Server URL, der Benutzername und das Passwort des Systembenutzers!
 option.olatTimeZone=Zeitzone OLAT Server
 option.baseurl=URL vitero Server
+option.baseurl.example=https://vms3.vitero.de/vitero
 option.adminlogin=Web Service Benutzername
 option.adminpassword=Web Service Passwort
 option.customerId=Kundenidentifikator	
diff --git a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_en.properties
index ec0c1006a99..42fb1d920e5 100644
--- a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_en.properties
@@ -75,7 +75,8 @@ new.booking.warning=The meeting settings are final and can not be modified later
 option.adminlogin=Web service user name
 option.adminpassword=Web service password
 option.baseurl=URL vitero server
-option.customerId=Client identifyer\t
+option.baseurl.example=https://vms3.vitero.de/vitero
+option.customerId=Client identifyer
 option.olatTimeZone=Time Zone OLAT server
 reload=Reload
 role.assistant=Assistant
diff --git a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_fr.properties
index fdbad0b5461..0f4ac2f950d 100644
--- a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_fr.properties
@@ -75,6 +75,7 @@ new.booking.warning=Les donn\u00E9es ne peuvent plus \u00EAtre chang\u00E9es\!
 option.adminlogin=Nom d'utilisateur du Web Service
 option.adminpassword=Mot de passe du Web Service
 option.baseurl=URL du serveur vitero
+option.baseurl.example=https://vms3.vitero.de/vitero
 option.customerId=Identification client
 option.olatTimeZone=Fuseau horaire d'OpenOLAT
 reload=Actualiser
diff --git a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_it.properties
index d9b54a39363..0a5bb4eab48 100644
--- a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_it.properties
@@ -59,6 +59,7 @@ new.booking.warning=Le impostazioni del meeting sono definitive e non possono es
 option.adminlogin=Nome utente del Web Service
 option.adminpassword=Password del Web Service
 option.baseurl=URL del server vitero
+option.baseurl.example=https://vms3.vitero.de/vitero
 option.customerId=Identificatore del client
 option.olatTimeZone=Fuso orario del server OpenOLAT
 reload=Aggiorna
diff --git a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_pl.properties b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_pl.properties
index dab0cb11090..6e3104f7010 100644
--- a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_pl.properties
+++ b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_pl.properties
@@ -27,4 +27,5 @@ check.users.ok=Nie wykryto \u017Cadnych b\u0142\u0119d\u00F3w.
 
 error.bookingDoesntExistPrime=$\:error.bookingDoesntExist
 option.adminlogin=Nazwa u\u017Cytkownika web serwisu
+option.baseurl.example=https://vms3.vitero.de/vitero
 user.role=rola vitero
diff --git a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_pt_BR.properties
index 47b3d98ef45..7da59aeb10e 100644
--- a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_pt_BR.properties
@@ -59,6 +59,7 @@ new.booking.warning=As defini\u00E7\u00F5es da reuni\u00E3o s\u00E3o finais e n\
 option.adminlogin=Nome do usu\u00E1rio do servi\u00E7o da Web
 option.adminpassword=Senha do web service
 option.baseurl=URL servidor vitero
+option.baseurl.example=https://vms3.vitero.de/vitero
 option.customerId=Identificador do cliente
 option.olatTimeZone=Fuso hor\u00E1rio do servidor OLAT
 reload=Recarregar
diff --git a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_zh_CN.properties
index b0c2848c254..ee4e63faf2a 100644
--- a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_zh_CN.properties
+++ b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_zh_CN.properties
@@ -74,6 +74,7 @@ new.booking.warning=\u8FD9\u4E9B\u4E0D\u80FD\u518D\u88AB\u66F4\u6539\u3002
 option.adminlogin=\u7F51\u7EDC\u670D\u52A1\u7528\u6237\u540D\u79F0
 option.adminpassword=\u7F51\u7EDC\u670D\u52A1\u5BC6\u7801
 option.baseurl=vitero\u670D\u52A1\u5668URL
+option.baseurl.example=https://vms3.vitero.de/vitero
 option.customerId=\u987E\u5BA2\u6807\u8BC6
 option.olatTimeZone=OpenOLAT\u670D\u52A1\u5668\u65F6\u533A
 reload=\u6FC0\u6D3B
-- 
GitLab