You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by se...@apache.org on 2011/12/18 12:58:20 UTC

svn commit: r1220369 [4/4] - in /incubator/openmeetings/trunk/singlewebapp: ./ docs/ src/docgenerator/org/openmeetings/doc/ src/fileservice/org/openmeetings/axis/services/ src/userservice/org/openmeetings/axis/services/

Added: incubator/openmeetings/trunk/singlewebapp/docs/WebserviceIndex.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/docs/WebserviceIndex.html?rev=1220369&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/docs/WebserviceIndex.html (added)
+++ incubator/openmeetings/trunk/singlewebapp/docs/WebserviceIndex.html Sun Dec 18 11:58:19 2011
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+Copyright 1999-2004 The Apache Software Foundation
+Licensed 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.
+-->
+
+    <!-- ====================================================================== -->
+    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE TEMPLATE INSTEAD! -->
+    <!-- Main Page Section -->
+    <!-- ====================================================================== -->
+    
+     <html>
+        <head>
+		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+		<meta name="author" value="OpenMeetings Team">
+		<meta name="email" value="sebawagner@apache.org">
+		<title>OpenMeetings API Classes</title>
+		<link rel="stylesheet" type="text/css" href="openmeetings_docs.css">
+        </head>
+	<body>
+			
+       <div class="navigation">
+	               <div>
+            <a href="UserService.html" target="_PARENT"><b>UserService</b></a><br/>
+            <div class="navigation_comment"><i >The Service contains methods to login and create hash to directly enter
+ conference rooms, recordings or the application in general</i></div>
+            </div>
+                    <div>
+            <a href="RoomService.html" target="_PARENT"><b>RoomService</b></a><br/>
+            <div class="navigation_comment"><i >RoomService contains methods to manipulate rooms and create invitation hash</i></div>
+            </div>
+                    <div>
+            <a href="FileService.html" target="_PARENT"><b>FileService</b></a><br/>
+            <div class="navigation_comment"><i >Contains methods to import and upload files into the Files section of the
+ conference room and the personal drive of any user</i></div>
+            </div>
+                </div>
+	
+	
+	</body>
+	</html>
\ No newline at end of file

Modified: incubator/openmeetings/trunk/singlewebapp/src/docgenerator/org/openmeetings/doc/WebServiceDoclet.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/docgenerator/org/openmeetings/doc/WebServiceDoclet.java?rev=1220369&r1=1220368&r2=1220369&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/docgenerator/org/openmeetings/doc/WebServiceDoclet.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/docgenerator/org/openmeetings/doc/WebServiceDoclet.java Sun Dec 18 11:58:19 2011
@@ -2,9 +2,14 @@ package org.openmeetings.doc;
 
 import java.io.File;
 import java.io.FileWriter;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
 
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.app.Velocity;
+import org.apache.velocity.tools.generic.EscapeTool;
 
 import com.sun.javadoc.ClassDoc;
 import com.sun.javadoc.MethodDoc;
