You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/11/18 11:56:03 UTC

[1/3] openmeetings git commit: [OPENMEETINGS-1721] some issues are covered

Repository: openmeetings
Updated Branches:
  refs/heads/master d7170ea65 -> 483b424fd


[OPENMEETINGS-1721] some issues are covered


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/cddace30
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/cddace30
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/cddace30

Branch: refs/heads/master
Commit: cddace307b37543bdd2fec38386dc4646246a747
Parents: d7170ea
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Sat Nov 18 16:06:08 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Sat Nov 18 16:06:29 2017 +0700

----------------------------------------------------------------------
 openmeetings-flash/pom.xml                      | 24 --------------------
 .../org/apache/openmeetings/net/RestCall.as     |  4 ++--
 .../apache/openmeetings/net/UploadPostHelper.as |  2 +-
 .../openmeetings/nettest/BaseURLLoadTest.mxml   |  2 +-
 pom.xml                                         | 20 ++++++++++++++++
 5 files changed, 24 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/cddace30/openmeetings-flash/pom.xml
----------------------------------------------------------------------
diff --git a/openmeetings-flash/pom.xml b/openmeetings-flash/pom.xml
index cd15bda..1fa76f6 100644
--- a/openmeetings-flash/pom.xml
+++ b/openmeetings-flash/pom.xml
@@ -33,30 +33,6 @@
 		<skip.site.copy>false</skip.site.copy>
 		<flex.sdk.version>4.16.0</flex.sdk.version>
 	</properties>
-	<repositories>
-		<repository>
-			<id>jpresso</id>
-			<url>http://repository.jspresso.org/maven2/</url>
-			<releases>
-				<enabled>true</enabled>
-			</releases>
-			<snapshots>
-				<enabled>true</enabled>
-			</snapshots>
-		</repository>
-	</repositories>
-	<pluginRepositories>
-		<pluginRepository>
-			<id>jpresso</id>
-			<url>http://repository.jspresso.org/maven2/</url>
-			<releases>
-				<enabled>true</enabled>
-			</releases>
-			<snapshots>
-				<enabled>true</enabled>
-			</snapshots>
-		</pluginRepository>
-	</pluginRepositories>
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.flex</groupId>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/cddace30/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/RestCall.as
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/RestCall.as b/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/RestCall.as
index d56f0af..6859a1b 100644
--- a/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/RestCall.as
+++ b/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/RestCall.as
@@ -62,7 +62,7 @@ public class RestCall {
 			requestor.addEventListener(Event.COMPLETE, successCallback);
 		}
 		if (this.errorCallback !== null) {
-			requestor.addEventListener("ioError", errorCallback); //IOErrorEvent.IOERROR
+			requestor.addEventListener(IOErrorEvent.IO_ERROR, errorCallback); //IOErrorEvent.IOERROR
 			requestor.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorCallback);
 		}
 	}
@@ -89,7 +89,7 @@ public class RestCall {
 	}
 
 	public function close():void {
-		requestor.close()
+		requestor.close();
 	}
 }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/cddace30/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/UploadPostHelper.as
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/UploadPostHelper.as b/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/UploadPostHelper.as
index 3e7cfc2..320a27c 100644
--- a/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/UploadPostHelper.as
+++ b/openmeetings-flash/src/main/flex/org/apache/openmeetings/net/UploadPostHelper.as
@@ -87,7 +87,7 @@ public class UploadPostHelper {
 			}
 			postData = LINEBREAK(postData);
 			if (parameters[j].type) {
-				addContentType(postData, parameters[j].type)
+				addContentType(postData, parameters[j].type);
 			} else {
 				postData = LINEBREAK(postData);
 			}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/cddace30/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/BaseURLLoadTest.mxml
