From 79974dc11e4d6e2826a583fcc5c6349aa579d284 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Sun, 12 May 2013 20:27:00 +0200
Subject: [PATCH] OO-592: remove tx manager annotations scanner, move
 configurations in resources/serviceconfig to java/... where they are needed,
 use import instead of the *Context.xml which allow deployment on weblogic and
 some others small fixes

---
 src/main/java/de/bps/_spring/bpsContext.xml   |  21 ++
 .../nodes/vc/provider/VCProviderFactory.java  |   2 +-
 .../org/olat/_spring/extensionContext.xml     |   2 +-
 .../java/org/olat/_spring/mainContext.xml     |  55 +++++
 .../org/olat/admin/_spring/adminContext.xml   |  31 +--
 .../org/olat/admin/jmx/_spring/jmxContext.xml |  53 ++++-
 .../cluster/_spring/coordinateContext.xml     |  55 +++++
 .../_spring/coordinate_jms_activemq.xml}      |   0
 .../cluster/_spring/coordinate_jms_jndi.xml}  |   0
 .../cluster/lock/ClusterLocker.java           |  17 +-
 .../servlets/_spring/staticContext.xml        |   2 +-
 .../servlets/_spring/webdavManagerContext.xml |  15 --
 .../java/org/olat/core/CoreSpringFactory.java |  96 +++++++++
 .../org/olat/core/_spring/mainCorecontext.xml |  41 +++-
 .../bc/_spring/folderModuleCorecontext.xml    |   4 +-
 .../scheduler/_spring/schedulerContext.xml}   |   0
 .../webdav}/_spring/webdavContext.xml         |   9 +-
 .../dispatcher/_spring/dispatcherContext.xml} |  16 +-
 .../richText/_spring/richTextCorecontext.xml  |   0
 .../control/_spring/fullWebAppContext.xml}    |   2 +-
 .../gui/control}/_spring/portalContext.xml    |   2 +-
 .../gui/control}/_spring/sitedefContext.xml   |   2 +-
 .../core/util/_spring/utilCorecontext.xml     | 185 ++++++++++++++++-
 .../coordinate/DBPersistentLockManager.java   |  10 +-
 .../org/olat/course/_spring/courseContext.xml |  17 +-
 .../group/_spring/businessGroupContext.xml    |   8 +-
 .../org/olat/ims/cp/_spring/cpContext.xml     |   9 +-
 .../_spring/instantMessagingContext.xml       |  10 +-
 .../olat/modules/_spring/modulesContext.xml   |  15 +-
 .../_spring/notificationsContext.xml}         | 105 ++++------
 .../repository/_spring/repositoryContext.xml  |  29 +++
 .../service/_spring/repoDeletionContext.xml   |  46 -----
 .../olat/resource/_spring/resourceContext.xml |   6 +-
 .../accesscontrol/_spring/acContext.xml       |   5 +-
 .../org/olat/search/_spring/searchContext.xml |   8 +-
 .../org/olat/user/_spring/userContext.xml     |  27 ++-
 src/main/resources/cleanupCode.sh             |   4 -
 .../resources/serviceconfig/brasatoconfig.xml | 106 ----------
 .../org/olat/core/_spring/olatcoreconfig.xml  | 188 ------------------
 .../_spring/olatdefaultconfig.xml             |  48 -----
 src/main/webapp-gae/WEB-INF/web.xml           |  42 +---
 src/main/webapp-jbossas7/WEB-INF/web.xml      |  42 +---
 src/main/webapp-tomcat/WEB-INF/web.xml        |  43 +---
 src/test/java/org/olat/test/OlatTestCase.java |  32 +--
 44 files changed, 692 insertions(+), 718 deletions(-)
 create mode 100644 src/main/java/de/bps/_spring/bpsContext.xml
 rename src/main/{resources/serviceconfig => java}/org/olat/_spring/extensionContext.xml (99%)
 create mode 100644 src/main/java/org/olat/_spring/mainContext.xml
 create mode 100644 src/main/java/org/olat/commons/coordinate/cluster/_spring/coordinateContext.xml
 rename src/main/{resources/serviceconfig/org/olat/core/_spring/olatcorejms_activemq.xml => java/org/olat/commons/coordinate/cluster/_spring/coordinate_jms_activemq.xml} (100%)
 rename src/main/{resources/serviceconfig/org/olat/core/_spring/olatcorejms_jndi.xml => java/org/olat/commons/coordinate/cluster/_spring/coordinate_jms_jndi.xml} (100%)
 delete mode 100644 src/main/java/org/olat/commons/servlets/_spring/webdavManagerContext.xml
 rename src/main/{resources/serviceconfig/org/olat/core/commons/scheduler/_spring/olatextconfig.xml => java/org/olat/core/commons/scheduler/_spring/schedulerContext.xml} (100%)
 rename src/main/{resources/serviceconfig/org/olat => java/org/olat/core/commons/services/webdav}/_spring/webdavContext.xml (83%)
 rename src/main/{resources/serviceconfig/org/olat/_spring/brasatoconfigpart.xml => java/org/olat/core/dispatcher/_spring/dispatcherContext.xml} (92%)
 rename src/main/{resources/serviceconfig => java}/org/olat/core/gui/components/form/flexible/impl/elements/richText/_spring/richTextCorecontext.xml (100%)
 rename src/main/{resources/serviceconfig/org/olat/core/_spring/mainCorecontext.xml => java/org/olat/core/gui/control/_spring/fullWebAppContext.xml} (98%)
 rename src/main/{resources/serviceconfig/org/olat => java/org/olat/core/gui/control}/_spring/portalContext.xml (99%)
 rename src/main/{resources/serviceconfig/org/olat => java/org/olat/core/gui/control}/_spring/sitedefContext.xml (96%)
 rename src/main/{resources/serviceconfig/org/olat/_spring/olatextconfig.xml => java/org/olat/notifications/_spring/notificationsContext.xml} (58%)
 delete mode 100644 src/main/java/org/olat/repository/delete/service/_spring/repoDeletionContext.xml
 delete mode 100644 src/main/resources/cleanupCode.sh
 delete mode 100644 src/main/resources/serviceconfig/brasatoconfig.xml
 delete mode 100644 src/main/resources/serviceconfig/org/olat/core/_spring/olatcoreconfig.xml
 delete mode 100644 src/main/resources/serviceconfig/org/olat/notifications/_spring/olatdefaultconfig.xml

diff --git a/src/main/java/de/bps/_spring/bpsContext.xml b/src/main/java/de/bps/_spring/bpsContext.xml
new file mode 100644
index 00000000000..9e967dcf8d8
--- /dev/null
+++ b/src/main/java/de/bps/_spring/bpsContext.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="
+  http://www.springframework.org/schema/beans 
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
+  
+	<import resource="classpath:/de/bps/course/assessment/_spring/assessmentContext.xml"/>
+	<import resource="classpath:/de/bps/course/nodes/cl/_spring/buildingblockContext.xml"/>
+	<import resource="classpath:/de/bps/course/nodes/den/_spring/buildingblockContext.xml"/>
+	<import resource="classpath:/de/bps/course/nodes/ll/_spring/buildingblockContext.xml"/>
+	<import resource="classpath:/de/bps/course/nodes/vc/_spring/buildingblockContext.xml"/>
+	<import resource="classpath:/de/bps/course/nodes/vc/_spring/vcContext.xml"/>
+	<import resource="classpath:/de/bps/course/nodes/vc/provider/adobe/_spring/adobeContext.xml"/>
+	<import resource="classpath:/de/bps/course/nodes/vc/provider/wimba/_spring/wimbaContext.xml"/>
+	<import resource="classpath:/de/bps/olat/user/_spring/changeEmailContext.xml"/>
+	<import resource="classpath:/de/bps/onyx/plugin/_spring/onyxContext.xml"/>
+	<import resource="classpath:/de/bps/security/_spring/sslContext.xml"/>
+	<import resource="classpath:/de/bps/webservices/_spring/webservicesContext.xml"/>
+  
+</beans>
\ No newline at end of file
diff --git a/src/main/java/de/bps/course/nodes/vc/provider/VCProviderFactory.java b/src/main/java/de/bps/course/nodes/vc/provider/VCProviderFactory.java
index 2563c8a6ad1..4af90452dac 100644
--- a/src/main/java/de/bps/course/nodes/vc/provider/VCProviderFactory.java
+++ b/src/main/java/de/bps/course/nodes/vc/provider/VCProviderFactory.java
@@ -64,7 +64,7 @@ public class VCProviderFactory {
 		_registeredProviders.put(provider.getProviderId(), provider);
 	}
 	
