Index: /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/connector/Dispatcher.java
===================================================================
--- /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/connector/Dispatcher.java	(revision 2462)
+++ /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/connector/Dispatcher.java	(revision 2463)
@@ -72,5 +72,5 @@
 	 */
 	protected Dispatcher(final ServletContext servletContext) {
-		this.connector = RequestCycleHandler.getConnector();
+		this.connector = ConnectorHandler.getConnector();
 		this.connector.init(servletContext);
 	}
Index: /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/connector/impl/SimpleFileSystemConnector.java
===================================================================
--- /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/connector/impl/SimpleFileSystemConnector.java	(revision 2462)
+++ /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/connector/impl/SimpleFileSystemConnector.java	(revision 2463)
@@ -45,5 +45,4 @@
 import net.fckeditor.tool.UtilsFile;
 
-import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.filefilter.DirectoryFileFilter;
@@ -63,15 +62,5 @@
 public class SimpleFileSystemConnector implements Connector {
 	private static final Logger logger = LoggerFactory.getLogger(SimpleFileSystemConnector.class);
-	private static Map<ResourceType, String> paths = new HashMap<ResourceType, String>(4);
 	private static ServletContext servletContext;
-	
-	// TODO I don't like this because every one has to initialize this on his own
-	static {
-		// initialize the sub folders for each resource type
-		paths.put(ResourceType.FILE, PropertiesLoader.getProperty("connector.resourceType.file.path"));
-		paths.put(ResourceType.IMAGE, PropertiesLoader.getProperty("connector.resourceType.image.path"));
-		paths.put(ResourceType.FLASH, PropertiesLoader.getProperty("connector.resourceType.flash.path"));
-		paths.put(ResourceType.MEDIA, PropertiesLoader.getProperty("connector.resourceType.media.path"));
-	}
 
 	/* (non-Javadoc)
@@ -99,5 +88,5 @@
 			throw new InvalidCurrentFolderException();
 		File newFile = new File(currentDir, fileName);
-		File fileToSave = getUniqueFile(newFile.getAbsoluteFile());
+		File fileToSave = UtilsFile.getUniqueFile(newFile.getAbsoluteFile());
 		try {
 			BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(fileToSave));
@@ -182,25 +171,8 @@
 	
 	private static File getAndCreateResourceTypeDir(final String baseDir, final ResourceType type) {
-		File dir = new File(servletContext.getRealPath(baseDir), paths.get(type));
+		File dir = new File(servletContext.getRealPath(baseDir), type.getPath());
 		if (!dir.exists())
 			dir.mkdirs();
 		return dir;
 	}
-	
-	// TODO maybe this can be achieved in fewer lines
-	private static File getUniqueFile(final File file) {
-		if (!file.exists())
-			return file;
-		
-		File tmpFile = new File(file.getAbsolutePath());
-		File dir = tmpFile.getParentFile();
-		int count = 1;
-		String extension = ".".concat(FilenameUtils.getExtension(tmpFile.getName()));
-		String baseName = FilenameUtils.getBaseName(tmpFile.getName());
-		do {
-			tmpFile = new File(dir, baseName + "(".concat(String.valueOf(count)).concat(")").concat(extension));
-			count++;
-		} while (tmpFile.exists());
-		return tmpFile;
-	}
 }
Index: /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/handlers/ConnectorHandler.java
===================================================================
--- /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/handlers/ConnectorHandler.java	(revision 2462)
+++ /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/handlers/ConnectorHandler.java	(revision 2463)
@@ -21,4 +21,7 @@
 package net.fckeditor.handlers;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import net.fckeditor.connector.Connector;
 import net.fckeditor.requestcycle.UserPathBuilder;
@@ -31,4 +34,25 @@
  */
 public class ConnectorHandler {
+	
+	private static Logger logger = LoggerFactory.getLogger(ConnectorHandler.class);
+	private static Connector connector = null;
+	
+	static {
+		
+		// 3. try to instantiate the Connector object
+		String fqcn = PropertiesLoader.getProperty("connector.implementation");
+		if (fqcn == null)
+			logger.warn("No property found for Connector implementation, any user action will be disabled!");
+		else {
+			try {
+				Class<?> clazz = Class.forName(fqcn);
+				connector = (Connector) clazz.newInstance();
+				logger.info("Connector initialized to {}", connector.getClass());
+			} catch (Exception e) {
+				logger.error("Couldn't instantiate class [".concat(fqcn).concat(
+				        "], any user action will disabled!"), e);
+			}
+		}
+	}
 
 	/**
@@ -56,4 +80,5 @@
 
 	/**
+	 * TODO change JavaDoc
 	 * Getter for the value to instruct the connector to return the full URL of
 	 * a file/folder in the XML response rather than the absolute URL.
@@ -62,7 +87,6 @@
 	 *         set else <code>false</code>.
 	 */
-	// TODO we have to figure out if other implementations do fullUrl on a boolean basis or just retrieve a host string.
-	public static boolean isFullUrl() {
-		return Boolean.valueOf(PropertiesLoader.getProperty("connector.fullUrl"));
+	public static String getBaseUrl() {
+		return PropertiesLoader.getProperty("connector.baseUrl");
 	}
 
@@ -86,3 +110,12 @@
 		return Boolean.valueOf(PropertiesLoader.getProperty("connector.secureImageUploads"));
 	}
+
+	/**
+	 * Getter for the implementation of {@link Connector}.
+	 * 
+	 * @return Implementation of {@link Connector}.
+	 */
+	public static Connector getConnector() {
+		return connector;
+	}
 }
Index: /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/handlers/RequestCycleHandler.java
===================================================================
--- /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/handlers/RequestCycleHandler.java	(revision 2462)
+++ /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/handlers/RequestCycleHandler.java	(revision 2463)
@@ -22,5 +22,4 @@
 
 
-import net.fckeditor.connector.Connector;
 import net.fckeditor.requestcycle.UserAction;
 import net.fckeditor.requestcycle.UserPathBuilder;
@@ -39,5 +38,4 @@
 	private static UserAction userAction = null;
 	private static UserPathBuilder userPathBuilder = null;
-	private static Connector connector = null;
 
 	static {
@@ -74,21 +72,4 @@
 			}
 		}
