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 2012/03/06 17:25:35 UTC

svn commit: r1297562 - in /incubator/openmeetings/trunk/singlewebapp/src: app/org/openmeetings/app/data/flvrecord/listener/ app/org/openmeetings/app/data/record/ app/org/openmeetings/app/documents/ app/org/openmeetings/app/remote/red5/ app/org/openmeet...

Author: solomax
Date: Tue Mar  6 16:25:34 2012
New Revision: 1297562

URL: http://svn.apache.org/viewvc?rev=1297562&view=rev
Log:
Upload controllers are generalized, compilation warnings are hided

Added:
    incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/AbstractUploadController.java
Modified:
    incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java
    incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/record/BatikMethods.java
    incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/record/WhiteboardMapToSVG.java
    incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/documents/GenerateSWF.java
    incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/WhiteBoardObjectListManager.java
    incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/WhiteBoardObjectListManagerById.java
    incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/BackupImportController.java
    incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/ImportController.java
    incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/UploadController.java
    incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/utils/ImportHelper.java
    incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/utils/crypt/MD5Crypt.java
    incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/utils/mappings/CastMapToObject.java
    incubator/openmeetings/trunk/singlewebapp/src/calendarservice/org/openmeetings/axis/services/CalendarWebService.java
    incubator/openmeetings/trunk/singlewebapp/src/red5-screenshare/org/red5/screen/webstart/CommonScreenShare.java

Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java?rev=1297562&r1=1297561&r2=1297562&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/flvrecord/listener/StreamAudioListener.java Tue Mar  6 16:25:34 2012
@@ -28,7 +28,6 @@ import org.openmeetings.app.data.flvreco
 import org.openmeetings.app.persistence.beans.flvrecord.FlvRecordingMetaDelta;
 import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
 import org.red5.io.ITag;
-import org.red5.io.flv.impl.FLVWriter;
 import org.red5.io.flv.impl.Tag;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.IScope;

Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/record/BatikMethods.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/record/BatikMethods.java?rev=1297562&r1=1297561&r2=1297562&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/record/BatikMethods.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/record/BatikMethods.java Tue Mar  6 16:25:34 2012
@@ -68,6 +68,7 @@ public class BatikMethods {
 
 	}
 	
+	@SuppressWarnings("rawtypes")
 	public void drawPointsObject(Graphics2D g2d, List pointsList, Color lineColor, int size, 
 			double xObj, double yObj, float alpha) throws Exception {
 		

Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/record/WhiteboardMapToSVG.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/record/WhiteboardMapToSVG.java?rev=1297562&r1=1297561&r2=1297562&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/record/WhiteboardMapToSVG.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/record/WhiteboardMapToSVG.java Tue Mar  6 16:25:34 2012
@@ -51,6 +51,7 @@ public class WhiteboardMapToSVG extends 
 		return instance;
 	}
 	
