Index: /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/handlers/Command.java
===================================================================
--- /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/handlers/Command.java	(revision 3395)
+++ /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/handlers/Command.java	(revision 3396)
@@ -27,5 +27,21 @@
 
 /**
- * Handler for <code>GET</code> and <code>POST</code> commands.
+ * Reflects File Browser <code>GET</code> and <code>POST</code> commands.
+ * <p>
+ * The File Browser send a specific command for each and every request. This
+ * class is intended to reflect those in a Enum-like manner.
+ * </p>
+ * <p>
+ * The commands are for <code>GET</code>:
+ * <ul>
+ * <li>GetFolders</li>
+ * <li>GetFoldersAndFiles</li>
+ * <li>CreateFolder</li>
+ * </ul>
+ * and for <code>POST</code>:
+ * <ul>
+ * <li>FileUpload</li>
+ * <li>QuickUpload</li>
+ *</ul>
  * 
  * @version $Id$
@@ -34,18 +50,19 @@
 
 	private String name;
-	private static Map<String, Command> getCommands = new HashMap<String, Command>(
+	private static final Map<String, Command> getCommands = new HashMap<String, Command>(
 			3);
-	private static Map<String, Command> postCommands = new HashMap<String, Command>(
+	private static final Map<String, Command> postCommands = new HashMap<String, Command>(
 			2);
-	public static final Command GET_FOLDERS = new Command(
-			"GetFolders");
+	/** GET command <code>GetFolders</code> */
+	public static final Command GET_FOLDERS = new Command("GetFolders");
+	/** GET command <code>GetFoldersAndFiles</code> */
 	public static final Command GET_FOLDERS_AND_FILES = new Command(
 			"GetFoldersAndFiles");
-	public static final Command CREATE_FOLDER = new Command(
-			"CreateFolder");
-	public static final Command FILE_UPLOAD = new Command(
-			"FileUpload");
-	public static final Command QUICK_UPLOAD = new Command(
-			"QuickUpload");
+	/** GET command <code>CreateFolder</code> */
+	public static final Command CREATE_FOLDER = new Command("CreateFolder");
+	/** POST command <code>FileUpload</code> */
+	public static final Command FILE_UPLOAD = new Command("FileUpload");
+	/** POST command <code>QuickUpload</code> */
+	public static final Command QUICK_UPLOAD = new Command("QuickUpload");
 
 	static {
@@ -54,5 +71,5 @@
 		getCommands.put(GET_FOLDERS_AND_FILES.getName(), GET_FOLDERS_AND_FILES);
 		getCommands.put(CREATE_FOLDER.getName(), CREATE_FOLDER);
-		
+
 		// initialize the post commands
 		postCommands.put(FILE_UPLOAD.getName(), FILE_UPLOAD);
@@ -60,4 +77,10 @@
 	}
 