-		
-		// TODO Connector should be handled in ConnectorHandler which makes much more sense
-		// 3. try to instantiate the Connector object
-		fqcn = PropertiesLoader.getProperty("connector.implementation");
-		if (fqcn == null)
-			logger.warn("No property found for Connector implementation, any user action will be disabled!");
-		else {
-			try {
-				Class<?> clazz = Class.forName(fqcn);
-				connector = (Connector) clazz.newInstance();
-				logger.info("Connector initialized to {}", connector.getClass());
-			} catch (Exception e) {
-				logger.error("Couldn't instantiate class [".concat(fqcn).concat(
-				        "], any user action will disabled!"), e);
-			}
-		}
-
 	}
 
@@ -138,12 +119,3 @@
 		return (userPathBuilder != null) ? userPathBuilder.getUserFilesPath() : null;
 	}
-	
-	/**
-	 * Getter for the implementation of {@link Connector}.
-	 * 
-	 * @return Implementation of {@link Connector}.
-	 */
-	public static Connector getConnector() {
-		return connector;
-	}
 }
Index: /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/handlers/ResourceType.java
===================================================================
--- /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/handlers/ResourceType.java	(revision 2462)
+++ /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/handlers/ResourceType.java	(revision 2463)
@@ -33,9 +33,11 @@
 public class ResourceType {
 	private String name;
+	private String path;
 	private static Map<String, ResourceType> types = new HashMap<String, ResourceType>(4);
-	public static final ResourceType FILE = new ResourceType("file");
-	public static final ResourceType FLASH = new ResourceType("flash");
-	public static final ResourceType IMAGE = new ResourceType("image");
-	public static final ResourceType MEDIA = new ResourceType("media");
+		
+	public static final ResourceType FILE = new ResourceType("file", PropertiesLoader.getProperty("connector.resourceType.file.path"));
+	public static final ResourceType FLASH = new ResourceType("flash", PropertiesLoader.getProperty("connector.resourceType.flash.path"));
+	public static final ResourceType IMAGE = new ResourceType("image", PropertiesLoader.getProperty("connector.resourceType.image.path"));
+	public static final ResourceType MEDIA = new ResourceType("media", PropertiesLoader.getProperty("connector.resourceType.media.path"));
 	
 	static {
@@ -46,10 +48,15 @@
 	}
 	
-	private ResourceType(final String name) {
+	private ResourceType(final String name, final String path) {
 		this.name = name;
+		this.path = path;
 	}
 	
 	public String getName() {
 		return name;
+	}
+	
+	public String getPath() {
+		return path;
 	}
 	
Index: /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/tool/UtilsFile.java
===================================================================
--- /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/tool/UtilsFile.java	(revision 2462)
+++ /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/tool/UtilsFile.java	(revision 2463)
@@ -145,3 +145,19 @@
 		}
 	}
+
+	public static File getUniqueFile(final File file) {
+		if (!file.exists())
+			return file;
+		
+		File tmpFile = new File(file.getAbsolutePath());
+		File dir = tmpFile.getParentFile();
+		int count = 1;
+		String extension = FilenameUtils.getExtension(tmpFile.getName());
+		String baseName = FilenameUtils.getBaseName(tmpFile.getName());
+		do {
+			tmpFile = new File(dir, baseName + "(".concat(String.valueOf(count)).concat(").").concat(extension));
+			count++;
+		} while (tmpFile.exists());
+		return tmpFile;
+	}
 }
Index: /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/tool/UtilsResponse.java
===================================================================
--- /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/tool/UtilsResponse.java	(revision 2462)
+++ /FCKeditor.Java/branches/2.5-test/java-core/src/main/java/net/fckeditor/tool/UtilsResponse.java	(revision 2463)
@@ -38,10 +38,8 @@
 	 */
 	public static String constructResponseUrl(String filePath, String resourceTypePath, String urlPath) {
-		HttpServletRequest request = ThreadLocalData.getServletRequest();
 		StringBuffer sb = new StringBuffer();
 		
-		if ( ConnectorHandler.isFullUrl()) {
-			String address = request.getRequestURL().toString();
-			sb.append(address.substring(0, address.indexOf('/', 8)));
+		if (Utils.isNotEmpty(ConnectorHandler.getBaseUrl())) {
+			sb.append(ConnectorHandler.getBaseUrl());
 		}
 		    	
