Author: matthieu
Date: Thu Oct 29 14:15:07 2015
New Revision: 1711269
URL: http://svn.apache.org/viewvc?rev=1711269&view=rev
Log:
JAMES-1588 Spring configuration
Added:
james/project/trunk/backends-common/cassandra/src/main/resources/
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
Modified:
james/project/trunk/mailbox/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
james/project/trunk/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
Added:
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
URL:
http://svn.apache.org/viewvc/james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml?rev=1711269&view=auto
==============================================================================
---
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
(added)
+++
james/project/trunk/backends-common/cassandra/src/main/resources/META-INF/cassandra-session.xml
Thu Oct 29 14:15:07 2015
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<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
+ http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+ <!-- Cassandra lazy initialization-->
+
+ <!--
+ The Cluster factory is responsible for connecting the cluster
+
+ The ClusterWithKeyspaceCreatedFactory is responsible for creating the
keyspace if not present.
+
+ The SessionFactory is responsible for giving a session we can work with
+ -->
+
+ <bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+ <property name="ignoreUnresolvablePlaceholders" value="true"/>
+ <property name ="location" value="classpath:cassandra.properties"/>
+ </bean>
+
+ <bean id="cassandra-mailbox-module"
+ class="org.apache.james.mailbox.cassandra.CassandraMailboxModule"
+ lazy-init="true"/>
+
+ <bean id="cassandra-cluster"
+ class="org.apache.james.backends.cassandra.init.ClusterFactory"
+ factory-method="createClusterForSingleServerWithoutPassWord"
+ lazy-init="true">
+ <constructor-arg index="0" value="${cassandra.ip}"/>
+ <constructor-arg index="1" value="${cassandra.port}" type="int"/>
+ </bean>
+
+ <bean id="cassandra-cluster-initialized"
+
class="org.apache.james.backends.cassandra.init.ClusterWithKeyspaceCreatedFactory"
+ factory-method="clusterWithInitializedKeyspace"
+ lazy-init="true">
+ <constructor-arg index="0" ref="cassandra-cluster"/>
+ <constructor-arg index="1" value="${cassandra.keyspace}"/>
+ <constructor-arg index="2" value="${cassandra.replication.factor}"
type="int"/>
+ </bean>
+
+ <bean id="cassandra-session"
+
class="org.apache.james.backends.cassandra.init.SpringStaticSessionFactory"
+ factory-method="createSession"
+ lazy-init="true">
+ <constructor-arg index="0" ref="cassandra-cluster-initialized"/>
+ <constructor-arg index="1" value="${cassandra.keyspace}"/>
+ <constructor-arg index="2">
+ <list>
+ <ref bean="cassandra-mailbox-module"/>
+ </list>
+ </constructor-arg>
+ </bean>
+
+ <bean id="cassandra-type-provider"
+
class="org.apache.james.backends.cassandra.init.CassandraTypesProvider"
+ lazy-init="true">
+ <constructor-arg index="0">
+ <list>
+ <ref bean="cassandra-mailbox-module"/>
+ </list>
+ </constructor-arg>
+ <constructor-arg index="1" ref="cassandra-session"/>
+ </bean>
+
+</beans>
Modified:
james/project/trunk/mailbox/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
URL:
http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml?rev=1711269&r1=1711268&r2=1711269&view=diff
==============================================================================
---
james/project/trunk/mailbox/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
(original)
+++
james/project/trunk/mailbox/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
Thu Oct 29 14:15:07 2015
@@ -26,7 +26,10 @@
<!--
Mailbox Cassandra
-->
- <bean id="cassandra-mailboxmanager"
class="org.apache.james.mailbox.cassandra.CassandraMailboxManager"
init-method="init">
+ <bean id="cassandra-mailboxmanager"
+ class="org.apache.james.mailbox.cassandra.CassandraMailboxManager"
+ init-method="init"
+ lazy-init="true">
<constructor-arg index="0" ref="cassandra-sessionMapperFactory"/>
<constructor-arg index="1" ref="authenticator"/>
<constructor-arg index="2" ref="cassandra-locker"/>
@@ -36,64 +39,44 @@
<property name="quotaUpdater" ref="quotaUpdater"/>
</bean>
- <bean id ="cassandra-subscriptionManager"
class="org.apache.james.mailbox.cassandra.CassandraSubscriptionManager">
+ <bean id ="cassandra-subscriptionManager"
+
class="org.apache.james.mailbox.cassandra.CassandraSubscriptionManager"
+ lazy-init="true">
<constructor-arg index="0" ref="cassandra-sessionMapperFactory"/>
</bean>
- <bean id="cassandra-sessionMapperFactory"
class="org.apache.james.mailbox.cassandra.CassandraMailboxSessionMapperFactory">
+ <bean id="cassandra-sessionMapperFactory"
+
class="org.apache.james.mailbox.cassandra.CassandraMailboxSessionMapperFactory"
+ lazy-init="true">
<constructor-arg index="0" ref="cassandra-uidProvider"/>
<constructor-arg index="1" ref="cassandra-modSeqProvider"/>
<constructor-arg index="2" ref="cassandra-session"/>
<constructor-arg index="3" ref="cassandra-type-provider"/>
</bean>
- <bean id="cassandra-uidProvider"
class="org.apache.james.mailbox.cassandra.mail.CassandraUidProvider">
+ <bean id="cassandra-uidProvider"
+ class="org.apache.james.mailbox.cassandra.mail.CassandraUidProvider"
+ lazy-init="true">
<constructor-arg index="0" ref="cassandra-session"/>
</bean>
- <bean id="cassandra-modSeqProvider"
class="org.apache.james.mailbox.cassandra.mail.CassandraModSeqProvider">
+ <bean id="cassandra-modSeqProvider"
+
class="org.apache.james.mailbox.cassandra.mail.CassandraModSeqProvider"
+ lazy-init="true">
<constructor-arg index="0" ref="cassandra-session"/>
</bean>
<alias name="no-locker" alias="cassandra-locker"/>
- <bean name="cassandraMaxQuotaManager"
class="org.apache.james.mailbox.cassandra.quota.CassandraPerUserMaxQuotaManager">
+ <bean name="cassandraMaxQuotaManager"
+
class="org.apache.james.mailbox.cassandra.quota.CassandraPerUserMaxQuotaManager"
+ lazy-init="true">
<constructor-arg index="0" ref="cassandra-session"/>
</bean>
- <bean name="cassandraCurrentQuotaManager"
class="org.apache.james.mailbox.cassandra.quota.CassandraCurrentQuotaManager">
- <constructor-arg index="0" ref="cassandra-session"/>
- </bean>
-
- <bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="ignoreUnresolvablePlaceholders" value="true"/>
- <property name ="location" value="classpath:cassandra.properties"/>
- </bean>
-
- <!--
- The Cluster factory is responsible for connecting the cluster
-
- The ClusterWithKeyspaceCreatedFactory is responsible for creating the
keyspace if not present.
-
- The SessionFactory is responsible for giving a session we can work with
- -->
- <bean id="cassandra-cluster"
class="org.apache.james.mailbox.cassandra.ClusterFactory"
factory-method="createClusterForSingleServerWithoutPassWord">
- <constructor-arg index="0" value="${cassandra.ip}"/>
- <constructor-arg index="1" value="${cassandra.port}" type="int"/>
- </bean>
-
- <bean id="cassandra-cluster-initialized"
class="org.apache.james.mailbox.cassandra.ClusterWithKeyspaceCreatedFactory"
factory-method="clusterWithInitializedKeyspace">
- <constructor-arg index="0" ref="cassandra-cluster"/>
- <constructor-arg index="1" value="${cassandra.keyspace}"/>
- <constructor-arg index="2" value="${cassandra.replication.factor}"
type="int"/>
- </bean>
-
- <bean id="cassandra-session"
class="org.apache.james.mailbox.cassandra.SessionFactory"
factory-method="createSession">
- <constructor-arg index="0" ref="cassandra-cluster-initialized"/>
- <constructor-arg index="1" value="${cassandra.keyspace}"/>
- </bean>
-
- <bean id="cassandra-type-provider"
class="org.apache.james.mailbox.cassandra.CassandraTypesProvider">
+ <bean name="cassandraCurrentQuotaManager"
+
class="org.apache.james.mailbox.cassandra.quota.CassandraCurrentQuotaManager"
+ lazy-init="true">
<constructor-arg index="0" ref="cassandra-session"/>
</bean>
Modified:
james/project/trunk/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
URL:
http://svn.apache.org/viewvc/james/project/trunk/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml?rev=1711269&r1=1711268&r2=1711269&view=diff
==============================================================================
---
james/project/trunk/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
(original)
+++
james/project/trunk/server/container/spring/src/main/resources/META-INF/org/apache/james/spring-server.xml
Thu Oct 29 14:15:07 2015
@@ -25,6 +25,8 @@
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">
+ <import resource="classpath:META-INF/cassandra-session.xml"/>
+
<!--
===========================================================================
Spring Wiring for James Server: Annotation, Bean Post-Processors...
@@ -261,4 +263,5 @@
<import resource="classpath:jetm-monitoring.conf" />
-->
+
</beans>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]