+	@SuppressWarnings("rawtypes")
 	public SVGGraphics2D convertMapToSVG(SVGGraphics2D svgGenerator, List whiteBoardMap) throws Exception {
 		
 		//log.debug("convertMapToSVG: "+whiteBoardMap.size());
@@ -74,8 +75,6 @@ public class WhiteboardMapToSVG extends 
         		
         		Double x = Double.valueOf(graphObject.get(graphObject.size()-5).toString()).doubleValue();
         		Double y = Double.valueOf(graphObject.get(graphObject.size()-4).toString()).doubleValue();
-        		Double width = Double.valueOf(graphObject.get(graphObject.size()-3).toString()).doubleValue();
-        		Double height = Double.valueOf(graphObject.get(graphObject.size()-2).toString()).doubleValue();
         		
         		//log.debug("x,y,width,height: "+x+","+y+","+width+","+height);
         		

Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/documents/GenerateSWF.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/documents/GenerateSWF.java?rev=1297562&r1=1297561&r2=1297562&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/documents/GenerateSWF.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/documents/GenerateSWF.java Tue Mar  6 16:25:34 2012
@@ -178,7 +178,6 @@ public class GenerateSWF {
 		private final InputStream stderr;
 		private final InputStreamReader isr;
 		private final BufferedReader br;
-		public String message;
 
 		private InputStreamWatcher(Process process) {
 			stderr = process.getInputStream();
@@ -197,11 +196,6 @@ public class GenerateSWF {
 				return;
 			}
 		}
-		
-		public String getOutputString() {
-			return message;
-		}
-		
 	}
 
 	private String getPathToSwfTools() {

Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/WhiteBoardObjectListManager.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/WhiteBoardObjectListManager.java?rev=1297562&r1=1297561&r2=1297562&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/WhiteBoardObjectListManager.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/WhiteBoardObjectListManager.java Tue Mar  6 16:25:34 2012
@@ -60,17 +60,9 @@ public class WhiteBoardObjectListManager
 	/*
 	 * Room items a Whiteboard
 	 */
+	@SuppressWarnings("rawtypes")
 	public synchronized HashMap<String,List> getWhiteBoardObjectListByRoomId(Long room_id){
-		WhiteboardObject whiteBoardObject = whiteBoardObjectList.get(room_id);
-		if (whiteBoardObject == null) {
-			whiteBoardObject = new WhiteboardObject();
-		}
-		//HashMap<String,List>roomList = whiteBoardObject.getObjList();
-		HashMap<String,List>roomList = null;
-		if (roomList == null) {
-			roomList = new HashMap<String,List>();
-		}
-		return roomList;
+		return new HashMap<String,List>();
 	}
 	
 	/*
@@ -147,7 +139,7 @@ public class WhiteBoardObjectListManager
 		whiteBoardObjectList.put(room_id, whiteBoardObject);
 	}
 	
-	public synchronized void setWhiteBoardObjectListRoomObj(Long room_id, HashMap<String,List> roomList){
+	public synchronized void setWhiteBoardObjectListRoomObj(Long room_id, @SuppressWarnings("rawtypes") HashMap<String,List> roomList){
 		WhiteboardObject whiteBoardObject = whiteBoardObjectList.get(room_id);
 		if (whiteBoardObject == null) {
 			whiteBoardObject = new WhiteboardObject();

Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/WhiteBoardObjectListManagerById.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/WhiteBoardObjectListManagerById.java?rev=1297562&r1=1297561&r2=1297562&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/WhiteBoardObjectListManagerById.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/red5/WhiteBoardObjectListManagerById.java Tue Mar  6 16:25:34 2012
@@ -19,14 +19,12 @@
 package org.openmeetings.app.remote.red5;
 
 import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 
-import org.slf4j.Logger;
-import org.red5.logging.Red5LoggerFactory;
+import org.openmeetings.app.OpenmeetingsVariables;
 import org.openmeetings.app.conference.whiteboard.WhiteboardObject;
 import org.openmeetings.app.conference.whiteboard.WhiteboardObjectList;
-import org.openmeetings.app.conference.whiteboard.WhiteboardSyncLockObject;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
 
 public class WhiteBoardObjectListManagerById {
 	
@@ -38,11 +36,12 @@ public class WhiteBoardObjectListManager
 //	
 //	private static HashMap<Long,Map<String,Map<String,WhiteboardSyncLockObject>>> whiteBoardObjectSyncList = new HashMap<Long,Map<String,Map<String,WhiteboardSyncLockObject>>>();
 
-	private static final Logger log = Red5LoggerFactory.getLogger(WhiteBoardObjectListManagerById.class, "openmeetings");
+	private static final Logger log = Red5LoggerFactory.getLogger(WhiteBoardObjectListManagerById.class, OpenmeetingsVariables.webAppRootKey);
 
 	private static WhiteBoardObjectListManagerById instance = null;
 
 	private WhiteBoardObjectListManagerById() {
+		log.debug("WhiteBoardObjectListManagerById is constructed");
 	}
 
 	public static synchronized WhiteBoardObjectListManagerById getInstance() {

Added: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/AbstractUploadController.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/AbstractUploadController.java?rev=1297562&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/AbstractUploadController.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/AbstractUploadController.java Tue Mar  6 16:25:34 2012
@@ -0,0 +1,103 @@
+package org.openmeetings.servlet.outputhandler;
+
+import java.util.HashMap;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+
+import org.openmeetings.app.OpenmeetingsVariables;
+import org.openmeetings.app.data.basic.AuthLevelmanagement;
+import org.openmeetings.app.data.basic.Configurationmanagement;
+import org.openmeetings.app.data.basic.Sessionmanagement;
+import org.openmeetings.app.data.user.Usermanagement;
+import org.openmeetings.utils.ImportHelper;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.context.ServletContextAware;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+
+public abstract class AbstractUploadController implements ServletContextAware {
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			AbstractUploadController.class, OpenmeetingsVariables.webAppRootKey);
+	protected ServletContext context;
+	@Autowired
+	protected Sessionmanagement sessionManagement;
+	@Autowired
+	protected Usermanagement userManagement;
+	@Autowired
+	protected AuthLevelmanagement authLevelManagement;
+	@Autowired
+	protected Configurationmanagement cfgManagement;
+	
+	public void setServletContext(ServletContext arg0) {
+		context = arg0;
+	}
+	
+	protected enum UploadParams {
+		pFile
+		, pUserId
+		, pSID
+		, pPublicSID
+	}
+
+	protected <T> T getParam(HashMap<UploadParams, Object> params, UploadParams param, Class<T> type) {
+		return getParam(params, param);
+	}
+	
+	@SuppressWarnings("unchecked")
+	protected <T> T getParam(HashMap<UploadParams, Object> params, UploadParams param) {
+		return params.containsKey(param) ? (T)params.get(param) : null;
+	}
+	
+    protected HashMap<UploadParams, Object> validate(HttpServletRequest request, boolean admin) throws ServletException {
+    	HashMap<UploadParams, Object> params = new HashMap<UploadParams, Object>();
+		log.debug("Starting validate");
+		try {
+
+			String sid = request.getParameter("sid");
+			if (sid == null) {
+				throw new ServletException("SID Missing");
+			}
+			params.put(UploadParams.pSID, sid);
+			log.debug("sid: " + sid);
+
+			Long userId = sessionManagement.checkSession(sid);
+			Long userLevel = userManagement.getUserLevelByID(userId);
+			log.debug("userId = " + userId + ", userLevel = " + userLevel);
+			params.put(UploadParams.pUserId, userId);
+
+			if ((admin && !authLevelManagement.checkAdminLevel(userLevel))
+					|| (!admin && userLevel <= 0)) {
+				throw new ServletException("Insufficient permissions "
+						+ userLevel);
+			}
+
+			String publicSID = request.getParameter("publicSID");
+			if (publicSID == null) {
+				// Always ask for Public SID
+				throw new ServletException("Missing publicSID");
+			}
+			log.debug("publicSID: " + publicSID);
+			params.put(UploadParams.pPublicSID, publicSID);
+
+			MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request;
+			MultipartFile multipartFile = multipartRequest.getFile("Filedata");
+			long fileSize = multipartFile.getSize();
+			long maxSize = ImportHelper.getMaxUploadSize(cfgManagement);
+			log.debug("uploading " + fileSize + " bytes");
+			if (fileSize > maxSize) {
+				throw new ServletException("Maximum upload size: " + maxSize + " exceeded: " + fileSize);
+			}
+			params.put(UploadParams.pFile, multipartFile);
+		} catch (ServletException e) {
+			throw e;
+		} catch (Exception e) {
+			log.error("Exception during upload: ", e);
+			throw new ServletException(e);
+		}
+		return params;
+    }
+}

Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/BackupImportController.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/BackupImportController.java?rev=1297562&r1=1297561&r2=1297562&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/BackupImportController.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/BackupImportController.java Tue Mar  6 16:25:34 2012
@@ -35,7 +35,6 @@ import java.util.regex.Pattern;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
-import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -45,9 +44,6 @@ import org.dom4j.Document;
 import org.dom4j.Element;
 import org.dom4j.io.SAXReader;
 import org.openmeetings.app.OpenmeetingsVariables;
-import org.openmeetings.app.data.basic.AuthLevelmanagement;
-import org.openmeetings.app.data.basic.Configurationmanagement;
-import org.openmeetings.app.data.basic.Sessionmanagement;
 import org.openmeetings.app.data.basic.dao.LdapConfigDaoImpl;
 import org.openmeetings.app.data.basic.dao.OmTimeZoneDaoImpl;
 import org.openmeetings.app.data.calendar.daos.AppointmentCategoryDaoImpl;
@@ -62,7 +58,6 @@ import org.openmeetings.app.data.flvreco
 import org.openmeetings.app.data.flvrecord.FlvRecordingMetaDataDaoImpl;
 import org.openmeetings.app.data.user.Organisationmanagement;
 import org.openmeetings.app.data.user.Statemanagement;
-import org.openmeetings.app.data.user.Usermanagement;
 import org.openmeetings.app.data.user.dao.PrivateMessageFolderDaoImpl;
 import org.openmeetings.app.data.user.dao.PrivateMessagesDaoImpl;
 import org.openmeetings.app.data.user.dao.UserContactsDaoImpl;
@@ -98,10 +93,9 @@ import org.springframework.stereotype.Co
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest;
 
 @Controller
-public class BackupImportController {
+public class BackupImportController extends AbstractUploadController {
 
 	private static final Logger log = Red5LoggerFactory.getLogger(
 			BackupImportController.class, OpenmeetingsVariables.webAppRootKey);
@@ -109,12 +103,6 @@ public class BackupImportController {
 	@Autowired
 	private AppointmentDaoImpl appointmentDao;
 	@Autowired
-	private Sessionmanagement sessionManagement;
-	@Autowired
-	private Configurationmanagement cfgManagement;
-	@Autowired
-	private Usermanagement userManagement;
-	@Autowired
 	private Statemanagement statemanagement;
 	@Autowired
 	private OmTimeZoneDaoImpl omTimeZoneDaoImpl;
@@ -149,8 +137,6 @@ public class BackupImportController {
 	@Autowired
 	private ScopeApplicationAdapter scopeApplicationAdapter;
 	@Autowired
-	private AuthLevelmanagement authLevelManagement;
-	@Autowired
 	private PollManagement pollManagement;
 
 	private final HashMap<Long, Long> usersMap = new HashMap<Long, Long>();
@@ -166,364 +152,338 @@ public class BackupImportController {
 	};
 
     @RequestMapping(value = "/backup.upload", method = RequestMethod.POST)
-	public void service(HttpServletRequest httpServletRequest,
+	public void service(HttpServletRequest request,
 			HttpServletResponse httpServletResponse)
 			throws ServletException, IOException {
 
-		try {
-
-			if (httpServletRequest.getContentLength() > 0) {
+    	HashMap<UploadParams, Object> params = validate(request, true);
+    	try {
+			String current_dir = context.getRealPath("/");
+			String working_dir = current_dir + "upload"
+					+ File.separatorChar + "import"
+					+ File.separatorChar;
+			File working_dirFile = new File(working_dir);
+			if (!working_dirFile.exists()) {
+				working_dirFile.mkdir();
+			}
+
+			MultipartFile multipartFile = getParam(params, UploadParams.pFile);
+			InputStream is = multipartFile.getInputStream();
+			String fileSystemName = multipartFile.getOriginalFilename();
+
+			StringUtils.deleteWhitespace(fileSystemName);
+
+			int dotidx = fileSystemName.lastIndexOf('.');
+			String newFileSystemName = StringComparer.getInstance()
+					.compareForRealPaths(
+							fileSystemName.substring(0, dotidx));
+
+			String completeName = working_dir + newFileSystemName;
+
+			File f = new File(completeName + File.separatorChar);
+
+			if (f.exists()) {
+				int recursiveNumber = 0;
+				String tempd = completeName + "_" + recursiveNumber;
+				while (f.exists()) {
+					recursiveNumber++;
+					tempd = completeName + "_" + recursiveNumber;
+					f = new File(tempd + File.separatorChar);
 
-				String sid = httpServletRequest.getParameter("sid");
-				if (sid == null) {
-					sid = "default";
-					throw new Exception("SID Missing");
 				}
+				completeName = tempd;
+			}
 
-				String publicSID = httpServletRequest.getParameter("publicSID");
-				if (publicSID == null) {
-					publicSID = "default";
-					throw new Exception("publicSID Missing");
-				}
-
-				log.debug("uploading........ sid: " + sid);
-
-				Long users_id = sessionManagement.checkSession(sid);
-				Long user_level = userManagement.getUserLevelByID(users_id);
-
-				if (authLevelManagement.checkAdminLevel(user_level)) {
+			f.mkdir();
 
-					String current_dir = httpServletRequest.getRealPath("/");
-					String working_dir = current_dir + "upload"
-							+ File.separatorChar + "import"
-							+ File.separatorChar;
-					File working_dirFile = new File(working_dir);
-					if (!working_dirFile.exists()) {
-						working_dirFile.mkdir();
-					}
+			log.debug("##### WRITE FILE TO: " + completeName);
 
-					DefaultMultipartHttpServletRequest multipartRequest = new DefaultMultipartHttpServletRequest(httpServletRequest);
-					MultipartFile multipartFile = multipartRequest.getFile("Filedata");
-					InputStream is = multipartFile.getInputStream();
-					String fileSystemName = multipartFile.getOriginalFilename();
+			ZipInputStream zipinputstream = new ZipInputStream(is);
+			byte[] buf = new byte[1024];
 
-					StringUtils.deleteWhitespace(fileSystemName);
+			ZipEntry zipentry = zipinputstream.getNextEntry();
 
-					int dotidx = fileSystemName.lastIndexOf('.');
-					String newFileSystemName = StringComparer.getInstance()
-							.compareForRealPaths(
-									fileSystemName.substring(0, dotidx));
+			while (zipentry != null) {
+				// for each entry to be extracted
+				String entryName = completeName + File.separatorChar
+						+ zipentry.getName();
+				entryName = entryName.replace('/', File.separatorChar);
+				entryName = entryName.replace('\\', File.separatorChar);
 
-					String completeName = working_dir + newFileSystemName;
+				// log.debug("entryname " + entryName);
 
-					File f = new File(completeName + File.separatorChar);
+				// zipentry.get
 
-					if (f.exists()) {
-						int recursiveNumber = 0;
-						String tempd = completeName + "_" + recursiveNumber;
-						while (f.exists()) {
-							recursiveNumber++;
-							tempd = completeName + "_" + recursiveNumber;
-							f = new File(tempd + File.separatorChar);
+				int n;
+				FileOutputStream fileoutputstream;
+				File newFile = new File(entryName);
 
-						}
-						completeName = tempd;
+				if (zipentry.isDirectory()) {
+					if (!newFile.mkdir()) {
+						break;
 					}
+					zipentry = zipinputstream.getNextEntry();
+					continue;
+				}
 
-					f.mkdir();
-
-					log.debug("##### WRITE FILE TO: " + completeName);
-
-					ZipInputStream zipinputstream = new ZipInputStream(is);
-					byte[] buf = new byte[1024];
-
-					ZipEntry zipentry = zipinputstream.getNextEntry();
-
-					while (zipentry != null) {
-						// for each entry to be extracted
-						String entryName = completeName + File.separatorChar
-								+ zipentry.getName();
-						entryName = entryName.replace('/', File.separatorChar);
-						entryName = entryName.replace('\\', File.separatorChar);
-
-						// log.debug("entryname " + entryName);
-
-						// zipentry.get
-
-						int n;
-						FileOutputStream fileoutputstream;
-						File newFile = new File(entryName);
-
-						if (zipentry.isDirectory()) {
-							if (!newFile.mkdir()) {
-								break;
-							}
-							zipentry = zipinputstream.getNextEntry();
-							continue;
-						}
-
-						File fentryName = new File(entryName);
-
-						File fparent = new File(fentryName.getParent());
-
-						if (!fparent.exists()) {
-
-							File fparentparent = new File(fparent.getParent());
+				File fentryName = new File(entryName);
 
-							if (!fparentparent.exists()) {
+				File fparent = new File(fentryName.getParent());
 
-								File fparentparentparent = new File(
-										fparentparent.getParent());
+				if (!fparent.exists()) {
 
-								if (!fparentparentparent.exists()) {
+					File fparentparent = new File(fparent.getParent());
 
-									fparentparentparent.mkdir();
-									fparentparent.mkdir();
-									fparent.mkdir();
+					if (!fparentparent.exists()) {
 
-								} else {
+						File fparentparentparent = new File(
+								fparentparent.getParent());
 
-									fparentparent.mkdir();
-									fparent.mkdir();
+						if (!fparentparentparent.exists()) {
 
-								}
-
-							} else {
+							fparentparentparent.mkdir();
+							fparentparent.mkdir();
+							fparent.mkdir();
 
-								fparent.mkdir();
-
-							}
-
-						}
+						} else {
 
-						fileoutputstream = new FileOutputStream(entryName);
+							fparentparent.mkdir();
+							fparent.mkdir();
 
-						while ((n = zipinputstream.read(buf, 0, 1024)) > -1) {
-							fileoutputstream.write(buf, 0, n);
 						}
 
-						fileoutputstream.close();
-						zipinputstream.closeEntry();
-						zipentry = zipinputstream.getNextEntry();
-
-					}// while
-
-					zipinputstream.close();
-
-					/*
-					 * ##################### Import Organizations
-					 */
-					String orgListXML = completeName + File.separatorChar
-							+ "organizations.xml";
-					File orgFile = new File(orgListXML);
-					if (!orgFile.exists()) {
-						throw new Exception("organizations.xml missing");
-					}
-					this.importOrganizsations(orgFile);
-
-					log.info("Organizations import complete, starting user import");
-
-					/*
-					 * ##################### Import Users
-					 */
-					String userListXML = completeName + File.separatorChar
-							+ "users.xml";
-					File userFile = new File(userListXML);
-					if (!userFile.exists()) {
-						throw new Exception("users.xml missing");
-					}
-					this.importUsers(userFile);
-
-					log.info("Users import complete, starting room import");
-
-					/*
-					 * ##################### Import Rooms
-					 */
-					String roomListXML = completeName + File.separatorChar
-							+ "rooms.xml";
-					File roomFile = new File(roomListXML);
-					if (!roomFile.exists()) {
-						throw new Exception("rooms.xml missing");
-					}
-					this.importRooms(roomFile);
-
-					log.info("Room import complete, starting room organizations import");
-
-					/*
-					 * ##################### Import Room Organisations
-					 */
-					String orgRoomListXML = completeName + File.separatorChar
-							+ "rooms_organisation.xml";
-					File orgRoomListFile = new File(orgRoomListXML);
-					if (!orgRoomListFile.exists()) {
-						throw new Exception("rooms_organisation.xml missing");
-					}
-					this.importOrgRooms(orgRoomListFile);
-
-					log.info("Room organizations import complete, starting appointement import");
-
-					/*
-					 * ##################### Import Appointements
-					 */
-					String appointementListXML = completeName
-							+ File.separatorChar + "appointements.xml";
-					File appointementListFile = new File(appointementListXML);
-					if (!appointementListFile.exists()) {
-						throw new Exception("appointements.xml missing");
-					}
-					this.importAppointements(appointementListFile);
-
-					log.info("Appointement import complete, starting meeting members import");
-
-					/*
-					 * ##################### Import MeetingMembers
-					 * 
-					 * Reminder Invitations will be NOT send!
-					 */
-					String meetingmembersListXML = completeName
-							+ File.separatorChar + "meetingmembers.xml";
-					File meetingmembersListFile = new File(
-							meetingmembersListXML);
-					if (!meetingmembersListFile.exists()) {
-						throw new Exception("meetingmembersListFile missing");
-					}
-					this.importMeetingmembers(meetingmembersListFile);
-
-					log.info("Meeting members import complete, starting ldap config import");
-
-					/*
-					 * ##################### Import LDAP Configs
-					 */
-					String ldapConfigListXML = completeName
-							+ File.separatorChar + "ldapconfigs.xml";
-					File ldapConfigListFile = new File(ldapConfigListXML);
-					if (!ldapConfigListFile.exists()) {
-						log.debug("meetingmembersListFile missing");
-						// throw new Exception
-						// ("meetingmembersListFile missing");
-					} else {
-						this.importLdapConfig(ldapConfigListFile);
-					}
-
-					log.info("Ldap config import complete, starting recordings import");
-
-					/*
-					 * ##################### Import Recordings
-					 */
-					String flvRecordingsListXML = completeName
-							+ File.separatorChar + "flvRecordings.xml";
-					File flvRecordingsListFile = new File(flvRecordingsListXML);
-					if (!flvRecordingsListFile.exists()) {
-						log.debug("flvRecordingsListFile missing");
-						// throw new Exception
-						// ("meetingmembersListFile missing");
-					} else {
-						this.importFlvRecordings(flvRecordingsListFile);
-					}
-
-					log.info("FLVrecording import complete, starting private message folder import");
-
-					/*
-					 * ##################### Import Private Message Folders
-					 */
-					String privateMessageFoldersXML = completeName
-							+ File.separatorChar + "privateMessageFolder.xml";
-					File privateMessageFoldersFile = new File(
-							privateMessageFoldersXML);
-					if (!privateMessageFoldersFile.exists()) {
-						log.debug("privateMessageFoldersFile missing");
-						// throw new Exception
-						// ("meetingmembersListFile missing");
 					} else {
-						this.importPrivateMessageFolders(privateMessageFoldersFile);
-					}
 
-					log.info("Private message folder import complete, starting private message import");
+						fparent.mkdir();
 
-					/*
-					 * ##################### Import Private Messages
-					 */
-					String privateMessagesXML = completeName
-							+ File.separatorChar + "privateMessages.xml";
-					File privateMessagesFile = new File(privateMessagesXML);
-					if (!privateMessagesFile.exists()) {
-						log.debug("privateMessagesFile missing");
-						// throw new Exception
-						// ("meetingmembersListFile missing");
-					} else {
-						this.importPrivateMessages(privateMessagesFile);
 					}
 
-					log.info("Private message import complete, starting usercontact import");
-
-					/*
-					 * ##################### Import User Contacts
-					 */
-					String userContactsXML = completeName + File.separatorChar
-							+ "userContacts.xml";
-					File userContactsFile = new File(userContactsXML);
-					if (!userContactsFile.exists()) {
-						log.debug("userContactsFile missing");
-						// throw new Exception
-						// ("meetingmembersListFile missing");
-					} else {
-						this.importUserContacts(userContactsFile);
-					}
-
-					log.info("Usercontact import complete, starting file explorer item import");
-
-					/*
-					 * ##################### Import File-Explorer Items
-					 */
-					String fileExplorerListXML = completeName
-							+ File.separatorChar + "fileExplorerItems.xml";
-					File fileExplorerListFile = new File(fileExplorerListXML);
-					if (!fileExplorerListFile.exists()) {
-						log.debug("fileExplorerListFile missing");
-						// throw new Exception
-						// ("meetingmembersListFile missing");
-					} else {
-						this.importFileExplorerItems(fileExplorerListFile);
-					}
-
-					log.info("File explorer item import complete, starting file poll import");
-
-					/*
-					 * ##################### Import File-Explorer Items
-					 */
-					String roomPollListXML = completeName + File.separatorChar
-							+ "roompolls.xml";
-					File roomPollListFile = new File(roomPollListXML);
-					if (!roomPollListFile.exists()) {
-						log.debug("roomPollListFile missing");
-					} else {
-						this.importRoomPolls(roomPollListFile);
-					}
-
-					log.info("Poll import complete, starting copy of files and folders");
-
-					/*
-					 * ##################### Import real files and folders
-					 */
-					importFolders(current_dir, completeName);
-
-					log.info("File explorer item import complete, clearing temp files");
-
-					this.deleteDirectory(f);
-
-					LinkedHashMap<String, Object> hs = new LinkedHashMap<String, Object>();
-					hs.put("user", usersDao.getUser(users_id));
-					hs.put("message", "library");
-					hs.put("action", "import");
-					hs.put("error", "");
-					hs.put("fileName", completeName);
+				}
 
-					scopeApplicationAdapter.sendMessageWithClientByPublicSID(
-							hs, publicSID);
+				fileoutputstream = new FileOutputStream(entryName);
 
+				while ((n = zipinputstream.read(buf, 0, 1024)) > -1) {
+					fileoutputstream.write(buf, 0, n);
 				}
 
-			}
+				fileoutputstream.close();
+				zipinputstream.closeEntry();
+				zipentry = zipinputstream.getNextEntry();
+
+			}// while
+
+			zipinputstream.close();
+
+			/*
+			 * ##################### Import Organizations
+			 */
+			String orgListXML = completeName + File.separatorChar
+					+ "organizations.xml";
+			File orgFile = new File(orgListXML);
+			if (!orgFile.exists()) {
+				throw new Exception("organizations.xml missing");
+			}
+			this.importOrganizsations(orgFile);
+
+			log.info("Organizations import complete, starting user import");
+
+			/*
+			 * ##################### Import Users
+			 */
+			String userListXML = completeName + File.separatorChar
+					+ "users.xml";
+			File userFile = new File(userListXML);
+			if (!userFile.exists()) {
+				throw new Exception("users.xml missing");
+			}
+			this.importUsers(userFile);
+
+			log.info("Users import complete, starting room import");
+
+			/*
+			 * ##################### Import Rooms
+			 */
+			String roomListXML = completeName + File.separatorChar
+					+ "rooms.xml";
+			File roomFile = new File(roomListXML);
+			if (!roomFile.exists()) {
+				throw new Exception("rooms.xml missing");
+			}
+			this.importRooms(roomFile);
+
+			log.info("Room import complete, starting room organizations import");
+
+			/*
+			 * ##################### Import Room Organisations
+			 */
+			String orgRoomListXML = completeName + File.separatorChar
+					+ "rooms_organisation.xml";
+			File orgRoomListFile = new File(orgRoomListXML);
+			if (!orgRoomListFile.exists()) {
+				throw new Exception("rooms_organisation.xml missing");
+			}
+			this.importOrgRooms(orgRoomListFile);
+
+			log.info("Room organizations import complete, starting appointement import");
+
+			/*
+			 * ##################### Import Appointements
+			 */
+			String appointementListXML = completeName
+					+ File.separatorChar + "appointements.xml";
+			File appointementListFile = new File(appointementListXML);
+			if (!appointementListFile.exists()) {
+				throw new Exception("appointements.xml missing");
+			}
+			this.importAppointements(appointementListFile);
+
+			log.info("Appointement import complete, starting meeting members import");
+
+			/*
+			 * ##################### Import MeetingMembers
+			 * 
+			 * Reminder Invitations will be NOT send!
+			 */
+			String meetingmembersListXML = completeName
+					+ File.separatorChar + "meetingmembers.xml";
+			File meetingmembersListFile = new File(
+					meetingmembersListXML);
+			if (!meetingmembersListFile.exists()) {
+				throw new Exception("meetingmembersListFile missing");
+			}
+			this.importMeetingmembers(meetingmembersListFile);
+
+			log.info("Meeting members import complete, starting ldap config import");
+
+			/*
+			 * ##################### Import LDAP Configs
+			 */
+			String ldapConfigListXML = completeName
+					+ File.separatorChar + "ldapconfigs.xml";
+			File ldapConfigListFile = new File(ldapConfigListXML);
+			if (!ldapConfigListFile.exists()) {
+				log.debug("meetingmembersListFile missing");
+				// throw new Exception
+				// ("meetingmembersListFile missing");
+			} else {
+				this.importLdapConfig(ldapConfigListFile);
+			}
+
+			log.info("Ldap config import complete, starting recordings import");
+
+			/*
+			 * ##################### Import Recordings
+			 */
+			String flvRecordingsListXML = completeName
+					+ File.separatorChar + "flvRecordings.xml";
+			File flvRecordingsListFile = new File(flvRecordingsListXML);
+			if (!flvRecordingsListFile.exists()) {
+				log.debug("flvRecordingsListFile missing");
+				// throw new Exception
+				// ("meetingmembersListFile missing");
+			} else {
+				this.importFlvRecordings(flvRecordingsListFile);
+			}
+
+			log.info("FLVrecording import complete, starting private message folder import");
+
+			/*
+			 * ##################### Import Private Message Folders
+			 */
+			String privateMessageFoldersXML = completeName
+					+ File.separatorChar + "privateMessageFolder.xml";
+			File privateMessageFoldersFile = new File(
+					privateMessageFoldersXML);
+			if (!privateMessageFoldersFile.exists()) {
+				log.debug("privateMessageFoldersFile missing");
+				// throw new Exception
+				// ("meetingmembersListFile missing");
+			} else {
+				this.importPrivateMessageFolders(privateMessageFoldersFile);
+			}
+
+			log.info("Private message folder import complete, starting private message import");
+
+			/*
+			 * ##################### Import Private Messages
+			 */
+			String privateMessagesXML = completeName
+					+ File.separatorChar + "privateMessages.xml";
+			File privateMessagesFile = new File(privateMessagesXML);
+			if (!privateMessagesFile.exists()) {
+				log.debug("privateMessagesFile missing");
+				// throw new Exception
+				// ("meetingmembersListFile missing");
+			} else {
+				this.importPrivateMessages(privateMessagesFile);
+			}
+
+			log.info("Private message import complete, starting usercontact import");
+
+			/*
+			 * ##################### Import User Contacts
+			 */
+			String userContactsXML = completeName + File.separatorChar
+					+ "userContacts.xml";
+			File userContactsFile = new File(userContactsXML);
+			if (!userContactsFile.exists()) {
+				log.debug("userContactsFile missing");
+				// throw new Exception
+				// ("meetingmembersListFile missing");
+			} else {
+				this.importUserContacts(userContactsFile);
+			}
+
+			log.info("Usercontact import complete, starting file explorer item import");
+
+			/*
+			 * ##################### Import File-Explorer Items
+			 */
+			String fileExplorerListXML = completeName
+					+ File.separatorChar + "fileExplorerItems.xml";
+			File fileExplorerListFile = new File(fileExplorerListXML);
+			if (!fileExplorerListFile.exists()) {
+				log.debug("fileExplorerListFile missing");
+				// throw new Exception
+				// ("meetingmembersListFile missing");
+			} else {
+				this.importFileExplorerItems(fileExplorerListFile);
+			}
+
+			log.info("File explorer item import complete, starting file poll import");
+
+			/*
+			 * ##################### Import File-Explorer Items
+			 */
+			String roomPollListXML = completeName + File.separatorChar
+					+ "roompolls.xml";
+			File roomPollListFile = new File(roomPollListXML);
+			if (!roomPollListFile.exists()) {
+				log.debug("roomPollListFile missing");
+			} else {
+				this.importRoomPolls(roomPollListFile);
+			}
+
+			log.info("Poll import complete, starting copy of files and folders");
+
+			/*
+			 * ##################### Import real files and folders
+			 */
+			importFolders(current_dir, completeName);
+
+			log.info("File explorer item import complete, clearing temp files");
+
+			this.deleteDirectory(f);
+
+			LinkedHashMap<String, Object> hs = new LinkedHashMap<String, Object>();
+			hs.put("user", usersDao.getUser(getParam(params, UploadParams.pUserId, Long.class)));
+			hs.put("message", "library");
+			hs.put("action", "import");
+			hs.put("error", "");
+			hs.put("fileName", completeName);
+
+			scopeApplicationAdapter.sendMessageWithClientByPublicSID(
+					hs, getParam(params, UploadParams.pPublicSID, String.class));
 
 		} catch (Exception e) {
 

Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/ImportController.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/ImportController.java?rev=1297562&r1=1297561&r2=1297562&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/ImportController.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/ImportController.java Tue Mar  6 16:25:34 2012
@@ -18,8 +18,8 @@
  */
 package org.openmeetings.servlet.outputhandler;
 
-import java.io.IOException;
 import java.io.InputStream;
+import java.util.HashMap;
 import java.util.LinkedHashMap;
 
 import javax.servlet.ServletException;
@@ -27,9 +27,6 @@ import javax.servlet.http.HttpServletReq
 import javax.servlet.http.HttpServletResponse;
 
 import org.openmeetings.app.OpenmeetingsVariables;
-import org.openmeetings.app.data.basic.AuthLevelmanagement;
-import org.openmeetings.app.data.basic.Sessionmanagement;
-import org.openmeetings.app.data.user.Usermanagement;
 import org.openmeetings.app.data.user.dao.UsersDaoImpl;
 import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
 import org.openmeetings.app.xmlimport.LanguageImport;
@@ -41,89 +38,56 @@ import org.springframework.stereotype.Co
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.support.DefaultMultipartHttpServletRequest;
 
 @Controller
-public class ImportController {
+public class ImportController extends AbstractUploadController {
 	private static final Logger log = Red5LoggerFactory.getLogger(ImportController.class,
 			OpenmeetingsVariables.webAppRootKey);
 
 	@Autowired
-	private Sessionmanagement sessionManagement;
-	@Autowired
-	private Usermanagement userManagement;
-	@Autowired
 	private UsersDaoImpl usersDao;
 	@Autowired
 	private ScopeApplicationAdapter scopeApplicationAdapter;
 	@Autowired
 	private UserImport userImport;
 	@Autowired
-	private AuthLevelmanagement authLevelManagement;
-	@Autowired
 	private LanguageImport languageImport;
 	
     @RequestMapping(value = "/import.upload", method = RequestMethod.POST)
-	protected void service(HttpServletRequest httpServletRequest,
-			HttpServletResponse httpServletResponse) throws ServletException,
-			IOException {
+	protected void service(HttpServletRequest request,
+			HttpServletResponse httpServletResponse) throws ServletException {
 
+    	HashMap<UploadParams, Object> params = validate(request, true);
 		try {
-			String sid = httpServletRequest.getParameter("sid");
-			if (sid == null) {
-				sid = "default";
-			}
-			log.debug("sid: " + sid);
-
-			String moduleName = httpServletRequest.getParameter("moduleName");
+			String moduleName = request.getParameter("moduleName");
 			if (moduleName == null) {
 				moduleName = "moduleName";
 			}
 			log.debug("moduleName: " + moduleName);
-			Long users_id = sessionManagement.checkSession(sid);
-			Long user_level = userManagement.getUserLevelByID(users_id);
-
-			String publicSID = httpServletRequest.getParameter("publicSID");
-			if (publicSID == null) {
-				// Always ask for Public SID
-				return;
-			}
-
-			log.debug("users_id: " + users_id);
-			log.debug("user_level: " + user_level);
-			log.debug("moduleName: " + moduleName);
+			InputStream is = getParam(params, UploadParams.pFile, MultipartFile.class).getInputStream();
 
-			// if (user_level!=null && user_level > 0) {
-			if (authLevelManagement.checkAdminLevel(user_level)) {
-				DefaultMultipartHttpServletRequest multipartRequest = new DefaultMultipartHttpServletRequest(httpServletRequest);
-				MultipartFile multipartFile = multipartRequest.getFile("Filedata");
-				InputStream is = multipartFile.getInputStream();
-
-				if (moduleName.equals("users")) {
-					log.error("Import Users");
-					userImport.addUsersByDocument(is);
-
-				} else if (moduleName.equals("language")) {
-					log.error("Import Language");
-					String language = httpServletRequest
-							.getParameter("secondid");
-					if (language == null) {
-						language = "0";
-					}
-					Long language_id = Long.valueOf(language).longValue();
-					log.debug("language_id: " + language_id);
-
-					languageImport.addLanguageByDocument(
-							language_id, is);
+			if (moduleName.equals("users")) {
+				log.error("Import Users");
+				userImport.addUsersByDocument(is);
+
+			} else if (moduleName.equals("language")) {
+				log.error("Import Language");
+				String language = request
+						.getParameter("secondid");
+				if (language == null) {
+					language = "0";
 				}
-			} else {
-				log.error("ERROR LangExport: not authorized FileDownload");
+				Long language_id = Long.valueOf(language).longValue();
+				log.debug("language_id: " + language_id);
+
+				languageImport.addLanguageByDocument(
+						language_id, is);
 			}
 
 			log.debug("Return And Close");
 
 			LinkedHashMap<String, Object> hs = new LinkedHashMap<String, Object>();
-			hs.put("user", usersDao.getUser(users_id));
+			hs.put("user", usersDao.getUser(getParam(params, UploadParams.pUserId, Long.class)));
 			hs.put("message", "library");
 			hs.put("action", "import");
 
@@ -131,13 +95,12 @@ public class ImportController {
 
 			log.debug("moduleName.equals(userprofile) ! ");
 
-			scopeApplicationAdapter.sendMessageWithClientByPublicSID(hs,
-					publicSID);
-
-			return;
+			scopeApplicationAdapter.sendMessageWithClientByPublicSID(hs, 
+					getParam(params, UploadParams.pPublicSID, String.class));
 
 		} catch (Exception er) {
-			log.error("ERROR exporting:", er);
+			log.error("ERROR importing:", er);
+			throw new ServletException(er);
 		}
 	}
 

Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/UploadController.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/UploadController.java?rev=1297562&r1=1297561&r2=1297562&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/UploadController.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/UploadController.java Tue Mar  6 16:25:34 2012
@@ -14,10 +14,8 @@ import javax.servlet.http.HttpSession;
 
 import org.apache.commons.lang.StringUtils;
 import org.openmeetings.app.OpenmeetingsVariables;
-import org.openmeetings.app.data.basic.Sessionmanagement;
 import org.openmeetings.app.data.file.FileProcessor;
 import org.openmeetings.app.data.file.dao.FileExplorerItemDaoImpl;
-import org.openmeetings.app.data.user.Usermanagement;
 import org.openmeetings.app.data.user.dao.UsersDaoImpl;
 import org.openmeetings.app.documents.GenerateImage;
 import org.openmeetings.app.documents.GeneratePDF;
@@ -33,18 +31,13 @@ import org.springframework.stereotype.Co
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
 
 @Controller
-public class UploadController {
+public class UploadController extends AbstractUploadController {
 	private static final Logger log = Red5LoggerFactory.getLogger(
 			UploadController.class, OpenmeetingsVariables.webAppRootKey);
 	
 	@Autowired
-	private Sessionmanagement sessionManagement;
-	@Autowired
-	private Usermanagement userManagement;
-	@Autowired
 	private UsersDaoImpl usersDao;
 	@Autowired
 	private ScopeApplicationAdapter scopeApplicationAdapter;
@@ -63,100 +56,122 @@ public class UploadController {
 	
     @RequestMapping(value = "/file.upload", method = RequestMethod.POST)
     public void handleFileUpload(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws ServletException {
-    	handleFormUpload(request, response, true);
+    	HashMap<UploadParams, Object> params = validate(request, true);
+    	try {
+	    	LinkedHashMap<String, Object> hs = prepareMessage(params);
+			String room_idAsString = request.getParameter("room_id");
+			if (room_idAsString == null) {
+				throw new ServletException("Missing Room ID");
+			}
+	
+			Long room_id_to_Store = Long.parseLong(room_idAsString);
+	
+			String isOwnerAsString = request.getParameter("isOwner");
+			if (isOwnerAsString == null) {
+				throw new ServletException("Missing isOwnerAsString");
+			}
+			boolean isOwner = false;
+			if (isOwnerAsString.equals("1")) {
+				isOwner = true;
+			}
+	
+			String parentFolderIdAsString = request
+					.getParameter("parentFolderId");
+			if (parentFolderIdAsString == null) {
+				throw new ServletException("Missing parentFolderId ID");
+			}
+			Long parentFolderId = Long.parseLong(parentFolderIdAsString);
+	
+			String current_dir = context.getRealPath("/");
+	
+			MultipartFile multipartFile = getParam(params, UploadParams.pFile);
+			InputStream is = multipartFile.getInputStream();
+			String fileSystemName = multipartFile.getOriginalFilename();
+			log.debug("fileSystemName: " + fileSystemName);
+	
+			HashMap<String, HashMap<String, String>> returnError = fileProcessor
+					.processFile(getParam(params, UploadParams.pUserId, Long.class), room_id_to_Store, isOwner, is,
+							parentFolderId, fileSystemName, current_dir, hs, 0L, ""); // externalFilesId,
+																						// externalType
+	
+			HashMap<String, String> returnAttributes = returnError
+					.get("returnAttributes");
+	
+			// Flash cannot read the response of an upload
+			// httpServletResponse.getWriter().print(returnError);
+			hs.put("message", "library");
+			hs.put("action", "newFile");
+			hs.put("fileExplorerItem",
+					fileExplorerItemDao.getFileExplorerItemsById(
+							Long.parseLong(returnAttributes.get(
+									"fileExplorerItemId").toString())));
+			hs.put("error", returnError);
+			hs.put("fileName", returnAttributes.get("completeName"));
+			sendMessage(params, hs);
+		} catch (ServletException e) {
+			throw e;
+		} catch (Exception e) {
+			log.error("Exception during upload: ", e);
+			throw new ServletException(e);
+    	}
     }
 
     @RequestMapping(value = "/upload.upload", method = RequestMethod.POST)
     public void handleFormUpload(HttpServletRequest request, HttpServletResponse response) throws ServletException {
-    	handleFormUpload(request, response, false);
-    }
-
-    private void handleFormUpload(HttpServletRequest request, HttpServletResponse response, boolean isFileEx) throws ServletException {
-		log.debug("starting upload");
 		try {
-			int contentLength = request.getContentLength();
-			if (contentLength <= 0) {
-				log.debug("ContentLength = " + contentLength + ", aborted");
-				return;
+	    	HashMap<UploadParams, Object> params = validate(request, true);
+	    	LinkedHashMap<String, Object> hs = prepareMessage(params);
+			String room_id = request.getParameter("room_id");
+			if (room_id == null) {
+				room_id = "default";
 			}
-			log.debug("uploading " + contentLength + " bytes");
-
-			String sid = request.getParameter("sid");
-			if (sid == null) {
-				throw new ServletException("Missing SID");
+			String roomName = StringUtils.deleteWhitespace(room_id);
+	
+			String moduleName = request.getParameter("moduleName");
+			if (moduleName == null) {
+				moduleName = "nomodule";
 			}
-			log.debug("sid: " + sid);
-
-			Long userId = sessionManagement.checkSession(sid);
-			Long userLevel = userManagement.getUserLevelByID(userId);
-			log.debug("userId = " + userId + ", userLevel = " + userLevel);
-
-			if (userLevel <= 0) {
-				log.debug("insufficient user level " + userLevel);
+			if (moduleName.equals("nomodule")) {
+				log.debug("module name missed");
 				return;
 			}
-
-			String publicSID = request.getParameter("publicSID");
-			if (publicSID == null) {
-				// Always ask for Public SID
-				throw new ServletException("Missing publicSID");
-			}
-
-			LinkedHashMap<String, Object> hs = new LinkedHashMap<String, Object>();
-			hs.put("user", usersDao.getUser(userId));
-
-			if (isFileEx) {
-				fileExService(request, sid, userId, hs);
-			} else {
-				fileService(request, sid, userId, hs);
-			}
-			scopeApplicationAdapter.sendMessageWithClientByPublicSID(hs,
-					publicSID);
+			boolean userProfile = moduleName.equals("userprofile");
+	
+			MultipartFile multipartFile = getParam(params, UploadParams.pFile);
+			InputStream is = multipartFile.getInputStream();
+			String fileSystemName = multipartFile.getOriginalFilename();
+			fileSystemName = StringUtils.deleteWhitespace(fileSystemName);
+	
+			// Flash cannot read the response of an upload
+			// httpServletResponse.getWriter().print(returnError);
+			uploadFile(request, userProfile, getParam(params, UploadParams.pUserId, Long.class), roomName, is, fileSystemName, hs);
+			sendMessage(params, hs);
+		} catch (ServletException e) {
+			throw e;
 		} catch (Exception e) {
-			System.out.println("Exception during upload: " + e);
-			e.printStackTrace();
+			log.error("Exception during upload: ", e);
 			throw new ServletException(e);
 		}
     }
-    
-    private void fileService(HttpServletRequest request,
-			String sid, Long userId, Map<String, Object> hs)
-			throws ServletException, Exception {
-
-		String room_id = request.getParameter("room_id");
-		if (room_id == null) {
-			room_id = "default";
-		}
-		String roomName = StringUtils.deleteWhitespace(room_id);
-
-		String moduleName = request.getParameter("moduleName");
-		if (moduleName == null) {
-			moduleName = "nomodule";
-		}
-		if (moduleName.equals("nomodule")) {
-			log.debug("module name missed");
-			return;
-		}
-		boolean userProfile = moduleName.equals("userprofile");
-
-		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request;
-		MultipartFile multipartFile = multipartRequest.getFile("Filedata");
-		InputStream is = multipartFile.getInputStream();
-		String fileSystemName = multipartFile.getOriginalFilename();
-		fileSystemName = StringUtils.deleteWhitespace(fileSystemName);
-
-		// Flash cannot read the response of an upload
-		// httpServletResponse.getWriter().print(returnError);
-		uploadFile(request, userProfile, userId, roomName, is, fileSystemName, hs);
-	}
 
+    private LinkedHashMap<String, Object> prepareMessage(HashMap<UploadParams, Object> params) {
+		LinkedHashMap<String, Object> hs = new LinkedHashMap<String, Object>();
+		hs.put("user", usersDao.getUser(getParam(params, UploadParams.pUserId, Long.class)));
+		return hs;
+    }
+    
+    private void sendMessage(HashMap<UploadParams, Object> params, LinkedHashMap<String, Object> hs) {
+		scopeApplicationAdapter.sendMessageWithClientByPublicSID(hs,
+				getParam(params, UploadParams.pPublicSID, String.class));
+    }
+    
 	private void uploadFile(HttpServletRequest request, boolean userProfile, Long userId, String roomName,
 			InputStream is, String fileSystemName, Map<String, Object> hs)
 			throws Exception {
 		HashMap<String, HashMap<String, String>> returnError = new HashMap<String, HashMap<String, String>>();
 
 		// Get the current user directory
-		String currentDir = request.getRealPath("/");
+		String currentDir = context.getRealPath("/");
 		String workingDir = currentDir + "upload" + File.separatorChar
 				+ roomName + File.separatorChar;
 		log.debug("workingDir: " + workingDir);
@@ -281,35 +296,8 @@ public class UploadController {
 			
 			boolean isEncrypted = true; 
 			
-			// Check requires iText.jar => iText is AGPL and won't work with Apache Release
-//			boolean isEncrypted = false;
-//			try {
-//				// Check if PDF is encrpyted
-//				PdfReader pdfReader = new PdfReader(completeName
-//						+ newFileExtDot);
-//
-//				log.debug("pdfReader.isEncrypted() :: "
-//						+ pdfReader.isEncrypted());
-//
-//				log.debug("isMetadataEncrypted : "
-//						+ pdfReader.isMetadataEncrypted());
-//				log.debug("is128Key : " + pdfReader.is128Key());
-//				log.debug("isEncrypted : " + pdfReader.isEncrypted());
-//
-//				if (pdfReader.isEncrypted()) {
-//					isEncrypted = true;
-//				}
-//
-//			} catch (Exception err) {
-//				log.error("isEncrypted ", err);
-//				isEncrypted = true;
-//			}
-
 			log.debug("isEncrypted :: " + isEncrypted);
 
-			@SuppressWarnings("unused")
-			HashMap<String, String> returnError2 = new HashMap<String, String>();
-
 			if (isEncrypted) {
 				// Do convert pdf to other pdf first
 				String inputfile = completeName + newFileExtDot;
@@ -319,8 +307,7 @@ public class UploadController {
 
 				String outputfile = completeName + newFileExtDot;
 
-				returnError2 = generateThumbs.decodePDF(inputfile,
-						outputfile);
+				generateThumbs.decodePDF(inputfile, outputfile);
 
 				File f_old = new File(inputfile);
 				if (f_old.exists()) {
@@ -417,60 +404,4 @@ public class UploadController {
 			subf.delete();
 		}
 	}
-
-	private void fileExService(HttpServletRequest request,
-			String sid, Long userId, Map<String, Object> hs)
-			throws ServletException, Exception {
-
-		String room_idAsString = request.getParameter("room_id");
-		if (room_idAsString == null) {
-			throw new ServletException("Missing Room ID");
-		}
-
-		Long room_id_to_Store = Long.parseLong(room_idAsString);
-
-		String isOwnerAsString = request.getParameter("isOwner");
-		if (isOwnerAsString == null) {
-			throw new ServletException("Missing isOwnerAsString");
-		}
-		boolean isOwner = false;
-		if (isOwnerAsString.equals("1")) {
-			isOwner = true;
-		}
-
-		String parentFolderIdAsString = request
-				.getParameter("parentFolderId");
-		if (parentFolderIdAsString == null) {
-			throw new ServletException("Missing parentFolderId ID");
-		}
-		Long parentFolderId = Long.parseLong(parentFolderIdAsString);
-
-		String current_dir = request.getRealPath("/");
-
-		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request;
-		MultipartFile multipartFile = multipartRequest.getFile("Filedata");
-		InputStream is = multipartFile.getInputStream();
-		String fileSystemName = multipartFile.getOriginalFilename();
-		log.debug("fileSystemName: " + fileSystemName);
-
-		HashMap<String, HashMap<String, String>> returnError = fileProcessor
-				.processFile(userId, room_id_to_Store, isOwner, is,
-						parentFolderId, fileSystemName, current_dir, hs, 0L, ""); // externalFilesId,
-																					// externalType
-
-		HashMap<String, String> returnAttributes = returnError
-				.get("returnAttributes");
-
-		// Flash cannot read the response of an upload
-		// httpServletResponse.getWriter().print(returnError);
-		hs.put("message", "library");
-		hs.put("action", "newFile");
-		hs.put("fileExplorerItem",
-				fileExplorerItemDao.getFileExplorerItemsById(
-						Long.parseLong(returnAttributes.get(
-								"fileExplorerItemId").toString())));
-		hs.put("error", returnError);
-		hs.put("fileName", returnAttributes.get("completeName"));
-
-	}
 }

Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/utils/ImportHelper.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/utils/ImportHelper.java?rev=1297562&r1=1297561&r2=1297562&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/utils/ImportHelper.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/utils/ImportHelper.java Tue Mar  6 16:25:34 2012
@@ -22,9 +22,10 @@ import org.openmeetings.app.Openmeetings
 import org.openmeetings.app.data.basic.Configurationmanagement;
 import org.openmeetings.app.persistence.beans.basic.Configuration;
 import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
 
 public class ImportHelper {
-	private static final org.slf4j.Logger log = Red5LoggerFactory.getLogger(
+	private static final Logger log = Red5LoggerFactory.getLogger(
 			ImportHelper.class, OpenmeetingsVariables.webAppRootKey);
 	public static final int DEFAULT_MAX_UPLOAD_SIZE = 1024 * 1024 * 1024; // 1GB
 

Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/utils/crypt/MD5Crypt.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/utils/crypt/MD5Crypt.java?rev=1297562&r1=1297561&r2=1297562&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/utils/crypt/MD5Crypt.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/utils/crypt/MD5Crypt.java Tue Mar  6 16:25:34 2012
@@ -165,9 +165,10 @@ static private final void clearbits(byte
 * with the unsigned value.
 */
 
+@SuppressWarnings("cast")
 static private final int bytes2u(byte inp)
 {
- return (int) inp & 0xff;
+ return ((int)inp) & 0xff;
 }
 
 /**

Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/utils/mappings/CastMapToObject.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/utils/mappings/CastMapToObject.java?rev=1297562&r1=1297561&r2=1297562&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/utils/mappings/CastMapToObject.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/utils/mappings/CastMapToObject.java Tue Mar  6 16:25:34 2012
@@ -200,7 +200,8 @@ public class CastMapToObject {
 								log.error(fieldType.getName());
 								
 								//Get value from  set 
-								Object t = this.castByGivenObject((Map)valueOfHashMap, fieldType);
+								@SuppressWarnings("unchecked")
+								Object t = this.castByGivenObject((Map<String, ?>)valueOfHashMap, fieldType);
 								int mod = anyField.getModifiers();
 								
 								if (Modifier.isPrivate(mod) && !Modifier.isFinal(mod)){

Modified: incubator/openmeetings/trunk/singlewebapp/src/calendarservice/org/openmeetings/axis/services/CalendarWebService.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/calendarservice/org/openmeetings/axis/services/CalendarWebService.java?rev=1297562&r1=1297561&r2=1297562&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/calendarservice/org/openmeetings/axis/services/CalendarWebService.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/calendarservice/org/openmeetings/axis/services/CalendarWebService.java Tue Mar  6 16:25:34 2012
@@ -19,7 +19,6 @@
 package org.openmeetings.axis.services;
 
 import java.util.Date;
-import java.util.LinkedList;
 import java.util.List;
 
 import org.openmeetings.app.OpenmeetingsVariables;

Modified: incubator/openmeetings/trunk/singlewebapp/src/red5-screenshare/org/red5/screen/webstart/CommonScreenShare.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/red5-screenshare/org/red5/screen/webstart/CommonScreenShare.java?rev=1297562&r1=1297561&r2=1297562&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/red5-screenshare/org/red5/screen/webstart/CommonScreenShare.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/red5-screenshare/org/red5/screen/webstart/CommonScreenShare.java Tue Mar  6 16:25:34 2012
@@ -38,7 +38,6 @@ import javax.swing.JComboBox;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JSpinner;
-import javax.swing.UIManager;
 
 import org.apache.mina.core.buffer.IoBuffer;
 import org.red5.io.ITagReader;
@@ -415,6 +414,7 @@ public class CommonScreenShare {
 		textWarningArea.setText(warning);
 	}
 
+	@SuppressWarnings("unchecked")
 	synchronized public void sendCursorStatus() {
 		try {
 
@@ -437,6 +437,7 @@ public class CommonScreenShare {
 							Math.round(((mouseP.getY() - VirtualScreenBean.vScreenSpinnerY) * scaleFactor)
 									* Ampl_factor)).intValue();
 
+			@SuppressWarnings("rawtypes")
 			HashMap cursorPosition = new HashMap();
 			cursorPosition.put("publicSID", this.publishName);
 			cursorPosition.put("cursor_x", x);
@@ -453,11 +454,13 @@ public class CommonScreenShare {
 		}
 	}
 
+	@SuppressWarnings("unchecked")
 	synchronized public void setConnectionAsSharingClient() {
 		try {
 
 			logger.debug("########## setConnectionAsSharingClient");
 
+			@SuppressWarnings("rawtypes")
 			HashMap map = new HashMap();
 			map.put("screenX", VirtualScreenBean.vScreenSpinnerX);
 			map.put("screenY", VirtualScreenBean.vScreenSpinnerY);
@@ -506,11 +509,13 @@ public class CommonScreenShare {
 		}
 	}
 
+	@SuppressWarnings("unchecked")
 	private void captureScreenStop() {
 		try {
 
 			logger.debug("INVOKE screenSharerAction" );
 
+			@SuppressWarnings("rawtypes")
 			Map map = new HashMap();
 			map.put("stopStreaming", this.stopStreaming);
 			map.put("stopRecording", this.stopRecording);
@@ -608,6 +613,7 @@ public class CommonScreenShare {
 
 		logger.debug( "onStreamEvent " + notify );
 
+		@SuppressWarnings("rawtypes")
 		ObjectMap map = (ObjectMap) notify.getCall().getArguments()[0];
 		String code = (String) map.get("code");
 
@@ -624,6 +630,7 @@ public class CommonScreenShare {
 
 			// logger.debug("Result Map Type "+obj.getClass().getName());
 
+			@SuppressWarnings("rawtypes")
 			Map returnMap = (Map) obj;
 
 			// logger.debug("result "+returnMap.get("result"));
@@ -837,8 +844,6 @@ public class CommonScreenShare {
 
 			} else if (action.equals("show")) {
 
-				Robot robot = new Robot();
-
 				String paste = this.getClipboardText();
 
 				HashMap<Integer, String> map = new HashMap<Integer, String>();
@@ -1014,6 +1019,7 @@ public class CommonScreenShare {
 
 				// logger.debug("Result Map Type "+o.getClass().getName());
 
+				@SuppressWarnings("rawtypes")
 				Map returnMap = (Map) o;
 
 				// logger.debug("result "+returnMap.get("result"));
@@ -1092,6 +1098,7 @@ public class CommonScreenShare {
 
 				logger.debug("Result Map Type " + o.getClass().getName());
 
+				@SuppressWarnings("rawtypes")
 				Map returnMap = (Map) o;
 
 				// logger.debug("result "+returnMap.get("result"));
@@ -1176,6 +1183,7 @@ public class CommonScreenShare {
 		private volatile long timestamp = 0;
 
 		private volatile boolean active = true;
+		@SuppressWarnings("unused")
 		private volatile boolean stopped = false;
 		private byte[] previousItems = null;
 
@@ -1213,12 +1221,6 @@ public class CommonScreenShare {
 		// Public
 		//
 		// ------------------------------------------------------------------------
-
-		public void setOrigin(final int x, final int y) {
-			this.x = x;
-			this.y = y;
-		}
-
 		public void start() {
 			stopped = false;
 		}