diff --git a/src/main/java/org/olat/core/gui/control/Lockable.java b/src/main/java/org/olat/core/gui/control/Lockable.java
deleted file mode 100644
index 355dd6a20683f92231f6552bc8530d43dca87278..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/core/gui/control/Lockable.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.  
-* <p>
-*/ 
-
-package org.olat.core.gui.control;
-
-import org.olat.core.util.coordinate.LockResult;
-
-/**
- * Description: <br>
- * Initial Date: July 13, 2005 <br>
- * 
- * @author Felix Jost
- */
-public interface Lockable {
-	/**
-	 * @return LockEntry
-	 */
-	public LockResult getLockEntry();
-
-	/**
-	 * @return String
-	 */
-	public String getLockFailedMessage();
-}
diff --git a/src/main/java/org/olat/core/util/coordinate/Filer.java b/src/main/java/org/olat/core/util/coordinate/Filer.java
deleted file mode 100644
index ad0d354a76cfb8db39dbf3115b16d48d028483ea..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/core/util/coordinate/Filer.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.  
-* <p>
-*/ 
-package org.olat.core.util.coordinate;
-
-import org.olat.core.util.coordinate.filer.FileTransaction;
-
-/**
- * Description:<br>
- * cluster:: this is work in progress
- * @deprecated work in progress
- * a helper to organize files.
- * a FileTransaction is essentially a file system directory without the user knowing the absolute path.
- * <br><br>
- * a FileTransaction is a unit of work (as a db transaction) that can either be committed or rolled back.
- * this is a very very simple form of a transactional filesystem.
- * <br><br>
- * a FileTransaction does however -not- provide<br>
- * - a locking utility<br>
- * - quota management <br>
- * - a vfs (virtual file system)<br>
- * - synchronizing access to files and directories 
- * <P>
- * Initial Date:  09.11.2007 <br>
- * @author Felix Jost, http://www.goodsolutions.ch
- */
-public interface Filer {
-	
-	/**
-	 * 
-	 * @return the FileTransaction associated with the current thread.
-	 * make sure that at the end of dispatching, either commit() or rollback() is called, so that the FileTransaction is in a determined state for the next thread that uses it.
-	 */
-	public FileTransaction getCurrentFileTransaction();
-}
diff --git a/src/main/java/org/olat/core/util/coordinate/filer/Directory.java b/src/main/java/org/olat/core/util/coordinate/filer/Directory.java
deleted file mode 100644
index 6d3147c1842a369216cb3648d88c73331a55a796..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/core/util/coordinate/filer/Directory.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.  
-* <p>
-*/ 
-package org.olat.core.util.coordinate.filer;
-
-import java.io.File;
-
-import org.olat.core.id.OLATResourceable;
-
-/**
- * Description:<br>
- * This class represents a space to read and save data.
- * A directory
- * 
- * <P>
- * Initial Date:  09.11.2007 <br>
- * @author Felix Jost, http://www.goodsolutions.ch
- */
-public interface Directory {
-	
-	/**
-	 * returns a Directory object which represents the complete namespace reached.
-	 * e.g. <FileTransaction>.getDirectory(coursefactory.class, "coursedata").getDirectory(mycourse).getDirectory(anIdentity) is a Directory which
-	 * has a structure is meant to be for a certain course and and certain identity.<br>
-	 * <FileTransaction>.getDirectory(coursefactory.class, "coursedata").getDirectory(anIdentity).getDirectory(course) would also be possible.
-	 * <br>(the former mapping to a path ..../course_123/identity_456 and the latter to .../identity_456/course_123)<br>
-	 * Deleting a directory will delete all subdirectories created out of this Directory.
-	 * 
-	 * 
-	 * 
-	 * @param ores the olatResourceable
-	 * @return the Directory
-	 */
-	public Directory getDirectoryFor(OLATResourceable ores);
-	
-	/**
-	 * creates if needed and returns the java.io.File that is associated to the current Directory object.
-	 * In order to guarantee to the namespaces are independent of each other, it is important that the user must not use <br>
-	 * a) the absolute path of the file<br>
-	 * b) the getParent() function to obtain a parent file(name). <br>
-	 * cluster::: is this sufficient? the olat vfs could have been used here, but it first needs to be improved a bit.
-	 * 
-	 * @return the File associated with this Directory.
-	 */
-	public File getFileSystemDirectory();
-	
-	/**
-	 * deletes this directory, including all directories "below" which were created using getDirectoryFor(OLATResourceable ores).
-	 * The deletion of all data is postponed until the associated transaction is committed. In case of a rollback, nothing is done.
-	 *
-	 */
-	public void delete();
-}
diff --git a/src/main/java/org/olat/core/util/coordinate/filer/DirectoryImpl.java b/src/main/java/org/olat/core/util/coordinate/filer/DirectoryImpl.java
deleted file mode 100644
index cbd2ae257973626b6221e96545c6e00f5d2cf4b6..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/core/util/coordinate/filer/DirectoryImpl.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.  
-* <p>
-*/ 
-package org.olat.core.util.coordinate.filer;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.olat.core.id.OLATResourceable;
-import org.olat.core.logging.AssertException;
-
-/**
- * Description:<br>
- * @deprecated work in progress
- * 
- * <P>
- * Initial Date:  12.11.2007 <br>
- * @author Felix Jost, http://www.goodsolutions.ch
- */
-public class DirectoryImpl implements Directory {
-	private static final String DIR_USERSPACE = "u";
-
-	/**
-	 * true if the associated directory already existed on the filesystem before a method call on this DirectoryImpl created it.
-	 * if true, then all file operations will take effect immediately, that is, the operations cannot take part in a transaction.
-	 * The idea behind is that only newly created directories can be committed or rollbacked since only those are exclusively owned by this
-	 * DirectoryImpl.
-	 */
-	private boolean realDirExisted;
-	
-	/**
-	 * true if !realDirExisted and later call to getFileSystemDirectory() of this directory or any child directory 
-	 * caused the directory to be created 
-	 * (although it is a temporary directory in the same folder as the "real" one. the temp dir will be changed 
-	 * (renamed) to the "real" one at commit time.
-	 * 
-	 */
-	private boolean realDirCreated = false;
-
-	/**
-	 * the parent of this DirectoryImpl, used to prepare the real filesystem directory creation
-	 */
-	private final DirectoryImpl parent;
-
-	/**
-	 * reference to the impl of the Filer, for helper calls
-	 */
-	private FilerImpl filerImpl; 
-	
-	/**
-	 * the children: a map with derived olatresourceables' strings as keys and directoryimpls as children.
-	 */
-	private Map<String, DirectoryImpl> childrenDirs = new HashMap<String, DirectoryImpl>();
-	
-	/**
-	 * ref to the created userSpaceDir
-	 */
-	private transient File userSpaceDir = null;
-
-	private final File fsDir;
-	
-	private long uidForChildren;
-	
-	/**
-	 * 
-	 * @param parent
-	 * @param filerImpl
-	 */
-	DirectoryImpl(DirectoryImpl parent, File fsDir, boolean realDirExisting) {
-		this.parent = parent;
-		this.fsDir = fsDir;
-		uidForChildren = System.currentTimeMillis();
-	}
-	
-	
-	public void delete() {
-		//
-	}
-
-	/* (non-Javadoc)
-	 * @see org.olat.core.util.coordinate.filer.Directory#getDirectoryFor(org.olat.core.id.OLATResourceable)
-	 */
-	public Directory getDirectoryFor(OLATResourceable ores) {
-		String fsChildName = createFileSystemSafeStringRepresenting(ores);
-		DirectoryImpl child;
-		synchronized (childrenDirs) {
-			// either create or lookup the entry
-			child = childrenDirs.get(fsChildName);
-			if (child == null) {
-				File childDir = new File(fsDir, "d"+fsChildName);
-				// if child file does exist, it has been accessed earlier.
-				boolean childExistedBefore = childDir.exists();
-				if (childExistedBefore) {
-					// don't take part in a transaction - simply pass on the real dir
-					child = new DirectoryImpl(this, childDir, true);
-				} else {
-					// not made yet - create a temp dir
-					//
-					String nodeId = "1";
-					long uid = uidForChildren++;
-					File tmpChildDir = new File(fsDir, "t"+nodeId+"_"+uid+"_"+fsChildName);
-					if (tmpChildDir.exists()) {
-						//
-						// another thread concurrently 
-					}
-					//if (!tmpChildDir.mkdir();
-					//childDir.mkdir(); // the invariant here is that parent directories have already been created.
-					child = new DirectoryImpl(this, tmpChildDir, false);
-				}
-				childrenDirs.put(fsChildName, child);
-			}
-		}
-		return child; 
-	}
-
-
-
-	/* (non-Javadoc)
-	 * @see org.olat.core.util.coordinate.filer.Directory#getFileSystemDirectory()
-	 */
-	public File getFileSystemDirectory() {
-		synchronized(this) {
-			if (!realDirCreated) {
-				// make sure the filesystem directory exists.
-				File parentDir = doCreateDir();
-				userSpaceDir = new File(parentDir, DIR_USERSPACE);
-				realDirCreated = true;
-			}
-			return userSpaceDir;			
-		}
-	}
-	
-	
-	/**
-	 * creates the filesystem directory associated with this Directory object.
-	 * the fs directory has the following structure.<br>
-	 * . this directory<br>
-	 * ./u the directory made available to the user (= the user calling getFileSystemDirectory())<br>
-	 * ./dX, one per created child (after commit), with each X being a String made of [a-z0-9_] which represents the olatresourceable of the child Directory.
-	 * ./tX, one per created child (while the transaction is in progress), with each X being a String which is unique at least within 
-	 * this directory and contains<br>
-	 * - the nodeId of the cluster (so the jvm knows which temp files to clean when booting)<br>
-	 * - a directory-wide unique and recalcalutable id (the olatresourceable with a prefix is used)<br>
-	 * The temp files will be cleared upon rollback and/or on startup of the jvm (to delete those files that were left during a transaction with a jvm crash).
-	 * the clearing process may even run asynchronously in order to not prolong the startup time - in order to not delete newly created temp files, the dir.lastModified
-	 * property is used (only deleting temp files which were created in the past)
-	 * @return
-	 */
-	File doCreateDir() {
-		// creates the directory in the filesystem.
-		// 1. make sure that parent directory is created
-		if (parent == null) throw new AssertException("cannot create files on the root node!");
-		File myDir = null; //parent.doCreateDir(this);		
-		// and return this directory
-		return myDir;
-	}
-	
-	/**
-	 * converts a olatresourceable to a file system safe string.<br>
-	 * Precondition: ores.getResourceableTypeName() only contains characters [a-z.@]
-	 * 
-	 * @param ores the olatresourceable to convert
-	 * @return the created string
-	 */
-	private String createFileSystemSafeStringRepresenting(OLATResourceable ores) {
-		return ores.getResourceableTypeName()+"_"+ores.getResourceableId();
-	}
-
-}
diff --git a/src/main/java/org/olat/core/util/coordinate/filer/FileTransaction.java b/src/main/java/org/olat/core/util/coordinate/filer/FileTransaction.java
deleted file mode 100644
index bc83fbd910b381cf866155f0d8beceec4f40bf6d..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/core/util/coordinate/filer/FileTransaction.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.  
-* <p>
-*/ 
-package org.olat.core.util.coordinate.filer;
-
-/**
- * Description:<br>
- * A fileTransaction is a unit of work which can be committed or rolled back. <br>
- * the work can consist of<br>
- * a) creating directories and putting files and subdirectories in it.<br>
- * or <br>
- * b) deleting directories (including recursively deleting subfiles and directories)<br>
- * <br><br>
- * Note: only directories that did not exist "in reality" can be rolled back, that is, only the creation of new directories is rollbackable,
- * not the adding of new files to existing directories.
- * <P>
- * Initial Date:  09.11.2007 <br>
- * @author Felix Jost, http://www.goodsolutions.ch
- */
-public interface FileTransaction {
-	/**
-	 * 
-	 * creates or returns a Directory representing a node/folder in the filesystem
-	 * 
-	 * @param ownerClass the manager class that is responsible for encapsulating -all- access to -all- files and folders which belong to the
-	 * Directory (most often mapped by impls to a path such as /usr/local/olatdata/org.olat.MyManager_mysubnamespace/)
-	 * @param subnamespace optional. subnamespace if more than one Directory is required for the same ownerClass. use only [a-z0-9] characters.
-	 * @return the Directory associated with the ownerClass and the subnamespace
-	 */
-	public Directory getDirectory(Class ownerClass, String subnamespace) ;
-	
-	/**
-	 * commits the current transaction, which means that 
-	 * a) all Directories which reality-counterpart did not existed until now are now created (by renaming tmpfiles to the real names)<br>
-	 * b) all deletes of directories are performed
-	 *
-	 */
-	public void commit();
-	
-	/**
-	 * rolls back the current transaction, which means that <br>
-	 * a) deletion of directories will not be performed
-	 * b) tmp files will be deleted right now (or, if the vm crashes, upon restart of the vm)
-	 *
-	 */
-	public void rollback();
-}
diff --git a/src/main/java/org/olat/core/util/coordinate/filer/FilerImpl.java b/src/main/java/org/olat/core/util/coordinate/filer/FilerImpl.java
deleted file mode 100644
index 88ee8b002cc0c6f0446de64254d217d5aa31b02a..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/core/util/coordinate/filer/FilerImpl.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
-* OLAT - Online Learning and Training<br>
-* http://www.olat.org
-* <p>
-* Licensed under the Apache License, Version 2.0 (the "License"); <br>
-* you may not use this file except in compliance with the License.<br>
-* You may obtain a copy of the License at
-* <p>
-* http://www.apache.org/licenses/LICENSE-2.0
-* <p>
-* Unless required by applicable law or agreed to in writing,<br>
-* software distributed under the License is distributed on an "AS IS" BASIS, <br>
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
-* See the License for the specific language governing permissions and <br>
-* limitations under the License.
-* <p>
-* Copyright (c) since 2004 at Multimedia- & E-Learning Services (MELS),<br>
-* University of Zurich, Switzerland.
-* <hr>
-* <a href="http://www.openolat.org">
-* OpenOLAT - Online Learning and Training</a><br>
-* This file has been modified by the OpenOLAT community. Changes are licensed
-* under the Apache 2.0 license as the original file.  
-* <p>
-*/ 
-package org.olat.core.util.coordinate.filer;
-
-import org.olat.core.id.OLATResourceable;
-import org.olat.core.util.coordinate.Filer;
-
-/**
- * Description:<br>
- * an implementation of the Filer, for both singleVm and cluster mode.
- * @deprecated work in progress
- * 
- * <P>
- * Initial Date:  12.11.2007 <br>
- * @author Felix Jost, http://www.goodsolutions.ch
- */
-public class FilerImpl implements Filer {
-
-	private String rootDir; // the path to the root directory of all data for the filer, e.g. c:/olatdata/newroot
-	
-	public FileTransaction getCurrentFileTransaction() {
-		return null;
-	}
-	
-	/**
-	 * [called by spring]
-	 *
-	 */
-	public void init() {
-		//
-	}
-
-	String getRootDir() {
-		return rootDir;
-	}
-
-	/**
-	 * [used by spring]
-	 * @param rootDir
-	 */
-	public void setRootDir(String rootDir) {
-		this.rootDir = rootDir;
-	}
-
-
-	/**
-	 * @param ores
-	 * @return
-	 */
-	public String createTempFile(OLATResourceable ores) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-}