----------------------------------------------------------------------
diff --git a/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/BaseURLLoadTest.mxml b/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/BaseURLLoadTest.mxml
index e0f128e..8f8fb15 100755
--- a/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/BaseURLLoadTest.mxml
+++ b/openmeetings-flash/src/main/flex/org/apache/openmeetings/nettest/BaseURLLoadTest.mxml
@@ -74,7 +74,7 @@
 
 		private function onError(e:ErrorEvent):void {
 			if (verbose) {
-				this.log("Error - " + e);
+				log("Error - " + e);
 			}
 
 			finishedTestsCount++;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/cddace30/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 42e6d3f..810eb8d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -564,12 +564,32 @@
 			<releases><enabled>true</enabled></releases>
 			<snapshots><enabled>false</enabled></snapshots>
 		</repository>
+		<repository>
+			<id>jpresso</id>
+			<url>http://repository.jspresso.org/maven2/</url>
+			<releases>
+				<enabled>true</enabled>
+			</releases>
+			<snapshots>
+				<enabled>true</enabled>
+			</snapshots>
+		</repository>
 	</repositories>
 	<pluginRepositories>
 		<pluginRepository>
 			<id>apache-snapshots</id>
 			<url>https://repository.apache.org/content/groups/snapshots</url>
 		</pluginRepository>
+		<pluginRepository>
+			<id>jpresso</id>
+			<url>http://repository.jspresso.org/maven2/</url>
+			<releases>
+				<enabled>true</enabled>
+			</releases>
+			<snapshots>
+				<enabled>true</enabled>
+			</snapshots>
+		</pluginRepository>
 	</pluginRepositories>
 	<dependencyManagement>
 		<dependencies>


[3/3] openmeetings git commit: [OPENMEETINGS-1721] some issues are covered

Posted by so...@apache.org.
[OPENMEETINGS-1721] some issues are covered


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/483b424f
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/483b424f
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/483b424f

Branch: refs/heads/master
Commit: 483b424fd99cf0748f120765133fa4af24b17577
Parents: 6683e8b
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Sat Nov 18 18:55:49 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Sat Nov 18 18:55:49 2017 +0700

----------------------------------------------------------------------
 .../core/converter/ImageConverter.java          |   1 -
 .../core/converter/InterviewConverter.java      |   2 -
 .../core/data/file/FileProcessor.java           |   1 -
 .../openmeetings/core/remote/MobileService.java |   2 -
 .../openmeetings/core/service/MainService.java  |   1 -
 .../openmeetings/core/util/WebSocketHelper.java |   1 -
 .../db/dao/calendar/AppointmentDao.java         |   2 +-
 .../openmeetings/db/dao/file/FileItemDao.java   |   1 -
 .../openmeetings/db/dao/room/RoomDao.java       |   1 -
 .../apache/openmeetings/db/dao/room/SipDao.java |   6 +-
 .../db/dao/server/SessiondataDao.java           |   5 +-
 .../openmeetings/db/dao/user/UserDao.java       |   7 +-
 .../db/entity/calendar/Appointment.java         |   4 +-
 .../openmeetings/db/util/FormatHelper.java      |   1 -
 .../openmeetings/db/util/TimezoneUtil.java      |  19 +-
 .../apache/openmeetings/cli/CleanupHelper.java  |   5 +-
 .../openmeetings/cli/OmHelpFormatter.java       |   2 -
 .../openmeetings/backup/countries.properties    | 254 -------------------
 .../service/calendar/AppointmentLogic.java      |   2 -
 .../calendar/caldav/methods/SyncMethod.java     |   3 +-
 .../service/quartz/scheduler/CleanupJob.java    |   2 -
 .../service/room/InvitationManager.java         |   1 -
 .../openmeetings/service/user/UserManager.java  |   3 -
 .../apache/openmeetings/util/OmFileHelper.java  |   1 -
 .../apache/openmeetings/util/StoredFile.java    |   4 +-
 .../web/admin/backup/BackupPanel.java           |   2 -
 .../web/admin/configurations/ConfigForm.java    |   2 +-
 .../web/admin/connection/ConnectionsPanel.java  |   1 -
 .../web/admin/email/EmailPanel.java             |   1 -
 .../web/admin/labels/LabelsForm.java            |   4 +-
 .../openmeetings/web/admin/users/UserForm.java  |   1 -
 .../openmeetings/web/app/Application.java       |   6 -
 .../apache/openmeetings/web/app/WebSession.java |   5 +-
 .../openmeetings/web/common/BasePanel.java      |   2 +-
 .../openmeetings/web/common/InvitationForm.java |   2 -
 .../web/common/UploadableImagePanel.java        |   3 -
 .../web/common/tree/FileTreePanel.java          |   1 -
 .../web/common/tree/FolderPanel.java            |   1 -
 .../web/common/tree/OmTreeProvider.java         |   2 -
 .../web/pages/install/InstallWizard.java        |   5 -
 .../apache/openmeetings/web/room/RoomPanel.java |   1 -
 .../apache/openmeetings/web/room/SwfPanel.java  |   2 +-
 .../web/room/activities/ActivitiesPanel.java    |   4 +-
 .../web/room/menu/RoomInvitationForm.java       |   1 -
 .../web/room/menu/RoomMenuPanel.java            |   6 +-
 .../web/room/menu/StartSharingButton.java       |   1 -
 .../web/room/poll/PollResultsDialog.java        |   2 -
 .../openmeetings/web/room/poll/VoteDialog.java  |   2 +-
 .../web/room/sidebar/RoomClientPanel.java       |   1 -
 .../web/room/sidebar/RoomSidebar.java           |   1 -
 .../openmeetings/web/room/wb/WbPanel.java       |   1 -
 .../web/user/InviteUserToRoomDialog.java        |   1 -
 .../openmeetings/web/user/MessageDialog.java    |   7 +-
 .../web/user/calendar/AppointmentDialog.java    |  21 +-
 .../apache/openmeetings/web/user/chat/Chat.java |   3 +-
 .../web/user/profile/MessagesContactsPanel.java |   5 +-
 .../web/user/profile/UserSearchPanel.java       |   3 +-
 .../user/record/RecordingResourceReference.java |   1 -
 .../web/user/record/VideoPlayer.html            |   1 -
 .../web/user/record/VideoPlayer.java            |   3 +-
 .../web/util/UserChoiceProvider.java            |   1 -
 .../openmeetings/webservice/FileWebService.java |   2 +-
 62 files changed, 50 insertions(+), 389 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java
index 9bf1cbd..6d4d2df 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java
@@ -113,7 +113,6 @@ public class ImageConverter extends BaseConverter {
 		us.setPictureuri(pictureuri);
 		userDao.update(us, userId);
 
-		//TODO: After uploading a new picture all other clients should refresh
 		return returnMap;
 	}
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
index d1b2d12..97278f8 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/InterviewConverter.java
@@ -176,7 +176,6 @@ public class InterviewConverter extends BaseConverter implements IRecordingConve
 					ProcessResult res = ProcessHelper.executeScript("checkFlvPod_" + pod , args);
 					logs.add(res);
 					if (res.isOk()) {
-						//TODO need to remove smallest gap
 						long diff = diff(meta.getRecordStart(), meta.getRecording().getRecordStart());
 						if (diff != 0L) {
 							// stub to add
@@ -249,7 +248,6 @@ public class InterviewConverter extends BaseConverter implements IRecordingConve
 			args.add("-map"); args.add("2:0");
 			args.add("-qmax"); args.add("1");
 			args.add("-qmin"); args.add("1");
-			// TODO additional flag to 'quiet' output should be added
 
 			r.setWidth(2 * flvWidth);
 			r.setHeight(flvHeight);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
index 1d90502..f530323 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
@@ -55,7 +55,6 @@ public class FileProcessor {
 	@Autowired
 	private DocumentConverter docConverter;
 
-	//TODO this method need to be refactored to throw exceptions
 	public ProcessResultList processFile(FileItem f, InputStream is) throws Exception {
 		ProcessResultList logs = new ProcessResultList();
 		// Generate a random string to prevent any problems with

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
index 53b6685..96f3a58 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
@@ -168,7 +168,6 @@ public class MobileService {
 				String country = umap.get("stateId");
 				Long langId = Long.valueOf(umap.get("langId"));
 
-				//TODO unify with Register dialog
 				String hash = UUID.randomUUID().toString();
 
 				String baseURL = getBaseUrl();
@@ -273,7 +272,6 @@ public class MobileService {
 			if (conn != null && conn instanceof IServiceCapableConnection) {
 				StreamClient c = sessionManager.get(IClientUtil.getId(conn.getClient()));
 				if (!Strings.isEmpty(c.getAvsettings()) && Client.Type.sharing != c.getType()) {
-					//TODO duplicates !!!!!!!!!!!!!!
 					Map<String, Object> map = new HashMap<>();
 					add(map, "streamId", c.getId());
 					add(map, "broadCastId", c.getBroadcastId());

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-core/src/main/java/org/apache/openmeetings/core/service/MainService.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/service/MainService.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/service/MainService.java
index bfabbd0..0a33c33 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/service/MainService.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/service/MainService.java
@@ -59,7 +59,6 @@ public class MainService {
 				return true;
 			}
 		}
-		// TODO restrict by time???
 		return false;
 	}
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
index 182ea62..3aad209 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
@@ -191,7 +191,6 @@ public class WebSocketHelper {
 		sendAll(m, true);
 	}
 
-	//TODO should this be unified???
 	private static void sendAll(final String m, boolean publish) {
 		if (publish) {
 			publish(new WsMessageAll(m));

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
index db1e462..99c37a3 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
@@ -166,7 +166,7 @@ public class AppointmentDao {
 		q1.setParameter("end", end);
 		q1.setParameter("userId", userId);
 		for (Appointment a : q1.getResultList()) {
-			a.setConnectedEvent(true); //TODO need to be reviewed
+			a.setConnectedEvent(true);
 			listAppoints.add(a);
 		}
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemDao.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemDao.java
index 8e7b22b..2245232 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemDao.java
@@ -241,7 +241,6 @@ public class FileItemDao extends BaseFileItemDao {
 						}
 						break;
 					default:
-						// TODO check other types
 						break;
 				}
 			}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
index 223268d..5763e56 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
@@ -188,7 +188,6 @@ public class RoomDao implements IGroupAdminDataProviderDao<Room> {
 	}
 
 	public List<Room> getAppointedRoomsByUser(long userId) {
-		//TODO generalize with AppointmentDao
 		log.debug("getAppointedRoomsByUser : UserID - " + userId);
 
 		TimeZone timeZone = timezoneUtil.getTimeZone(userDao.get(userId));

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java
index 2669811..cfa81d4 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/SipDao.java
@@ -65,7 +65,7 @@ public class SipDao {
 	}
 
 	private ManagerConnection getConnection() {
-		DefaultManagerConnection con = (DefaultManagerConnection)factory.createManagerConnection(); // TODO secure
+		DefaultManagerConnection con = (DefaultManagerConnection)factory.createManagerConnection();
 		con.setDefaultEventTimeout(timeout);
 		con.setDefaultResponseTimeout(timeout);
 		con.setSocketReadTimeout((int)timeout);
@@ -162,7 +162,7 @@ public class SipDao {
 		if (r != null) {
 			log.debug("SipDao::countUsers size == " + r.getEvents().size());
 			// "- 1" here means: ListComplete event
-			return r.getEvents().size() - 1; // TODO check if was successfull
+			return r.getEvents().size() - 1;
 		}
 		return 0;
 	}
@@ -189,7 +189,7 @@ public class SipDao {
 		oa.setPriority(1);
 		oa.setTimeout(timeout);
 
-		exec(oa); //TODO handle response
+		exec(oa);
 	}
 
 	public String getUid() {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
index 170e22a..6e65377 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
@@ -131,7 +131,7 @@ public class SessiondataDao {
 
 	/**
 	 *
-	 * @param date
+	 * @param refreshed
 	 * @return
 	 */
 	private List<Sessiondata> getSessionToDelete(Date refreshed) {
@@ -147,7 +147,7 @@ public class SessiondataDao {
 
 	/**
 	 *
-	 *
+	 * @param timeout
 	 */
 	public void clearSessionTable(long timeout) {
 		try {
@@ -173,7 +173,6 @@ public class SessiondataDao {
 			for (StreamClient rcl : sessionManager.listByRoom(roomId)) {
 				String aux = rcl.getSwfurl();
 
-				//TODO this need to be refactored !
 				int start = aux.indexOf("sid=") + 4;
 				int end = start + 32;
 				if (end > aux.length()) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
index f14f9a0..1093c5f 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
@@ -101,7 +101,7 @@ public class UserDao implements IGroupAdminDataProviderDao<User> {
 	 */
 	public User getNewUserInstance(User currentUser) {
 		User user = new User();
-		user.setSalutation(Salutation.mr); // TODO: Fix default selection to be configurable
+		user.setSalutation(Salutation.mr);
 		user.setRights(getDefaultRights());
 		user.setLanguageId(getDefaultLang());
 		user.setTimeZoneId(timezoneUtil.getTimeZone(currentUser).getID());
@@ -255,10 +255,7 @@ public class UserDao implements IGroupAdminDataProviderDao<User> {
 		return update(u, updatedBy);
 	}
 
-	// TODO: Why the password field is not set via the Model is because its
-	// FetchType is Lazy, this extra hook here might be not needed with a
-	// different mechanism to protect the password from being read
-	// sebawagner, 01.10.2012
+	// Why the password field is not set via the Model is because its FetchType is Lazy
 	public User update(User user, String password, Long updatedBy) throws NoSuchAlgorithmException {
 		User u = update(user, updatedBy);
 		if (u != null && !Strings.isEmpty(password)) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
index d3abe05..334c2fc 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
@@ -67,7 +67,7 @@ import org.simpleframework.xml.Root;
 		query="SELECT a FROM MeetingMember mm INNER JOIN mm.appointment a "
 			+ "WHERE mm.deleted = false AND mm.user.id <> a.owner.id AND mm.user.id = :userId "
 			+ "	AND a.id NOT IN (SELECT a.id FROM Appointment a WHERE a.owner.id = :userId)"
-			+ "	AND mm.connectedEvent = false " //TODO review: isConnectedEvent is set for the MeetingMember if event is created from "Private Messages", it is weird
+			+ "	AND mm.connectedEvent = false " //connectedEvent is set for the MeetingMember if event is created from "Private Messages", it is weird
 			+ "	AND ( "
 			+ "		(a.start BETWEEN :start AND :end) "
 			+ "		OR (a.end BETWEEN :start AND :end) "
@@ -87,7 +87,7 @@ import org.simpleframework.xml.Root;
 		)
 	, @NamedQuery(name="getAppointmentByRoomId", query="SELECT a FROM Appointment a WHERE a.room.id = :roomId")
 	, @NamedQuery(name="getAppointmentByOwnerRoomId", query="SELECT a FROM Appointment a WHERE a.deleted = false AND a.owner.id = :userId AND a.room.id = :roomId")
-	//TODO this query returns duplicates if the user books an appointment with his own user as second meeting-member, swagner 19.02.2012
+	//this query returns duplicates if the user books an appointment with his own user as second meeting-member, swagner 19.02.2012
 	, @NamedQuery(name="appointmentsInRangeByUser",
 		query="SELECT a FROM MeetingMember mm, IN(mm.appointment) a "
 			+ "WHERE mm.deleted = false AND mm.user.id <> a.owner.id AND mm.user.id = :userId "

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/FormatHelper.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/FormatHelper.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/FormatHelper.java
index 542232d..4f0264e 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/FormatHelper.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/FormatHelper.java
@@ -66,7 +66,6 @@ public class FormatHelper {
 		return formatUser(u, false);
 	}
 
-	// TODO check RIGHTS here (email might need to be hidden)
 	public static String formatUser(User u, boolean isHTMLEscape) {
 		String user = "";
 		if (u != null) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java
index 9445136..7e83560 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/TimezoneUtil.java
@@ -40,26 +40,19 @@ public class TimezoneUtil {
 	private ConfigurationDao cfgDao;
 
 	/**
-	 * Parameters: ID - the ID for a TimeZone, either an abbreviation such as "PST", a full name such as
-	 * "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x
-	 * compatibility only and full names should be used.
-	 *
-	 * Returns: the specified TimeZone, or the GMT zone if the given ID cannot be understood. <br/>
-	 * <br/>
-	 * TODO: Fall-back mechanism and maybe a log output if the given timeZoneId is not found in the list of available
-	 * TimeZones of the current java.util.TimeZone package of the Java SDK the the user is running <br/>
 	 *
 	 * @param timeZoneId
-	 * @return
+	 *            the ID for a TimeZone, either an abbreviation such as "PST", a
+	 *            full name such as "America/Los_Angeles", or a custom ID such as
+	 *            "GMT-8:00". Note that the support of abbreviations is for JDK
+	 *            1.1.x compatibility only and full names should be used.
+	 * @return the specified TimeZone, or the GMT zone if the given ID cannot be
+	 *         understood.
 	 */
-
 	public TimeZone getTimeZone(String timeZoneId) {
 		if (Strings.isEmpty(timeZoneId)) {
 			return getDefaultTimeZone();
 		}
-
-		// see TODO in comments
-
 		return TimeZone.getTimeZone(timeZoneId);
 	}
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
----------------------------------------------------------------------
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
index 3d1ea16..646f8d5 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/CleanupHelper.java
@@ -79,16 +79,15 @@ public class CleanupHelper {
 		List<File> deleted = new ArrayList<>();
 		int missing = 0;
 		for (File f : list(parent, null)) {
-			FileItem item = fileDao.getByHash(f.getName()); // TODO probable extension should be stripped
+			FileItem item = fileDao.getByHash(f.getName());
 			if (item == null) {
 				invalid.add(f);
 			} else if (item.isDeleted()) {
 				deleted.add(f);
 			}
 		}
-		//TODO WML_DIR should also be checked
 		for (FileItem item : fileDao.get()) {
-			if (!item.isDeleted() && item.getHash() != null && !new File(parent, item.getHash()).exists()) {
+			if (!item.isDeleted() && !item.exists()) {
 				missing++;
 			}
 		}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-install/src/main/java/org/apache/openmeetings/cli/OmHelpFormatter.java
----------------------------------------------------------------------
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/OmHelpFormatter.java b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/OmHelpFormatter.java
index c5da79b..c0bbc19 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/OmHelpFormatter.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/OmHelpFormatter.java
@@ -60,7 +60,6 @@ public class OmHelpFormatter extends HelpFormatter {
 		}
 		for (Option _o : opts.getOptions()) {
 			OmOption o = (OmOption)_o;
-			//TODO need better check (required option should go first and should not be duplicated
 			boolean skipOption = map.containsKey(o.getOpt());
 			boolean mainOption = skipOption || o.getGroup() == null;
 
@@ -99,7 +98,6 @@ public class OmHelpFormatter extends HelpFormatter {
 			maxPrefixLength = Math.max(optBuf.length(), maxPrefixLength);
 
 			if (skipOption) {
-				//TODO need better check (required option should go first and should not be duplicated
 				continue;
 			}
 			String grp = o.getGroup();

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/countries.properties
----------------------------------------------------------------------
diff --git a/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/countries.properties b/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/countries.properties
deleted file mode 100644
index adf6070..0000000
--- a/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/countries.properties
+++ /dev/null
@@ -1,254 +0,0 @@
-################################################################################
-##
-##  Licensed to the Apache Software Foundation (ASF) under one or more
-##  contributor license agreements.  See the NOTICE file distributed with
-##  this work for additional information regarding copyright ownership.
-##  The ASF licenses this file to You under the Apache License, Version 2.0
-##  (the "License"); you may not use this file except in compliance with
-##  the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-##  Unless required by applicable law or agreed to in writing, software
-##  distributed under the License is distributed on an "AS IS" BASIS,
-##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-##  See the License for the specific language governing permissions and
-##  limitations under the License.
-##
-################################################################################
-country.1=AF
-country.2=AX
-country.3=AL
-country.4=DZ
-country.5=AS
-country.6=AD
-country.7=AO
-country.8=AI
-country.9=AG
-country.10=AR
-country.11=AM
-country.12=AW
-country.13=AU
-country.14=AT
-country.15=AZ
-country.16=BS
-country.17=BH
-country.18=BD
-country.19=BB
-country.20=BY
-country.21=BE
-country.22=BZ
-country.23=BJ
-country.24=BM
-country.25=BT
-country.26=BO
-country.27=BA
-country.28=BW
-country.29=BR
-country.30=VG
-country.31=BN
-country.32=BG
-country.33=BF
-country.34=BI
-country.35=KH
-country.36=CM
-country.37=CA
-country.38=CV
-country.39=KY
-country.40=CF
-country.41=TD
-country.42=GB
-country.43=CL
-country.44=CN
-country.45=HK
-country.46=MO
-country.47=CO
-country.48=KM
-country.49=CG
-country.50=CK
-country.51=CR
-country.52=CI
-country.53=HR
-country.54=CU
-country.55=CY
-country.56=CZ
-country.57=KP
-country.58=CD
-country.59=DK
-country.60=DJ
-country.61=DM
-country.62=DO
-country.63=EC
-country.64=EG
-country.65=SV
-country.66=GQ
-country.67=ER
-country.68=EE
-country.69=ET
-country.70=FO
-country.71=FK
-country.72=FJ
-country.73=FI
-country.74=FR
-country.75=GF
-country.76=PF
-country.77=GA
-country.78=GM
-country.79=GE
-country.80=DE
-country.81=GH
-country.82=GI
-country.83=GR
-country.84=GL
-country.85=GD
-country.86=GP
-country.87=GU
-country.88=GT
-country.89=GG
-country.90=GN
-country.91=GW
-country.92=GY
-country.93=HT
-country.94=VA
-country.95=HN
-country.96=HU
-country.97=IS
-country.98=IN
-country.99=ID
-country.100=IR
-country.101=IQ
-country.102=IE
-country.103=IM
-country.104=IL
-country.105=IT
-country.106=JM
-country.107=JP
-country.108=JE
-country.109=JO
-country.110=KZ
-country.111=KE
-country.112=KI
-country.113=KW
-country.114=KG
-country.115=LA
-country.116=LV
-country.117=LB
-country.118=LS
-country.119=LR
-country.120=LY
-country.121=LI
-country.122=LT
-country.123=LU
-country.124=MG
-country.125=MW
-country.126=MY
-country.127=MV
-country.128=ML
-country.129=MT
-country.130=MH
-country.131=MQ
-country.132=MR
-country.133=MU
-country.134=YT
-country.135=MX
-country.136=FM
-country.137=MC
-country.138=MN
-country.139=ME
-country.140=MS
-country.141=MA
-country.142=MZ
-country.143=MM
-country.144=NA
-country.145=NR
-country.146=NP
-country.147=NL
-country.148=AN
-country.149=NC
-country.150=NZ
-country.151=NI
-country.152=NE
-country.153=NG
-country.154=NU
-country.155=NF
-country.156=MP
-country.157=NO
-country.158=PS
-country.159=OM
-country.160=PK
-country.161=PW
-country.162=PA
-country.163=PG
-country.164=PY
-country.165=PE
-country.166=PH
-country.167=PN
-country.168=PL
-country.169=PT
-country.170=PR
-country.171=QA
-country.172=KR
-country.173=MD
-country.174=RE
-country.175=RO
-country.176=RU
-country.177=RW
-country.178=SH
-country.179=KN
-country.180=LC
-country.181=PM
-country.182=VC
-country.183=WS
-country.184=SM
-country.185=ST
-country.186=SA
-country.187=SN
-country.188=RS
-country.189=SC
-country.190=SL
-country.191=SG
-country.192=SK
-country.193=SI
-country.194=SB
-country.195=SO
-country.196=ZA
-country.197=ES
-country.198=LK
-country.199=SD
-country.200=SR
-country.201=SJ
-country.202=SZ
-country.203=SE
-country.204=CH
-country.205=SY
-country.206=TW
-country.207=TJ
-country.208=TH
-country.209=MK
-country.210=TL
-country.211=TG
-country.212=TK
-country.213=TO
-country.214=TT
-country.215=TN
-country.216=TR
-country.217=TM
-country.218=TC
-country.219=TV
-country.220=UG
-country.221=UA
-country.222=AE
-country.223=GB
-country.224=TZ
-country.225=US
-country.226=VI
-country.227=UY
-country.228=UZ
-country.229=VU
-country.230=VE
-country.231=VN
-country.232=WF
-country.233=EH
-country.234=YE
-country.235=ZM
-country.236=ZW

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
----------------------------------------------------------------------
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
index bc01f54..1bed7ef 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
@@ -127,8 +127,6 @@ public class AppointmentLogic {
 				log.debug("doScheduledMeetingReminder : no members in meeting!");
 				continue;
 			}
-			//TODO should we add reminder for the owner????
-
 			// Iterate through all MeetingMembers
 			for (MeetingMember mm : members) {
 				log.debug("doScheduledMeetingReminder : Member " + mm.getUser().getAddress().getEmail());

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/methods/SyncMethod.java
----------------------------------------------------------------------
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/methods/SyncMethod.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/methods/SyncMethod.java
index 2a92fc6..f4d11cd 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/methods/SyncMethod.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/methods/SyncMethod.java
@@ -124,8 +124,7 @@ public class SyncMethod extends DavMethodBase {
 	}
 
 	/**
-	 * Overridden to process the sync-token. Adapted from DavMethodBase. TODO:
-	 * Fix this override.
+	 * Overridden to process the sync-token. Adapted from DavMethodBase.
 	 *
 	 * @see DavMethodBase#processResponseBody(HttpState, HttpConnection)
 	 */

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java
----------------------------------------------------------------------
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java
index bed9df3..a858035 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java
@@ -124,7 +124,6 @@ public class CleanupJob extends AbstractJob {
 				}
 				if (roomId != null && sessionManager.listByRoom(roomId).isEmpty()) {
 					File[] files = folder.listFiles(fi -> fi.isFile() && fi.lastModified() + roomFilesTtl < now);
-					//TODO need to rework this and remove hardcodings
 					if (files != null && files.length > 0) {
 						log.debug("Room files are too old and no users in the room: " + roomId);
 						FileUtils.deleteDirectory(folder);
@@ -142,7 +141,6 @@ public class CleanupJob extends AbstractJob {
 			return;
 		}
 		try {
-			// TODO Generate report
 			sessionDao.clearSessionTable(sessionTimeout);
 		} catch (Exception err){
 			log.error("execute",err);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
----------------------------------------------------------------------
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
index 0524c19..9631919 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
@@ -137,7 +137,6 @@ public class InvitationManager implements IInvitationManager {
 			// Writing back meetingUid
 			if (Strings.isEmpty(a.getIcalId())) {
 				a.setIcalId(meetingId);
-				// TODO should it be saved ???
 			}
 
 			log.debug(handler.getICalDataAsString());

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
----------------------------------------------------------------------
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
index ceed7ba..bd15862 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
@@ -137,8 +137,6 @@ public class UserManager implements IUserManager {
 				} else {
 					sendConfirmation = _sendConfirmation.booleanValue();
 				}
-				// TODO: Read and generate SIP-Data via RPC-Interface Issue 1098
-
 				Object user = registerUserInit(UserDao.getDefaultRights(), login,
 						userpass, lastname, firstname, email, age, street,
 						additionalname, fax, zip, country, town, languageId,
@@ -200,7 +198,6 @@ public class UserManager implements IUserManager {
 			TimeZone timezone, Boolean forceTimeZoneCheck,
 			String userOffers, String userSearchs, Boolean showContactData,
 			Boolean showContactDataToContacts, String activatedHash) throws OmException, NoSuchAlgorithmException {
-		// TODO: make phone number persistent
 		// Check for required data
 		if (login.length() >= getMinLoginLength(cfgDao)) {
 			// Check for duplicates

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
----------------------------------------------------------------------
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
index fa9f58f..b790c07 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
@@ -257,7 +257,6 @@ public class OmFileHelper {
 		return new File(parent, name + suffix + ext);
 	}
 
-	// TODO need to be generalized
 	public static File getNewFile(File dir, String name, String ext) throws IOException {
 		File f = new File(dir, getName(name, ext));
 		int recursiveNumber = 0;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-util/src/main/java/org/apache/openmeetings/util/StoredFile.java
----------------------------------------------------------------------
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/StoredFile.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/StoredFile.java
index 4a95eb6..117fd5a 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/StoredFile.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/StoredFile.java
@@ -54,8 +54,8 @@ public class StoredFile {
 
 	private static final MediaType MIME_JPG = MediaType.parse(JPG_MIME_TYPE);
 	private static final Set<MediaType> PDF_TYPES = new HashSet<>(Arrays.asList(application("pdf"), application("postscript")));
-	private static final Set<MediaType> CHART_TYPES = new HashSet<>(/* TODO have to be tested and re-added Arrays.asList("xchart")*/);
-	private static final Set<MediaType> AS_IS_TYPES = new HashSet<>(Arrays.asList(MIME_JPG/* TODO have to be tested and re-added, "xchart"*/));
+	private static final Set<MediaType> CHART_TYPES = new HashSet<>();
+	private static final Set<MediaType> AS_IS_TYPES = new HashSet<>(Arrays.asList(MIME_JPG));
 	private static final String ACCEPT_STRING;
 	static {
 		Set<MediaType> types = new LinkedHashSet<>();

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
index 716c637..2c99c42 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
@@ -163,14 +163,12 @@ public class BackupPanel extends AdminBasePanel {
 					}
 					if (th != null) {
 						timer.stop(target);
-						//TODO change text, localize
 						progressBar.setVisible(false);
 						feedback.error(th.getMessage());
 						target.add(feedback);
 					} else {
 						progressBar.setModelObject(progressHolder.getProgress());
 						progressBar.refresh(target);
-						//TODO add current step result as info
 					}
 				}
 			});

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
index 800f48b..fa7fccc 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
@@ -77,7 +77,7 @@ public class ConfigForm extends AdminBaseForm<Configuration> {
 
 			@Override
 			public Object getDisplayValue(Type rt) {
-				return rt.name();//TODO localization
+				return rt.name();
 			}
 
 			@Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
index 6aa1ea8..3417320 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
@@ -57,7 +57,6 @@ public class ConnectionsPanel extends AdminBasePanel {
 		SearchableDataProvider<IClient> sdp = new SearchableDataProvider<IClient>(null) {
 			private static final long serialVersionUID = 1L;
 
-			//TODO add search
 			private List<IClient> list() {
 				List<IClient> l = new ArrayList<>();
 				l.addAll(getBean(ISessionManager.class).list());

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.java
index 2c60d9c..8a53739 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.java
@@ -53,7 +53,6 @@ public class EmailPanel extends AdminBasePanel {
 				item.add(new Label("id"));
 				item.add(new Label("status", getString("admin.email.status." + m.getStatus().name())));
 				item.add(new Label("subject"));
-				//TODO color for Error
 				item.add(new AjaxEventBehavior("click") {
 					private static final long serialVersionUID = 1L;
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java
index 43b98dd..a636e9c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LabelsForm.java
@@ -70,7 +70,7 @@ public class LabelsForm extends AdminBaseForm<StringLabel> {
 		try {
 			LabelDao.update(panel.language.getValue(), getModelObject());
 		} catch (Exception e) {
-			error("Unexpected error while saving label:" + e.getMessage()); //TODO localize
+			error("Unexpected error while saving label:" + e.getMessage());
 		}
 		hideNewRecord();
 		target.add(panel.listContainer);
@@ -82,7 +82,7 @@ public class LabelsForm extends AdminBaseForm<StringLabel> {
 		try {
 			LabelDao.delete(panel.language.getValue(), getModelObject());
 		} catch (Exception e) {
-			error("Unexpected error while deleting label:" + e.getMessage()); //TODO localize
+			error("Unexpected error while deleting label:" + e.getMessage());
 		}
 		target.add(panel.listContainer);
 		target.appendJavaScript("adminPanelInit();");

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
index 93e30ee..2c3574f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
@@ -191,7 +191,6 @@ public class UserForm extends AdminBaseForm<User> {
 				getBean(EmailManager.class).sendMail(login.getValue(), email, u.getActivatehash(), false, null);
 			}
 		} catch (Exception e) {
-			// TODO update feedback with the error details
 			log.error("[onSaveSubmit]: ", e);
 		}
 		setModelObject(getBean(UserDao.class).get(u.getId()));

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
index 8296f3b..ed39cfa 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
@@ -442,10 +442,8 @@ public class Application extends AuthenticatedWebApplication implements IApplica
 					client.setMic(0);
 					client.setRoom(getBean(RoomDao.class).get(rcl.getRoomId()));
 					addUserToRoom(client);
-					//TODO unify this
 					WebSocketHelper.sendRoom(new RoomMessage(client.getRoom().getId(), client.getUserId(), RoomMessage.Type.roomEnter));
 				}
-				//TODO rights
 			} else if (client == null && Client.Type.sip == rcl.getType()) {
 				rcl.setLogin(SIP_USER_NAME);
 				rcl.setUserId(SIP_USER_ID);
@@ -461,14 +459,12 @@ public class Application extends AuthenticatedWebApplication implements IApplica
 				client.allow(Room.Right.audio, Room.Right.video);
 				client.set(Activity.broadcastA);
 				addUserToRoom(client);
-				//TODO unify this
 				WebSocketHelper.sendRoom(new RoomMessage(client.getRoom().getId(), client.getUserId(), RoomMessage.Type.roomEnter));
 			} else {
 				return null;
 			}
 		}
 		if (rcl.getRoomId() == null || !rcl.getRoomId().equals(client.getRoom().getId())) {
-			//TODO mobile
 			return null;
 		}
 		User u = client.getUser();
@@ -693,7 +689,6 @@ public class Application extends AuthenticatedWebApplication implements IApplica
 		return false;
 	}
 
-	//TODO need more safe way
 	public <T> T _getBean(Class<T> clazz) {
 		WebApplicationContext wac = getWebApplicationContext(getServletContext());
 		return wac == null ? null : wac.getBean(clazz);
@@ -738,7 +733,6 @@ public class Application extends AuthenticatedWebApplication implements IApplica
 	public static boolean isInstalled() {
 		boolean result = isInstalled;
 		if (!isInstalled && isInitComplete()) {
-			//TODO can also check crypt class here
 			isInstalled = result = get()._getBean(UserDao.class).count() > 0;
 		}
 		return result;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
index c6ed918..4b7538a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
@@ -96,8 +96,8 @@ public class WebSession extends AbstractAuthenticatedWebSession implements IWebS
 	public static final Set<String> AVAILABLE_TIMEZONE_SET = new LinkedHashSet<>(AVAILABLE_TIMEZONES);
 	public static final String WICKET_ROOM_ID = "wicketroomid";
 	private Long userId = null;
-	private Set<Right> rights = new HashSet<>(); //TODO renew somehow on user edit !!!!
-	private long languageId = -1; //TODO renew somehow on user edit !!!!
+	private Set<Right> rights = new HashSet<>();
+	private long languageId = -1;
 	private OmUrlFragment area = null;
 	private TimeZone tz;
 	private TimeZone browserTz;
@@ -243,7 +243,6 @@ public class WebSession extends AbstractAuthenticatedWebSession implements IWebS
 					if (markUsed) {
 						soapLogin.setUsed(true);
 						soapLogin.setUseDate(new Date());
-						//soapLogin.setClientURL(clientURL); //TODO
 						soapDao.update(soapLogin);
 					}
 					roomId = soapLogin.getRoomId();

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
index 23e4770..0022b6c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
@@ -48,7 +48,7 @@ public abstract class BasePanel extends Panel {
 		return findParent(MainPanel.class);
 	}
 
-	protected boolean isRtl() { //TODO unify, remove copy/paste
+	protected boolean isRtl() {
 		return FormatHelper.isRtlLanguage(WebSession.get().getLocale().toLanguageTag());
 	}
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
index 116e5ce..3bf83fd 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
@@ -163,7 +163,6 @@ public abstract class InvitationForm extends Form<Invitation> {
 		i.setInvitee(u);
 		i.setHash(UUID.randomUUID().toString());
 		if (Type.contact == u.getType()) {
-			//TODO not sure it is right
 			u.setLanguageId(lang.getModelObject());
 		}
 		return getBean(InvitationDao.class).update(i);
@@ -204,7 +203,6 @@ public abstract class InvitationForm extends Form<Invitation> {
 	}
 
 	public void onClick(AjaxRequestTarget target, DialogButton button) {
-		//TODO need to be reviewed
 		if (button.equals(dialog.cancel)) {
 			dialog.onSuperClick(target, button);
 		} else if (button.equals(dialog.generate)) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableImagePanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableImagePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableImagePanel.java
index 3f81115..c1f289d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableImagePanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableImagePanel.java
@@ -69,11 +69,8 @@ public abstract class UploadableImagePanel extends ImagePanel {
 						StoredFile sf = new StoredFile(fu.getClientFileName(), temp);
 						if (sf.isImage()) {
 							processImage(sf, temp);
-						} else {
-							//TODO display error
 						}
 					} catch (Exception e) {
-						// TODO display error
 						log.error("Error", e);
 					} finally {
 						if (temp != null && temp.exists()) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
index d619a3d..6a44cb6 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
@@ -305,7 +305,6 @@ public abstract class FileTreePanel extends Panel {
 		f.setOwnerId(p.getOwnerId());
 		f.setGroupId(p.getGroupId());
 		f.setRoomId(p.getRoomId());
-		//TODO lastSelected.parent??
 		f.setParentId(Type.Folder == p.getType() ? p.getId() : null);
 		if (isRecording) {
 			getBean(RecordingDao.class).update((Recording)f);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
index 0b66141..0bda5a4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
@@ -132,7 +132,6 @@ public class FolderPanel extends Panel {
 
 	private static void move(final FileTreePanel treePanel, AjaxRequestTarget target, BaseFileItem p, BaseFileItem f) {
 		Long pid = p.getId();
-		//TODO parent should not be moved to child !!!!!!!
 		if (pid != null && pid.equals(f.getId())) {
 			return;
 		}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java
index ee12d32..7dbcc8e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java
@@ -180,12 +180,10 @@ public class OmTreeProvider implements ITreeProvider<BaseFileItem> {
 
 	@Override
 	public IModel<BaseFileItem> model(BaseFileItem object) {
-		// TODO LDM should be used
 		return Model.of(object);
 	}
 
 	@Override
 	public void detach() {
-		// TODO LDM should be used
 	}
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
index fcc61d3..d1591dc 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
@@ -450,8 +450,6 @@ public class InstallWizard extends AbstractWizard<InstallationConfig> {
 
 		public ParamsStep2() {
 			super(paramsStep1);
-			//TODO localize
-			//TODO validation
 			add(new CheckBox("allowFrontendRegister"));
 			add(new CheckBox("sendEmailAtRegister"));
 			add(new CheckBox("sendEmailWithVerficationCode"));
@@ -462,7 +460,6 @@ public class InstallWizard extends AbstractWizard<InstallationConfig> {
 			add(new TextField<String>("mailAuthName"));
 			add(new PasswordTextField("mailAuthPass").setResetPassword(false).setRequired(false));
 			add(new CheckBox("mailUseTls"));
-			//TODO check mail server
 			add(new CheckBox("replyToOrganizer"));
 			add(new LangDropDown("defaultLangId"));
 		}
@@ -610,7 +607,6 @@ public class InstallWizard extends AbstractWizard<InstallationConfig> {
 			super(paramsStep3);
 			add(new RequiredTextField<String>("cryptClassName")); //Validate class
 
-			//TODO add check for red5sip connection
 			add(new CheckBox("sipEnable"));
 			add(new TextField<String>("sipRoomPrefix"));
 			add(new TextField<String>("sipExtenContext"));
@@ -671,7 +667,6 @@ public class InstallWizard extends AbstractWizard<InstallationConfig> {
 					} else {
 						progressBar.setModelObject(Application.get()._getBean(ImportInitvalues.class).getProgress());
 						progressBar.refresh(target);
-						//TODO add current step result as info
 					}
 				}
 			});

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index 017d665..d888193 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -658,7 +658,6 @@ public class RoomPanel extends BasePanel {
 				c.allow(Right.superModerator);
 				update(c);
 			} else {
-				//TODO !!! c.getUser != getUserId
 				Set<Right> rr = AuthLevelUtil.getRoomRight(c.getUser(), r, r.isAppointment() ? getBean(AppointmentDao.class).getByRoom(r.getId()) : null, getRoomClients(r.getId()).size());
 				if (!rr.isEmpty()) {
 					c.allow(rr);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
index c945b51..a33eaa1 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
@@ -139,7 +139,7 @@ public class SwfPanel extends BasePanel {
 		return initStr;
 	}
 
-	private String getFlashFile(StringValue type) {
+	private static String getFlashFile(StringValue type) {
 		return SWF_TYPE_NETWORK.equals(type.toString()) ? "networktest.swf" : "";
 	}
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
index 64170ce..90b3fb6 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
@@ -202,7 +202,7 @@ public class ActivitiesPanel extends Panel {
 			final String fmt = ((BasePage)getPage()).isRtl() ? ACTIVITY_FMT_RTL : ACTIVITY_FMT;
 			switch (a.getType()) {
 				case roomEnter:
-					text = ""; // TODO should this be fixed?
+					text = "";
 					item.setVisible(false);
 					break;
 				case roomExit:
@@ -230,7 +230,7 @@ public class ActivitiesPanel extends Panel {
 					text = String.format(fmt, name, getString("695"), df.format(a.getCreated()));
 					break;
 				case reqRightMute:
-					text = String.format(fmt, name, getString("1399"), df.format(a.getCreated()));//TODO un-mute 1398
+					text = String.format(fmt, name, getString("1399"), df.format(a.getCreated()));
 					break;
 				case reqRightExclusive:
 					text = String.format(fmt, name, getString("1427"), df.format(a.getCreated()));

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
index c76225a..26a110e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
@@ -126,7 +126,6 @@ public class RoomInvitationForm extends InvitationForm {
 
 	@Override
 	public void onClick(AjaxRequestTarget target, DialogButton button) {
-		//TODO need to be reviewed
 		if (button.equals(dialog.send) && Strings.isEmpty(url.getModelObject()) && rdi.getModelObject() == InviteeType.group) {
 			for (Group g : groups.getModelObject()) {
 				for (GroupUser ou : getBean(GroupUserDao.class).get(g.getId(), 0, Integer.MAX_VALUE)) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
index 20af50c..ca836e9 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
@@ -301,7 +301,6 @@ public class RoomMenuPanel extends Panel {
 		actionsMenu.getItems().add(downloadPngMenuItem);
 		actionsMenu.getItems().add(downloadJpgMenuItem);
 		actionsMenu.getItems().add(downloadPdfMenuItem);
-		//TODO add local cache editor
 		menu.add(actionsMenu);
 		return menu;
 	}
@@ -324,7 +323,6 @@ public class RoomMenuPanel extends Panel {
 		boolean moder = room.getClient().hasRight(Room.Right.moderator);
 		actionsMenu.setEnabled((moder && !r.isHidden(RoomElement.ActionMenu)) || (!moder && r.isAllowUserQuestions()));
 		inviteMenuItem.setEnabled(notExternalUser && moder);
-		//TODO add check "sharing started"
 		boolean shareVisible = room.screenShareAllowed();
 		shareMenuItem.setEnabled(shareVisible);
 		applyModerMenuItem.setEnabled(!moder);
@@ -334,7 +332,6 @@ public class RoomMenuPanel extends Panel {
 		pollVoteMenuItem.setEnabled(pollExists && notExternalUser && !pollDao.hasVoted(r.getId(), getUserId()));
 		pollResultMenuItem.setEnabled(pollExists || !pollDao.getArchived(r.getId()).isEmpty());
 		sipDialerMenuItem.setEnabled(r.isSipEnabled() && isSipEnabled());
-		//TODO sip menus
 		menuPanel.update(handler);
 		StringBuilder roomClass = new StringBuilder("room name");
 		StringBuilder roomTitle = new StringBuilder();
@@ -343,7 +340,6 @@ public class RoomMenuPanel extends Panel {
 			if (recClient != null) {
 				roomTitle.append(String.format("%s %s %s %s %s", getString("419")
 						, recClient.getUser().getLogin(), recClient.getUser().getFirstname(), recClient.getUser().getLastname(), df.format(recClient.getConnectedSince())));
-				//TODO get ConnectedSince of StreamClient
 				roomClass.append(" screen");
 			}
 			Client pubClient = getClientBySid(room.getPublishingUser());
@@ -352,7 +348,7 @@ public class RoomMenuPanel extends Panel {
 					roomTitle.append('\n');
 				}
 				roomTitle.append(String.format("%s %s %s %s %s", getString("1504")
-						, pubClient.getUser().getLogin(), pubClient.getUser().getFirstname(), pubClient.getUser().getLastname(), "URL")); //TODO add URL
+						, pubClient.getUser().getLogin(), pubClient.getUser().getFirstname(), pubClient.getUser().getLastname(), "URL"));
 				roomClass.append(" screen");
 			}
 		}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java
index 09c19cd..2886e83 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java
@@ -90,7 +90,6 @@ public class StartSharingButton extends OmButton {
 
 	@Override
 	public void onClick(AjaxRequestTarget target) {
-		//TODO deny download in case other screen sharing is in progress
 		try (InputStream jnlp = getClass().getClassLoader().getResourceAsStream("APPLICATION.jnlp")) {
 			ConfigurationDao cfgDao = getBean(ConfigurationDao.class);
 			app = IOUtils.toString(jnlp, UTF_8);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
index f8fab51..f1e0637 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
@@ -93,7 +93,6 @@ public class PollResultsDialog extends AbstractDialog<RoomPoll> {
 
 			@Override
 			public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
-				// TODO should rights be additionally checked here????
 				if(button != null && button.match(YES)) {
 					Long id = dispForm.getModelObject().getId();
 					getBean(PollDao.class).close(roomId);
@@ -111,7 +110,6 @@ public class PollResultsDialog extends AbstractDialog<RoomPoll> {
 
 			@Override
 			public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
-				// TODO should rights be additionally checked here????
 				if(button != null && button.match(YES)) {
 					getBean(PollDao.class).delete(dispForm.getModelObject());
 					selForm.updateModel(handler);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
index 096821d..3fbe2ee 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
@@ -56,7 +56,7 @@ import com.googlecode.wicket.kendo.ui.panel.KendoFeedbackPanel;
  */
 public class VoteDialog extends AbstractFormDialog<RoomPollAnswer> {
 	private static final long serialVersionUID = 1L;
-	private static final List<Integer> answers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);  //TODO max vote should be added
+	private static final List<Integer> answers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
 	private final PollAnswerForm form;
 	private final DialogButton vote = new DialogButton("vote", Application.getString("32"));
 	private final DialogButton cancel = new DialogButton("cancel", Application.getString("lbl.cancel"));

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
index a99f35a..332598c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
@@ -106,7 +106,6 @@ public class RoomClientPanel extends Panel {
 			statusTitle = "677";
 		}
 		status = String.format("%s %s", status, ((BasePage)getPage()).isRtl() ? ALIGN_LEFT : ALIGN_RIGHT);
-		//TODO add ability to change 'first/last name'
 		add(new WebMarkupContainer("status").add(AttributeModifier.append(ATTR_CLASS, status), AttributeModifier.replace(ATTR_TITLE, getString(statusTitle))));
 	}
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
index 49beb77..dafefe4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
@@ -274,7 +274,6 @@ public class RoomSidebar extends Panel {
 	}
 
 	private ListView<Client> updateUsers() {
-		//TODO do we need sort??
 		users.setList(getRoomClients(room.getRoom().getId()));
 		return users;
 	}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
index bde2aae..9a8ed19 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
@@ -335,7 +335,6 @@ public class WbPanel extends AbstractWbPanel {
 					wb.setZoomMode(ZoomMode.valueOf(obj.getString("zoomMode")));
 					WhiteboardCache.update(roomId, wb);
 					sendWbOthers(WbAction.setSize, getAddWbJson(wb));
-					//TODO scroll????
 				}
 					break;
 				default:

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java
index eaf299a..9107a95 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java
@@ -54,7 +54,6 @@ public class InviteUserToRoomDialog extends AbstractDialog<String> {
 
 		@Override
 		public void onRoomEnter(AjaxRequestTarget target, Long roomId) {
-			//TODO only show message if other user is online
 			inviteMsg.open(target, roomId, userId);
 		}
 	}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
index 065da3a..a9b8ffe 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
@@ -55,6 +55,7 @@ import org.apache.openmeetings.util.CalendarHelper;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.OmDateTimePicker;
+import org.apache.openmeetings.web.user.calendar.AppointmentDialog;
 import org.apache.openmeetings.web.util.CalendarWebHelper;
 import org.apache.openmeetings.web.util.RoomTypeDropDown;
 import org.apache.openmeetings.web.util.UserMultiChoice;
@@ -123,7 +124,6 @@ public class MessageDialog extends AbstractFormDialog<PrivateMessage> {
 	}
 
 	public MessageDialog reset(boolean isPrivate) {
-		//TODO should be 'in sync' with appointment
 		LocalDateTime now = ZonedDateTime.now(getZoneId()).toLocalDateTime();
 		start.setModelObject(now);
 		end.setModelObject(now.plus(1, ChronoUnit.HOURS));
@@ -133,10 +133,7 @@ public class MessageDialog extends AbstractFormDialog<PrivateMessage> {
 		p.setOwner(p.getFrom());
 		p.setIsRead(false);
 		p.setFolderId(INBOX_FOLDER_ID);
-		Room r = new Room();
-		r.setAppointment(true);
-		r.setType(Room.Type.conference);
-		p.setRoom(r);
+		p.setRoom(AppointmentDialog.createAppRoom());
 		setModelObject(p);
 		roomParams.setVisible(getModelObject().isBookedRoom());
 		form.setModelObject(p);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
index bad11d4..fbf4e64 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
@@ -113,7 +113,6 @@ public class AppointmentDialog extends AbstractFormDialog<Appointment> {
 	private final KendoFeedbackPanel feedback = new KendoFeedbackPanel("feedback", new Options("button", true));
 	final MessageDialog confirmDelete;
 	private final WebMarkupContainer sipContainer = new WebMarkupContainer("sip-container");
-	//TODO need to be unified with RoomInvitationForm
 	private final RadioGroup<InviteeType> rdi = new RadioGroup<>("inviteeType", Model.of(InviteeType.user));
 	private final Select2MultiChoice<Group> groups = new Select2MultiChoice<>("groups"
 			, new CollectionModel<Group>(new ArrayList<>())
@@ -428,16 +427,6 @@ public class AppointmentDialog extends AbstractFormDialog<Appointment> {
 			add(cals.setNullValid(true).setLabel(Model.of("calendar")).setOutputMarkupId(true));
 		}
 
-		private Room createAppRoom() {
-			Room r = new Room();
-			r.setAppointment(true);
-			r.hide(RoomElement.MicrophoneStatus);
-			if (r.getType() == null) {
-				r.setType(Room.Type.conference);
-			}
-			return r;
-		}
-
 		@Override
 		protected void onModelChanged() {
 			super.onModelChanged();
@@ -513,4 +502,14 @@ public class AppointmentDialog extends AbstractFormDialog<Appointment> {
 			}
 		}
 	}
+
+	public static Room createAppRoom() {
+		Room r = new Room();
+		r.setAppointment(true);
+		r.hide(RoomElement.MicrophoneStatus);
+		if (r.getType() == null) {
+			r.setType(Room.Type.conference);
+		}
+		return r;
+	}
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
index 510817b..d875a31 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
@@ -125,7 +125,7 @@ public class Chat extends Panel {
 	}
 
 	private String getUid() {
-		return findParent(MainPanel.class).getClient().getUid(); //TODO HACK
+		return findParent(MainPanel.class).getClient().getUid();
 	}
 
 	public JSONObject getMessage(List<ChatMessage> list) {
@@ -163,7 +163,6 @@ public class Chat extends Panel {
 
 		if (showDashboardChat) {
 			ChatDao dao = getBean(ChatDao.class);
-			//TODO limited count should be loaded with "earlier" link
 			StringBuilder sb = new StringBuilder(getReinit());
 			List<ChatMessage> list = new ArrayList<>(dao.getGlobal(0, 30));
 			for(Long roomId : getUserRooms(getUserId())) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
index b095991..0c0d66a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
@@ -434,7 +434,7 @@ public class MessagesContactsPanel extends UserBasePanel {
 			private static final long serialVersionUID = 1L;
 
 			private String getName(UserContact uc) {
-				return uc.getOwner().getFirstname() + " " + uc.getOwner().getLastname(); //TODO salutation, UNIFY
+				return uc.getOwner().getFirstname() + " " + uc.getOwner().getLastname();
 			}
 
 			@Override
@@ -483,7 +483,7 @@ public class MessagesContactsPanel extends UserBasePanel {
 			}
 		};
 		updateContacts(null);
-		add(contacts.add(dw, pendingContacts, allContacts).setOutputMarkupId(true));//TODO update
+		add(contacts.add(dw, pendingContacts, allContacts).setOutputMarkupId(true));
 
 		//hack to add FixedHeaderTable after Tabs.
 		add(new AbstractDefaultAjaxBehavior() {
@@ -542,7 +542,6 @@ public class MessagesContactsPanel extends UserBasePanel {
 		if (msg != null) {
 			Room r = msg.getRoom();
 			if (r != null) {
-				//TODO add time check
 				Appointment a = getBean(AppointmentDao.class).getByRoom(r.getId());
 				roomContainer.addOrReplace(new Label("start", a == null ? "" : getDateFormat().format(a.getStart())));
 				roomContainer.addOrReplace(new Label("end", a == null ? "" : getDateFormat().format(a.getEnd())));

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
index 933ca16..9d103a4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
@@ -126,7 +126,6 @@ public class UserSearchPanel extends UserBasePanel {
 						.add(addOnClick(String.format("addContact(%s);", userId))));
 				item.add(new WebMarkupContainer("message").setVisible(userId != getUserId()).add(addOnClick(String.format("privateMessage(%s);", userId))));
 				item.add(new WebMarkupContainer("invite").setVisible(userId != getUserId()).add(addOnClick(String.format("inviteUser(%s);", userId))));
-				//TODO:: add Picture tooltip
 			}
 		};
 
@@ -145,7 +144,7 @@ public class UserSearchPanel extends UserBasePanel {
 	}
 
 	private static String getName(User u) {
-		return "" + u.getFirstname() + " " + u.getLastname() + " [" + u.getLogin() + "]"; //TODO salutation
+		return "" + u.getFirstname() + " " + u.getLastname() + " [" + u.getLogin() + "]";
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java
index 8b3d1e1..771712e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java
@@ -99,7 +99,6 @@ public abstract class RecordingResourceReference extends FileItemResourceReferen
 				}
 			}
 		}
-		//TODO should we check parentId here
 		if (r.getOwnerId() == null && r.getGroupId() == null) {
 			//public
 			return r;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.html
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.html
index 885bfc4..1a3e7a7 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.html
@@ -20,7 +20,6 @@
 <html xmlns:wicket="http://wicket.apache.org">
 <wicket:panel>
 	<div class="video" wicket:id="container">
-		<div wicket:id="wait"></div>
 		<video wicket:id="player">
 			<source wicket:id="mp4" />
 		</video>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java
index bee53f4..4575c79 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoPlayer.java
@@ -33,7 +33,6 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 
 public class VideoPlayer extends Panel {
 	private static final long serialVersionUID = 1L;
-	private final WebMarkupContainer wait = new WebMarkupContainer("wait"); //TODO not used
 	private final WebMarkupContainer container = new WebMarkupContainer("container");
 	private final Mp4RecordingResourceReference mp4RecRes = new Mp4RecordingResourceReference();
 	private final PngRecordingResourceReference posterRecRes = new PngRecordingResourceReference();
@@ -63,7 +62,7 @@ public class VideoPlayer extends Panel {
 		mp4File.setDisplayType(true);
 		mp4File.setType(MP4_MIME_TYPE);
 		player.add(mp4Rec);
-		container.add(wait.setVisible(false), player);
+		container.add(player);
 		update(null, null);
 	}
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
index f733e5b..5cbde6e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
@@ -43,7 +43,6 @@ public class UserChoiceProvider extends RestrictiveChoiceProvider<User> {
 	public static User getUser(String value) {
 		User u = null;
 		if (!Strings.isEmpty(value)) {
-			//TODO refactor this
 			String email = null;
 			String fName = null;
 			String lName = null;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/483b424f/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
----------------------------------------------------------------------
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
index 0d10816..e77b17f 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
@@ -156,7 +156,7 @@ public class FileWebService extends BaseWebService {
 				throw new ServiceException("Bad id");
 			}
 			f.setInsertedBy(sd.getUserId());
-			if (stream != null) { //TODO permissions
+			if (stream != null) {
 				try {
 					ProcessResultList result = getBean(FileProcessor.class).processFile(f, stream);
 					if (result.hasError()) {


[2/3] openmeetings git commit: [OPENMEETINGS-1761] restore of backups earlier than 3.1.3 dropped

Posted by so...@apache.org.
[OPENMEETINGS-1761] restore of backups earlier than 3.1.3 dropped


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/6683e8b2
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/6683e8b2
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/6683e8b2

Branch: refs/heads/master
Commit: 6683e8b21ab7829aaa55e0f92cbd33ba4aa64e2d
Parents: cddace3
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Sat Nov 18 18:55:05 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Sat Nov 18 18:55:05 2017 +0700

----------------------------------------------------------------------
 .../openmeetings/backup/BackupImport.java       | 572 +++----------------
 openmeetings-web/pom.xml                        |  54 --
 2 files changed, 84 insertions(+), 542 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/6683e8b2/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
----------------------------------------------------------------------
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
index 49a78e6..c4a843d 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
@@ -104,26 +104,16 @@ import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.StringReader;
-import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Properties;
 import java.util.UUID;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.openmeetings.backup.converter.AppointmentConverter;
@@ -167,7 +157,6 @@ import org.apache.openmeetings.db.entity.file.FileItem;
 import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.db.entity.record.RecordingMetaData;
 import org.apache.openmeetings.db.entity.room.Room;
-import org.apache.openmeetings.db.entity.room.Room.RoomElement;
 import org.apache.openmeetings.db.entity.room.RoomFile;
 import org.apache.openmeetings.db.entity.room.RoomGroup;
 import org.apache.openmeetings.db.entity.room.RoomModerator;
@@ -175,17 +164,14 @@ import org.apache.openmeetings.db.entity.room.RoomPoll;
 import org.apache.openmeetings.db.entity.room.RoomPollAnswer;
 import org.apache.openmeetings.db.entity.server.LdapConfig;
 import org.apache.openmeetings.db.entity.server.OAuthServer;
-import org.apache.openmeetings.db.entity.user.Address;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.PrivateMessage;
 import org.apache.openmeetings.db.entity.user.PrivateMessageFolder;
 import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.User.Salutation;
 import org.apache.openmeetings.db.entity.user.UserContact;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
-import org.apache.openmeetings.db.util.TimezoneUtil;
 import org.apache.openmeetings.util.CalendarPatterns;
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.StoredFile;
@@ -203,16 +189,11 @@ import org.simpleframework.xml.transform.RegistryMatcher;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
 
 @Component
 public class BackupImport {
 	private static final Logger log = Red5LoggerFactory.getLogger(BackupImport.class, getWebAppRootKey());
 	private static final String LDAP_EXT_TYPE = "LDAP";
-	private static final Properties countries = new Properties();
 	private static final Map<String, String> outdatedConfigKeys = new HashMap<>();
 	private static final Map<String, Configuration.Type> configTypes = new HashMap<>();
 	static {
@@ -314,8 +295,6 @@ public class BackupImport {
 	@Autowired
 	private ConfigurationDao cfgDao;
 	@Autowired
-	private TimezoneUtil tzUtil;
-	@Autowired
 	private ChatDao chatDao;
 	@Autowired
 	private OAuth2Dao auth2Dao;
@@ -334,11 +313,8 @@ public class BackupImport {
 	private final Map<Long, Long> userContactMap = new HashMap<>();
 	private final Map<String, String> fileMap = new HashMap<>();
 
-	private static File validate(String _ename, File intended) throws IOException {
+	private static File validate(String ename, File intended) throws IOException {
 		final String intendedPath = intended.getCanonicalPath();
-		String ename = File.pathSeparatorChar != '\\' && _ename.indexOf('\\') > -1
-				? _ename.replace('\\', '/')
-				: _ename;
 		// for each entry to be extracted
 		File fentry = new File(intended, ename);
 		final String canonicalPath = fentry.getCanonicalPath();
@@ -453,7 +429,7 @@ public class BackupImport {
 		registry.bind(Date.class, DateConverter.class);
 		registry.bind(User.class, new UserConverter(userDao, userMap));
 
-		List<Configuration> list = readList(serializer, f, "configs.xml", "configs", Configuration.class, true);
+		List<Configuration> list = readList(serializer, f, "configs.xml", "configs", Configuration.class);
 		for (Configuration c : list) {
 			if (c.getKey() == null || c.isDeleted()) {
 				continue;
@@ -510,7 +486,7 @@ public class BackupImport {
 	private Long importLdap(File f, Serializer simpleSerializer) throws Exception {
 		log.info("Groups import complete, starting LDAP config import");
 		Long defaultLdapId = cfgDao.getLong(CONFIG_DEFAULT_LDAP_ID, null);
-		List<LdapConfig> list = readList(simpleSerializer, f, "ldapconfigs.xml", "ldapconfigs", LdapConfig.class, true);
+		List<LdapConfig> list = readList(simpleSerializer, f, "ldapconfigs.xml", "ldapconfigs", LdapConfig.class);
 		for (LdapConfig c : list) {
 			if (!"local DB [internal]".equals(c.getName())) {
 				c.setId(null);
@@ -528,7 +504,7 @@ public class BackupImport {
 	 */
 	private void importOauth(File f, Serializer simpleSerializer) throws Exception {
 		log.info("Ldap config import complete, starting OAuth2 server import");
-		List<OAuthServer> list = readList(simpleSerializer, f, "oauth2servers.xml", "oauth2servers", OAuthServer.class, true);
+		List<OAuthServer> list = readList(simpleSerializer, f, "oauth2servers.xml", "oauth2servers", OAuthServer.class);
 		for (OAuthServer s : list) {
 			s.setId(null);
 			auth2Dao.update(s, null);
@@ -541,12 +517,50 @@ public class BackupImport {
 	private void importUsers(File f, Long defaultLdapId) throws Exception {
 		log.info("OAuth2 servers import complete, starting user import");
 		String jNameTimeZone = cfgDao.getString(CONFIG_DEFAULT_TIMEZONE, "Europe/Berlin");
-		List<User> list = readUserList(f, "users.xml", "users");
+		//add existence email from database
+		List<User>  users = userDao.getAllUsers();
+		final Map<String, Integer> userEmailMap = new HashMap<>();
+		final Map<String, Integer> userLoginMap = new HashMap<>();
+		for (User u : users){
+			if (u.getAddress() == null || u.getAddress().getEmail() == null || User.Type.user != u.getType()) {
+				continue;
+			}
+			userEmailMap.put(u.getAddress().getEmail(), Integer.valueOf(-1));
+			userLoginMap.put(u.getLogin(), Integer.valueOf(-1));
+		}
+		Registry registry = new Registry();
+		Strategy strategy = new RegistryStrategy(registry);
+		Serializer ser = new Persister(strategy);
+
+		registry.bind(Group.class, new GroupConverter(groupDao, groupMap));
+		registry.bind(Salutation.class, SalutationConverter.class);
+		registry.bind(Date.class, DateConverter.class);
+		List<User> list = readList(ser, f, "users.xml", "users", User.class);
 		int minLoginLength = getMinLoginLength(cfgDao);
 		for (User u : list) {
 			if (u.getLogin() == null) {
 				continue;
 			}
+			// check that email is unique
+			if (u.getAddress() != null && u.getAddress().getEmail() != null && User.Type.user == u.getType()) {
+				if (userEmailMap.containsKey(u.getAddress().getEmail())) {
+					log.warn("Email is duplicated for user " + u.toString());
+					String updateEmail = String.format("modified_by_import_<%s>%s", UUID.randomUUID(), u.getAddress().getEmail());
+					u.getAddress().setEmail(updateEmail);
+				}
+				userEmailMap.put(u.getAddress().getEmail(), Integer.valueOf(userEmailMap.size()));
+			}
+			if (userLoginMap.containsKey(u.getLogin())) {
+				log.warn("Login is duplicated for user " + u.toString());
+				String updateLogin = String.format("modified_by_import_<%s>%s", UUID.randomUUID(), u.getLogin());
+				u.setLogin(updateLogin);
+			}
+			userLoginMap.put(u.getLogin(), Integer.valueOf(userLoginMap.size()));
+			if (u.getGroupUsers() != null) {
+				for (GroupUser gu : u.getGroupUsers()) {
+					gu.setUser(u);
+				}
+			}
 			if (u.getType() == User.Type.contact && u.getLogin().length() < minLoginLength) {
 				u.setLogin(UUID.randomUUID().toString());
 			}
@@ -588,7 +602,16 @@ public class BackupImport {
 	 */
 	private void importRooms(File f) throws Exception {
 		log.info("Users import complete, starting room import");
-		List<Room> list = readRoomList(f, "rooms.xml", "rooms");
+		Registry registry = new Registry();
+		Strategy strategy = new RegistryStrategy(registry);
+		RegistryMatcher matcher = new RegistryMatcher();
+		Serializer ser = new Persister(strategy, matcher);
+
+		matcher.bind(Long.class, LongTransform.class);
+		matcher.bind(Integer.class, IntegerTransform.class);
+		registry.bind(User.class, new UserConverter(userDao, userMap));
+		registry.bind(Room.Type.class, RoomTypeConverter.class);
+		List<Room> list = readList(ser, f, "rooms.xml", "rooms", Room.class);
 		for (Room r : list) {
 			Long roomId = r.getId();
 
@@ -648,7 +671,7 @@ public class BackupImport {
 		registry.bind(Room.class, new RoomConverter(roomDao, roomMap));
 		registry.bind(Date.class, DateConverter.class);
 
-		List<ChatMessage> list = readList(serializer, f, "chat_messages.xml", "chat_messages", ChatMessage.class, true);
+		List<ChatMessage> list = readList(serializer, f, "chat_messages.xml", "chat_messages", ChatMessage.class);
 		for (ChatMessage m : list) {
 			m.setId(null);
 			if (m.getFromUser() == null || m.getFromUser().getId() == null) {
@@ -720,7 +743,13 @@ public class BackupImport {
 	 */
 	private void importMeetingMembers(File f) throws Exception {
 		log.info("Appointement import complete, starting meeting members import");
-		List<MeetingMember> list = readMeetingMemberList(f, "meetingmembers.xml", "meetingmembers");
+		Registry registry = new Registry();
+		Strategy strategy = new RegistryStrategy(registry);
+		Serializer ser = new Persister(strategy);
+
+		registry.bind(User.class, new UserConverter(userDao, userMap));
+		registry.bind(Appointment.class, new AppointmentConverter(appointmentDao, appointmentMap));
+		List<MeetingMember> list = readList(ser, f, "meetingmembers.xml", "meetingmembers", MeetingMember.class);
 		for (MeetingMember ma : list) {
 			ma.setId(null);
 			meetingMemberDao.update(ma);
@@ -732,7 +761,16 @@ public class BackupImport {
 	 */
 	private void importRecordings(File f) throws Exception {
 		log.info("Meeting members import complete, starting recordings server import");
-		List<Recording> list = readRecordingList(f, "flvRecordings.xml", "flvrecordings");
+		Registry registry = new Registry();
+		Strategy strategy = new RegistryStrategy(registry);
+		RegistryMatcher matcher = new RegistryMatcher();
+		Serializer ser = new Persister(strategy, matcher);
+
+		matcher.bind(Long.class, LongTransform.class);
+		matcher.bind(Integer.class, IntegerTransform.class);
+		registry.bind(Date.class, DateConverter.class);
+		registry.bind(Recording.Status.class, RecordingStatusConverter.class);
+		List<Recording> list = readList(ser, f, "flvRecordings.xml", "flvrecordings", Recording.class);
 		for (Recording r : list) {
 			Long recId = r.getId();
 			r.setId(null);
@@ -768,7 +806,7 @@ public class BackupImport {
 	private void importPrivateMsgFolders(File f, Serializer simpleSerializer) throws Exception {
 		log.info("Recording import complete, starting private message folder import");
 		List<PrivateMessageFolder> list = readList(simpleSerializer, f, "privateMessageFolder.xml"
-			, "privatemessagefolders", PrivateMessageFolder.class, true);
+			, "privatemessagefolders", PrivateMessageFolder.class);
 		for (PrivateMessageFolder p : list) {
 			Long folderId = p.getId();
 			PrivateMessageFolder storedFolder = privateMessageFolderDao.get(folderId);
@@ -791,7 +829,7 @@ public class BackupImport {
 
 		registry.bind(User.class, new UserConverter(userDao, userMap));
 
-		List<UserContact> list = readList(serializer, f, "userContacts.xml", "usercontacts", UserContact.class, true);
+		List<UserContact> list = readList(serializer, f, "userContacts.xml", "usercontacts", UserContact.class);
 		for (UserContact uc : list) {
 			Long ucId = uc.getId();
 			UserContact storedUC = userContactDao.get(ucId);
@@ -820,7 +858,7 @@ public class BackupImport {
 		registry.bind(Room.class, new RoomConverter(roomDao, roomMap));
 		registry.bind(Date.class, DateConverter.class);
 
-		List<PrivateMessage> list = readList(serializer, f, "privateMessages.xml", "privatemessages", PrivateMessage.class, true);
+		List<PrivateMessage> list = readList(serializer, f, "privateMessages.xml", "privatemessages", PrivateMessage.class);
 		boolean oldBackup = true;
 		for (PrivateMessage p : list) {
 			if (p.getFolderId() == null || p.getFolderId().longValue() < 0) {
@@ -860,7 +898,15 @@ public class BackupImport {
 	private List<FileItem> importFiles(File f) throws Exception {
 		log.info("Private message import complete, starting file explorer item import");
 		List<FileItem> result = new ArrayList<>();
-		List<FileItem> list = readFileItemList(f, "fileExplorerItems.xml", "fileExplorerItems");
+		Registry registry = new Registry();
+		Strategy strategy = new RegistryStrategy(registry);
+		RegistryMatcher matcher = new RegistryMatcher();
+		Serializer ser = new Persister(strategy, matcher);
+
+		matcher.bind(Long.class, LongTransform.class);
+		matcher.bind(Integer.class, IntegerTransform.class);
+		registry.bind(Date.class, DateConverter.class);
+		List<FileItem> list = readList(ser, f, "fileExplorerItems.xml", "fileExplorerItems", FileItem.class);
 		for (FileItem file : list) {
 			Long fId = file.getId();
 			// We need to reset this as openJPA reject to store them otherwise
@@ -899,7 +945,7 @@ public class BackupImport {
 		registry.bind(RoomPoll.Type.class, PollTypeConverter.class);
 		registry.bind(Date.class, DateConverter.class);
 
-		List<RoomPoll> list = readList(serializer, f, "roompolls.xml", "roompolls", RoomPoll.class, true);
+		List<RoomPoll> list = readList(serializer, f, "roompolls.xml", "roompolls", RoomPoll.class);
 		for (RoomPoll rp : list) {
 			rp.setId(null);
 			if (rp.getRoom() == null || rp.getRoom().getId() == null) {
@@ -976,32 +1022,6 @@ public class BackupImport {
 		return list;
 	}
 
-	private static Node getNode(Node doc, String name) {
-		if (doc != null) {
-			NodeList nl = doc.getChildNodes();
-			for (int i = 0; i < nl.getLength(); ++i) {
-				Node node = nl.item(i);
-				if (node.getNodeType() == Node.ELEMENT_NODE && name.equals(node.getNodeName())) {
-					return node;
-				}
-			}
-		}
-		return null;
-	}
-
-	public List<User> readUserList(InputStream xml, String listNodeName) throws Exception {
-		return readUserList(new InputSource(xml), listNodeName);
-	}
-
-	public List<User> readUserList(File baseDir, String fileName, String listNodeName) throws Exception {
-		File xml = new File(baseDir, fileName);
-		if (!xml.exists()) {
-			throw new BackupException(fileName + " missing");
-		}
-
-		return readUserList(new InputSource(xml.toURI().toASCIIString()), listNodeName);
-	}
-
 	private static Long getProfileId(File f) {
 		String n = f.getName();
 		if (n.indexOf(PROFILES_PREFIX) > -1) {
@@ -1086,17 +1106,6 @@ public class BackupImport {
 		return val;
 	}
 
-	private static String getCountry(String countryId) {
-		if (countries.isEmpty()) {
-			try (InputStream is = BackupImport.class.getResourceAsStream("countries.properties")) {
-				countries.load(is);
-			} catch (IOException e) {
-				log.error("Unexpected exception during countries import", e);
-			}
-		}
-		return countries.getProperty(String.format("country.%s", countryId));
-	}
-
 	private void convertOldPresentation(FileItem fi) {
 		File f = fi.getOriginal();
 		if (f != null && f.exists()) {
@@ -1108,417 +1117,4 @@ public class BackupImport {
 			}
 		}
 	}
-
-	//TODO (need to be removed in later versions) HACK to fix old properties
-	public List<FileItem> readFileItemList(File baseDir, String fileName, String listNodeName) throws Exception {
-		List<FileItem> list = new ArrayList<>();
-		File xml = new File(baseDir, fileName);
-		if (xml.exists()) {
-			Registry registry = new Registry();
-			Strategy strategy = new RegistryStrategy(registry);
-			RegistryMatcher matcher = new RegistryMatcher();
-			Serializer ser = new Persister(strategy, matcher);
-
-			matcher.bind(Long.class, LongTransform.class);
-			matcher.bind(Integer.class, IntegerTransform.class);
-			registry.bind(Date.class, DateConverter.class);
-
-			try (InputStream rootIs1 = new FileInputStream(xml); InputStream rootIs2 = new FileInputStream(xml);) {
-				InputNode root = NodeBuilder.read(rootIs1);
-				InputNode root1 = NodeBuilder.read(rootIs2); //HACK to handle old isFolder, isImage, isVideo, isRecording, isPresentation, isStoredWmlFile, isChart
-				InputNode listNode = root.getNext();
-				InputNode listNode1 = root1.getNext(); //HACK to handle old isFolder, isImage, isVideo, isRecording, isPresentation, isStoredWmlFile, isChart
-				if (listNodeName.equals(listNode.getName())) {
-					InputNode item = listNode.getNext();
-					InputNode item1 = listNode1.getNext(); //HACK to handle old isFolder, isImage, isVideo, isRecording, isPresentation, isStoredWmlFile, isChart
-					while (item != null) {
-						FileItem f = ser.read(FileItem.class, item, false);
-
-						//HACK to handle old isFolder, isImage, isVideo, isRecording, isPresentation, isStoredWmlFile, isChart, wmlFilePath
-						do {
-							if (item1 == null) {
-								break;
-							}
-							String name = item1.getName();
-							String val = item1.getValue();
-							if ("wmlFilePath".equals(name) && !Strings.isEmpty(val)) {
-								f.setType(BaseFileItem.Type.WmlFile);
-								f.setHash(val);
-							}
-							if (f.getType() == null && "isChart".equals(name) && "true".equals(val)) {
-								f.setType(BaseFileItem.Type.PollChart);
-							}
-							if ("isImage".equals(name) && "true".equals(val)) {
-								f.setType(BaseFileItem.Type.Image);
-							}
-							if ("isVideo".equals(name) && "true".equals(val)) {
-								f.setType(BaseFileItem.Type.Video);
-							}
-							if ("isRecording".equals(name) && "true".equals(val)) {
-								log.warn("Recording is stored in FileExplorer Items");
-								f.setType(BaseFileItem.Type.Video);
-							}
-							if ("isPresentation".equals(name) && "true".equals(val)) {
-								f.setType(BaseFileItem.Type.Presentation);
-							}
-							if ("isStoredWmlFile".equals(name) && "true".equals(val)) {
-								f.setType(BaseFileItem.Type.WmlFile);
-							}
-							if (("folder".equals(name) || "isFolder".equals(name)) && "true".equals(val)) {
-								f.setType(BaseFileItem.Type.Folder);
-							}
-							item1 = listNode1.getNext(); //HACK to handle old isFolder, isImage, isVideo, isRecording, isPresentation, isStoredWmlFile, isChart, wmlFilePath
-						} while (item1 != null && !"fileExplorerItem".equals(item1.getName()));
-
-						//Some hashes were stored with file extension
-						int idx = f.getHash() == null ? -1 : f.getHash().indexOf('.');
-						if (idx > -1) {
-							String hash = f.getHash().substring(0, idx);
-							if (BaseFileItem.Type.Image == f.getType()) {
-								fileMap.put(f.getHash(), String.format("%s/%s", hash, f.getHash()));
-							}
-							f.setHash(hash);
-						}
-						list.add(f);
-						item = listNode.getNext();
-					}
-				}
-			}
-		}
-		return list;
-	}
-
-	public List<Recording> readRecordingList(File baseDir, String fileName, String listNodeName) throws Exception {
-		List<Recording> list = new ArrayList<>();
-		File xml = new File(baseDir, fileName);
-		if (xml.exists()) {
-			Registry registry = new Registry();
-			Strategy strategy = new RegistryStrategy(registry);
-			RegistryMatcher matcher = new RegistryMatcher();
-			Serializer ser = new Persister(strategy, matcher);
-
-			matcher.bind(Long.class, LongTransform.class);
-			matcher.bind(Integer.class, IntegerTransform.class);
-			registry.bind(Date.class, DateConverter.class);
-			registry.bind(Recording.Status.class, RecordingStatusConverter.class);
-
-			try (InputStream rootIs1 = new FileInputStream(xml); InputStream rootIs2 = new FileInputStream(xml);) {
-				InputNode root = NodeBuilder.read(rootIs1);
-				InputNode root1 = NodeBuilder.read(rootIs2); //HACK to handle old isFolder
-				InputNode listNode = root.getNext();
-				InputNode listNode1 = root1.getNext(); //HACK to handle old isFolder
-				if (listNodeName.equals(listNode.getName())) {
-					InputNode item = listNode.getNext();
-					InputNode item1 = listNode1.getNext(); //HACK to handle old isFolder
-					while (item != null) {
-						Recording r = ser.read(Recording.class, item, false);
-
-						boolean isFolder = false;
-						//HACK to handle old isFolder
-						do {
-							String name = item1.getName();
-							String val = item1.getValue();
-							if (("folder".equals(name) || "isFolder".equals(name)) && "true".equals(val)) {
-								isFolder = true;
-							}
-							item1 = listNode1.getNext(); //HACK to handle Address inside user
-						} while (item1 != null && !"flvrecording".equals(item1.getName()));
-
-						if (r.getType() == null) {
-							r.setType(isFolder ? BaseFileItem.Type.Folder : BaseFileItem.Type.Recording);
-						}
-						list.add(r);
-						item = listNode.getNext();
-					}
-				}
-			}
-		}
-		return list;
-	}
-
-	private List<MeetingMember> readMeetingMemberList(File baseDir, String filename, String listNodeName) throws Exception {
-		Registry registry = new Registry();
-		Strategy strategy = new RegistryStrategy(registry);
-		Serializer ser = new Persister(strategy);
-
-		registry.bind(User.class, new UserConverter(userDao, userMap));
-		registry.bind(Appointment.class, new AppointmentConverter(appointmentDao, appointmentMap));
-
-		File xml = new File(baseDir, filename);
-		if (!xml.exists()) {
-			throw new BackupException(filename + " missing");
-		}
-
-		DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-		Document doc = dBuilder.parse(new InputSource(xml.toURI().toASCIIString()));
-
-		StringWriter sw = new StringWriter();
-		Transformer xformer = TransformerFactory.newInstance().newTransformer();
-		xformer.transform(new DOMSource(doc), new StreamResult(sw));
-
-		List<MeetingMember> list = new ArrayList<>();
-		InputNode root = NodeBuilder.read(new StringReader(sw.toString()));
-		InputNode root1 = NodeBuilder.read(new StringReader(sw.toString())); //HACK to handle external attendee's firstname, lastname, email
-		InputNode listNode = root.getNext();
-		InputNode listNode1 = root1.getNext(); //HACK to handle external attendee's firstname, lastname, email
-		if (listNodeName.equals(listNode.getName())) {
-			InputNode item = listNode.getNext();
-			InputNode item1 = listNode1.getNext(); //HACK to handle external attendee's firstname, lastname, email
-			while (item != null) {
-				MeetingMember mm = ser.read(MeetingMember.class, item, false);
-
-				boolean needToSkip1 = true;
-				if (mm.getUser() == null) {
-					mm.setUser(new User());
-				}
-				if (mm.getUser().getId() == null) {
-					//HACK to handle external attendee's firstname, lastname, email
-					boolean contactValid = false;
-					do {
-						String name = item1.getName();
-						String val = item1.getValue();
-						if (User.Type.contact == mm.getUser().getType() && "firstname".equals(name)) {
-							mm.getUser().setFirstname(val);
-						}
-						if (User.Type.contact == mm.getUser().getType() && "lastname".equals(name)) {
-							mm.getUser().setLastname(val);
-						}
-						if ("email".equals(name)) {
-							if (mm.getAppointment() != null && mm.getAppointment().getOwner() != null) {
-								mm.setUser(userDao.getContact(val, mm.getAppointment().getOwner()));
-							}
-							contactValid = true;
-						}
-						item1 = listNode1.getNext(); //HACK to handle old om_time_zone
-					} while (item1 != null && !"meetingmember".equals(item1.getName()));
-					if (!contactValid) {
-						mm = null;
-					}
-					needToSkip1 = false;
-				}
-				if (needToSkip1) {
-					do {
-						item1 = listNode1.getNext(); //HACK to handle Address inside user
-					} while (item1 != null && !"meetingmember".equals(item1.getName()));
-				}
-				item = listNode.getNext();
-				if (mm != null && !mm.isDeleted() && mm.getUser() != null && mm.getAppointment() != null && mm.getAppointment().getId() != null) {
-					mm.setId(null);
-					list.add(mm);
-				}
-			}
-		}
-		return list;
-	}
-
-	private List<User> readUserList(InputSource xml, String listNodeName) throws Exception {
-		Registry registry = new Registry();
-		Strategy strategy = new RegistryStrategy(registry);
-		Serializer ser = new Persister(strategy);
-
-		registry.bind(Group.class, new GroupConverter(groupDao, groupMap));
-		registry.bind(Salutation.class, SalutationConverter.class);
-		registry.bind(Date.class, DateConverter.class);
-
-		DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-		Document doc = dBuilder.parse(xml);
-		final Map<String, Integer> userEmailMap = new HashMap<>();
-		final Map<String, Integer> userLoginMap = new HashMap<>();
-		//add existence email from database
-		List<User>  users = userDao.getAllUsers();
-		for (User u : users){
-			if (u.getAddress() == null || u.getAddress().getEmail() == null || User.Type.user != u.getType()) {
-				continue;
-			}
-			userEmailMap.put(u.getAddress().getEmail(), Integer.valueOf(-1));
-			userLoginMap.put(u.getLogin(), Integer.valueOf(-1));
-		}
-		Node nList = getNode(getNode(doc, "root"), listNodeName);
-		if (nList != null) {
-			NodeList nl = nList.getChildNodes();
-			// one of the old OM version created 2 nodes "deleted" this code block handles this
-			for (int i = 0; i < nl.getLength(); ++i) {
-				Node user = nl.item(i);
-				NodeList nl1 = user.getChildNodes();
-				boolean deletedFound = false;
-				for (int j = 0; j < nl1.getLength(); ++j) {
-					Node node = nl1.item(j);
-					if (node.getNodeType() == Node.ELEMENT_NODE && "deleted".equals(node.getNodeName())) {
-						if (deletedFound) {
-							user.removeChild(node);
-							break;
-						}
-						deletedFound = true;
-					}
-				}
-			}
-		}
-
-		StringWriter sw = new StringWriter();
-		Transformer xformer = TransformerFactory.newInstance().newTransformer();
-		xformer.transform(new DOMSource(doc), new StreamResult(sw));
-
-		List<User> list = new ArrayList<>();
-		InputNode root = NodeBuilder.read(new StringReader(sw.toString()));
-		InputNode root1 = NodeBuilder.read(new StringReader(sw.toString())); //HACK to handle Address inside user
-		InputNode root2 = NodeBuilder.read(new StringReader(sw.toString())); //HACK to handle old om_time_zone, level_id, status
-		InputNode listNode = root.getNext();
-		InputNode listNode1 = root1.getNext(); //HACK to handle Address inside user
-		InputNode listNode2 = root2.getNext(); //HACK to handle old om_time_zone
-		if (listNodeName.equals(listNode.getName())) {
-			InputNode item = listNode.getNext();
-			InputNode item1 = listNode1.getNext(); //HACK to handle Address inside user
-			InputNode item2 = listNode2.getNext(); //HACK to handle old om_time_zone, level_id, status
-			while (item != null) {
-				User u = ser.read(User.class, item, false);
-
-				boolean needToSkip1 = true;
-				//HACK to handle Address inside user
-				if (u.getAddress() == null) {
-					Address a = ser.read(Address.class, item1, false);
-					u.setAddress(a);
-					needToSkip1 = false;
-				}
-				if (needToSkip1) {
-					do {
-						item1 = listNode1.getNext(); //HACK to handle Address inside user
-					} while (item1 != null && !"user".equals(item1.getName()));
-				}
-				String levelId = null, status = null, stateId = null;
-				do {
-					String name = item2.getName();
-					String val = item2.getValue();
-					if (u.getTimeZoneId() == null && "omTimeZone".equals(name)) {
-						u.setTimeZoneId(val == null ? null : tzUtil.getTimeZone(val).getID());
-					}
-					if ("level_id".equals(name)) {
-						levelId = val;
-					}
-					if ("status".equals(name)) {
-						status = val;
-					}
-					if ("state_id".equals(name)) {
-						stateId = val;
-					}
-					item2 = listNode2.getNext(); //HACK to handle old om_time_zone, level_id, status
-				} while (item2 != null && !"user".equals(item2.getName()));
-				if (u.getRights().isEmpty()) {
-					u.getRights().add(Right.Room);
-					if ("1".equals(status)) {
-						u.getRights().add(Right.Dashboard);
-						u.getRights().add(Right.Login);
-					}
-					if ("3".equals(levelId)) {
-						u.getRights().add(Right.Admin);
-						u.getRights().add(Right.Soap);
-					}
-					if ("4".equals(levelId)) {
-						u.getRights().add(Right.Soap);
-					}
-				}
-				// check that email is unique
-				if (u.getAddress() != null && u.getAddress().getEmail() != null && User.Type.user == u.getType()) {
-					if (userEmailMap.containsKey(u.getAddress().getEmail())) {
-						log.warn("Email is duplicated for user " + u.toString());
-						String updateEmail = String.format("modified_by_import_<%s>%s", UUID.randomUUID(), u.getAddress().getEmail());
-						u.getAddress().setEmail(updateEmail);
-					}
-					userEmailMap.put(u.getAddress().getEmail(), Integer.valueOf(userEmailMap.size()));
-				}
-				if (userLoginMap.containsKey(u.getLogin())) {
-					log.warn("Login is duplicated for user " + u.toString());
-					String updateLogin = String.format("modified_by_import_<%s>%s", UUID.randomUUID(), u.getLogin());
-					u.setLogin(updateLogin);
-				}
-				userLoginMap.put(u.getLogin(), Integer.valueOf(userLoginMap.size()));
-				// check old stateId
-				if (!Strings.isEmpty(stateId)) {
-					String country = getCountry(stateId);
-					if (!Strings.isEmpty(country)) {
-						if (u.getAddress() == null) {
-							u.setAddress(new Address());
-						}
-						u.getAddress().setCountry(country);
-					}
-				}
-				if (u.getGroupUsers() != null) {
-					for (GroupUser gu : u.getGroupUsers()) {
-						gu.setUser(u);
-					}
-				}
-				list.add(u);
-				item = listNode.getNext();
-			}
-		}
-		return list;
-	}
-
-	private List<Room> readRoomList(File baseDir, String fileName, String listNodeName) throws Exception {
-		List<Room> list = new ArrayList<>();
-		File xml = new File(baseDir, fileName);
-		if (xml.exists()) {
-			Registry registry = new Registry();
-			Strategy strategy = new RegistryStrategy(registry);
-			RegistryMatcher matcher = new RegistryMatcher();
-			Serializer ser = new Persister(strategy, matcher);
-
-			matcher.bind(Long.class, LongTransform.class);
-			matcher.bind(Integer.class, IntegerTransform.class);
-			registry.bind(User.class, new UserConverter(userDao, userMap));
-			registry.bind(Room.Type.class, RoomTypeConverter.class);
-
-			try (InputStream rootIs1 = new FileInputStream(xml); InputStream rootIs2 = new FileInputStream(xml);) {
-				InputNode root = NodeBuilder.read(rootIs1);
-				InputNode root1 = NodeBuilder.read(rootIs2); //HACK to handle old hideTopBar, hideChat, hideActivitiesAndActions, hideFilesExplorer, hideActionsMenu, hideScreenSharing, hideWhiteboard, showMicrophoneStatus
-				InputNode listNode = root.getNext();
-				InputNode listNode1 = root1.getNext(); //HACK to handle old hideTopBar, hideChat, hideActivitiesAndActions, hideFilesExplorer, hideActionsMenu, hideScreenSharing, hideWhiteboard, showMicrophoneStatus
-				if (listNodeName.equals(listNode.getName())) {
-					InputNode item = listNode.getNext();
-					InputNode item1 = listNode1.getNext(); //HACK to handle old hideTopBar, hideChat, hideActivitiesAndActions, hideFilesExplorer, hideActionsMenu, hideScreenSharing, hideWhiteboard, showMicrophoneStatus
-					while (item != null) {
-						Room r = ser.read(Room.class, item, false);
-
-						Boolean showMicrophoneStatus = null;
-						//HACK to handle old hideTopBar, hideChat, hideActivitiesAndActions, hideFilesExplorer, hideActionsMenu, hideScreenSharing, hideWhiteboard, showMicrophoneStatus
-						do {
-							String name = item1.getName();
-							String val = item1.getValue();
-							if ("hideTopBar".equals(name) && "true".equals(val)) {
-								r.hide(RoomElement.TopBar);
-							}
-							if ("hideChat".equals(name) && "true".equals(val)) {
-								r.hide(RoomElement.Chat);
-							}
-							if ("hideActivitiesAndActions".equals(name) && "true".equals(val)) {
-								r.hide(RoomElement.Activities);
-							}
-							if ("hideFilesExplorer".equals(name) && "true".equals(val)) {
-								r.hide(RoomElement.Files);
-							}
-							if ("hideActionsMenu".equals(name) && "true".equals(val)) {
-								r.hide(RoomElement.ActionMenu);
-							}
-							if ("hideScreenSharing".equals(name) && "true".equals(val)) {
-								r.hide(RoomElement.ScreenSharing);
-							}
-							if ("hideWhiteboard".equals(name) && "true".equals(val)) {
-								r.hide(RoomElement.Whiteboard);
-							}
-							if ("showMicrophoneStatus".equals(name)) {
-								showMicrophoneStatus = Boolean.valueOf(val);
-							}
-							item1 = listNode1.getNext(); //HACK to handle Address inside user
-						} while (item1 != null && !"room".equals(item1.getName()));
-
-						if (Boolean.FALSE.equals(showMicrophoneStatus)) {
-							r.hide(RoomElement.MicrophoneStatus);
-						}
-						list.add(r);
-						item = listNode.getNext();
-					}
-				}
-			}
-		}
-		return list;
-	}
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/6683e8b2/openmeetings-web/pom.xml
----------------------------------------------------------------------
diff --git a/openmeetings-web/pom.xml b/openmeetings-web/pom.xml
index 7ea39d1..1df361e 100644
--- a/openmeetings-web/pom.xml
+++ b/openmeetings-web/pom.xml
@@ -218,60 +218,6 @@
 								<artifactItem>
 									<groupId>org.apache.openmeetings</groupId>
 									<artifactId>test-backup</artifactId>
-									<version>1.4</version>
-									<type>zip</type>
-								</artifactItem>
-								<artifactItem>
-									<groupId>org.apache.openmeetings</groupId>
-									<artifactId>test-backup</artifactId>
-									<version>1.5</version>
-									<type>zip</type>
-								</artifactItem>
-								<artifactItem>
-									<groupId>org.apache.openmeetings</groupId>
-									<artifactId>test-backup</artifactId>
-									<version>1.6.2</version>
-									<type>zip</type>
-								</artifactItem>
-								<artifactItem>
-									<groupId>org.apache.openmeetings</groupId>
-									<artifactId>test-backup</artifactId>
-									<version>1.7.0</version>
-									<type>zip</type>
-								</artifactItem>
-								<artifactItem>
-									<groupId>org.apache.openmeetings</groupId>
-									<artifactId>test-backup</artifactId>
-									<version>1.8.8</version>
-									<type>zip</type>
-								</artifactItem>
-								<artifactItem>
-									<groupId>org.apache.openmeetings</groupId>
-									<artifactId>test-backup</artifactId>
-									<version>1.9.1</version>
-									<type>zip</type>
-								</artifactItem>
-								<artifactItem>
-									<groupId>org.apache.openmeetings</groupId>
-									<artifactId>test-backup</artifactId>
-									<version>2.0.0</version>
-									<type>zip</type>
-								</artifactItem>
-								<artifactItem>
-									<groupId>org.apache.openmeetings</groupId>
-									<artifactId>test-backup</artifactId>
-									<version>3.0.0</version>
-									<type>zip</type>
-								</artifactItem>
-								<artifactItem>
-									<groupId>org.apache.openmeetings</groupId>
-									<artifactId>test-backup</artifactId>
-									<version>3.0.7</version>
-									<type>zip</type>
-								</artifactItem>
-								<artifactItem>
-									<groupId>org.apache.openmeetings</groupId>
-									<artifactId>test-backup</artifactId>
 									<version>3.1.3</version>
 									<type>zip</type>
 								</artifactItem>