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