+	/**
+	 * Constructs a command with the given name.
+	 * 
+	 * @param name
+	 *            a reasonable command name
+	 */
 	private Command(final String name) {
 		this.name = name;
@@ -65,7 +88,7 @@
 
 	/**
-	 * Getter for the name.
+	 * Returns the command name.
 	 * 
-	 * @return The command name
+	 * @return the command name
 	 */
 	public String getName() {
@@ -74,10 +97,9 @@
 
 	/**
-	 * Getter for an {@link Command} of a specified string.
+	 * Returns a command object for a command name string.
 	 * 
 	 * @param name
-	 *            A command to retrieve
-	 * @return A {@link Command} object holding the value represented by
-	 *         the string argument.
+	 *            command to retrieve
+	 * @return {@link Command} object corresponding to the name
 	 * @throws IllegalArgumentException
 	 *             If 'name' is <code>null</code>, empty, or does not exist.
@@ -85,5 +107,6 @@
 	public static Command valueOf(final String name) {
 		if (Utils.isEmpty(name))
-			throw new NullPointerException("Parameter name is null or empty");
+			throw new IllegalArgumentException(
+					"Parameter name is null or empty");
 
 		Command command = getCommands.get(name);
@@ -92,17 +115,15 @@
 		if (command == null)
 			throw new IllegalArgumentException("No suitable command found");
-		
+
 		return command;
 	}
-	
 
 	/**
-	 * Checks if a specified string represents a valid <code>GET</code>
+	 * Checks if a specified command name represents a valid <code>GET</code>
 	 * command.
 	 * 
 	 * @param name
-	 *            A command string to check
-	 * @return <code>true</code> if the string representation is valid else
-	 *         <code>false</code>.
+	 *            command string to check
+	 * @return <code>true</code> if the command exists else <code>false</code>.
 	 */
 	public static boolean isValidForGet(final String name) {
@@ -111,24 +132,23 @@
 
 	/**
-	 * Checks if a specified string represents a valid <code>POST</code>
+	 * Checks if a specified command name represents a valid <code>POST</code>
 	 * command.
 	 * 
 	 * @param name
-	 *            A command string to check
-	 * @return <code>true</code> if the string representation is valid else
-	 *         <code>false</code>.
+	 *            command string to check
+	 * @return <code>true</code> if the command exists else <code>false</code>.
 	 */
 	public static boolean isValidForPost(final String name) {
 		return postCommands.containsKey(name);
 	}
-	
-	
+
 	/**
-	 * A wrapper for {@link #valueOf(String)}. It returns null instead of
-	 * throwing an exception.
+	 * Returns a command object for a command name string. In contrast to
+	 * {@link Command#valueOf(String)} it returns a <code>null</code> instead of
+	 * throwing an exception if a command was not found.
 	 * 
-	 * @param name A command string to check
-	 * @return A {@link Command} object holding the value represented by
-	 *         the string argument, or <code>null</code>.
+	 * @param name
+	 *            command to retrieve
+	 * @return {@link Command} object corresponding to the name (may be null)
 	 */
 	public static Command getCommand(final String name) {
Index: /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/handlers/ConnectorHandler.java
===================================================================
--- /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/handlers/ConnectorHandler.java	(revision 3395)
+++ /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/handlers/ConnectorHandler.java	(revision 3396)
@@ -22,4 +22,5 @@
 
 import net.fckeditor.connector.Connector;
+import net.fckeditor.connector.Dispatcher;
 import net.fckeditor.tool.Utils;
 
@@ -30,6 +31,11 @@
  * Handler for Connector-related properties.<br />
  * Wraps to the {@link PropertiesLoader}.<br />
+ * <strong>Attention</strong>: This class will be merged into {@link Dispatcher}
+ * since it serves only one reason (Connector instantiation) which will be done
+ * more reasonably in the dispatcher directly.
  * 
  * @version $Id$
+ * @deprecated Functionality will be merged into {@link Dispatcher}. Class will
+ *             be removed in FCKeditor.Java 2.6.
  */
 public class ConnectorHandler {
@@ -51,5 +57,8 @@
 				logger.info("Connector initialized to {}", className);
 			} catch (Throwable e) {
-				logger.error("Connector implementation {} could not be instantiated", className);
+				logger
+						.error(
+								"Connector implementation {} could not be instantiated",
+								className);
 				// TODO should be throw a RuntimeException here
 			}
Index: /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/handlers/LocalizedMessages.java
===================================================================
--- /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/handlers/LocalizedMessages.java	(revision 3395)
+++ /FCKeditor.Java/trunk/java-core/src/main/java/net/fckeditor/handlers/LocalizedMessages.java	(revision 3396)
@@ -40,7 +40,17 @@
 
 /**
- * This class wraps to a {@link LocaleResolver} implementation and retrieves
- * localized strings for a given request. This class safely returns default
- * strings if anything fails. Loaded strings will be cached on load.
+ * Provides access to localized messages (properties).
+ * 
+ * <p>
+ * Localized messages are loaded for a particular locale from a HTTP request.
+ * The locale is resolved by the current {@link LocaleResolver}
+ * instance/singleton. If a locale or a bundle for a locale cannot be found,
+ * default messages are used.
+ * </p>
+ * <p>
+ * Note: Loaded messages are cached per locale, any subsequent call of the same
+ * locale will be served by the cache instead of another resource bundle
+ * retrieval.
+ * </p>
  * 
  * @version $Id$
@@ -49,5 +59,5 @@
 public class LocalizedMessages {
 
-	private static Map<Locale, LocalizedMessages> prototypes = new HashMap<Locale, LocalizedMessages>();
+	private static final Map<Locale, LocalizedMessages> prototypes = new HashMap<Locale, LocalizedMessages>();
 	private static final String DEFAULT_FILENAME = "default_messages.properties"; //$NON-NLS-1$
 	private static final String LOCAL_PROPERTIES = "fckeditor_messages"; //$NON-NLS-1$
@@ -77,16 +87,19 @@
 			} catch (Exception e) {
 				logger.error("Error while loading {}", DEFAULT_FILENAME); //$NON-NLS-1$
-				throw new RuntimeException("Error while loading " + DEFAULT_FILENAME, e); //$NON-NLS-1$
+				throw new RuntimeException(
+						"Error while loading " + DEFAULT_FILENAME, e); //$NON-NLS-1$
 			}
 		}
 	}
-	
-	
-	/**
-	 * This method return an instance of this class for the given locale.
+
+	/**
+	 * Returns an instance of this class for the a locale from the given
+	 * request.<br />
+	 * This method is fail save, either a null request or locale will be safely
+	 * served with the default messages.
 	 * 
 	 * @param request
-	 *            The current request instance
-	 * @return The LP instance with localized strings.
+	 *            the current request instance
+	 * @return an instance with localized strings.
 	 */
 	public static LocalizedMessages getMessages(HttpServletRequest request) {
@@ -114,4 +127,7 @@
 	}
 
+	/**
+	 * Returns a locale resolver instance.
+	 */
 	private static LocaleResolver getLocaleResolverInstance() {
 
@@ -134,5 +150,5 @@
 		return localeResolver;
 	}
-	
+
 	/**
 	 * Loads the default strings and the string for the given locale and only
@@ -140,19 +156,21 @@
 	 * 
 	 * @param locale
-	 *            Given locale
+	 *            given locale
 	 */
 	private LocalizedMessages(Locale locale) {
 
 		properties = new Properties(defaultProperties);
-		
+
 		ResourceBundle localized = null;
 		try {
-			localized = ResourceBundle.getBundle(LOCAL_PROPERTIES, locale, Thread
-					.currentThread().getContextClassLoader());
+			localized = ResourceBundle.getBundle(LOCAL_PROPERTIES, locale,
+					Thread.currentThread().getContextClassLoader());
 		} catch (Exception e) {
 			; // do nothing
 		}
-		
-		if (localized != null && localized.getLocale().getLanguage().equals(locale.getLanguage())) {
+
+		if (localized != null
+				&& localized.getLocale().getLanguage().equals(
+						locale.getLanguage())) {
 			Enumeration<String> keys = localized.getKeys();
 
@@ -161,17 +179,17 @@
 				properties.setProperty(key, localized.getString(key));
 			}
-			
+
 			logger.debug("Resource bundle for locale '{}' loaded", locale); //$NON-NLS-1$
 		} else {
 			logger.debug("No resource bundle for locale '{}' found, loading default bundle", locale); //$NON-NLS-1$
-			
+
 			ResourceBundle base = null;
 			try {
-				base = ResourceBundle.getBundle(LOCAL_PROPERTIES, NEUTRAL, Thread
-						.currentThread().getContextClassLoader());
+				base = ResourceBundle.getBundle(LOCAL_PROPERTIES, NEUTRAL,
+						Thread.currentThread().getContextClassLoader());
 			} catch (Exception e) {
 				; // do nothing
 			}
-			
+
 			if (base != null && base.getLocale().equals(NEUTRAL)) {
 				Enumeration<String> keys = base.getKeys();
@@ -182,5 +200,5 @@
 				}
 			}
-			
+
 		}
 
@@ -192,7 +210,7 @@
 
 	/**
-	 * Getter for localized <code>editor.compatibleBrowser.yes</code> property
-	 * 
-	 * @return CompatibleBrowserYes
+	 * Returns localized <code>editor.compatibleBrowser.yes</code> property.
+	 * 
+	 * @return localized message
 	 */
 	public String getCompatibleBrowserYes() {
@@ -201,7 +219,7 @@
 
 	/**
-	 * Getter for localized <code>editor.compatibleBrowser.no</code> property
-	 * 
-	 * @return CompatibleBrowserNo
+	 * Returns localized <code>editor.compatibleBrowser.no</code> property.
+	 * 
+	 * @return localized message
 	 */
 	public String getCompatibleBrowserNo() {
@@ -210,8 +228,7 @@
 
 	/**
-	 * Getter for localized <code>connector.fileUpload.enabled</code>
-	 * property
-	 * 
-	 * @return FileUploadEnabled
+	 * Returns localized <code>connector.fileUpload.enabled</code> property
+	 * 
+	 * @return localized message
 	 */
 	public String getFileUploadEnabled() {
@@ -220,39 +237,39 @@
 
 	/**
-	 * Getter for localized <code>connector.fileUpload.disabled</code>
-	 * property
-	 * 
-	 * @return FileUploadDisabled
+	 * Returns localized <code>connector.fileUpload.disabled</code> property
+	 * 
+	 * @return localized message
 	 */
 	public String getFileUploadDisabled() {
 		return getString("connector.fileUpload.disabled"); //$NON-NLS-1$
 	}
-	
-	/**
-	 * Getter for localized <code>connector.file_renamed_warning</code>
-	 * property
-	 * 
-	 * @param newFileName the new filename
-	 * @return FileRenamedWarning
+
+	/**
+	 * Returns localized <code>connector.file_renamed_warning</code> property
+	 * 
+	 * @param newFileName
+	 *            the new filename
+	 * @return localized message
 	 */
 	public String getFileRenamedWarning(String newFileName) {
-		return MessageFormat.format(getString("connector.fileUpload.file_renamed_warning"), newFileName); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Getter for localized <code>connector.fileUpload.invalid_file_type_specified</code>
-	 * property
-	 * 
-	 * @return InvalidFileTypeSpecified
+		return MessageFormat
+				.format(
+						getString("connector.fileUpload.file_renamed_warning"), newFileName); //$NON-NLS-1$
+	}
+
+	/**
+	 * Returns localized
+	 * <code>connector.fileUpload.invalid_file_type_specified</code> property
+	 * 
+	 * @return localized message
 	 */
 	public String getInvalidFileTypeSpecified() {
 		return getString("connector.fileUpload.invalid_file_type_specified"); //$NON-NLS-1$
 	}
-	
-	/**
-	 * Getter for localized
-	 * <code>connector.fileUpload.write_error</code> property
-	 * 
-	 * @return FileUploadWiteError
+
+	/**
+	 * Returns localized <code>connector.fileUpload.write_error</code> property.
+	 * 
+	 * @return localized message
 	 */
 	public String getFileUploadWriteError() {
@@ -261,8 +278,7 @@
 
 	/**
-	 * Getter for localized <code>connector.getResources.enabled</code>
-	 * property
-	 * 
-	 * @return GetResourcesEnabled
+	 * Returns localized <code>connector.getResources.enabled</code> property
+	 * 
+	 * @return localized message
 	 */
 	public String getGetResourcesEnabled() {
@@ -271,18 +287,16 @@
 
 	/**
-	 * Getter for localized <code>connector.getResources.disabled</code>
-	 * property
-	 * 
-	 * @return GetResourcesDisabled
+	 * Returns localized <code>connector.getResources.disabled</code> property
+	 * 
+	 * @return localized message
 	 */
 	public String getGetResourcesDisabled() {
 		return getString("connector.getResources.disabled"); //$NON-NLS-1$
 	}
-	
-	/**
-	 * Getter for localized <code>connector.getResources.read_error</code>
-	 * property
-	 * 
-	 * @return GetResourcesReadError
+
+	/**
+	 * Returns localized <code>connector.getResources.read_error</code> property
+	 * 
+	 * @return localized message
 	 */
 	public String getGetResourcesReadError() {
@@ -291,8 +305,7 @@
 
 	/**
-	 * Getter for localized
-	 * <code>connector.createFolder.enabled</code> property
-	 * 
-	 * @return FolderCreationEnabled
+	 * Returns localized <code>connector.createFolder.enabled</code> property.
+	 * 
+	 * @return localized message
 	 */
 	public String getCreateFolderEnabled() {
@@ -301,8 +314,7 @@
 
 	/**
-	 * Getter for localized
-	 * <code>connector.createFolder.disabled</code> property
-	 * 
-	 * @return FolderCreationDisabled
+	 * Returns localized <code>connector.createFolder.disabled</code> property.
+	 * 
+	 * @return localized message
 	 */
 	public String getCreateFolderDisabled() {
@@ -311,38 +323,39 @@
 
 	/**
-	 * Getter for localized
-	 * <code>connector.invalid_command_specified</code> property
-	 * 
-	 * @return InvalidCommandSpecified
+	 * Returns localized <code>connector.invalid_command_specified</code>
+	 * property.
+	 * 
+	 * @return localized message
 	 */
 	public String getInvalidCommandSpecified() {
 		return getString("connector.invalid_command_specified"); //$NON-NLS-1$
 	}
-	
-	/**
-	 * Getter for localized
-	 * <code>connector.createFolder.folder_already_exists_error</code> property
-	 * 
-	 * @return FolderAlreadyExistsError
+
+	/**
+	 * Returns localized
+	 * <code>connector.createFolder.folder_already_exists_error</code> property.
+	 * 
+	 * @return localized message
 	 */
 	public String getFolderAlreadyExistsError() {
 		return getString("connector.createFolder.folder_already_exists_error"); //$NON-NLS-1$
 	}
-	
-	/**
-	 * Getter for localized
-	 * <code>connector.createFolder.invalid_new_folder_name_specified</code> property
-	 * 
-	 * @return InvalidNewFolderNameSpecified
+
+	/**
+	 * Returns localized
+	 * <code>connector.createFolder.invalid_new_folder_name_specified</code>
+	 * property.
+	 * 
+	 * @return localized message
 	 */
 	public String getInvalidNewFolderNameSpecified() {
 		return getString("connector.createFolder.invalid_new_folder_name_specified"); //$NON-NLS-1$
 	}
-	
-	/**
-	 * Getter for localized
-	 * <code>connector.createFolder.write_error</code> property
-	 * 
-	 * @return CreateFolderWriteError
+
+	/**
+	 * Returns localized <code>connector.createFolder.write_error</code>
+	 * property.
+	 * 
+	 * @return localized message
 	 */
 	public String getCreateFolderWriteError() {
@@ -351,8 +364,8 @@
 
 	/**
-	 * Getter for localized
-	 * <code>connector.invalid_resource_type_specified</code> property
-	 * 
-	 * @return InvalidTypeSpecified
+	 * Returns localized <code>connector.invalid_resource_type_specified</code>
+	 * property.
+	 * 
+	 * @return localized message
 	 */
 	public String getInvalidResouceTypeSpecified() {
@@ -361,8 +374,8 @@
 
 	/**
-	 * Getter for localized
-	 * <code>connector.invalid_current_folder_specified</code> property
-	 * 
-	 * @return InvalidCurrentFolderSpecified
+	 * Returns localized <code>connector.invalid_current_folder_specified</code>
+	 * property.
+	 * 
+	 * @return localized message
 	 */
 	public String getInvalidCurrentFolderSpecified() {
Index: /FCKeditor.Java/trunk/src/site/apt/upgrade_notes.apt.vm
===================================================================
--- /FCKeditor.Java/trunk/src/site/apt/upgrade_notes.apt.vm	(revision 3395)
+++ /FCKeditor.Java/trunk/src/site/apt/upgrade_notes.apt.vm	(revision 3396)
@@ -36,4 +36,6 @@
 || Ticket						|| Remark									  ||
 *-------------------------------+----------------------------------------------+
+| -								| The FCKeditor class enforces now less checks and the FCKConfig can now be set one-by-one only. |
+*-------------------------------+----------------------------------------------+
 | {{{${ticketUrl}/2743}2743}}	| Add <<<{{{java-core/apidocs/net/fckeditor/requestcycle/UserPathBuilder.html#getUserFilesAbsolutePath(javax.servlet.http.HttpServletRequest)}getUserFilesAbsolutePath}}>>> to <<<{{{java-core/apidocs/net/fckeditor/requestcycle/UserPathBuilder.html}UserPathBuilder}}>>> interface, implement this method in your builder too. |
 *-------------------------------+----------------------------------------------+