@@ -16,60 +21,66 @@ public class WebServiceDoclet {
 
 	static final String basePath = "docs";
 	static final String templateName = "ApiMethodsTemplate.vm";
+	static final String templateNameIndex = "ApiClassesTemplate.vm";
 
 	public static boolean start(RootDoc root) {
 
 		try {
+			
+			Velocity.init();
 			out("Start WebServiceDoclet templateNameNew " + templateName);
-
+			
+			ArrayList<Map<String,String>> classesParsed = new ArrayList<Map<String,String>>(root.classes().length);
+			
 			// iterate over all classes.
 			ClassDoc[] classes = root.classes();
 			for (int i = 0; i < classes.length; i++) {
 				// iterate over all methods and print their names.
-				MethodDoc[] methods = classes[i].methods();
-
-				Velocity.init();
+				
 				VelocityContext vContext = new VelocityContext();
 				vContext.put("className", classes[i].name());
 				vContext.put("classComment", classes[i].commentText());
 				
 				String defaultOutputName = classes[i].name();
 				for (Tag tag : classes[i].tags()) {
-					out("Class Tag "+tag.name() + " || "+tag.text());
-					if (tag.name().equals("webservice")) {
+					if (tag.name().equals("@webservice")) {
 						defaultOutputName = tag.text();
 					}
 				}
 				
 				vContext.put("webServiceName", defaultOutputName);
 				
+				HashMap<String,String> classItem = new HashMap<String,String>();
+				classItem.put("name",defaultOutputName);
+				classItem.put("comment",classes[i].commentText());
+				classesParsed.add(classItem);
+				
 				vContext.put("methods", classes[i].methods());
-
+				
 				FileWriter strWriter = new FileWriter(basePath
 						+ File.separatorChar + defaultOutputName + ".html");
 
 				Velocity.mergeTemplate(basePath + File.separatorChar
 						+ templateName, "UTF-8", vContext, strWriter);
-
-				out("Methods");
-				out("-------");
-				for (int j = 0; j < methods.length; j++) {
-					out("Method: name = " + methods[j].name() + " Comment "
-							+ methods[j].commentText() + " Return Type "
-							+ methods[j].returnType().simpleTypeName());
-					int k = 0;
-					for (ParamTag parameter : methods[j].paramTags()) {
-						out("Param : "
-								+ parameter.parameterName()
-								+ " Type: "
-								+ methods[j].parameters()[k].type()
-										.simpleTypeName() + " "
-								+ parameter.parameterComment());
-						k++;
-					}
-				}
+				
+				strWriter.flush();
+				strWriter.close();
 
 			}
+			
+			
+			VelocityContext vIndexContext = new VelocityContext();
+			vIndexContext.put("classes", classesParsed);
+			
+			FileWriter newFileIndexWriter = new FileWriter(basePath
+					+ File.separatorChar + "WebserviceIndex.html");
+
+			Velocity.mergeTemplate(basePath + File.separatorChar
+					+ templateNameIndex, "UTF-8", vIndexContext, newFileIndexWriter);
+			
+			newFileIndexWriter.flush();
+			newFileIndexWriter.close();
+			
 
 		} catch (Exception err) {
 			err.printStackTrace();

Modified: incubator/openmeetings/trunk/singlewebapp/src/fileservice/org/openmeetings/axis/services/FileWebService.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/fileservice/org/openmeetings/axis/services/FileWebService.java?rev=1220369&r1=1220368&r2=1220369&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/fileservice/org/openmeetings/axis/services/FileWebService.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/fileservice/org/openmeetings/axis/services/FileWebService.java Sun Dec 18 11:58:19 2011
@@ -35,6 +35,15 @@ import org.red5.logging.Red5LoggerFactor
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 
+/**
+ * 
+ * Contains methods to import and upload files into the Files section of the
+ * conference room and the personal drive of any user
+ * 
+ * @author sebawagner
+ * @webservice FileService
+ * 
+ */
 public class FileWebService {
 
 	private static final Logger log = Red5LoggerFactory.getLogger(
@@ -178,7 +187,6 @@ public class FileWebService {
 	}
 
 	/**
-	 * 
 	 * Import file from external source
 	 * 
 	 * to upload a file to a room-drive you specify: internalUserId, user if of
@@ -190,9 +198,10 @@ public class FileWebService {
 	 * room id isOwner = 1 parentFolderId = -2
 	 * 
 	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
 	 * @param internalUserId
 	 *            the openmeetings user id => If the file should goto a private
-	 *            section of any user, this number needs to be set
+	 *            section of any user, this number needs to be se
 	 * @param externalFileId
 	 *            the external file-type to identify the file later
 	 * @param externalType
@@ -296,19 +305,26 @@ public class FileWebService {
 	}
 
 	/**
-	 * 
 	 * to add a folder to the private drive, set parentFileExplorerItemId = 0
 	 * and isOwner to 1/true and externalUserId/externalUserType to a valid user
 	 * 
 	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
 	 * @param externalUserId
-	 * @param externalUserType
+	 *            the external file-type to identify the file later
 	 * @param parentFileExplorerItemId
-	 * @param fileName
+	 * @param folderName
+	 *            the name of the folder
 	 * @param room_id
+	 *            the room Id, if the file goes to the private folder of an
+	 *            user, you can set a random number here
 	 * @param isOwner
+	 *            specify a 1/true AND parentFolderId==-2 to make the file goto
+	 *            the private section
 	 * @param externalFilesid
+	 *            the external file-type to identify the file later
 	 * @param externalType
+	 *            the name of the external system
 	 * @return
 	 * @throws AxisFault
 	 */
@@ -364,18 +380,17 @@ public class FileWebService {
 	}
 
 	/**
-	 * 
 	 * to add a folder to the private drive, set parentFileExplorerItemId = 0
 	 * and isOwner to 1/true and userId to a valid user
 	 * 
-	 * @param SID
-	 * @param userId
-	 * @param parentFileExplorerItemId
-	 * @param fileName
-	 * @param room_id
-	 * @param isOwner
-	 * @param externalFilesid
-	 * @param externalType
+	 * @param SID The SID of the User. This SID must be marked as logged in
+	 * @param userId the openmeetings user id 
+	 * @param parentFileExplorerItemId specify a parentFolderId==-2 AND isOwner == 1/true AND to make the file goto the private section  
+	 * @param folderName the name of the folder 
+	 * @param room_id the room Id, if the file goes to the private folder of an user, you can set a random number here 
+	 * @param isOwner specify a 1/true AND parentFolderId==-2 to make the file goto the private section 
+	 * @param externalFilesid the external file-type to identify the file later 
+	 * @param externalType the name of the external system 
 	 * @return
 	 * @throws AxisFault
 	 */
@@ -430,9 +445,13 @@ public class FileWebService {
 	 * Add a folder by the current user - similar to RTMP Call
 	 * 
 	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
 	 * @param parentFileExplorerItemId
+	 *            parent folder id
 	 * @param fileName
+	 *            the file name
 	 * @param room_id
+	 *            the room id
 	 * @param isOwner
 	 * @return
 	 */
@@ -483,8 +502,11 @@ public class FileWebService {
 	 * deletes a file by its external Id and type
 	 * 
 	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
 	 * @param externalFilesid
+	 *            the od of the file or folder
 	 * @param externalType
+	 *            the externalType
 	 * @return
 	 */
 	public Long deleteFileOrFolderByExternalIdAndType(String SID,
@@ -513,7 +535,9 @@ public class FileWebService {
 	 * deletes files or folders based on it id
 	 * 
 	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
 	 * @param fileExplorerItemId
+	 *            the id of the file or folder
 	 * @return
 	 */
 	public Long deleteFileOrFolder(String SID, Long fileExplorerItemId)
@@ -541,7 +565,9 @@ public class FileWebService {
 	 * deletes files or folders based on it id
 	 * 
 	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
 	 * @param fileExplorerItemId
+	 *            the id of the file or folder
 	 * @return
 	 */
 	public Long deleteFileOrFolderSelf(String SID, Long fileExplorerItemId)
@@ -566,6 +592,12 @@ public class FileWebService {
 		return null;
 	}
 
+	/**
+	 * Get available import File Extension allowed during import
+	 * 
+	 * @return
+	 * @throws AxisFault
+	 */
 	public String[] getImportFileExtensions() throws AxisFault {
 		try {
 
@@ -577,6 +609,14 @@ public class FileWebService {
 		return null;
 	}
 
+	/**
+	 * Get a LibraryPresentation-Object for a certain file
+	 * 
+	 * @param SID
+	 * @param parentFolder
+	 * @return
+	 * @throws AxisFault
+	 */
 	public LibraryPresentation getPresentationPreviewFileExplorer(String SID,
 			String parentFolder) throws AxisFault {
 
@@ -617,6 +657,18 @@ public class FileWebService {
 
 	}
 
+	/**
+	 * Get a File Explorer Object by a given Room and owner id
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
+	 * @param room_id
+	 *            Room id
+	 * @param owner_id
+	 *            Owner id
+	 * @return
+	 * @throws AxisFault
+	 */
 	public FileExplorerObject getFileExplorerByRoom(String SID, Long room_id,
 			Long owner_id) throws AxisFault {
 
@@ -678,6 +730,16 @@ public class FileWebService {
 		}
 	}
 
+	/**
+	 * Get a File Explorer Object by a given Room
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
+	 * @param room_id
+	 *            Room Id
+	 * @return
+	 * @throws AxisFault
+	 */
 	public FileExplorerObject getFileExplorerByRoomSelf(String SID, Long room_id)
 			throws AxisFault {
 
@@ -738,6 +800,22 @@ public class FileWebService {
 		}
 	}
 
+	/**
+	 * Get FileExplorerItem list by parent folder
+	 * 
+	 * @param SID
+	 *            The SID of the User. This SID must be marked as logged in
+	 * @param parentFileExplorerItemId
+	 *            the parent folder id
+	 * @param room_id
+	 *            the room id
+	 * @param isOwner
+	 *            true if its a private drive
+	 * @param owner_id
+	 *            the owner id
+	 * @return
+	 * @throws AxisFault
+	 */
 	public FileExplorerItem[] getFileExplorerByParent(String SID,
 			Long parentFileExplorerItemId, Long room_id, Boolean isOwner,
 			Long owner_id) throws AxisFault {
@@ -773,6 +851,21 @@ public class FileWebService {
 		return null;
 	}
 
+	/**
+	 * 
+	 * Get FileExplorerItem[] by parent and owner id
+	 * 
+	 * @param SID
+	 *            SID The SID of the User. This SID must be marked as logged in
+	 * @param parentFileExplorerItemId
+	 *            the parent folder id
+	 * @param room_id
+	 *            the room id
+	 * @param isOwner
+	 *            true to request private drive
+	 * @return
+	 * @throws AxisFault
+	 */
 	public FileExplorerItem[] getFileExplorerByParentSelf(String SID,
 			Long parentFileExplorerItemId, Long room_id, Boolean isOwner)
 			throws AxisFault {
@@ -807,6 +900,18 @@ public class FileWebService {
 		return null;
 	}
 
+	/**
+	 * update a file or folder name
+	 * 
+	 * @param SID
+	 *            SID The SID of the User. This SID must be marked as logged in
+	 * @param fileExplorerItemId
+	 *            file or folder id
+	 * @param fileName
+	 *            new file or folder name
+	 * @return
+	 * @throws AxisFault
+	 */
 	public Long updateFileOrFolderName(String SID, Long fileExplorerItemId,
 			String fileName) throws AxisFault {
 
@@ -830,6 +935,19 @@ public class FileWebService {
 		return null;
 	}
 
+	/**
+	 * 
+	 * update a file or folder name
+	 * 
+	 * @param SID
+	 *            SID The SID of the User. This SID must be marked as logged in
+	 * @param fileExplorerItemId
+	 *            file or folder id
+	 * @param fileName
+	 *            new file or folder name
+	 * @return
+	 * @throws AxisFault
+	 */
 	public Long updateFileOrFolderNameSelf(String SID, Long fileExplorerItemId,
 			String fileName) throws AxisFault {
 
@@ -865,6 +983,26 @@ public class FileWebService {
 		return null;
 	}
 
+	/**
+	 * move a file or folder
+	 * 
+	 * @param SID
+	 *            SID The SID of the User. This SID must be marked as logged in
+	 * @param fileExplorerItemId
+	 *            current file or folder id to be moved
+	 * @param newParentFileExplorerItemId
+	 *            new parent folder id
+	 * @param room_id
+	 *            room id
+	 * @param isOwner
+	 *            if true owner id will be set
+	 * @param moveToHome
+	 *            if true move to private drive
+	 * @param owner_id
+	 *            owner id
+	 * @return
+	 * @throws AxisFault
+	 */
 	public Long moveFile(String SID, Long fileExplorerItemId,
 			Long newParentFileExplorerItemId, Long room_id, Boolean isOwner,
 			Boolean moveToHome, Long owner_id) throws AxisFault {
@@ -906,6 +1044,24 @@ public class FileWebService {
 		return null;
 	}
 
+	/**
+	 * move a file or folder
+	 * 
+	 * @param SID
+	 *            SID The SID of the User. This SID must be marked as logged in
+	 * @param fileExplorerItemId
+	 *            current file or folder id to be moved
+	 * @param newParentFileExplorerItemId
+	 *            new parent folder id
+	 * @param room_id
+	 *            room id
+	 * @param isOwner
+	 *            if true owner id will be set
+	 * @param moveToHome
+	 *            move to private drive
+	 * @return
+	 * @throws AxisFault
+	 */
 	public Long moveFileSelf(String SID, Long fileExplorerItemId,
 			Long newParentFileExplorerItemId, Long room_id, Boolean isOwner,
 			Boolean moveToHome) throws AxisFault {

Modified: incubator/openmeetings/trunk/singlewebapp/src/userservice/org/openmeetings/axis/services/UserWebService.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/userservice/org/openmeetings/axis/services/UserWebService.java?rev=1220369&r1=1220368&r2=1220369&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/userservice/org/openmeetings/axis/services/UserWebService.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/userservice/org/openmeetings/axis/services/UserWebService.java Sun Dec 18 11:58:19 2011
@@ -29,6 +29,15 @@ import org.springframework.beans.factory
 import com.thoughtworks.xstream.XStream;
 import com.thoughtworks.xstream.io.xml.DomDriver;
 
+/**
+ * 
+ * The Service contains methods to login and create hash to directly enter
+ * conference rooms, recordings or the application in general
+ * 
+ * @author sebawagner
+ * @webservice UserService
+ * 
+ */
 public class UserWebService {
 
 	private static final Logger log = Red5LoggerFactory.getLogger(
@@ -55,25 +64,32 @@ public class UserWebService {
 	@Autowired
 	private AuthLevelmanagement authLevelManagement;
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * load this session id before doing anything else Returns an Object of Type
+	 * Sessiondata, this contains a sessionId, use that sessionId in all Methods
 	 * 
-	 * @see org.openmeetings.axis.services.IUserWebService#getSession()
+	 * @return
 	 */
 	public Sessiondata getSession() {
 		log.debug("SPRING LOADED getSession -- ");
 		return mainService.getsessiondata();
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * uth function, use the SID you get by getSession, return positive means
+	 * logged-in, if negative its an ErrorCode, you have to invoke the Method
+	 * getErrorByCode to get the Text-Description of that ErrorCode
 	 * 
-	 * @see
-	 * org.openmeetings.axis.services.IUserWebService#loginUser(java.lang.String
-	 * , java.lang.String, java.lang.String)
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            Username from OpenMeetings, the user has to have Admin-rights
+	 * @param userpass
+	 *            Userpass from OpenMeetings
+	 * @return
 	 */
-	public Long loginUser(String SID, String username, String userpass) {
-		log.debug("UserService.loginuser");
+	public Long loginUser(String SID, String username, String userpass)
+			throws AxisFault {
 		try {
 			Object obj = userManagement.loginUser(SID, username, userpass,
 					null, false);
@@ -81,7 +97,6 @@ public class UserWebService {
 				return new Long(-1);
 			}
 			String objName = obj.getClass().getName();
-			log.debug("objName: " + objName);
 			if (objName.equals("java.lang.Long")) {
 				return (Long) obj;
 			} else {
@@ -93,15 +108,21 @@ public class UserWebService {
 		return new Long(-1);
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * loads an Error-Object. If a Method returns a negative Result, its an
+	 * Error-id, it needs a language_id to specify in which language you want to
+	 * display/read the error-message. English has the Language-ID one, for
+	 * different one see the list of languages
 	 * 
-	 * @see
-	 * org.openmeetings.axis.services.IUserWebService#getErrorByCode(java.lang
-	 * .String, java.lang.Long, java.lang.Long)
+	 * @param SID
+	 *            The SID from getSession
+	 * @param errorid
+	 *            the error id (negative Value here!)
+	 * @param language_id
+	 *            The id of the language
+	 * @return
 	 */
 	public ErrorResult getErrorByCode(String SID, Long errorid, Long language_id) {
-		log.debug("UserService.getErrorbyCode");
 		try {
 			if (errorid < 0) {
 				ErrorValues eValues = errorManagement
@@ -111,7 +132,8 @@ public class UserWebService {
 							.getFieldByIdAndLanguage(
 									eValues.getFieldvalues_id(), language_id);
 					Fieldlanguagesvalues typeValue = fieldmanagment
-							.getFieldByIdAndLanguage(errorManagement.getErrorType(eValues.getErrortype_id())
+							.getFieldByIdAndLanguage(errorManagement
+									.getErrorType(eValues.getErrortype_id())
 									.getFieldvalues_id(), language_id);
 					if (errorValue != null) {
 						return new ErrorResult(errorid, errorValue.getValue(),
@@ -128,14 +150,42 @@ public class UserWebService {
 		return null;
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * Adds a new Usre like through the Frontend, but also does activates the
+	 * Account To do SSO see the methods to create a hash and use those ones!
 	 * 
-	 * @see
-	 * org.openmeetings.axis.services.IUserWebService#addNewUser(java.lang.String
-	 * , java.lang.String, java.lang.String, java.lang.String, java.lang.String,
-	 * java.lang.String, java.lang.String, java.lang.String, java.lang.String,
-	 * java.lang.String, long, java.lang.String, long, java.lang.String)
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param userpass
+	 *            any userpass
+	 * @param lastname
+	 *            any lastname
+	 * @param firstname
+	 *            any firstname
+	 * @param email
+	 *            any email
+	 * @param additionalname
+	 *            any additionalname
+	 * @param street
+	 *            any street
+	 * @param zip
+	 *            any zip
+	 * @param fax
+	 *            any fax
+	 * @param states_id
+	 *            a valid states_id
+	 * @param town
+	 *            any town
+	 * @param language_id
+	 *            the language_id
+	 * @param baseURL
+	 *            the baseURL is needed to send the Initial Email correctly to
+	 *            that User, otherwise the Link in the EMail that the new User
+	 *            will reveive is not valid
+	 * @return
+	 * @throws AxisFault
 	 */
 	public Long addNewUser(String SID, String username, String userpass,
 			String lastname, String firstname, String email,
@@ -192,15 +242,44 @@ public class UserWebService {
 		}
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * Adds a new User like through the Frontend, but also does activates the
+	 * Account
 	 * 
-	 * @see
-	 * org.openmeetings.axis.services.IUserWebService#addNewUserWithTimeZone
-	 * (java.lang.String, java.lang.String, java.lang.String, java.lang.String,
-	 * java.lang.String, java.lang.String, java.lang.String, java.lang.String,
-	 * java.lang.String, java.lang.String, long, java.lang.String, long,
-	 * java.lang.String, java.lang.String)
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param userpass
+	 *            any userpass
+	 * @param lastname
+	 *            any lastname
+	 * @param firstname
+	 *            any firstname
+	 * @param email
+	 *            any email
+	 * @param additionalname
+	 *            any additionalname
+	 * @param street
+	 *            any street
+	 * @param zip
+	 *            any zip
+	 * @param fax
+	 *            any fax
+	 * @param states_id
+	 *            a valid states_id
+	 * @param town
+	 *            any town
+	 * @param language_id
+	 *            the language_id
+	 * @param baseURL
+	 *            the baseURL is needed to send the Initial Email correctly to
+	 *            that User, otherwise the Link in the EMail that the new User
+	 *            will reveive is not valid
+	 * @param jNameTimeZone
+	 *            the name of the timezone for the user
+	 * @return
+	 * @throws AxisFault
 	 */
 	public Long addNewUserWithTimeZone(String SID, String username,
 			String userpass, String lastname, String firstname, String email,
@@ -249,15 +328,48 @@ public class UserWebService {
 		}
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * Adds a new User like through the Frontend, but also does activates the
+	 * Account, sends NO email (no matter what you configured) and sets the
+	 * users external user id and type
+	 * 
+	 * Use the methods to create a hash for SSO, creating users is not required
+	 * for SSO
 	 * 
-	 * @see
-	 * org.openmeetings.axis.services.IUserWebService#addNewUserWithExternalType
-	 * (java.lang.String, java.lang.String, java.lang.String, java.lang.String,
-	 * java.lang.String, java.lang.String, java.lang.String, java.lang.String,
-	 * java.lang.String, java.lang.String, long, java.lang.String, long,
-	 * java.lang.String, java.lang.Long, java.lang.String)
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param userpass
+	 *            any userpass
+	 * @param lastname
+	 *            any lastname
+	 * @param firstname
+	 *            any firstname
+	 * @param email
+	 *            any email
+	 * @param additionalname
+	 *            any additionalname
+	 * @param street
+	 *            any street
+	 * @param zip
+	 *            any zip
+	 * @param fax
+	 *            any fax
+	 * @param states_id
+	 *            a valid states_id
+	 * @param town
+	 *            any town
+	 * @param language_id
+	 *            the language_id
+	 * @param jNameTimeZone
+	 *            the name of the timezone for the user
+	 * @param externalUserId
+	 *            externalUserId
+	 * @param externalUserType
+	 *            externalUserType
+	 * @return
+	 * @throws AxisFault
 	 */
 	public Long addNewUserWithExternalType(String SID, String username,
 			String userpass, String lastname, String firstname, String email,
@@ -312,12 +424,16 @@ public class UserWebService {
 		}
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
 	 * 
-	 * @see
-	 * org.openmeetings.axis.services.IUserWebService#deleteUserById(java.lang
-	 * .String, java.lang.Long)
+	 * Delete a certain user by its id
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param userId
+	 *            the openmeetings user id
+	 * @return
+	 * @throws AxisFault
 	 */
 	public Long deleteUserById(String SID, Long userId) throws AxisFault {
 		try {
@@ -341,12 +457,18 @@ public class UserWebService {
 		}
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * 
+	 * Delete a certain user by its external user id
 	 * 
-	 * @see org.openmeetings.axis.services.IUserWebService#
-	 * deleteUserByExternalUserIdAndType(java.lang.String, java.lang.Long,
-	 * java.lang.String)
+	 * @param SID
+	 *            The SID from getSession
+	 * @param externalUserId
+	 *            externalUserId
+	 * @param externalUserType
+	 *            externalUserId
+	 * @return
+	 * @throws AxisFault
 	 */
 	public Long deleteUserByExternalUserIdAndType(String SID,
 			Long externalUserId, String externalUserType) throws AxisFault {
@@ -376,14 +498,28 @@ public class UserWebService {
 		}
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * deprecated use setUserObjectAndGenerateRoomHash
 	 * 
-	 * @see
-	 * org.openmeetings.axis.services.IUserWebService#setUserObject(java.lang
-	 * .String, java.lang.String, java.lang.String, java.lang.String,
-	 * java.lang.String, java.lang.String)
+	 * Description: sets the SessionObject for a certain SID, after setting this
+	 * Session-Object you can use the SID + a RoomId to enter any Room.
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param firstname
+	 *            any firstname
+	 * @param lastname
+	 *            any lastname
+	 * @param profilePictureUrl
+	 *            any profilePictureUrl
+	 * @param email
+	 *            any email
+	 * @return
+	 * @throws AxisFault
 	 */
+	@Deprecated
 	public Long setUserObject(String SID, String username, String firstname,
 			String lastname, String profilePictureUrl, String email)
 			throws AxisFault {
@@ -423,14 +559,32 @@ public class UserWebService {
 		// return new Long(-1);
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * deprecated use setUserObjectAndGenerateRoomHash
+	 * 
+	 * Description: sets the SessionObject for a certain SID, after setting this
+	 * Session-Object you can use the SID + a RoomId to enter any Room.
 	 * 
-	 * @see
-	 * org.openmeetings.axis.services.IUserWebService#setUserObjectWithExternalUser
-	 * (java.lang.String, java.lang.String, java.lang.String, java.lang.String,
-	 * java.lang.String, java.lang.String, java.lang.Long, java.lang.String)
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param firstname
+	 *            any firstname
+	 * @param lastname
+	 *            any lastname
+	 * @param profilePictureUrl
+	 *            any profilePictureUrl
+	 * @param email
+	 *            any email
+	 * @param externalUserId
+	 *            if you have any external user Id you may set it here
+	 * @param externalUserType
+	 *            you can specify your system-name here, for example "moodle"
+	 * @return
+	 * @throws AxisFault
 	 */
+	@Deprecated
 	public Long setUserObjectWithExternalUser(String SID, String username,
 			String firstname, String lastname, String profilePictureUrl,
 			String email, Long externalUserId, String externalUserType)
@@ -473,21 +627,42 @@ public class UserWebService {
 		}
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * Description: sets the SessionObject for a certain SID, after setting this
+	 * Session-Object you can use the SID + a RoomId to enter any Room. ...
+	 * Session-Hashs are deleted 15 minutes after the creation if not used.
 	 * 
-	 * @see org.openmeetings.axis.services.IUserWebService#
-	 * setUserObjectAndGenerateRoomHash(java.lang.String, java.lang.String,
-	 * java.lang.String, java.lang.String, java.lang.String, java.lang.String,
-	 * java.lang.Long, java.lang.String, java.lang.Long, int, int)
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param firstname
+	 *            any firstname
+	 * @param lastname
+	 *            any lastname
+	 * @param profilePictureUrl
+	 *            any profilePictureUrl
+	 * @param email
+	 *            any email
+	 * @param externalUserId
+	 *            if you have any external user Id you may set it here
+	 * @param externalUserType
+	 *            you can specify your system-name here, for example "moodle"
+	 * @param room_id
+	 *            the room id the user should be logged in
+	 * @param becomeModeratorAsInt
+	 *            0 means no Moderator, 1 means Moderator
+	 * @param showAudioVideoTestAsInt
+	 *            0 means don't show Audio/Video Test, 1 means show Audio/Video
+	 *            Test Application before the user is logged into the room
+	 * @return
+	 * @throws AxisFault
 	 */
 	public String setUserObjectAndGenerateRoomHash(String SID, String username,
 			String firstname, String lastname, String profilePictureUrl,
 			String email, Long externalUserId, String externalUserType,
 			Long room_id, int becomeModeratorAsInt, int showAudioVideoTestAsInt)
 			throws AxisFault {
-		log.debug("UserService.setUserObject");
-
 		try {
 			Long users_id = sessionManagement.checkSession(SID);
 			Long user_level = userManagement.getUserLevelByID(users_id);
@@ -546,13 +721,40 @@ public class UserWebService {
 		return "" + new Long(-1);
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * 
+	 * Description: sets the SessionObject for a certain SID, after setting this
+	 * Session-Object you can use the SID + a RoomId to enter any Room.
+	 * 
+	 * ++ the user can press f5 to reload the page / use the link several times,
+	 * the SOAP Gateway does remember the IP of the user and the will only the
+	 * first user that enters the room allow to re-enter. ... Session-Hashs are
+	 * deleted 15 minutes after the creation if not used.
 	 * 
-	 * @see org.openmeetings.axis.services.IUserWebService#
-	 * setUserObjectAndGenerateRoomHashByURL(java.lang.String, java.lang.String,
-	 * java.lang.String, java.lang.String, java.lang.String, java.lang.String,
-	 * java.lang.Long, java.lang.String, java.lang.Long, int, int)
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param firstname
+	 *            any firstname
+	 * @param lastname
+	 *            any lastname
+	 * @param profilePictureUrl
+	 *            any profilePictureUrl
+	 * @param email
+	 *            any email any email
+	 * @param externalUserId
+	 *            if you have any external user Id you may set it here
+	 * @param externalUserType
+	 *            you can specify your system-name here, for example "moodle"
+	 * @param room_id
+	 *            the room id the user should be logged in
+	 * @param becomeModeratorAsInt
+	 *            0 means no Moderator, 1 means Moderator
+	 * @param showAudioVideoTestAsInt
+	 *            0 means don't show Audio/Video Test, 1 means show Audio/Video
+	 *            Test Application before the user is logged into the room
+	 * @return
 	 */
 	public String setUserObjectAndGenerateRoomHashByURL(String SID,
 			String username, String firstname, String lastname,
@@ -618,22 +820,50 @@ public class UserWebService {
 		return "" + new Long(-1);
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * 
+	 * Description: sets the SessionObject for a certain SID, after setting this
+	 * Session-Object you can use the SID + a RoomId to enter any Room.
+	 * 
+	 * ++ the user can press f5 to reload the page / use the link several times,
+	 * the SOAP Gateway does remember the IP of the user and the will only the
+	 * first user that enters the room allow to re-enter. ... Session-Hashs are
+	 * deleted 15 minutes after the creation if not used.
+	 * 
+	 * ++ sets the flag if the user can do recording in the conference room
 	 * 
-	 * @see org.openmeetings.axis.services.IUserWebService#
-	 * setUserObjectAndGenerateRoomHashByURLAndRecFlag(java.lang.String,
-	 * java.lang.String, java.lang.String, java.lang.String, java.lang.String,
-	 * java.lang.String, java.lang.Long, java.lang.String, java.lang.Long, int,
-	 * int, int)
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param firstname
+	 *            any firstname
+	 * @param lastname
+	 *            any lastname
+	 * @param profilePictureUrl
+	 *            any profilePictureUrl
+	 * @param email
+	 *            any email
+	 * @param externalUserId
+	 *            if you have any external user Id you may set it here
+	 * @param externalUserType
+	 *            you can specify your system-name here, for example "moodle"
+	 * @param room_id
+	 *            the room id the user should be logged in
+	 * @param becomeModeratorAsInt
+	 *            0 means no Moderator, 1 means Moderator
+	 * @param showAudioVideoTestAsInt
+	 *            0 means don't show Audio/Video Test, 1 means show Audio/Video
+	 *            Test Application before the user is logged into the room
+	 * @param allowRecording
+	 *            0 means don't allow Recording, 1 means allow Recording
+	 * @return
 	 */
 	public String setUserObjectAndGenerateRoomHashByURLAndRecFlag(String SID,
 			String username, String firstname, String lastname,
 			String profilePictureUrl, String email, Long externalUserId,
 			String externalUserType, Long room_id, int becomeModeratorAsInt,
 			int showAudioVideoTestAsInt, int allowRecording) {
-		log.debug("UserService.setUserObject");
-
 		try {
 			Long users_id = sessionManagement.checkSession(SID);
 			Long user_level = userManagement.getUserLevelByID(users_id);
@@ -697,13 +927,33 @@ public class UserWebService {
 		return "" + new Long(-1);
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * 
+	 * Description: sets the SessionObject for a certain SID, after setting this
+	 * Session-Object you can use the SID and directly login into the dashboard
 	 * 
-	 * @see
-	 * org.openmeetings.axis.services.IUserWebService#setUserObjectMainLandingZone
-	 * (java.lang.String, java.lang.String, java.lang.String, java.lang.String,
-	 * java.lang.String, java.lang.String, java.lang.Long, java.lang.String)
+	 * ++ the user can press f5 to reload the page / use the link several times,
+	 * the SOAP Gateway does remember the IP of the user and the will only the
+	 * first user that enters the room allow to re-enter. ... Session-Hashs are
+	 * deleted 15 minutes after the creation if not used.
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param firstname
+	 *            any firstname
+	 * @param lastname
+	 *            any lastname
+	 * @param profilePictureUrl
+	 *            any absolute profilePictureUrl
+	 * @param email
+	 *            any email
+	 * @param externalUserId
+	 *            if you have any external user Id you may set it here
+	 * @param externalUserType
+	 *            you can specify your system-name here, for example "moodle"
+	 * @return
 	 */
 	public String setUserObjectMainLandingZone(String SID, String username,
 			String firstname, String lastname, String profilePictureUrl,
@@ -761,14 +1011,48 @@ public class UserWebService {
 		return "" + new Long(-1);
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * 
+	 * Description: sets the SessionObject for a certain SID, after setting this
+	 * Session-Object you can use the SID + a RoomId to enter any Room.
+	 * 
+	 * ++ the user can press f5 to reload the page / use the link several times,
+	 * the SOAP Gateway does remember the IP of the user and the will only the
+	 * first user that enters the room allow to re-enter. ... Session-Hashs are
+	 * deleted 15 minutes after the creation if not used.
 	 * 
-	 * @see
-	 * org.openmeetings.axis.services.IUserWebService#setUserAndNickName(java
-	 * .lang.String, java.lang.String, java.lang.String, java.lang.String,
-	 * java.lang.String, java.lang.String, java.lang.Long, java.lang.String,
-	 * java.lang.Long, int, int, int)
+	 * ++ Additionally you can set a param showNickNameDialogAsInt, the effect
+	 * if that param is 1 is, that the user gets a popup where he can enter his
+	 * nickname right before he enters the conference room. All nicknames and
+	 * emails users enter are logged in the conferencelog table.
+	 * 
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param firstname
+	 *            any firstname
+	 * @param lastname
+	 *            any lastname
+	 * @param profilePictureUrl
+	 *            any profilePictureUrl
+	 * @param email
+	 *            any email
+	 * @param externalUserId
+	 *            if you have any external user Id you may set it here
+	 * @param externalUserType
+	 *            you can specify your system-name here, for example "moodle"
+	 * @param room_id
+	 *            the room id the user should be logged in
+	 * @param becomeModeratorAsInt
+	 *            0 means no Moderator, 1 means Moderator
+	 * @param showAudioVideoTestAsInt
+	 *            0 means don't show Audio/Video Test, 1 means show Audio/Video
+	 *            Test Application before the user is logged into the room
+	 * @param showNickNameDialogAsInt
+	 *            0 means do not show the popup to enter a nichname, 1 means
+	 *            that there is a popup to enter the nickname for the conference
+	 * @return
 	 */
 	public String setUserAndNickName(String SID, String username,
 			String firstname, String lastname, String profilePictureUrl,
@@ -776,9 +1060,6 @@ public class UserWebService {
 			Long room_id, int becomeModeratorAsInt,
 			int showAudioVideoTestAsInt, int showNickNameDialogAsInt) {
 		try {
-
-			log.debug("UserService.setUserObjectAndGenerateRoomHashByURLAndNick");
-
 			Long users_id = sessionManagement.checkSession(SID);
 			Long user_level = userManagement.getUserLevelByID(users_id);
 			if (authLevelManagement.checkWebServiceLevel(user_level)) {
@@ -839,19 +1120,29 @@ public class UserWebService {
 		return "" + new Long(-1);
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * Use this method to access a Recording instead of Room
 	 * 
-	 * @see org.openmeetings.axis.services.IUserWebService#
-	 * setUserObjectAndGenerateRecordingHashByURL(java.lang.String,
-	 * java.lang.String, java.lang.String, java.lang.String, java.lang.Long,
-	 * java.lang.String, java.lang.Long)
+	 * @param SID
+	 *            The SID from getSession
+	 * @param username
+	 *            any username
+	 * @param firstname
+	 *            any firstname
+	 * @param lastname
+	 *            any lastname
+	 * @param externalUserId
+	 *            if you have any external user Id you may set it here
+	 * @param externalUserType
+	 *            you can specify your system-name here, for example "moodle"
+	 * @param recording_id
+	 *            the id of the recording, get a List of all Recordings with
+	 *            RoomService::getFlvRecordingByExternalRoomType
+	 * @return
 	 */
 	public String setUserObjectAndGenerateRecordingHashByURL(String SID,
 			String username, String firstname, String lastname,
 			Long externalUserId, String externalUserType, Long recording_id) {
-		log.debug("UserService.setUserObject");
-
 		try {
 			Long users_id = sessionManagement.checkSession(SID);
 			Long user_level = userManagement.getUserLevelByID(users_id);
@@ -899,13 +1190,21 @@ public class UserWebService {
 		return "" + new Long(-1);
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * 
+	 * Add a user to a certain organization
 	 * 
-	 * @see
-	 * org.openmeetings.axis.services.IUserWebService#addUserToOrganisation(
-	 * java.lang.String, java.lang.Long, java.lang.Long, java.lang.Long,
-	 * java.lang.String)
+	 * @param SID
+	 *            The SID from getSession
+	 * @param user_id
+	 *            the user id
+	 * @param organisation_id
+	 *            the organization id
+	 * @param insertedby
+	 *            user id of the operating user
+	 * @param comment
+	 *            any comment
+	 * @return
 	 */
 	public Long addUserToOrganisation(String SID, Long user_id,
 			Long organisation_id, Long insertedby, String comment) {
@@ -926,12 +1225,22 @@ public class UserWebService {
 		return new Long(-1);
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * Search users and return them
 	 * 
-	 * @see
-	 * org.openmeetings.axis.services.IUserWebService#getUsersByOrganisation
-	 * (java.lang.String, long, int, int, java.lang.String, boolean)
+	 * @param SID
+	 *            The SID from getSession
+	 * @param organisation_id
+	 *            the organization id
+	 * @param start
+	 *            first record
+	 * @param max
+	 *            max records
+	 * @param orderby
+	 *            orderby clause
+	 * @param asc
+	 *            asc or desc
+	 * @return
 	 */
 	public SearchResult getUsersByOrganisation(String SID,
 			long organisation_id, int start, int max, String orderby,
@@ -955,12 +1264,15 @@ public class UserWebService {
 		return null;
 	}
 
-	/*
-	 * (non-Javadoc)
+	/**
+	 * Kick a user by its public SID
 	 * 
-	 * @see
-	 * org.openmeetings.axis.services.IUserWebService#kickUserByPublicSID(java
-	 * .lang.String, java.lang.String)
+	 * @param SID
+	 *            The SID from getSession
+	 * @param publicSID
+	 *            the publicSID (you can get it from the call to get users in a
+	 *            room)
+	 * @return
 	 */
 	public Boolean kickUserByPublicSID(String SID, String publicSID) {
 		try {