-	public static void setRegisteredProviders(List<VCProvider> providers) {
+	public void setRegisteredProviders(List<VCProvider> providers) {
 		for(VCProvider provider : providers) {
 			registerProvider(provider);
 		}
diff --git a/src/main/resources/serviceconfig/org/olat/_spring/extensionContext.xml b/src/main/java/org/olat/_spring/extensionContext.xml
similarity index 99%
rename from src/main/resources/serviceconfig/org/olat/_spring/extensionContext.xml
rename to src/main/java/org/olat/_spring/extensionContext.xml
index fad4b0ab537..0759fd7a702 100644
--- a/src/main/resources/serviceconfig/org/olat/_spring/extensionContext.xml
+++ b/src/main/java/org/olat/_spring/extensionContext.xml
@@ -3,7 +3,7 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
 
 	<!-- generic OLAT extensions -->
 	<bean id="extmanager" class="org.olat.core.extensions.ExtManager" />
diff --git a/src/main/java/org/olat/_spring/mainContext.xml b/src/main/java/org/olat/_spring/mainContext.xml
new file mode 100644
index 00000000000..d2310dfe2db
--- /dev/null
+++ b/src/main/java/org/olat/_spring/mainContext.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="
+  http://www.springframework.org/schema/beans 
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+	<import resource="classpath:/org/olat/core/util/threadlog/_spring/threadlogCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/_spring/mainCorecontext.xml"/>
+	<import resource="classpath:/org/olat/commons/coordinate/cluster/_spring/coordinateContext.xml"/>
+	<import resource="classpath:/org/olat/_spring/extensionContext.xml"/>
+
+	<import resource="classpath:/de/bps/_spring/bpsContext.xml"/>
+	
+	<import resource="classpath:/org/olat/modules/_spring/modulesContext.xml"/>
+
+	<import resource="classpath:/org/olat/admin/_spring/adminContext.xml"/>
+
+	<import resource="classpath:/org/olat/basesecurity/_spring/baseSecurityContext.xml"/>
+	<import resource="classpath:/org/olat/catalog/_spring/catalogContext.xml"/>
+	<import resource="classpath:/org/olat/collaboration/_spring/collaborationToolsContext.xml"/>
+	<import resource="classpath:/org/olat/commons/calendar/_spring/calendarContext.xml"/>
+	<import resource="classpath:/org/olat/commons/info/_spring/infoMessageContext.xml"/>
+	<import resource="classpath:/org/olat/commons/servlets/_spring/staticContext.xml"/>
+
+	<import resource="classpath:/org/olat/course/_spring/courseContext.xml"/>
+
+	<import resource="classpath:/org/olat/fileresource/_spring/fileresourceContext.xml"/>
+	<import resource="classpath:/org/olat/group/_spring/businessGroupContext.xml"/>
+	<import resource="classpath:/org/olat/gui/demo/_spring/guiDemoContext.xml"/>
+	<import resource="classpath:/org/olat/home/_spring/homeContext.xml"/>
+	<import resource="classpath:/org/olat/ims/cp/_spring/cpContext.xml"/>
+	<import resource="classpath:/org/olat/ims/qti/_spring/qtiContext.xml"/>
+	<import resource="classpath:/org/olat/instantMessaging/_spring/instantMessagingContext.xml"/>
+	<import resource="classpath:/org/olat/ldap/_spring/ldapContext.xml"/>
+	<import resource="classpath:/org/olat/login/_spring/loginContext.xml"/>
+	<import resource="classpath:/org/olat/note/_spring/noteContext.xml"/>
+	<import resource="classpath:/org/olat/notifications/_spring/notificationsContext.xml"/>
+	<import resource="classpath:/org/olat/portfolio/_spring/portfolioContext.xml"/>
+	<import resource="classpath:/org/olat/properties/_spring/propertiesContext.xml"/>
+	<import resource="classpath:/org/olat/registration/_spring/registrationContext.xml"/>
+	<import resource="classpath:/org/olat/repository/_spring/repositoryContext.xml"/>
+
+	<import resource="classpath:/org/olat/resource/_spring/resourceContext.xml"/>
+
+	<import resource="classpath:/org/olat/restapi/_spring/restApiContext.xml"/>
+	<import resource="classpath:/org/olat/search/_spring/searchContext.xml"/>
+	<import resource="classpath:/org/olat/shibboleth/_spring/shibbolethContext.xml"/>
+	<import resource="classpath:/org/olat/social/_spring/socialContext.xml"/>
+	<import resource="classpath:/org/olat/upgrade/_spring/databaseUpgradeContext.xml"/>
+	<import resource="classpath:/org/olat/upgrade/_spring/upgradeContext.xml"/>
+	
+	<import resource="classpath:/org/olat/user/_spring/userContext.xml"/>
+
+</beans>
diff --git a/src/main/java/org/olat/admin/_spring/adminContext.xml b/src/main/java/org/olat/admin/_spring/adminContext.xml
index b34479f6c37..ac9e7bdd712 100644
--- a/src/main/java/org/olat/admin/_spring/adminContext.xml
+++ b/src/main/java/org/olat/admin/_spring/adminContext.xml
@@ -3,20 +3,25 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
+  
+  	<import resource="classpath:/org/olat/admin/jmx/_spring/jmxContext.xml"/>
+	<import resource="classpath:/org/olat/admin/registration/_spring/registrationContext.xml"/>
+	<import resource="classpath:/org/olat/admin/sysinfo/_spring/sysinfoContext.xml"/>
+	<import resource="classpath:/org/olat/admin/user/delete/service/_spring/deletionContext.xml"/>
 
-<bean id="adminModule" class="org.olat.admin.AdminModule">
-<constructor-arg index="0" ref="propertyManager" />
-<property name="persistedProperties">
-  <bean class="org.olat.core.configuration.PersistedProperties" scope="prototype" init-method="init" destroy-method="destroy">
-    <constructor-arg index="0" ref="coordinatorManager"/>
-    <constructor-arg index="1" ref="adminModule" />
-  </bean>
-</property>	
-</bean>
+	<bean id="adminModule" class="org.olat.admin.AdminModule">
+		<constructor-arg index="0" ref="propertyManager" />
+		<property name="persistedProperties">
+			<bean class="org.olat.core.configuration.PersistedProperties" scope="prototype" init-method="init" destroy-method="destroy">
+				<constructor-arg index="0" ref="coordinatorManager"/>
+				<constructor-arg index="1" ref="adminModule" />
+			</bean>
+		</property>	
+	</bean>
                        
-       <bean  class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
-        <property name="targetObject" ref="adminModule" />
+	<bean  class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+		<property name="targetObject" ref="adminModule" />
         <property name="targetMethod" value="init" />
         <property name="arguments">
         			<!-- Important: Set tomcats policy to allow read/write access to Root and TmpDir  -->
@@ -30,6 +35,6 @@
 	                    maxNumberOfSessions=0
 	                </value>
 	     </property>
-</bean>
+	</bean>
 
 </beans>
\ No newline at end of file
diff --git a/src/main/java/org/olat/admin/jmx/_spring/jmxContext.xml b/src/main/java/org/olat/admin/jmx/_spring/jmxContext.xml
index 4ff27eebb2b..6550f052a7c 100644
--- a/src/main/java/org/olat/admin/jmx/_spring/jmxContext.xml
+++ b/src/main/java/org/olat/admin/jmx/_spring/jmxContext.xml
@@ -1,15 +1,54 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xmlns:context="http://www.springframework.org/schema/context" 
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
-  http://www.springframework.org/schema/context 
-  http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
 
-<bean id="jmxManager" class="org.olat.admin.jmx.JMXManager" >
-	<constructor-arg ref="org.springframework.jmx.support.MBeanServerFactoryBean" />
-</bean>
+	<bean id="jmxManager" class="org.olat.admin.jmx.JMXManager" >
+		<constructor-arg ref="org.springframework.jmx.support.MBeanServerFactoryBean" />
+	</bean>
+
+	<bean id="org.springframework.jmx.support.MBeanServerFactoryBean" class="org.springframework.jmx.support.MBeanServerFactoryBean">
+		<property name="locateExistingServerIfPossible" value="true" />
+	</bean>
+	
+	<bean id="registry" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean" lazy-init="true">
+	  <property name="port" value="${jmx.rmi.port}"/>
+	</bean>	
+	
+	<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false" >
+    	<property name="beans">
+			<map>
+				<entry key="org.olat.admin.jmx.datasources:name=ThreadAndControllerInfo">
+					<bean class="org.olat.admin.jmx.datasources.ThreadAndControllerInfo" />
+				</entry>
+				<entry key="org.olat.admin:name=AdminModule" value-ref="adminModule" />
+				<entry key="org.olat.core.commons.modules.bc:name=FilesInfoMBean" >
+					<ref bean="org.olat.core.commons.modules.bc.FilesInfoMBean"/>
+				</entry>
+			</map>
+		</property>
+		<property name="server" ref="org.springframework.jmx.support.MBeanServerFactoryBean"/>
+	</bean>
+
+<!--  DISABLE JMX CONNECTOR	
+    <bean id="serverConnector"
+	      class="org.springframework.jmx.support.ConnectorServerFactoryBean" depends-on="registry">
+		<property name="objectName" value="connector:name=rmi"/>
+		<property name="serviceUrl" 
+	            value="service:jmx:rmi://localhost/jndi/rmi://localhost:${jmx.rmi.port}/olat_connector"/>
+	    <property name="daemon" value="true"/>
+		<property name="environment">
+-->
+			 <!-- the following is only valid when the sun jmx implementation is used --> 
+<!--  DISABLE JMX CONNECTOR	
+   			<map>
+  				<entry key="jmx.remote.x.password.file" value="/usr/local/opt/java/jre/lib/management/jmxremote.password"/>
+				<entry key="jmx.remote.x.access.file" value="/usr/local/opt/java/jre/lib/management/jmxremote.access"/>
+			</map>
+		</property>
+	</bean>
+-->
 
 </beans>
diff --git a/src/main/java/org/olat/commons/coordinate/cluster/_spring/coordinateContext.xml b/src/main/java/org/olat/commons/coordinate/cluster/_spring/coordinateContext.xml
new file mode 100644
index 00000000000..b88f9559b78
--- /dev/null
+++ b/src/main/java/org/olat/commons/coordinate/cluster/_spring/coordinateContext.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="
+  http://www.springframework.org/schema/beans 
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
+  
+	<bean id="persistentLockManager" class="org.olat.core.util.coordinate.DBPersistentLockManager"/>  
+
+	<bean id="org.olat.commons.coordinate.cluster.ClusterConfig" class="org.olat.core.util.cluster.ClusterConfig">
+		<!-- nodeId must be a cluster-wide unique integer between 1 and 63 -->
+		<property name="nodeId" value="${node.id}" />
+	</bean>
+
+	<bean id="coordinatorManager" class="org.olat.core.util.coordinate.CoordinatorManagerImpl">
+		<property name="coordinator" ref="org.olat.core.util.coordinate.ClusterCoordinator"/>
+	</bean>
+
+	<bean id="org.olat.core.util.coordinate.ClusterCoordinator" 
+		class="org.olat.commons.coordinate.cluster.ClusterCoordinator" lazy-init="true">
+		<property name="locker" ref="clusterLocker" />
+		<property name="clusterConfig" ref="org.olat.commons.coordinate.cluster.ClusterConfig" />
+		<property name="syncer" ref="org.olat.commons.coordinate.cluster.ClusterSyncer" />
+		<property name="eventBus" ref="org.olat.commons.coordinate.cluster.jms.ClusterEventBus" />
+		<property name="cacher" ref="infinispanCacher"/>
+	</bean>
+
+	<bean id="clusterLocker" class="org.olat.commons.coordinate.cluster.lock.ClusterLocker" init-method="init">
+		<constructor-arg index="0" ref="clusterLockManager" />
+		<property name="syncer" ref="org.olat.commons.coordinate.cluster.ClusterSyncer" />
+		<property name="eventBus" ref="org.olat.commons.coordinate.cluster.jms.ClusterEventBus" />
+		<property name="persistentLockManager" ref="persistentLockManager"/>
+	</bean>
+	
+	<bean id="org.olat.commons.coordinate.cluster.ClusterSyncer" class="org.olat.commons.coordinate.cluster.ClusterSyncer" >
+		<constructor-arg index="0" ref="lockManager" />
+		<!-- if the ClusterSyncer is on debug level and if a sync takes longer than the given threshhold in miliseconds, then a warn message is written into the log -->
+		<property name="executionTimeThreshold" value="1000" />
+		<property name="dbInstance" ref="database"></property>
+	</bean>
+
+	<bean id="org.olat.commons.coordinate.cluster.jms.ClusterEventBus" class="org.olat.commons.coordinate.cluster.jms.ClusterEventBus" 
+		init-method="springInit" destroy-method="stop" lazy-init="true">
+		<property name="clusterConfig"     ref="org.olat.commons.coordinate.cluster.ClusterConfig" />
+		<property name="connectionFactory" ref="jmsConnectionFactory"/>
+		<property name="destination"       ref="sysbus.topic"/>
+		<property name="sendInterval"      value="15000" />
+		<property name="jmsMsgDelayLimit"  value="5000" />
+	</bean>
+
+	<bean id="clusterLockManager" class="org.olat.commons.coordinate.cluster.lock.ClusterLockManager"/>
+
+	<import resource="classpath:/org/olat/commons/coordinate/cluster/_spring/coordinate_jms_${jms.provider}.xml"/>
+
+</beans>	
\ No newline at end of file
diff --git a/src/main/resources/serviceconfig/org/olat/core/_spring/olatcorejms_activemq.xml b/src/main/java/org/olat/commons/coordinate/cluster/_spring/coordinate_jms_activemq.xml
similarity index 100%
rename from src/main/resources/serviceconfig/org/olat/core/_spring/olatcorejms_activemq.xml
rename to src/main/java/org/olat/commons/coordinate/cluster/_spring/coordinate_jms_activemq.xml
diff --git a/src/main/resources/serviceconfig/org/olat/core/_spring/olatcorejms_jndi.xml b/src/main/java/org/olat/commons/coordinate/cluster/_spring/coordinate_jms_jndi.xml
similarity index 100%
rename from src/main/resources/serviceconfig/org/olat/core/_spring/olatcorejms_jndi.xml
rename to src/main/java/org/olat/commons/coordinate/cluster/_spring/coordinate_jms_jndi.xml
diff --git a/src/main/java/org/olat/commons/coordinate/cluster/lock/ClusterLocker.java b/src/main/java/org/olat/commons/coordinate/cluster/lock/ClusterLocker.java
index 77203947623..94266cf71e6 100644
--- a/src/main/java/org/olat/commons/coordinate/cluster/lock/ClusterLocker.java
+++ b/src/main/java/org/olat/commons/coordinate/cluster/lock/ClusterLocker.java
@@ -41,6 +41,7 @@ import org.olat.core.util.coordinate.LockEntry;
 import org.olat.core.util.coordinate.LockResult;
 import org.olat.core.util.coordinate.LockResultImpl;
 import org.olat.core.util.coordinate.Locker;
+import org.olat.core.util.coordinate.PersistentLockManager;
 import org.olat.core.util.coordinate.Syncer;
 import org.olat.core.util.coordinate.SyncerCallback;
 import org.olat.core.util.event.EventBus;
@@ -59,13 +60,13 @@ import org.olat.resource.lock.pessimistic.PessimisticLockManager;
  */
 // Must be abstract because Spring configuration of method 'getPersistentLockManager' :
 // to avoid circular reference method lookup is used for dependecy injection of persistent lock manager
-public abstract class ClusterLocker implements Locker, GenericEventListener {
+public class ClusterLocker implements Locker, GenericEventListener {
 	private static final OLog log = Tracing.createLoggerFor(ClusterLocker.class);
 
 	private Syncer syncer;
 	private EventBus eventBus;
 	private ClusterLockManager clusterLockManager;
-	
+	private PersistentLockManager persistentLockManager;
 	/**
 	 * [used by spring]
 	 *
@@ -84,10 +85,18 @@ public abstract class ClusterLocker implements Locker, GenericEventListener {
 		eventBus.registerFor(this, null,
 				OresHelper.createOLATResourceableType(UserSession.class));
 	}
+
 	
 	//cluster:::::: on init of olat system, clear all locks?? but only the one from node in question?
-	
-	
+
+	public PersistentLockManager getPersistentLockManager() {
+		return persistentLockManager;
+	}
+
+	public void setPersistentLockManager(PersistentLockManager persistentLockManager) {
+		this.persistentLockManager = persistentLockManager;
+	}
+
 	public LockResult acquireLock(final OLATResourceable ores, final Identity requestor, final String locksubkey) {
 		final String asset = OresHelper.createStringRepresenting(ores, locksubkey);
 		
diff --git a/src/main/java/org/olat/commons/servlets/_spring/staticContext.xml b/src/main/java/org/olat/commons/servlets/_spring/staticContext.xml
index 69c0e5f65db..0e96f46a037 100644
--- a/src/main/java/org/olat/commons/servlets/_spring/staticContext.xml
+++ b/src/main/java/org/olat/commons/servlets/_spring/staticContext.xml
@@ -3,7 +3,7 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
 
 <!-- legacy, to be removed -->
 <bean id="staticsModule" class="org.olat.commons.servlets.StaticsModule" 
diff --git a/src/main/java/org/olat/commons/servlets/_spring/webdavManagerContext.xml b/src/main/java/org/olat/commons/servlets/_spring/webdavManagerContext.xml
deleted file mode 100644
index b804d742ea9..00000000000
--- a/src/main/java/org/olat/commons/servlets/_spring/webdavManagerContext.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="
-  http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
-
-<bean id="webDAVManager" class="org.olat.commons.servlets.WebDAVManagerImpl" >
-	<constructor-arg ref="coordinatorManager"/>
-	<!-- set to false to disable the WebDAV support and remove the WebDAV Link from the GUI -->
-	<property name="enabled" value="${webdav.links.enabled}" />
-	<property name="sessionManager" ref="userSessionManager" />
-</bean>  
-                       
-</beans>
diff --git a/src/main/java/org/olat/core/CoreSpringFactory.java b/src/main/java/org/olat/core/CoreSpringFactory.java
index ec0bac7cace..8d0148d5a2e 100644
--- a/src/main/java/org/olat/core/CoreSpringFactory.java
+++ b/src/main/java/org/olat/core/CoreSpringFactory.java
@@ -224,4 +224,100 @@ public class CoreSpringFactory implements ServletContextAware, BeanFactoryAware
 	public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
 		CoreSpringFactory.beanFactory = (DefaultListableBeanFactory) beanFactory;
 	}
+	
+	/*
+	public static void createGraph() {
+		XmlWebApplicationContext context = (XmlWebApplicationContext)WebApplicationContextUtils.getWebApplicationContext(CoreSpringFactory.servletContext);
+		ConfigurableListableBeanFactory factory = context.getBeanFactory();
+  	StringBuilder sb = new StringBuilder();
+		
+		Map<String,BeanDefinition> beans = new HashMap<String,BeanDefinition>();
+    List<String> beanNames = Arrays.asList(factory.getBeanDefinitionNames());
+    for (String name : beanNames) {
+    	BeanDefinition def = factory.getBeanDefinition(name);
+    	beans.put(name, def);
+
+			sb.append("****").append(name).append("\n");
+			if("businessGroupService".equals(name)) {
+    		System.out.println("BGS: " + name);
+			}
+
+    	ConstructorArgumentValues ctorArgs = def.getConstructorArgumentValues();
+    	for (ValueHolder valHolder : ctorArgs.getGenericArgumentValues()) {
+    		Object value = valHolder.getValue();
+    		System.out.println("Val: " + value);
+    		sb.append(valHolder.getName() != null ? valHolder.getName():"");
+    		if( valHolder.getValue() instanceof RuntimeBeanReference ) {
+    			RuntimeBeanReference ref = (RuntimeBeanReference)valHolder.getValue();
+    			sb.append("C: ref("+makeLabel(ref.getBeanName())+")");
+    		}
+    	}
+ 
+    	MutablePropertyValues props = def.getPropertyValues();
+    	for (PropertyValue propVal : props.getPropertyValueList()) {
+    		//checkReferences(name, propVal.getValue());
+    		if( propVal.getValue() instanceof RuntimeBeanReference ) {
+    			RuntimeBeanReference ref = (RuntimeBeanReference)propVal.getValue();
+    			sb.append(propVal.getName()+": ref("+makeLabel(ref.getBeanName())+")\n");
+    		} else if(propVal.getValue() instanceof BeanDefinitionHolder) {
+    			BeanDefinitionHolder holder = (BeanDefinitionHolder) propVal.getValue();
+    			String facBean = holder.getBeanDefinition().getFactoryBeanName();
+    			if( facBean != null ) {
+    				sb.append(propVal.getName()+": fac("+makeLabel(facBean)+")\n");
+    			}
+    		}
+    	}
+    	
+    	try {
+				String className = def.getBeanClassName();
+				Class<?> clazz = Class.forName(className);
+				Object obj = clazz.getAnnotation(Service.class);
+				boolean isService = obj != null;
+	    	
+	    	if(def instanceof AnnotatedBeanDefinition) {
+	    		
+						Field[] fields = clazz.getDeclaredFields();
+						for(Field field:fields) {
+							Annotation[] annotations = field.getAnnotations();
+							for(Annotation annotation:annotations) {
+								if(Autowired.class.equals(annotation.annotationType())) {
+									
+									Class<?> impl = field.getType();
+									sb.append("->").append(impl.getSimpleName()).append("\n");
+								}
+							}
+						}
+	
+						Annotation[] annotations = clazz.getAnnotations();
+						for(Annotation annotation:annotations) {
+							
+							if(Autowired.class.equals(annotation.annotationType())) {
+								//System.out.println("Found");
+								if(!isService) {
+
+									System.out.println("BGS: " + className);
+									
+								}
+							}
+						}
+						
+						AnnotatedBeanDefinition adef = (AnnotatedBeanDefinition)def;
+						AnnotationMetadata metadata = adef.getMetadata();
+						Set<String> types = metadata.getAnnotationTypes();
+						if(types != null && !types.isEmpty()) {
+							//System.out.println("BGS: " + types);
+						}
+					
+	    	}
+    	} catch (Exception e) {
+				e.printStackTrace();
+			}
+    }
+    //System.out.println(sb.toString());
+	}
+	
+	private static String makeLabel(String in) {
+		int i = in.lastIndexOf(".");
+		return i==-1?in:in.substring(i+1);
+	 }*/
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/_spring/mainCorecontext.xml b/src/main/java/org/olat/core/_spring/mainCorecontext.xml
index 207a089ead8..08d9399f8a1 100644
--- a/src/main/java/org/olat/core/_spring/mainCorecontext.xml
+++ b/src/main/java/org/olat/core/_spring/mainCorecontext.xml
@@ -2,20 +2,49 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xmlns:context="http://www.springframework.org/schema/context"
-	xmlns:tx="http://www.springframework.org/schema/tx"
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
+  http://www.springframework.org/schema/beans/spring-beans.xsd 
   http://www.springframework.org/schema/context 
-  http://www.springframework.org/schema/context/spring-context-3.0.xsd
-  http://www.springframework.org/schema/tx
-  http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
+  http://www.springframework.org/schema/context/spring-context.xsd">
   
 	<context:component-scan base-package="org.olat.core.dispatcher.mapper" />
-	<tx:annotation-driven transaction-manager="txManager"/>
 
 	<bean id="coreSpringFactory" class="org.olat.core.CoreSpringFactory" />
 	
+	<import resource="classpath:/org/olat/core/id/context/_spring/historyCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/util/vfs/version/_spring/versioningCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/util/i18n/_spring/i18nCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/util/_spring/utilCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/util/i18n/devtools/_spring/devtoolsCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/util/event/_spring/frameworkStartedEventCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/util/mail/_spring/mailContext.xml"/>
+	<import resource="classpath:/org/olat/core/commons/scheduler/_spring/schedulerContext.xml"/>
+	<import resource="classpath:/org/olat/core/commons/controllers/resume/_spring/resumeCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/commons/controllers/impressum/_spring/impressumContext.xml"/>
+	<import resource="classpath:/org/olat/core/commons/persistence/_spring/databaseCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/commons/taskExecutor/_spring/taskExecutorCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/commons/fullWebApp/util/_spring/StickyMessageCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/commons/modules/bc/_spring/folderModuleCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/commons/modules/glossary/_spring/glossaryCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/commons/modules/bc/meta/_spring/metaInfoFileContext.xml"/>
+	<import resource="classpath:/org/olat/core/commons/contextHelp/_spring/contextHelpCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/logging/_spring/loggingCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/logging/activity/_spring/activityCorecontext.xml"/>
+	
+	<import resource="classpath:/org/olat/core/dispatcher/_spring/dispatcherContext.xml"/>
+	<import resource="classpath:/org/olat/core/gui/control/_spring/fullWebAppContext.xml"/>
+	<import resource="classpath:/org/olat/core/gui/control/_spring/sitedefContext.xml"/>
+	<import resource="classpath:/org/olat/core/gui/control/_spring/portalContext.xml"/>
+	<import resource="classpath:/org/olat/core/gui/components/form/flexible/impl/elements/richText/_spring/richTextCorecontext.xml"/> 
+	
+	<import resource="classpath:/org/olat/core/commons/services/_spring/servicesCorecontext.xml"/>
+	<import resource="classpath:/org/olat/core/commons/services/tagging/_spring/taggingContext.xml"/>
+	<import resource="classpath:/org/olat/core/commons/services/thumbnail/_spring/thumbnailserviceContext.xml"/>
+	<import resource="classpath:/org/olat/core/commons/services/webdav/_spring/webdavContext.xml"/>
+
+	<bean class="org.olat.core.gui.render.velocity.VelocityModule" depends-on="org.olat.core.helpers.Settings" init-method="init"/>
+
 	<bean id="mapperSlayerTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
 	    <property name="jobDetail" ref="mapperSlayerJob" />
 	    <property name="cronExpression" value="0 5 0/1 * * ?" />
diff --git a/src/main/java/org/olat/core/commons/modules/bc/_spring/folderModuleCorecontext.xml b/src/main/java/org/olat/core/commons/modules/bc/_spring/folderModuleCorecontext.xml
index 88b7fdac0a0..aa0dbc16f2c 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/_spring/folderModuleCorecontext.xml
+++ b/src/main/java/org/olat/core/commons/modules/bc/_spring/folderModuleCorecontext.xml
@@ -3,7 +3,7 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
 
 <bean id="folderModule" class="org.olat.core.commons.modules.bc.FolderModule">
 	<property name="persistedProperties">
@@ -37,4 +37,6 @@
       </property>
 </bean>
 
+	<bean id="org.olat.core.commons.modules.bc.FilesInfoMBean" class="org.olat.core.commons.modules.bc.FilesInfoMBean" />
+
 </beans>
diff --git a/src/main/resources/serviceconfig/org/olat/core/commons/scheduler/_spring/olatextconfig.xml b/src/main/java/org/olat/core/commons/scheduler/_spring/schedulerContext.xml
similarity index 100%
rename from src/main/resources/serviceconfig/org/olat/core/commons/scheduler/_spring/olatextconfig.xml
rename to src/main/java/org/olat/core/commons/scheduler/_spring/schedulerContext.xml
diff --git a/src/main/resources/serviceconfig/org/olat/_spring/webdavContext.xml b/src/main/java/org/olat/core/commons/services/webdav/_spring/webdavContext.xml
similarity index 83%
rename from src/main/resources/serviceconfig/org/olat/_spring/webdavContext.xml
rename to src/main/java/org/olat/core/commons/services/webdav/_spring/webdavContext.xml
index 1f8fe1e6830..a5d56282294 100644
--- a/src/main/resources/serviceconfig/org/olat/_spring/webdavContext.xml
+++ b/src/main/java/org/olat/core/commons/services/webdav/_spring/webdavContext.xml
@@ -3,7 +3,14 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
+  
+	<bean id="webDAVManager" class="org.olat.commons.servlets.WebDAVManagerImpl" >
+		<constructor-arg ref="coordinatorManager"/>
+		<!-- set to false to disable the WebDAV support and remove the WebDAV Link from the GUI -->
+		<property name="enabled" value="${webdav.links.enabled}" />
+		<property name="sessionManager" ref="userSessionManager" />
+	</bean>  
   
 	
 	<!-- WebDAV provider factory -->
diff --git a/src/main/resources/serviceconfig/org/olat/_spring/brasatoconfigpart.xml b/src/main/java/org/olat/core/dispatcher/_spring/dispatcherContext.xml
similarity index 92%
rename from src/main/resources/serviceconfig/org/olat/_spring/brasatoconfigpart.xml
rename to src/main/java/org/olat/core/dispatcher/_spring/dispatcherContext.xml
index 1a4a6491168..c858540b2a8 100644
--- a/src/main/resources/serviceconfig/org/olat/_spring/brasatoconfigpart.xml
+++ b/src/main/java/org/olat/core/dispatcher/_spring/dispatcherContext.xml
@@ -1,12 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xmlns:context="http://www.springframework.org/schema/context" 
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
-  http://www.springframework.org/schema/context 
-  http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
   
 	<!-- Configure the main url dispatcher: here: url http://host:port/webappname/ leads to http://host:port/webappname/go
 		configures DispatcherActions to be called on certain paths -->
@@ -225,15 +222,8 @@
 	<!-- blog media dispatcher -->
 	<bean id="blogMediaBean" class="org.olat.modules.webFeed.dispatching.FeedMediaDispatcher" />
 
-	<!--  gui prefs via database -->
-	<bean id="core.preferences.PreferencesStorage"
-		class="org.olat.core.util.prefs.db.DbStorage"  />
 
-	<!-- Search components -->
-	<bean id="org.olat.admin.user.UserSearchUIService"
-		class="org.olat.admin.user.UserSearchUIServiceImpl" />
-	
-	<bean id="org.olat.search.ui.SearchServiceUIFactory"
-		class="org.olat.search.ui.SearchControllerFactory" />
+
+
 
 </beans>
diff --git a/src/main/resources/serviceconfig/org/olat/core/gui/components/form/flexible/impl/elements/richText/_spring/richTextCorecontext.xml b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/_spring/richTextCorecontext.xml
similarity index 100%
rename from src/main/resources/serviceconfig/org/olat/core/gui/components/form/flexible/impl/elements/richText/_spring/richTextCorecontext.xml
rename to src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/_spring/richTextCorecontext.xml
diff --git a/src/main/resources/serviceconfig/org/olat/core/_spring/mainCorecontext.xml b/src/main/java/org/olat/core/gui/control/_spring/fullWebAppContext.xml
similarity index 98%
rename from src/main/resources/serviceconfig/org/olat/core/_spring/mainCorecontext.xml
rename to src/main/java/org/olat/core/gui/control/_spring/fullWebAppContext.xml
index 99bebb47829..c45dfa8b68f 100644
--- a/src/main/resources/serviceconfig/org/olat/core/_spring/mainCorecontext.xml
+++ b/src/main/java/org/olat/core/gui/control/_spring/fullWebAppContext.xml
@@ -3,7 +3,7 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
 
 	<!--
 		**************************************************************************
diff --git a/src/main/resources/serviceconfig/org/olat/_spring/portalContext.xml b/src/main/java/org/olat/core/gui/control/_spring/portalContext.xml
similarity index 99%
rename from src/main/resources/serviceconfig/org/olat/_spring/portalContext.xml
rename to src/main/java/org/olat/core/gui/control/_spring/portalContext.xml
index b4883d2db4f..251a3b74e73 100644
--- a/src/main/resources/serviceconfig/org/olat/_spring/portalContext.xml
+++ b/src/main/java/org/olat/core/gui/control/_spring/portalContext.xml
@@ -3,7 +3,7 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
 
 	<!-- Portlets are no longer added to a list but searched on the whole classpath. This means that you can add you own portlets packed
 		as a jar file or disable existing portlets over external properties files. Every portlet instance has a field enabeld which is true by default
diff --git a/src/main/resources/serviceconfig/org/olat/_spring/sitedefContext.xml b/src/main/java/org/olat/core/gui/control/_spring/sitedefContext.xml
similarity index 96%
rename from src/main/resources/serviceconfig/org/olat/_spring/sitedefContext.xml
rename to src/main/java/org/olat/core/gui/control/_spring/sitedefContext.xml
index 4dfc1cf31e8..854d530f0ca 100644
--- a/src/main/resources/serviceconfig/org/olat/_spring/sitedefContext.xml
+++ b/src/main/java/org/olat/core/gui/control/_spring/sitedefContext.xml
@@ -3,7 +3,7 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
   
 	
 	<!-- OLAT sites -->
diff --git a/src/main/java/org/olat/core/util/_spring/utilCorecontext.xml b/src/main/java/org/olat/core/util/_spring/utilCorecontext.xml
index f49b934915e..c7e7c8ad03a 100644
--- a/src/main/java/org/olat/core/util/_spring/utilCorecontext.xml
+++ b/src/main/java/org/olat/core/util/_spring/utilCorecontext.xml
@@ -4,15 +4,110 @@
 	xmlns:context="http://www.springframework.org/schema/context" 
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
+  http://www.springframework.org/schema/beans/spring-beans.xsd 
   http://www.springframework.org/schema/context 
-  http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+  http://www.springframework.org/schema/context/spring-context.xsd">
   
 	<context:component-scan base-package="org.olat.core.util.session" />
 
 	<bean id="codeHelper" class="org.olat.core.util.CodeHelper" >
 		<constructor-arg value="${node.id}" />
 	</bean>
+	
+	<bean id ="org.olat.core.util.WebappHelper" class="org.olat.core.util.WebappHelper"  init-method="init" destroy-method="destroy">
+		<!-- relative path from the webapp directory to the source directory (only relavant for development/debuging mode) -->
+		<property name="fullPathToSrc" value="${project.build.home.directory}/src/main/java" />
+		<property name="fullPathToWebappSrc" value="${project.build.home.directory}/src/main/webapp" />
+		<property name="instanceId" value="${instance.id}"/>
+		<property name="nodeId" value="${node.id}"/>
+		<property name="userDataRoot" value="${userdata.dir}"/>
+		<property name="mailConfig">
+			<map>
+				<entry key="mailhost" value="${smtp.host}"/>
+				<entry key="mailTimeout" value="8000"/> <!-- timeout in milliseconds -->
+				<entry key="smtpUser" value="${smtp.user}"/>
+				<entry key="smtpPwd" value="${smtp.pwd}"/>
+				<entry key="sslEnabled" value="${smtp.sslEnabled}"/>
+				<entry key="sslCheckCertificate" value="${smtp.sslCheckCertificate}"/>
+				<entry key="mailFrom" value="${fromemail}"/>
+				<entry key="mailFromName" value="${fromname}"/>
+				<entry key="mailReplyTo" value="${adminemail}"/>
+				<entry key="mailSupport" value="${supportemail}"/>
+				<entry key="mailQuota" value="${quotaemail}"/>
+				<entry key="mailDeleteUser" value="${deleteuseremail}"/>
+				<entry key="mailError" value="${erroremail}"/>
+				<entry key="mailAttachmentMaxSize" value="${mail.attachment.maxsize}"/>
+			</map>
+		</property>
+		<property name="defaultCharset" value="${defaultcharset}" />
+		<property name="version" value="${build.version}" />
+		<property name="applicationName" value="${application.name}" />
+	</bean>
+
+	<bean id="org.olat.core.helpers.Settings" class="org.olat.core.helpers.Settings" depends-on="org.olat.core.util.WebappHelper" init-method="init" destroy-method="destroy">
+		<property name="persistedProperties">
+			<bean class="org.olat.core.configuration.PersistedProperties" scope="prototype" init-method="init" destroy-method="destroy">
+				<constructor-arg index="0" ref="coordinatorManager" />
+				<constructor-arg index="1" ref="org.olat.core.helpers.Settings" />
+			</bean>
+		</property>
+		<!-- OLAT Tomcat server configuration parameters. This is used e.g. to assemble absolute URIS where needed. -->
+		<property name="serverconfig">
+			<map>
+				<entry key="server_name" value="REPLACE" />
+				<entry key="server_fqdn" value="${server.domainname}" />
+				<entry key="server_securePort" value="${server.port.ssl}" />
+				<entry key="server_insecurePort" value="${server.port}" />
+			</map>
+		</property>			
+		<!-- true enable debug mode, not for production mode but for productive hours ;) -->
+		<property name="debug" value="${olat.debug}" />
+		<!-- if readOnlyDebug, then no file changes can be made in the debug mode -->
+		<property name="readOnlyDebug" value="false" />
+		<!-- 
+			For Performance and/or Functional Tests. 
+			if allowLoadtestMode is set to true, it is possible to switch a session to  loadtest mode
+			using the url parameter ?loadtest  and ?noloadtest even without logging in.
+			Thus the same urls can be reused over and over again, which is needed for tools like JMeter or such.
+			- Not to be used for productive mode! (no double post checks, asynchronous inline rendering does not work etc.)-	 
+		-->
+		<property name="allowLoadtestMode" value="${allow.loadtest.mode}" />
+		<!-- true when ajax should be enabled system-wide (but for non-supported browsers the system will automatically fallback to web 1.0 mode) -->	
+		<property name="ajaxGloballyOn" value="true" />
+		<!-- List of user agents that should be served using the web 1.0 mode (no ajax DOM replacement).
+		 	A user agent that matches against one of the regular expressions below will be blocked.					
+		-->
+		<property name="ajaxBlacklistedUserAgents">
+			<!-- List of user agents that are blocked for the AJAX mode. A user agent that matches against one of the 
+				regular expressions below will be served in web 1.0 mode  -->
+			<list>
+				<value>.*WebKit/5[01].*</value> 		<!-- older than safari 3.0 -->
+				<value>.*MSIE [2345].*</value>			<!-- older than IE 6.0 -->
+				<value>.*Firefox/1\..</value>			<!-- older than FF 2.0  -->
+				<value>.*Opera/[45678].*</value>		<!-- older than Opera 9 -->
+				<value>.*Gecko/200[0123456].*</value>	<!-- Gecko engine older than 2006  -->
+				<value>.*Lynx.*</value>					<!-- Lynx console browser (no js) -->
+			</list>
+		</property>
+		<!-- 
+			Set the system theme here. Make sure the directory webapp/WEB-INF/static/themes/YOURTHEME exists. 
+			This is only the default value in case no user configuration is found. Use the administration GUI to
+			Set a specific theme.
+		-->				
+		<property name="guiThemeIdentifyer" value="${layout.theme}" />				
+		<!-- the versionid is prepended to various dynamically linked sources like css and js lib includes.
+			the prepending guarantees that all browsers are forced to reload the new files, since e.g. css cache invalidation
+			based on lastmodified http headers is broken on some browsers. this here is the only safe way.
+			for each release it is recommended to adjust the value to a new value which has neven been used before (such as the version number)
+			NOTE: please use only a-z, 0-9 and _ as characters (those which are safe in the url encoding without converting)
+		 -->
+		<property name="version" value="${build.version}" />
+		<property name="buildIdentifier" value="${build.identifier}" />
+		<property name="repoRevision" value="${build.repo.revision}" />
+		<property name="applicationName" value="${application.name}" />
+		<property name="clusterMode" value="${cluster.mode}"/>
+		<property name="nodeId" value="${node.id}"/>
+	</bean>
 
 	<bean id="httpClientFactory" class="org.olat.core.util.httpclient.HttpClientFactory" destroy-method="destroy"/>
 	
@@ -24,6 +119,15 @@
 	
 	<bean id="imageHelperServiceProvider_magick" class="org.olat.core.util.image.spi.ImageMagickHelper" />
 	
+	<bean id="org.olat.core.util.vfs.QuotaManager" class="org.olat.admin.quota.QuotaManagerImpl"  init-method="init" >
+		<constructor-arg index="0" ref="resourceManager" />
+		<constructor-arg index="1" ref="propertyManager" />
+	</bean>
+	
+	<!--  gui prefs via database -->
+	<bean id="core.preferences.PreferencesStorage"
+		class="org.olat.core.util.prefs.db.DbStorage"  />
+
 		<!-- Definition of the providers -->
 	<bean id="userSessionModule" class="org.olat.core.util.session.UserSessionModule">
 		<property name="persistedProperties">
@@ -46,5 +150,82 @@
 		</property>
 	</bean>
 	
+	<!-- Cache -->
+	<bean id="infinispanCacheManager" class="org.olat.core.util.cache.infinispan.InfinispanCacheManager" destroy-method="stop">
+		<property name="configuration" value="infinispan-config.xml"/>
+		<property name="jndiName" value="${infinispan.jndi}"/>
+	</bean>
+	
+	<bean id="infinispanCacher" class="org.olat.core.util.cache.infinispan.InfinispanCacher">
+		<constructor-arg index="0" ref="infinispanCacheManager"/>
+		<property name="cacheConfig">
+			<map>
+				<entry key="LoginModule" value-ref="org.olat.login.LoginModule_blockafterfailedattempts" />
+				<entry key="QTIHelper"  value-ref="org.olat.ims.qti.process.QTIHelper_QTI_xml_Documents"/>
+				<entry key="WikiManager" value-ref="org.olat.modules.wiki.WikiManager_wiki"/>
+				<entry key="CalendarManager" value-ref="org.olat.commons.calendar.ICalFileCalendarManager_calendar" />
+				<entry key="CourseFactory" value-ref="org.olat.course.CourseFactory_courses" />
+				<entry key="CollaborationToolsFactory" value-ref="org.olat.collaboration.CollaborationToolsFactory_tools" />
+				<entry key="AssessmentManager" value-ref="org.olat.course.assessment.NewCachePersistingAssessmentManager" />
+				<entry key="GlossaryItemManager" value-ref="org.olat.core.modules.glossary.GlossaryItemManager_glossary"/>
+				<entry key="ProjectBrokerManager" value-ref="org.olat.course.nodes.projectbroker.service.ProjectBrokerManagerImpl_pb"/>
+				<entry key="WebDAVManager" value-ref="org.olat.commons.servlets.WebDAVManagerImpl_webdav" />
+			</map>
+		</property>
+	</bean>
+
+	<!-- Cache beans -->
+	<bean id="org.olat.login.LoginModule_blockafterfailedattempts" class="org.olat.core.util.cache.CacheConfig" >
+		<property name="timeToLive" value="300" />
+		<property name="timeToIdle" value="0" />
+		<property name="maxElementsInMemory" value="1000" />
+	</bean>
+	<bean id="org.olat.ims.qti.process.QTIHelper_QTI_xml_Documents" class="org.olat.core.util.cache.CacheConfig">
+		<property name="timeToLive" value="3600" />
+		<property name="timeToIdle" value="1800" />
+		<!-- qti files may be large -->
+		<property name="maxElementsInMemory" value="20" />
+	</bean>					
+	<bean id="org.olat.modules.wiki.WikiManager_wiki" class="org.olat.core.util.cache.CacheConfig">
+		<property name="timeToLive" value="14400" />
+		<property name="timeToIdle" value="1800" />
+		<property name="maxElementsInMemory" value="50" />								
+	</bean>
+	<bean id="org.olat.commons.calendar.ICalFileCalendarManager_calendar" class="org.olat.core.util.cache.CacheConfig">
+		<property name="timeToLive" value="3600" />
+		<property name="timeToIdle" value="3600" />
+		<property name="maxElementsInMemory" value="50" />								
+	</bean>
+	<bean id="org.olat.course.CourseFactory_courses" class="org.olat.core.util.cache.CacheConfig">
+		<property name="timeToLive" value="0" />
+		<property name="timeToIdle" value="3600" />
+		<property name="maxElementsInMemory" value="${course.cache.elements}" />								
+	</bean>
+	<bean id="org.olat.collaboration.CollaborationToolsFactory_tools" class="org.olat.core.util.cache.CacheConfig">
+			<property name="timeToLive" value="3600" />
+			<property name="timeToIdle" value="1800" />
+			<property name="maxElementsInMemory" value="5000" />								
+	</bean>
+	<bean id="org.olat.core.modules.glossary.GlossaryItemManager_glossary" class="org.olat.core.util.cache.CacheConfig">
+			<property name="timeToLive" value="7200" />
+			<property name="timeToIdle" value="1800" />
+			<property name="maxElementsInMemory" value="50" />								
+	</bean>
+	<bean id="org.olat.course.nodes.projectbroker.service.ProjectBrokerManagerImpl_pb" class="org.olat.core.util.cache.CacheConfig">
+		<property name="timeToLive" value="3600" />
+		<property name="timeToIdle" value="3600" />
+		<property name="maxElementsInMemory" value="50" />								
+	</bean>
+	<bean id="org.olat.commons.servlets.WebDAVManagerImpl_webdav" class="org.olat.core.util.cache.CacheConfig">
+		<property name="timeToLive" value="1800" />
+		<property name="timeToIdle" value="300" />
+		<property name="maxElementsInMemory" value="200" />								
+	</bean>
+	<bean id="org.olat.course.assessment.NewCachePersistingAssessmentManager" class="org.olat.core.util.cache.CacheConfig">
+		<property name="timeToLive" value="0" />
+		<property name="timeToIdle" value="60" />
+		<property name="maxElementsInMemory" value="20000" />							
+	</bean>
+	
 	
 </beans>
diff --git a/src/main/java/org/olat/core/util/coordinate/DBPersistentLockManager.java b/src/main/java/org/olat/core/util/coordinate/DBPersistentLockManager.java
index 1683f45c907..3253425cdee 100644
--- a/src/main/java/org/olat/core/util/coordinate/DBPersistentLockManager.java
+++ b/src/main/java/org/olat/core/util/coordinate/DBPersistentLockManager.java
@@ -31,7 +31,8 @@ import org.olat.core.commons.persistence.DBFactory;
 import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.logging.AssertException;
-import org.olat.core.manager.BasicManager;
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
 import org.olat.core.util.resource.OresHelper;
 import org.olat.properties.Property;
 import org.olat.properties.PropertyManager;
@@ -45,8 +46,9 @@ import org.olat.user.UserDataDeletable;
  * 
  * @author patrickb
  */
-public class DBPersistentLockManager extends BasicManager implements PersistentLockManager,UserDataDeletable {
-
+public class DBPersistentLockManager implements PersistentLockManager, UserDataDeletable {
+	
+	private static final OLog log = Tracing.createLoggerFor(DBPersistentLockManager.class);
 	private static final String CATEGORY_PERSISTENTLOCK = "o_lock";
 	
 	/**
@@ -128,7 +130,7 @@ public class DBPersistentLockManager extends BasicManager implements PersistentL
 		String query = "from v in class org.olat.properties.Property where v.category = ? and v.longValue = ?";
 		DBFactory.getInstance().delete(query, new Object[] { CATEGORY_PERSISTENTLOCK, identity.getKey() },
 				new Type[] { StandardBasicTypes.STRING, StandardBasicTypes.LONG });
-		logDebug("All db-persisting-locks deleted for identity=" + identity);
+		log.debug("All db-persisting-locks deleted for identity=" + identity);
 	}
 
 }
diff --git a/src/main/java/org/olat/course/_spring/courseContext.xml b/src/main/java/org/olat/course/_spring/courseContext.xml
index b9e50f7792c..999bc0aedad 100644
--- a/src/main/java/org/olat/course/_spring/courseContext.xml
+++ b/src/main/java/org/olat/course/_spring/courseContext.xml
@@ -3,9 +3,22 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
 
-	
+	<import resource="classpath:/org/olat/course/assessment/_spring/assessmentContext.xml"/>
+	<import resource="classpath:/org/olat/course/config/ui/courselayout/_spring/courseLayoutContext.xml"/>
+	<import resource="classpath:/org/olat/course/db/_spring/coursedbContext.xml"/>
+	<import resource="classpath:/org/olat/course/nodes/_spring/buildingblockContext.xml"/>
+	<import resource="classpath:/org/olat/course/nodes/basiclti/_spring/basicLtiContext.xml"/>
+	<import resource="classpath:/org/olat/course/nodes/info/_spring/infoMessageContext.xml"/>
+	<import resource="classpath:/org/olat/course/nodes/iq/_spring/iqContext.xml"/>
+	<import resource="classpath:/org/olat/course/nodes/members/_spring/membersCourseContext.xml"/>
+	<import resource="classpath:/org/olat/course/nodes/openmeetings/_spring/buildingblockContext.xml"/>
+	<import resource="classpath:/org/olat/course/nodes/portfolio/_spring/portfolioBBContext.xml"/>
+	<import resource="classpath:/org/olat/course/nodes/projectbroker/_spring/projectBrokerContext.xml"/>
+	<import resource="classpath:/org/olat/course/nodes/vitero/_spring/buildingblockContext.xml"/>
+	<import resource="classpath:/org/olat/course/statistic/_spring/statisticContext.xml"/>
+	<import resource="classpath:/org/olat/course/statistic/_spring/statisticsJobContext.xml"/>
 
 <bean id="courseModule" class="org.olat.course.CourseModule" 
 	depends-on="userModule, triggerUserModuleInit, org.olat.core.util.WebappHelper, metaInfoFactory, fileresourceManager">
diff --git a/src/main/java/org/olat/group/_spring/businessGroupContext.xml b/src/main/java/org/olat/group/_spring/businessGroupContext.xml
index 04f80970af9..d008e31336d 100644
--- a/src/main/java/org/olat/group/_spring/businessGroupContext.xml
+++ b/src/main/java/org/olat/group/_spring/businessGroupContext.xml
@@ -2,17 +2,13 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xmlns:context="http://www.springframework.org/schema/context"
-	xmlns:tx="http://www.springframework.org/schema/tx"
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+  http://www.springframework.org/schema/beans/spring-beans.xsd
   http://www.springframework.org/schema/context 
-  http://www.springframework.org/schema/context/spring-context-3.0.xsd
-  http://www.springframework.org/schema/tx
-  http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
+  http://www.springframework.org/schema/context/spring-context.xsd">
 
 	<context:component-scan base-package="org.olat.group.manager,org.olat.group.area,org.olat.group.right" />
-	<tx:annotation-driven transaction-manager="txManager"/>
 
 	<bean id="businessGroupModule" class="org.olat.group.BusinessGroupModule" 
 		init-method="init" depends-on="userModule">
diff --git a/src/main/java/org/olat/ims/cp/_spring/cpContext.xml b/src/main/java/org/olat/ims/cp/_spring/cpContext.xml
index 3ccac33fd14..b7aae99bbde 100644
--- a/src/main/java/org/olat/ims/cp/_spring/cpContext.xml
+++ b/src/main/java/org/olat/ims/cp/_spring/cpContext.xml
@@ -1,13 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xmlns:context="http://www.springframework.org/schema/context" 
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
-  http://www.springframework.org/schema/context 
-  http://www.springframework.org/schema/context/spring-context-3.0.xsd">
-
-<bean class="org.olat.ims.cp.CPManagerImpl" />
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
 
+	<bean id="org.olat.ims.cp.CPManager" class="org.olat.ims.cp.CPManagerImpl"  /> 
+	
 </beans>
\ No newline at end of file
diff --git a/src/main/java/org/olat/instantMessaging/_spring/instantMessagingContext.xml b/src/main/java/org/olat/instantMessaging/_spring/instantMessagingContext.xml
index e14f22673c1..49f6bb959aa 100644
--- a/src/main/java/org/olat/instantMessaging/_spring/instantMessagingContext.xml
+++ b/src/main/java/org/olat/instantMessaging/_spring/instantMessagingContext.xml
@@ -2,17 +2,13 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xmlns:context="http://www.springframework.org/schema/context"
-	xmlns:tx="http://www.springframework.org/schema/tx"
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+  http://www.springframework.org/schema/beans/spring-beans.xsd
   http://www.springframework.org/schema/context 
-  http://www.springframework.org/schema/context/spring-context-3.0.xsd
-  http://www.springframework.org/schema/tx
-  http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
+  http://www.springframework.org/schema/context/spring-context.xsd">
 
-	<context:component-scan base-package="org.olat.instantMessaging" />
-	<tx:annotation-driven transaction-manager="txManager"/>
+	<context:component-scan base-package="org.olat.instantMessaging.manager" />
 	
 	<bean id="instantMessagingModule" class="org.olat.instantMessaging.InstantMessagingModule">
 		<property name="persistedProperties">
diff --git a/src/main/java/org/olat/modules/_spring/modulesContext.xml b/src/main/java/org/olat/modules/_spring/modulesContext.xml
index f692e52196c..4de4e130986 100644
--- a/src/main/java/org/olat/modules/_spring/modulesContext.xml
+++ b/src/main/java/org/olat/modules/_spring/modulesContext.xml
@@ -4,10 +4,19 @@
 	xmlns:context="http://www.springframework.org/schema/context" 
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
+  http://www.springframework.org/schema/beans/spring-beans.xsd 
   http://www.springframework.org/schema/context 
-  http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+  http://www.springframework.org/schema/context/spring-context.xsd">
   
-<context:component-scan base-package="org.olat.modules" />
+	<context:component-scan base-package="org.olat.modules"/>
+
+	<import resource="classpath:/org/olat/modules/coach/_spring/coachContext.xml"/>
+	<import resource="classpath:/org/olat/modules/glossary/_spring/glossaryContext.xml"/>
+	<import resource="classpath:/org/olat/modules/iq/_spring/iqContext.xml"/>
+	<import resource="classpath:/org/olat/modules/openmeetings/_spring/openmeetingsContext.xml"/>
+	<import resource="classpath:/org/olat/modules/qpool/_spring/qpoolContext.xml"/>
+	<import resource="classpath:/org/olat/modules/vitero/_spring/viteroContext.xml"/>
+	<import resource="classpath:/org/olat/modules/webFeed/_spring/webFeedContext.xml"/>
+	<import resource="classpath:/org/olat/modules/wiki/_spring/wikiContext.xml"/>
 
 </beans>
\ No newline at end of file
diff --git a/src/main/resources/serviceconfig/org/olat/_spring/olatextconfig.xml b/src/main/java/org/olat/notifications/_spring/notificationsContext.xml
similarity index 58%
rename from src/main/resources/serviceconfig/org/olat/_spring/olatextconfig.xml
rename to src/main/java/org/olat/notifications/_spring/notificationsContext.xml
index 3ce382ae5a0..8141368d25d 100644
--- a/src/main/resources/serviceconfig/org/olat/_spring/olatextconfig.xml
+++ b/src/main/java/org/olat/notifications/_spring/notificationsContext.xml
@@ -5,19 +5,7 @@
   http://www.springframework.org/schema/beans 
   http://www.springframework.org/schema/beans/spring-beans.xsd">
 
-    <!--
-		*****************************************
-		*** Define the persistent lock manager    ***
-		*****************************************
-	-->
-	<bean id="persistentLockManager" class="org.olat.core.util.coordinate.DBPersistentLockManager"/>  
-
-    <!--
-		*****************************************
-		*** Define the Notifications Manager  ***
-		*****************************************
-	-->
-	
+	<!-- List of notifications handlers -->
 	<bean id="org.olat.modules.fo.ForumNotificationsHandler" class="org.olat.modules.fo.ForumNotificationsHandler" />
 	<bean id="org.olat.course.assessment.AssessmentNotificationsHandler" class="org.olat.course.assessment.AssessmentNotificationsHandler" />
 	<bean id="org.olat.core.commons.modules.bc.FolderNotificationsHandler" class="org.olat.core.commons.modules.bc.notifications.FolderNotificationsHandler" />
@@ -54,13 +42,8 @@
 		<property name="defaultNotificationInterval">
 			<value>daily</value>
 		</property>
-	</bean>	
+	</bean>
 	
-    <!--
-		*****************************************
-		*** New user created notifications    ***
-		*****************************************
-	-->
 	<bean
 		id="org.olat.user.notification.UsersSubscriptionManager" class="org.olat.user.notification.UsersSubscriptionManagerImpl"
 		 depends-on="coordinatorManager">
@@ -69,49 +52,47 @@
 			<ref bean="coordinatorManager" />
 		</property>
 	</bean>
-      
-    <!--
-		*****************************************
-		*** Define the Quota Manager          ***
-		*****************************************
-	-->
-	<bean id="org.olat.core.util.vfs.QuotaManager" class="org.olat.admin.quota.QuotaManagerImpl"  init-method="init" >
-		<constructor-arg index="0" ref="resourceManager" />
-		<constructor-arg index="1" ref="propertyManager" />
-	</bean> 
+	
+	<!-- Notification config:
+		If you want to disable notificaition please comment out the corresponding entry in scheduler
+		spring file in serviceconfig/org/olat/core/commons/scheduler/_spring/olatextconfig.xml
+		and delete or comment this *entire* file.
+		
+		later in this file you can also adjust the time the notification is scheduled. Default 
+		is 10min after midnight.
+	 -->
 
-    <!--
-		*****************************************
-		*** IMS Content Packaging  Manager    ***
-		*****************************************
-	-->
-    <bean id="org.olat.ims.cp.CPManager" class="org.olat.ims.cp.CPManagerImpl"  /> 
-	<!-- 
-		*****************
-		*** JMX       ***
-		*****************
-	-->
-	<!--
-		Export your Beans via JMX, to enable start you JVM with "-Dcom.sun.management.jmxremote=true".
-		This only enables JMX locally and allows you to connect with the same user. To connect via remote read:
-		http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html
-	-->
-	<!-- this bean must not be lazily initialized if the exporting is to happen -->
-	<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false" >
-    	<property name="beans">
-			<map>
-				<entry key="org.olat.admin.jmx.datasources:name=ThreadAndControllerInfo">
-					<bean class="org.olat.admin.jmx.datasources.ThreadAndControllerInfo" />
-				</entry>
-				<entry key="org.olat.admin:name=AdminModule" value-ref="adminModule" />
-				<entry key="org.olat.core.commons.modules.bc:name=FilesInfoMBean" >
-					<ref bean="org.olat.core.commons.modules.bc.FilesInfoMBean"/>
-				</entry>
-			</map>
-		</property>
-		<property name="server" ref="org.springframework.jmx.support.MBeanServerFactoryBean"/>
+	<bean id="sendNotificationsEmailTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
+	    <property name="jobDetail" ref="org.olat.notifications.job.${cluster.singleton.services}" />
+	    <!-- adjust cron style syntax for your notification needs 
+	    	"0 10 0 * *"  e.g. 10 minutes after midnight
+	    	
+	    	A "Cron-Expression" is a string comprised of 6 or 7 fields separated by white space. The 6 mandatory and 1 optional fields are as follows:
+			Field Name 	  	Allowed Values 	  	Allowed Special Characters
+			Seconds 	  	0-59 	  			, - * /
+			Minutes 	  	0-59 	  			, - * /
+			Hours 	  		0-23 	  			, - * /
+			Day-of-month 	1-31 	  			, - * ? / L W C
+			Month 	  		1-12 or JAN-DEC 	, - * /
+			Day-of-Week 	1-7 or SUN-SAT 	  	, - * ? / L C #
+			Year (Optional)	empty, 1970-2099 	, - * /
+
+			As of OLAT 6.3 it's best to let the cronjob run every two hours since users can now choose how often 
+			they will get notified. The shortest interval is set to two hours. 	    	
+	    -->
+	    <property name="cronExpression" value="${notification.cronjob.expression}" />
+
+		<!-- OLAT-5093 start delay ensures there's no conflict with server startup and db not being ready yet -->
+	    <property name="startDelay" value="300000" />
+	</bean>
+	
+	<bean id="org.olat.notifications.job.enabled" class="org.springframework.scheduling.quartz.JobDetailBean" lazy-init="true">
+	  <property name="jobClass" value="org.olat.notifications.EmailNotificationJob" />
+	</bean>
+	
+	<!-- dummy bean -->
+	<bean id="org.olat.notifications.job.disabled" class="org.springframework.scheduling.quartz.JobDetailBean"  lazy-init="true">
+		<property name="jobClass" value="org.olat.core.commons.scheduler.DummyJob" />
 	</bean>
 
-	<bean id="org.olat.core.commons.modules.bc.FilesInfoMBean" class="org.olat.core.commons.modules.bc.FilesInfoMBean" />
-    
-</beans>
+</beans>
\ No newline at end of file
diff --git a/src/main/java/org/olat/repository/_spring/repositoryContext.xml b/src/main/java/org/olat/repository/_spring/repositoryContext.xml
index e171dfb7c6c..ee2c3ef1954 100644
--- a/src/main/java/org/olat/repository/_spring/repositoryContext.xml
+++ b/src/main/java/org/olat/repository/_spring/repositoryContext.xml
@@ -27,5 +27,34 @@
 	</bean>
 	
 	<bean id="repositoryManager" class="org.olat.repository.RepositoryManager"/>
+	
+		<bean id="deletionModule" class="org.olat.repository.delete.service.DeletionModule">
+		<property name="baseSecurityManager" ref="baseSecurityManager" />
+		<property name="persistedProperties">
+			<bean class="org.olat.core.configuration.PersistedProperties"
+				scope="prototype" init-method="init" destroy-method="destroy">
+				<constructor-arg index="0" ref="coordinatorManager" />
+				<constructor-arg index="1" ref="deletionModule" />
+			</bean>
+		</property>
+	</bean>
+
+	<bean
+		class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+		<property name="targetObject" ref="deletionModule" />
+		<property name="targetMethod" value="init" />
+		<property name="arguments">
+			<value>
+				archiveRootPath=${archive.dir}
+				deleteEmailResponseToUserName=administrator
+				adminUserName=${deletionModule.adminUserName}
+	    </value>
+		</property>
+	</bean>
+
+	<bean id="repositoryDeletionManager"
+		class="org.olat.repository.delete.service.RepositoryDeletionManager">
+		<constructor-arg index="0" ref="deletionModule" />
+	</bean>
 
 </beans>
\ No newline at end of file
diff --git a/src/main/java/org/olat/repository/delete/service/_spring/repoDeletionContext.xml b/src/main/java/org/olat/repository/delete/service/_spring/repoDeletionContext.xml
deleted file mode 100644
index ebaad3695ed..00000000000
--- a/src/main/java/org/olat/repository/delete/service/_spring/repoDeletionContext.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="
-  http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans.xsd">
-
-
-	<bean id="deletionModule" class="org.olat.repository.delete.service.DeletionModule">
-		<property name="baseSecurityManager" ref="baseSecurityManager" />
-		<property name="persistedProperties">
-			<bean class="org.olat.core.configuration.PersistedProperties"
-				scope="prototype" init-method="init" destroy-method="destroy">
-				<constructor-arg index="0" ref="coordinatorManager" />
-				<constructor-arg index="1" ref="deletionModule" />
-			</bean>
-		</property>
-	</bean>
-
-	<bean
-		class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
-		<property name="targetObject" ref="deletionModule" />
-		<property name="targetMethod" value="init" />
-		<property name="arguments">
-			<value>
-				archiveRootPath=${archive.dir}
-				deleteEmailResponseToUserName=administrator
-				adminUserName=${deletionModule.adminUserName}
-	    </value>
-		</property>
-	</bean>
-
-	<bean id="repositoryDeletionManager"
-		class="org.olat.repository.delete.service.RepositoryDeletionManager">
-		<constructor-arg index="0" ref="deletionModule" />
-	</bean>
-
-	<bean id="userDeletionManager" class="org.olat.admin.user.delete.service.UserDeletionManager">
-		<constructor-arg index="0" ref="deletionModule" />
-		<constructor-arg index="1" ref="coordinatorManager" />
-		<property name="baseSecurityManager" ref="baseSecurityManager" />
-		<property name="keepUserLoginAfterDeletion" value="${keepUserLoginAfterDeletion}" />
-		<property name="keepUserEmailAfterDeletion" value="${keepUserEmailAfterDeletion}" />
-	</bean>
-
-</beans>
diff --git a/src/main/java/org/olat/resource/_spring/resourceContext.xml b/src/main/java/org/olat/resource/_spring/resourceContext.xml
index 405da6ce38b..778c7a9661b 100644
--- a/src/main/java/org/olat/resource/_spring/resourceContext.xml
+++ b/src/main/java/org/olat/resource/_spring/resourceContext.xml
@@ -3,7 +3,7 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+  http://www.springframework.org/schema/beans/spring-beans.xsd">
 
 	<bean id="resourceManager" class="org.olat.resource.OLATResourceManager">
 		<property name="dbInstance" ref="database"/>
@@ -14,4 +14,8 @@
 		<property name="resourceManager" ref="resourceManager"/>
 	</bean>
 
+	<import resource="classpath:/org/olat/resource/accesscontrol/_spring/acContext.xml"/>
+	<import resource="classpath:/org/olat/resource/accesscontrol/provider/paypal/_spring/paypalContext.xml"/>
+	<import resource="classpath:/org/olat/resource/lock/pessimistic/_spring/lockContext.xml"/>
+
 </beans>
\ No newline at end of file
diff --git a/src/main/java/org/olat/resource/accesscontrol/_spring/acContext.xml b/src/main/java/org/olat/resource/accesscontrol/_spring/acContext.xml
index 1d5ad4766ce..fd655dffc5a 100644
--- a/src/main/java/org/olat/resource/accesscontrol/_spring/acContext.xml
+++ b/src/main/java/org/olat/resource/accesscontrol/_spring/acContext.xml
@@ -2,13 +2,10 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xmlns:context="http://www.springframework.org/schema/context"
-	xmlns:tx="http://www.springframework.org/schema/tx"
 	xsi:schemaLocation="http://www.springframework.org/schema/beans 
                         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                         http://www.springframework.org/schema/context 
-                        http://www.springframework.org/schema/context/spring-context-3.0.xsd
-                        http://www.springframework.org/schema/tx
-                        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
+                        http://www.springframework.org/schema/context/spring-context-3.0.xsd">
 
 	<context:component-scan base-package="org.olat.resource.accesscontrol" />
 	
diff --git a/src/main/java/org/olat/search/_spring/searchContext.xml b/src/main/java/org/olat/search/_spring/searchContext.xml
index e9e90f73dea..ba48be20413 100644
--- a/src/main/java/org/olat/search/_spring/searchContext.xml
+++ b/src/main/java/org/olat/search/_spring/searchContext.xml
@@ -4,8 +4,12 @@
 	xsi:schemaLocation="http://www.springframework.org/schema/beans 
                         http://www.springframework.org/schema/beans/spring-beans.xsd">
 
-	<!-- SEARCH SERVICE SIDE CONFIGURATION -->
-	<!-- ================================= -->
+	<!-- Search components -->
+	<bean id="org.olat.admin.user.UserSearchUIService"
+		class="org.olat.admin.user.UserSearchUIServiceImpl" />
+	
+	<bean id="org.olat.search.ui.SearchServiceUIFactory"
+		class="org.olat.search.ui.SearchControllerFactory" />
 
 	<bean id="searchServiceFactory" class="org.olat.search.service.SearchServiceFactory">
 	  <constructor-arg index="0" ref="org.olat.search.service.${search.service}" />
diff --git a/src/main/java/org/olat/user/_spring/userContext.xml b/src/main/java/org/olat/user/_spring/userContext.xml
index 0ae788c0802..f4cc883ed9d 100644
--- a/src/main/java/org/olat/user/_spring/userContext.xml
+++ b/src/main/java/org/olat/user/_spring/userContext.xml
@@ -5,6 +5,9 @@
   http://www.springframework.org/schema/beans 
   http://www.springframework.org/schema/beans/spring-beans.xsd">
 
+	<import resource="classpath:/org/olat/user/_spring/additionalUserContext.xml"/>
+	<import resource="classpath:/org/olat/user/propertyhandlers/_spring/userPropertiesContext.xml"/>
+	<import resource="classpath:/org/olat/user/propertyhandlers/_spring/userPropertriesHandlersContext.xml"/>
 
 <bean id="userModule" class="org.olat.user.UserModule" 
 	depends-on="org.olat.core.util.notifications.NotificationsManager, database, baseSecurityManager, triggerI18nModuleInit">
@@ -237,21 +240,21 @@
 		</property>
 	</bean>
 
-<bean id="triggerUserModuleInit" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
-    <property name="targetObject" ref="userModule" />
-    <property name="targetMethod" value="init" />
-    <property name="arguments">
+	<bean id="triggerUserModuleInit" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+	    <property name="targetObject" ref="userModule" />
+	    <property name="targetMethod" value="init" />
+	    <property name="arguments">
             <value>
                     generateTestUsers=${user.generateTestUsers}
                     passwordChangeAllowed=${password.change.allowed}
                     passwordChangeAllowedLDAP=${ldap.propagatePasswordChangedOnLdapServer}
                     adminUserName=administrator
             </value>
-    </property>
-</bean>
+	    </property>
+	</bean>
 
 
-<bean id="userManager" class="org.olat.user.UserManagerImpl" >
+	<bean id="userManager" class="org.olat.user.UserManagerImpl" >
 		<property name="userPropertiesConfig">
                 <ref bean="org.olat.user.UserPropertiesConfig" />
         </property>
@@ -265,7 +268,7 @@
                 <!-- Implementation to display "lastname, firstname" -->
                 <bean id="org.olat.user.UserDisplayNameCreator" class="org.olat.user.UserDisplayNameCreatorLastnameFirst" />
         </property>
-</bean>
+	</bean>
 
 	<bean id="org.olat.core.commons.creator.UserAvatarDisplayControllerCreator"
 		class="org.olat.user.UserAvatarDisplayControllerCreatorImpl"/>
@@ -281,5 +284,13 @@
 	<bean id="personalFolderManager" class="org.olat.user.PersonalFolderManager"/>
 	<bean class="org.olat.user.DisplayPortraitManager"/>
 	<bean class="org.olat.user.HomePageConfigManagerImpl"/>
+	
+	<bean id="userDeletionManager" class="org.olat.admin.user.delete.service.UserDeletionManager">
+		<constructor-arg index="0" ref="deletionModule" />
+		<constructor-arg index="1" ref="coordinatorManager" />
+		<property name="baseSecurityManager" ref="baseSecurityManager" />
+		<property name="keepUserLoginAfterDeletion" value="${keepUserLoginAfterDeletion}" />
+		<property name="keepUserEmailAfterDeletion" value="${keepUserEmailAfterDeletion}" />
+	</bean>
 
 </beans>
diff --git a/src/main/resources/cleanupCode.sh b/src/main/resources/cleanupCode.sh
deleted file mode 100644
index a0cecd088f4..00000000000
--- a/src/main/resources/cleanupCode.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/bash
-
-find .
-echo
diff --git a/src/main/resources/serviceconfig/brasatoconfig.xml b/src/main/resources/serviceconfig/brasatoconfig.xml
deleted file mode 100644
index ff65fc8dbe7..00000000000
--- a/src/main/resources/serviceconfig/brasatoconfig.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="
-  http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
-
-
-			<bean id ="org.olat.core.util.WebappHelper" class="org.olat.core.util.WebappHelper"  init-method="init" destroy-method="destroy">
-				<!-- relative path from the webapp directory to the source directory (only relavant for development/debuging mode) -->
-				<property name="fullPathToSrc" value="${project.build.home.directory}/src/main/java" />
-				<property name="fullPathToWebappSrc" value="${project.build.home.directory}/src/main/webapp" />
-				<property name="instanceId" value="${instance.id}"/>
-				<property name="nodeId" value="${node.id}"/>
-				<property name="userDataRoot" value="${userdata.dir}"/>
-				<property name="mailConfig">
-					<map>
-						<entry key="mailhost" value="${smtp.host}"/>
-						<entry key="mailTimeout" value="8000"/> <!-- timeout in milliseconds -->
-						<entry key="smtpUser" value="${smtp.user}"/>
-						<entry key="smtpPwd" value="${smtp.pwd}"/>
-						<entry key="sslEnabled" value="${smtp.sslEnabled}"/>
-						<entry key="sslCheckCertificate" value="${smtp.sslCheckCertificate}"/>
-						<entry key="mailFrom" value="${fromemail}"/>
-						<entry key="mailFromName" value="${fromname}"/>
-						<entry key="mailReplyTo" value="${adminemail}"/>
-						<entry key="mailSupport" value="${supportemail}"/>
-						<entry key="mailQuota" value="${quotaemail}"/>
-						<entry key="mailDeleteUser" value="${deleteuseremail}"/>
-						<entry key="mailError" value="${erroremail}"/>
-						<entry key="mailAttachmentMaxSize" value="${mail.attachment.maxsize}"/>
-					</map>
-				</property>
-				<property name="defaultCharset" value="${defaultcharset}" />
-				<property name="version" value="${build.version}" />
-				<property name="applicationName" value="${application.name}" />
-			</bean>
-
-			<bean id="org.olat.core.helpers.Settings" class="org.olat.core.helpers.Settings" depends-on="org.olat.core.util.WebappHelper" init-method="init" destroy-method="destroy">
-				<property name="persistedProperties">
-					<bean class="org.olat.core.configuration.PersistedProperties" scope="prototype" init-method="init" destroy-method="destroy">
-						<constructor-arg index="0" ref="coordinatorManager" />
-						<constructor-arg index="1" ref="org.olat.core.helpers.Settings" />
-					</bean>
-				</property>
-				<!-- OLAT Tomcat server configuration parameters. This is used e.g. to assemble absolute URIS where needed. -->
-				<property name="serverconfig">
-					<map>
-						<entry key="server_name" value="REPLACE" />
-						<entry key="server_fqdn" value="${server.domainname}" />
-						<entry key="server_securePort" value="${server.port.ssl}" />
-						<entry key="server_insecurePort" value="${server.port}" />
-					</map>
-				</property>			
-				<!-- true enable debug mode, not for production mode but for productive hours ;) -->
-				<property name="debug" value="${olat.debug}" />
-				<!-- if readOnlyDebug, then no file changes can be made in the debug mode -->
-				<property name="readOnlyDebug" value="false" />
-				<!-- 
-					For Performance and/or Functional Tests. 
-					if allowLoadtestMode is set to true, it is possible to switch a session to  loadtest mode
-					using the url parameter ?loadtest  and ?noloadtest even without logging in.
-					Thus the same urls can be reused over and over again, which is needed for tools like JMeter or such.
-					- Not to be used for productive mode! (no double post checks, asynchronous inline rendering does not work etc.)-	 
-				-->
-				<property name="allowLoadtestMode" value="${allow.loadtest.mode}" />
-				<!-- true when ajax should be enabled system-wide (but for non-supported browsers the system will automatically fallback to web 1.0 mode) -->	
-				<property name="ajaxGloballyOn" value="true" />
-				<!-- List of user agents that should be served using the web 1.0 mode (no ajax DOM replacement).
-				 	A user agent that matches against one of the regular expressions below will be blocked.					
-				-->
-				<property name="ajaxBlacklistedUserAgents">
-					<!-- List of user agents that are blocked for the AJAX mode. A user agent that matches against one of the 
-						regular expressions below will be served in web 1.0 mode  -->
-					<list>
-						<value>.*WebKit/5[01].*</value> 		<!-- older than safari 3.0 -->
-						<value>.*MSIE [2345].*</value>			<!-- older than IE 6.0 -->
-						<value>.*Firefox/1\..</value>			<!-- older than FF 2.0  -->
-						<value>.*Opera/[45678].*</value>		<!-- older than Opera 9 -->
-						<value>.*Gecko/200[0123456].*</value>	<!-- Gecko engine older than 2006  -->
-						<value>.*Lynx.*</value>					<!-- Lynx console browser (no js) -->
-					</list>
-				</property>
-				<!-- 
-					Set the system theme here. Make sure the directory webapp/WEB-INF/static/themes/YOURTHEME exists. 
-					This is only the default value in case no user configuration is found. Use the administration GUI to
-					Set a specific theme.
-				-->				
-				<property name="guiThemeIdentifyer" value="${layout.theme}" />				
-				<!-- the versionid is prepended to various dynamically linked sources like css and js lib includes.
-					the prepending guarantees that all browsers are forced to reload the new files, since e.g. css cache invalidation
-					based on lastmodified http headers is broken on some browsers. this here is the only safe way.
-					for each release it is recommended to adjust the value to a new value which has neven been used before (such as the version number)
-					NOTE: please use only a-z, 0-9 and _ as characters (those which are safe in the url encoding without converting)
-				 -->
-				<property name="version" value="${build.version}" />
-				<property name="buildIdentifier" value="${build.identifier}" />
-				<property name="repoRevision" value="${build.repo.revision}" />
-				<property name="applicationName" value="${application.name}" />
-				<property name="clusterMode" value="${cluster.mode}"/>
-				<property name="nodeId" value="${node.id}"/>
-			</bean>
-
-			<bean class="org.olat.core.gui.render.velocity.VelocityModule" depends-on="org.olat.core.helpers.Settings" init-method="init"/>
-	
-</beans>
diff --git a/src/main/resources/serviceconfig/org/olat/core/_spring/olatcoreconfig.xml b/src/main/resources/serviceconfig/org/olat/core/_spring/olatcoreconfig.xml
deleted file mode 100644
index 11a169ce884..00000000000
--- a/src/main/resources/serviceconfig/org/olat/core/_spring/olatcoreconfig.xml
+++ /dev/null
@@ -1,188 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="
-  http://www.springframework.org/schema/beans 
-  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
-
-	<!--
-		****************************************************
-		*** Configuration for OLAT Cluster/SingleVM Coordinator   ***
-		****************************************************
-		
-	-->
-
-<bean id="org.olat.commons.coordinate.cluster.ClusterConfig" class="org.olat.core.util.cluster.ClusterConfig">
-		<!-- nodeId must be a cluster-wide unique integer between 1 and 63 -->
-		<property name="nodeId" value="${node.id}" />
-</bean>
-
-<bean id="coordinatorManager" class="org.olat.core.util.coordinate.CoordinatorManagerImpl">
-		<property name="coordinator" ref="org.olat.core.util.coordinate.ClusterCoordinator"/>
-</bean>
-
-
-<bean id="org.olat.core.util.coordinate.ClusterCoordinator" 
-	class="org.olat.commons.coordinate.cluster.ClusterCoordinator" lazy-init="true">
-		<property name="locker" >
-			<bean class="org.olat.commons.coordinate.cluster.lock.ClusterLocker" init-method="init">
-				<constructor-arg index="0" ref="clusterLockManager" />
-				<property name="syncer" ref="org.olat.commons.coordinate.cluster.ClusterSyncer" />
-				<property name="eventBus" ref="org.olat.commons.coordinate.cluster.jms.ClusterEventBus" />
-				<!-- to avoid circular reference method lookup is used for dependecy injection of persistent lock manager -->
-				<lookup-method name="getPersistentLockManager" bean="persistentLockManager"/>
-			</bean>
-		</property>
-		<property name="clusterConfig" ref="org.olat.commons.coordinate.cluster.ClusterConfig" />
-		<property name="syncer" ref="org.olat.commons.coordinate.cluster.ClusterSyncer" />
-		<property name="eventBus" ref="org.olat.commons.coordinate.cluster.jms.ClusterEventBus" />
-		<property name="cacher" ref="infinispanCacher"/>
-</bean>
-<!--
-<bean id="org.olat.core.util.coordinate.SingleVMCoordinator" class="org.olat.commons.coordinate.singlevm.SingleVMCoordinator" lazy-init="true">
-	<property name="syncer" ref="org.olat.commons.coordinate.cluster.ClusterSyncer"/>
-  <property name="eventBus" ref="org.olat.commons.coordinate.singlevm.SingleVMEventBus"/>
-	<property name="locker" ref="org.olat.commons.coordinate.singlevm.SingleVMLocker"/>
-	<property name="cacher" ref="infinispanCacher"/>
-</bean>
--->
-
-<bean id="infinispanCacheManager" class="org.olat.core.util.cache.infinispan.InfinispanCacheManager" destroy-method="stop">
-	<property name="configuration" value="infinispan-config.xml"/>
-	<property name="jndiName" value="${infinispan.jndi}"/>
-</bean>
-
-<bean id="infinispanCacher" class="org.olat.core.util.cache.infinispan.InfinispanCacher">
-	<constructor-arg index="0" ref="infinispanCacheManager"/>
-	<property name="cacheConfig">
-		<map>
-			<entry key="LoginModule" value-ref="org.olat.login.LoginModule_blockafterfailedattempts" />
-			<entry key="QTIHelper"  value-ref="org.olat.ims.qti.process.QTIHelper_QTI_xml_Documents"/>
-			<entry key="WikiManager" value-ref="org.olat.modules.wiki.WikiManager_wiki"/>
-			<entry key="CalendarManager" value-ref="org.olat.commons.calendar.ICalFileCalendarManager_calendar" />
-			<entry key="CourseFactory" value-ref="org.olat.course.CourseFactory_courses" />
-			<entry key="CollaborationToolsFactory" value-ref="org.olat.collaboration.CollaborationToolsFactory_tools" />
-			<entry key="AssessmentManager" value-ref="org.olat.course.assessment.NewCachePersistingAssessmentManager" />
-			<entry key="GlossaryItemManager" value-ref="org.olat.core.modules.glossary.GlossaryItemManager_glossary"/>
-			<entry key="ProjectBrokerManager" value-ref="org.olat.course.nodes.projectbroker.service.ProjectBrokerManagerImpl_pb"/>
-			<entry key="WebDAVManager" value-ref="org.olat.commons.servlets.WebDAVManagerImpl_webdav" />
-		</map>
-	</property>
-</bean>
-	
-	
-<!-- cache beans -->
-<!-- MapperService, UserSessionManager, OpenMeetingsManager, FeedManager -->
-<bean id="org.olat.login.LoginModule_blockafterfailedattempts" class="org.olat.core.util.cache.CacheConfig" >
-	<property name="timeToLive" value="300" />
-	<property name="timeToIdle" value="0" />
-	<property name="maxElementsInMemory" value="1000" />
-</bean>
-<bean id="org.olat.ims.qti.process.QTIHelper_QTI_xml_Documents" class="org.olat.core.util.cache.CacheConfig">
-	<property name="timeToLive" value="3600" />
-	<property name="timeToIdle" value="1800" />
-	<!-- qti files may be large -->
-	<property name="maxElementsInMemory" value="20" />
-</bean>					
-<bean id="org.olat.modules.wiki.WikiManager_wiki" class="org.olat.core.util.cache.CacheConfig">
-	<property name="timeToLive" value="14400" />
-	<property name="timeToIdle" value="1800" />
-	<property name="maxElementsInMemory" value="50" />								
-</bean>
-<bean id="org.olat.commons.calendar.ICalFileCalendarManager_calendar" class="org.olat.core.util.cache.CacheConfig">
-	<property name="timeToLive" value="3600" />
-	<property name="timeToIdle" value="3600" />
-	<property name="maxElementsInMemory" value="50" />								
-</bean>
-<bean id="org.olat.course.CourseFactory_courses" class="org.olat.core.util.cache.CacheConfig">
-	<property name="timeToLive" value="0" />
-	<property name="timeToIdle" value="3600" />
-	<property name="maxElementsInMemory" value="${course.cache.elements}" />								
-</bean>
-<bean id="org.olat.collaboration.CollaborationToolsFactory_tools" class="org.olat.core.util.cache.CacheConfig">
-		<property name="timeToLive" value="3600" />
-		<property name="timeToIdle" value="1800" />
-		<property name="maxElementsInMemory" value="5000" />								
-</bean>
-<bean id="org.olat.core.modules.glossary.GlossaryItemManager_glossary" class="org.olat.core.util.cache.CacheConfig">
-		<property name="timeToLive" value="7200" />
-		<property name="timeToIdle" value="1800" />
-		<property name="maxElementsInMemory" value="50" />								
-</bean>
-<bean id="org.olat.course.nodes.projectbroker.service.ProjectBrokerManagerImpl_pb" class="org.olat.core.util.cache.CacheConfig">
-	<property name="timeToLive" value="3600" />
-	<property name="timeToIdle" value="3600" />
-	<property name="maxElementsInMemory" value="50" />								
-</bean>
-<bean id="org.olat.commons.servlets.WebDAVManagerImpl_webdav" class="org.olat.core.util.cache.CacheConfig">
-	<property name="timeToLive" value="1800" />
-	<property name="timeToIdle" value="300" />
-	<property name="maxElementsInMemory" value="200" />								
-</bean>
-<bean id="org.olat.course.assessment.NewCachePersistingAssessmentManager" class="org.olat.core.util.cache.CacheConfig">
-	<property name="timeToLive" value="0" />
-	<property name="timeToIdle" value="60" />
-	<property name="maxElementsInMemory" value="20000" />							
-</bean>
-															
-<!-- end cache beans -->
-	
-<bean id="org.olat.commons.coordinate.cluster.ClusterSyncer" class="org.olat.commons.coordinate.cluster.ClusterSyncer" >
-		<constructor-arg index="0" ref="lockManager" />
-		<!-- if the ClusterSyncer is on debug level and if a sync takes longer than the given threshhold in miliseconds, then a warn message is written into the log -->
-		<property name="executionTimeThreshold" value="1000" />
-		<property name="dbInstance" ref="database"></property>
-</bean>
-
-<bean id="org.olat.commons.coordinate.cluster.jms.ClusterEventBus" class="org.olat.commons.coordinate.cluster.jms.ClusterEventBus" 
-init-method="springInit" destroy-method="stop" lazy-init="true">
-		<property name="clusterConfig"     ref="org.olat.commons.coordinate.cluster.ClusterConfig" />
-		<property name="connectionFactory" ref="jmsConnectionFactory"/>
-		<property name="destination"       ref="sysbus.topic"/>
-		<property name="sendInterval"      value="15000" />
-		<property name="jmsMsgDelayLimit"  value="5000" />
-</bean>
-
-<bean id="clusterLockManager" class="org.olat.commons.coordinate.cluster.lock.ClusterLockManager"/>
-<!-- 
-<bean id="org.olat.commons.coordinate.singlevm.SingleVMEventBus" class="org.olat.commons.coordinate.singlevm.SingleVMEventBus" lazy-init="true"/>
-
-	<bean id="org.olat.commons.coordinate.singlevm.SingleVMLocker" class="org.olat.commons.coordinate.singlevm.SingleVMLocker" init-method="init" lazy-init="true">
-		<property name="eventBus" ref="org.olat.commons.coordinate.singlevm.SingleVMEventBus"/>
-		<lookup-method name="getPersistentLockManager" bean="persistentLockManager"/>
-	</bean>
--->
-
-	<import resource="classpath:/serviceconfig/org/olat/core/_spring/olatcorejms_${jms.provider}.xml"/>
-	
-	
-<!-- JMX -->
-<bean id="org.springframework.jmx.support.MBeanServerFactoryBean" class="org.springframework.jmx.support.MBeanServerFactoryBean">
-	<property name="locateExistingServerIfPossible" value="true" />
-</bean>
-<bean id="registry" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean" lazy-init="true">
-  <property name="port" value="${jmx.rmi.port}"/>
-</bean>	
-
-<!--  DISABLE JMX CONNECTOR	
-    <bean id="serverConnector"
-	      class="org.springframework.jmx.support.ConnectorServerFactoryBean" depends-on="registry">
-		<property name="objectName" value="connector:name=rmi"/>
-		<property name="serviceUrl" 
-	            value="service:jmx:rmi://localhost/jndi/rmi://localhost:${jmx.rmi.port}/olat_connector"/>
-	    <property name="daemon" value="true"/>
-		<property name="environment">
--->
-			 <!-- the following is only valid when the sun jmx implementation is used --> 
-<!--  DISABLE JMX CONNECTOR	
-   			<map>
-  				<entry key="jmx.remote.x.password.file" value="/usr/local/opt/java/jre/lib/management/jmxremote.password"/>
-				<entry key="jmx.remote.x.access.file" value="/usr/local/opt/java/jre/lib/management/jmxremote.access"/>
-			</map>
-		</property>
-	</bean>
--->
-
-
-
-</beans>	
\ No newline at end of file
diff --git a/src/main/resources/serviceconfig/org/olat/notifications/_spring/olatdefaultconfig.xml b/src/main/resources/serviceconfig/org/olat/notifications/_spring/olatdefaultconfig.xml
deleted file mode 100644
index c767c84375e..00000000000
--- a/src/main/resources/serviceconfig/org/olat/notifications/_spring/olatdefaultconfig.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
-
-	<!-- Notification config:
-		If you want to disable notificaition please comment out the corresponding entry in scheduler
-		spring file in serviceconfig/org/olat/core/commons/scheduler/_spring/olatextconfig.xml
-		and delete or comment this *entire* file.
-		
-		later in this file you can also adjust the time the notification is scheduled. Default 
-		is 10min after midnight.
-	 -->
-
-	<bean id="sendNotificationsEmailTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
-	    <property name="jobDetail" ref="org.olat.notifications.job.${cluster.singleton.services}" />
-	    <!-- adjust cron style syntax for your notification needs 
-	    	"0 10 0 * *"  e.g. 10 minutes after midnight
-	    	
-	    	A "Cron-Expression" is a string comprised of 6 or 7 fields separated by white space. The 6 mandatory and 1 optional fields are as follows:
-			Field Name 	  	Allowed Values 	  	Allowed Special Characters
-			Seconds 	  	0-59 	  			, - * /
-			Minutes 	  	0-59 	  			, - * /
-			Hours 	  		0-23 	  			, - * /
-			Day-of-month 	1-31 	  			, - * ? / L W C
-			Month 	  		1-12 or JAN-DEC 	, - * /
-			Day-of-Week 	1-7 or SUN-SAT 	  	, - * ? / L C #
-			Year (Optional)	empty, 1970-2099 	, - * /
-
-			As of OLAT 6.3 it's best to let the cronjob run every two hours since users can now choose how often 
-			they will get notified. The shortest interval is set to two hours. 	    	
-	    -->
-	    <property name="cronExpression" value="${notification.cronjob.expression}" />
-
-		<!-- OLAT-5093 start delay ensures there's no conflict with server startup and db not being ready yet -->
-	    <property name="startDelay" value="300000" />
-	</bean>
-	
-	<bean id="org.olat.notifications.job.enabled" class="org.springframework.scheduling.quartz.JobDetailBean" lazy-init="true">
-	  <property name="jobClass" value="org.olat.notifications.EmailNotificationJob" />
-	</bean>
-	
-	<!-- dummy bean -->
-	<bean id="org.olat.notifications.job.disabled" class="org.springframework.scheduling.quartz.JobDetailBean"  lazy-init="true">
-		<property name="jobClass" value="org.olat.core.commons.scheduler.DummyJob" />
-	</bean>
-
-</beans>
\ No newline at end of file
diff --git a/src/main/webapp-gae/WEB-INF/web.xml b/src/main/webapp-gae/WEB-INF/web.xml
index 85572dde5ce..d6d855f3f40 100644
--- a/src/main/webapp-gae/WEB-INF/web.xml
+++ b/src/main/webapp-gae/WEB-INF/web.xml
@@ -21,47 +21,7 @@
     <context-param>
             <param-name>contextConfigLocation</param-name>
             <param-value>
-                    <!-- core spring files are in the olatcore jar file and have to be written with a full path to get loaded -->
-                    <!-- TODO: if anyone finds a solution to work with wildcards and jars, go for it -->
-                    <!-- TODO:a workaround could be to reference all core spring files in one file and import the other resources with the import statement -->
-                    
-                    <!-- Note: Place threadlogCorecontext.xml as high as possible in this list to make it being loaded as early as possible. 
-                    			This is due to the fact that it can only control Loggers that have been created after it (ThreadLocalLogLevelManager) has been installed. -->
-					classpath:/org/olat/core/util/threadlog/_spring/threadlogCorecontext.xml
-
-					classpath:/org/olat/core/util/vfs/version/_spring/versioningCorecontext.xml
-					classpath:/org/olat/core/util/i18n/_spring/i18nCorecontext.xml
-					classpath:/org/olat/core/util/_spring/utilCorecontext.xml
-					classpath:/org/olat/core/util/i18n/devtools/_spring/devtoolsCorecontext.xml
-					classpath:/org/olat/core/util/event/_spring/frameworkStartedEventCorecontext.xml
-					classpath:/org/olat/core/id/context/_spring/historyCorecontext.xml
-					
-					classpath:/org/olat/core/commons/controllers/resume/_spring/resumeCorecontext.xml
-					classpath:/org/olat/core/commons/persistence/_spring/databaseCorecontext.xml
-					classpath:/org/olat/core/commons/taskExecutor/_spring/taskExecutorCorecontext.xml
-					classpath:/org/olat/core/commons/fullWebApp/util/_spring/StickyMessageCorecontext.xml
-					classpath:/org/olat/core/commons/modules/bc/_spring/folderModuleCorecontext.xml
-					classpath:/org/olat/core/commons/modules/glossary/_spring/glossaryCorecontext.xml
-					classpath:/org/olat/core/commons/contextHelp/_spring/contextHelpCorecontext.xml
-					
-					classpath:/org/olat/core/logging/_spring/loggingCorecontext.xml
-					classpath:/org/olat/core/logging/activity/_spring/activityCorecontext.xml
-					classpath:/org/olat/core/_spring/mainCorecontext.xml
-					classpath:/org/olat/core/commons/services/_spring/servicesCorecontext.xml
-					
-					classpath:/serviceconfig/org/olat/core/gui/components/form/flexible/impl/elements/richText/_spring/richTextCorecontext.xml
-					classpath:/serviceconfig/org/olat/core/_spring/mainCorecontext.xml
-					
-					classpath:/serviceconfig/org/olat/core/_spring/olatcoreconfig.xml
-          classpath:/serviceconfig/org/olat/_spring/olatextconfig.xml
-          classpath:/serviceconfig/org/olat/core/commons/scheduler/_spring/olatextconfig.xml
-          classpath:/serviceconfig/brasatoconfig.xml
-          classpath:/serviceconfig/org/olat/_spring/brasatoconfigpart.xml
-          classpath:/serviceconfig/org/olat/notifications/_spring/olatdefaultconfig.xml
-                    
-                   	<!-- OLAT spring config can be loaded with wildcards as it is not packed as jars. This means you do not have to 
-                   	add your spring file here manually if it ends with *Context.xml (first letter uppercase!) -->
-                    classpath*:**/_spring/*Context.xml
+                    classpath:/org/olat/_spring/mainContext.xml
             </param-value>
     </context-param>
     
diff --git a/src/main/webapp-jbossas7/WEB-INF/web.xml b/src/main/webapp-jbossas7/WEB-INF/web.xml
index 34bb5a07fb4..833f408f7a5 100644
--- a/src/main/webapp-jbossas7/WEB-INF/web.xml
+++ b/src/main/webapp-jbossas7/WEB-INF/web.xml
@@ -21,47 +21,7 @@
     <context-param>
             <param-name>contextConfigLocation</param-name>
             <param-value>
-                    <!-- core spring files are in the olatcore jar file and have to be written with a full path to get loaded -->
-                    <!-- TODO: if anyone finds a solution to work with wildcards and jars, go for it -->
-                    <!-- TODO:a workaround could be to reference all core spring files in one file and import the other resources with the import statement -->
-                    
-                    <!-- Note: Place threadlogCorecontext.xml as high as possible in this list to make it being loaded as early as possible. 
-                    			This is due to the fact that it can only control Loggers that have been created after it (ThreadLocalLogLevelManager) has been installed. -->
-					classpath:/org/olat/core/util/threadlog/_spring/threadlogCorecontext.xml
-
-					classpath:/org/olat/core/util/vfs/version/_spring/versioningCorecontext.xml
-					classpath:/org/olat/core/util/i18n/_spring/i18nCorecontext.xml
-					classpath:/org/olat/core/util/_spring/utilCorecontext.xml
-					classpath:/org/olat/core/util/i18n/devtools/_spring/devtoolsCorecontext.xml
-					classpath:/org/olat/core/util/event/_spring/frameworkStartedEventCorecontext.xml
-					classpath:/org/olat/core/id/context/_spring/historyCorecontext.xml
-					
-					classpath:/org/olat/core/commons/controllers/resume/_spring/resumeCorecontext.xml
-					classpath:/org/olat/core/commons/persistence/_spring/databaseCorecontext.xml
-					classpath:/org/olat/core/commons/taskExecutor/_spring/taskExecutorCorecontext.xml
-					classpath:/org/olat/core/commons/fullWebApp/util/_spring/StickyMessageCorecontext.xml
-					classpath:/org/olat/core/commons/modules/bc/_spring/folderModuleCorecontext.xml
-					classpath:/org/olat/core/commons/modules/glossary/_spring/glossaryCorecontext.xml
-					classpath:/org/olat/core/commons/contextHelp/_spring/contextHelpCorecontext.xml
-					
-					classpath:/org/olat/core/logging/_spring/loggingCorecontext.xml
-					classpath:/org/olat/core/logging/activity/_spring/activityCorecontext.xml
-					classpath:/org/olat/core/_spring/mainCorecontext.xml
-					classpath:/org/olat/core/commons/services/_spring/servicesCorecontext.xml
-					
-					classpath:/serviceconfig/org/olat/core/gui/components/form/flexible/impl/elements/richText/_spring/richTextCorecontext.xml
-					classpath:/serviceconfig/org/olat/core/_spring/mainCorecontext.xml
-					
-					classpath:/serviceconfig/org/olat/core/_spring/olatcoreconfig.xml
-          classpath:/serviceconfig/org/olat/_spring/olatextconfig.xml
-          classpath:/serviceconfig/org/olat/core/commons/scheduler/_spring/olatextconfig.xml
-          classpath:/serviceconfig/brasatoconfig.xml
-          classpath:/serviceconfig/org/olat/_spring/brasatoconfigpart.xml
-          classpath:/serviceconfig/org/olat/notifications/_spring/olatdefaultconfig.xml
-                    
-                   	<!-- OLAT spring config can be loaded with wildcards as it is not packed as jars. This means you do not have to 
-                   	add your spring file here manually if it ends with *Context.xml (first letter uppercase!) -->
-                    classpath*:**/_spring/*Context.xml
+                    classpath:/org/olat/_spring/mainContext.xml
             </param-value>
     </context-param>
     
diff --git a/src/main/webapp-tomcat/WEB-INF/web.xml b/src/main/webapp-tomcat/WEB-INF/web.xml
index 0e40b6ebf13..9481d366053 100644
--- a/src/main/webapp-tomcat/WEB-INF/web.xml
+++ b/src/main/webapp-tomcat/WEB-INF/web.xml
@@ -21,47 +21,10 @@
     <context-param>
             <param-name>contextConfigLocation</param-name>
             <param-value>
-                    <!-- core spring files are in the olatcore jar file and have to be written with a full path to get loaded -->
-                    <!-- TODO: if anyone finds a solution to work with wildcards and jars, go for it -->
-                    <!-- TODO:a workaround could be to reference all core spring files in one file and import the other resources with the import statement -->
-                    
-                    <!-- Note: Place threadlogCorecontext.xml as high as possible in this list to make it being loaded as early as possible. 
-                    			This is due to the fact that it can only control Loggers that have been created after it (ThreadLocalLogLevelManager) has been installed. -->
-					classpath:/org/olat/core/util/threadlog/_spring/threadlogCorecontext.xml
-
-					classpath:/org/olat/core/util/vfs/version/_spring/versioningCorecontext.xml
-					classpath:/org/olat/core/util/i18n/_spring/i18nCorecontext.xml
-					classpath:/org/olat/core/util/_spring/utilCorecontext.xml
-					classpath:/org/olat/core/util/i18n/devtools/_spring/devtoolsCorecontext.xml
-					classpath:/org/olat/core/util/event/_spring/frameworkStartedEventCorecontext.xml
-					classpath:/org/olat/core/id/context/_spring/historyCorecontext.xml
-					
-					classpath:/org/olat/core/commons/controllers/resume/_spring/resumeCorecontext.xml
-					classpath:/org/olat/core/commons/persistence/_spring/databaseCorecontext.xml
-					classpath:/org/olat/core/commons/taskExecutor/_spring/taskExecutorCorecontext.xml
-					classpath:/org/olat/core/commons/fullWebApp/util/_spring/StickyMessageCorecontext.xml
-					classpath:/org/olat/core/commons/modules/bc/_spring/folderModuleCorecontext.xml
-					classpath:/org/olat/core/commons/modules/glossary/_spring/glossaryCorecontext.xml
-					classpath:/org/olat/core/commons/contextHelp/_spring/contextHelpCorecontext.xml
-					
-					classpath:/org/olat/core/logging/_spring/loggingCorecontext.xml
-					classpath:/org/olat/core/logging/activity/_spring/activityCorecontext.xml
-					classpath:/org/olat/core/_spring/mainCorecontext.xml
-					classpath:/org/olat/core/commons/services/_spring/servicesCorecontext.xml
-					
-					classpath:/serviceconfig/org/olat/core/gui/components/form/flexible/impl/elements/richText/_spring/richTextCorecontext.xml
-					classpath:/serviceconfig/org/olat/core/_spring/mainCorecontext.xml
-					
-					classpath:/serviceconfig/org/olat/core/_spring/olatcoreconfig.xml
-          classpath:/serviceconfig/org/olat/_spring/olatextconfig.xml
-          classpath:/serviceconfig/org/olat/core/commons/scheduler/_spring/olatextconfig.xml
-          classpath:/serviceconfig/brasatoconfig.xml
-          classpath:/serviceconfig/org/olat/_spring/brasatoconfigpart.xml
-          classpath:/serviceconfig/org/olat/notifications/_spring/olatdefaultconfig.xml
-                    
+                   classpath:/org/olat/_spring/mainContext.xml
                    	<!-- OLAT spring config can be loaded with wildcards as it is not packed as jars. This means you do not have to 
-                   	add your spring file here manually if it ends with *Context.xml (first letter uppercase!) -->
-                    classpath*:**/_spring/*Context.xml
+                   	add your spring file here manually if it ends with *Context.xml (first letter uppercase!)
+                    classpath*:**/_spring/*Context.xml  -->
             </param-value>
     </context-param>
    
diff --git a/src/test/java/org/olat/test/OlatTestCase.java b/src/test/java/org/olat/test/OlatTestCase.java
index 457b58abaf3..5145484ba1f 100644
--- a/src/test/java/org/olat/test/OlatTestCase.java
+++ b/src/test/java/org/olat/test/OlatTestCase.java
@@ -49,37 +49,7 @@ import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
  * This class is common parent to all JUnit Use Case tests in OLAT framework integration tests. 
  */
 @ContextConfiguration(loader = MockServletContextWebContextLoader.class, locations = {
-	"classpath:/org/olat/core/util/threadlog/_spring/threadlogCorecontext.xml",
-	"classpath:/org/olat/core/util/vfs/version/_spring/versioningCorecontext.xml",
-	"classpath:/org/olat/core/util/i18n/_spring/i18nCorecontext.xml",
-	"classpath:/org/olat/core/util/_spring/utilCorecontext.xml",
-	"classpath:/org/olat/core/util/i18n/devtools/_spring/devtoolsCorecontext.xml",
-	"classpath:/org/olat/core/util/event/_spring/frameworkStartedEventCorecontext.xml",
-	"classpath:/org/olat/core/id/context/_spring/historyCorecontext.xml",
-
-	"classpath:/org/olat/core/commons/persistence/_spring/databaseCorecontext.xml",
-	"classpath:/org/olat/core/commons/taskExecutor/_spring/taskExecutorCorecontext.xml",
-	"classpath:/org/olat/core/commons/fullWebApp/util/_spring/StickyMessageCorecontext.xml",
-	"classpath:/org/olat/core/commons/modules/bc/_spring/folderModuleCorecontext.xml",
-	"classpath:/org/olat/core/commons/modules/glossary/_spring/glossaryCorecontext.xml",
-	"classpath:/org/olat/core/commons/contextHelp/_spring/contextHelpCorecontext.xml",
-
-	"classpath:/org/olat/core/logging/_spring/loggingCorecontext.xml",
-	"classpath:/org/olat/core/logging/activity/_spring/activityCorecontext.xml",
-	"classpath:/org/olat/core/_spring/mainCorecontext.xml",
-
-	"classpath:/serviceconfig/org/olat/core/gui/components/form/flexible/impl/elements/richText/_spring/richTextCorecontext.xml",
-	"classpath:/serviceconfig/org/olat/core/_spring/mainCorecontext.xml",
-	"classpath:/org/olat/core/commons/services/_spring/servicesCorecontext.xml",
-
-	"classpath:/serviceconfig/org/olat/core/_spring/olatcoreconfig.xml",
-	"classpath:/serviceconfig/brasatoconfig.xml",
-  "classpath:/serviceconfig/org/olat/_spring/brasatoconfigpart.xml",
-  "classpath:/serviceconfig/org/olat/_spring/olatextconfig.xml",
-  "classpath:/serviceconfig/org/olat/core/commons/scheduler/_spring/olatextconfig.xml",
-  "classpath:/serviceconfig/org/olat/notifications/_spring/olatdefaultconfig.xml",
-
-	"classpath*:**/_spring/*Context.xml"
+	"classpath:/org/olat/_spring/mainContext.xml"
 })
 public abstract class OlatTestCase extends AbstractJUnit4SpringContextTests {
 	
-- 
GitLab