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]

Reply via email to