Author: btellier
Date: Tue Sep 22 10:26:15 2015
New Revision: 1704543

URL: http://svn.apache.org/viewvc?rev=1704543&view=rev
Log:
MAILBOX-64 Spring integration for quotas

Added:
    james/mailbox/trunk/spring/src/main/resources/META-INF/spring/quota.xml
    james/mailbox/trunk/spring/src/test/resources/META-INF/spring/
    
james/mailbox/trunk/spring/src/test/resources/META-INF/spring/quota-alias.xml
Modified:
    
james/mailbox/trunk/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
    
james/mailbox/trunk/hbase/src/main/resources/META-INF/spring/mailbox-hbase.xml
    james/mailbox/trunk/jcr/src/main/resources/META-INF/spring/mailbox-jcr.xml
    james/mailbox/trunk/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml
    
james/mailbox/trunk/maildir/src/main/resources/META-INF/spring/mailbox-maildir.xml
    
james/mailbox/trunk/memory/src/main/resources/META-INF/spring/mailbox-memory.xml
    
james/mailbox/trunk/spring/src/main/java/org/apache/james/mailbox/spring/SpringMailbox.java

Modified: 
james/mailbox/trunk/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml?rev=1704543&r1=1704542&r2=1704543&view=diff
==============================================================================
--- 
james/mailbox/trunk/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
 (original)
+++ 
james/mailbox/trunk/cassandra/src/main/resources/META-INF/spring/mailbox-cassandra.xml
 Tue Sep 22 10:26:15 2015
@@ -31,6 +31,9 @@
         <constructor-arg index="1" ref="authenticator"/>
         <constructor-arg index="2" ref="cassandra-locker"/>
         <property name="messageSearchIndex" ref="elasticsearch-listener"/>
+        <property name="quotaManager" ref="quotaManager"/>
+        <property name="quotaRootResolver" ref="quotaRootResolver"/>
+        <property name="quotaUpdater" ref="quotaUpdater"/>
     </bean>
 
     <bean id ="cassandra-subscriptionManager" 
class="org.apache.james.mailbox.cassandra.CassandraSubscriptionManager">
@@ -54,6 +57,14 @@
 
     <alias name="no-locker" alias="cassandra-locker"/>
 
+    <bean name="cassandraMaxQuotaManager" 
class="org.apache.james.mailbox.cassandra.quota.CassandraPerUserMaxQuotaManager">
+        <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"/>

Modified: 
james/mailbox/trunk/hbase/src/main/resources/META-INF/spring/mailbox-hbase.xml
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/hbase/src/main/resources/META-INF/spring/mailbox-hbase.xml?rev=1704543&r1=1704542&r2=1704543&view=diff
==============================================================================
--- 
james/mailbox/trunk/hbase/src/main/resources/META-INF/spring/mailbox-hbase.xml 
(original)
+++ 
james/mailbox/trunk/hbase/src/main/resources/META-INF/spring/mailbox-hbase.xml 
Tue Sep 22 10:26:15 2015
@@ -43,6 +43,9 @@
         <constructor-arg index="2" ref="hbase-locker"/>
         <constructor-arg index="3" ref="aclResolver"/>
         <constructor-arg index="4" ref="groupMembershipResolver"/>
+        <property name="quotaManager" ref="quotaManager"/>
+        <property name="maxQuotaManager" ref="maxQuotaManager"/>
+        <property name="quotaRootResolver" ref="quotaRootResolver"/>
     </bean>
 
     <bean id="hbase-sessionMapperFactory" 
class="org.apache.james.mailbox.hbase.HBaseMailboxSessionMapperFactory">

Modified: 
james/mailbox/trunk/jcr/src/main/resources/META-INF/spring/mailbox-jcr.xml
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/jcr/src/main/resources/META-INF/spring/mailbox-jcr.xml?rev=1704543&r1=1704542&r2=1704543&view=diff
==============================================================================
--- james/mailbox/trunk/jcr/src/main/resources/META-INF/spring/mailbox-jcr.xml 
(original)
+++ james/mailbox/trunk/jcr/src/main/resources/META-INF/spring/mailbox-jcr.xml 
Tue Sep 22 10:26:15 2015
@@ -33,6 +33,9 @@
         <constructor-arg index="2" ref="jcr-locker"/>
         <constructor-arg index="3" ref="aclResolver"/>
         <constructor-arg index="4" ref="groupMembershipResolver"/>
+        <property name="quotaManager" ref="quotaManager"/>
+        <property name="quotaRootResolver" ref="quotaRootResolver"/>
+        <property name="quotaUpdater" ref="quotaUpdater"/>
     </bean>
     <bean id ="jcr-subscriptionManager" 
class="org.apache.james.mailbox.jcr.JCRSubscriptionManager">
         <constructor-arg index="0" ref="jcr-sessionMapperFactory"/>

Modified: 
james/mailbox/trunk/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml?rev=1704543&r1=1704542&r2=1704543&view=diff
==============================================================================
--- james/mailbox/trunk/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml 
(original)
+++ james/mailbox/trunk/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml 
Tue Sep 22 10:26:15 2015
@@ -36,6 +36,9 @@
         <constructor-arg index="3" type="boolean" value="false"/>
         <constructor-arg index="4" ref="aclResolver"/>
         <constructor-arg index="5" ref="groupMembershipResolver"/>
+        <property name="quotaManager" ref="quotaManager"/>
+        <property name="quotaRootResolver" ref="quotaRootResolver"/>
+        <property name="quotaUpdater" ref="quotaUpdater"/>
     </bean>
     <bean id ="jpa-subscriptionManager" 
class="org.apache.james.mailbox.jpa.JPASubscriptionManager">
         <constructor-arg index="0" ref="jpa-sessionMapperFactory"/>

Modified: 
james/mailbox/trunk/maildir/src/main/resources/META-INF/spring/mailbox-maildir.xml
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/maildir/src/main/resources/META-INF/spring/mailbox-maildir.xml?rev=1704543&r1=1704542&r2=1704543&view=diff
==============================================================================
--- 
james/mailbox/trunk/maildir/src/main/resources/META-INF/spring/mailbox-maildir.xml
 (original)
+++ 
james/mailbox/trunk/maildir/src/main/resources/META-INF/spring/mailbox-maildir.xml
 Tue Sep 22 10:26:15 2015
@@ -40,6 +40,9 @@
         <constructor-arg index="3" ref="aclResolver"/>
         <constructor-arg index="4" ref="groupMembershipResolver"/>
 <!--         <property name="messageSearchIndex" ref="lazyIndex"/> -->
+        <property name="quotaManager" ref="quotaManager"/>
+        <property name="quotaRootResolver" ref="quotaRootResolver"/>
+        <property name="quotaUpdater" ref="quotaUpdater"/>
     </bean>
     <bean id ="maildir-subscriptionManager" 
class="org.apache.james.mailbox.store.StoreSubscriptionManager">
         <constructor-arg index="0" ref="maildir-sessionMapperFactory"/>

Modified: 
james/mailbox/trunk/memory/src/main/resources/META-INF/spring/mailbox-memory.xml
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/memory/src/main/resources/META-INF/spring/mailbox-memory.xml?rev=1704543&r1=1704542&r2=1704543&view=diff
==============================================================================
--- 
james/mailbox/trunk/memory/src/main/resources/META-INF/spring/mailbox-memory.xml
 (original)
+++ 
james/mailbox/trunk/memory/src/main/resources/META-INF/spring/mailbox-memory.xml
 Tue Sep 22 10:26:15 2015
@@ -36,6 +36,9 @@
         <constructor-arg index="3" ref="aclResolver"/>
         <constructor-arg index="4" ref="groupMembershipResolver"/>
 <!--         <property name="messageSearchIndex" ref="lazyIndex"/> -->
+        <property name="quotaManager" ref="quotaManager"/>
+        <property name="quotaRootResolver" ref="quotaRootResolver"/>
+        <property name="quotaUpdater" ref="quotaUpdater"/>
     </bean>
 
     <bean id ="memory-subscriptionManager" 
class="org.apache.james.mailbox.store.StoreSubscriptionManager">

Modified: 
james/mailbox/trunk/spring/src/main/java/org/apache/james/mailbox/spring/SpringMailbox.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/spring/src/main/java/org/apache/james/mailbox/spring/SpringMailbox.java?rev=1704543&r1=1704542&r2=1704543&view=diff
==============================================================================
--- 
james/mailbox/trunk/spring/src/main/java/org/apache/james/mailbox/spring/SpringMailbox.java
 (original)
+++ 
james/mailbox/trunk/spring/src/main/java/org/apache/james/mailbox/spring/SpringMailbox.java
 Tue Sep 22 10:26:15 2015
@@ -27,7 +27,8 @@ public class SpringMailbox {
     
     public SpringMailbox() {
         applicationContext = new 
ClassPathXmlApplicationContext("META-INF/spring/spring-mailbox.xml",
-                "META-INF/spring/mailbox-authenticator-anonymous.xml");
+            "META-INF/spring/mailbox-authenticator-anonymous.xml", 
"META-INF/spring/quota.xml",
+            "META-INF/spring/quota-alias.xml");
     }
     
     public Object getBean(String beanName) {

Added: james/mailbox/trunk/spring/src/main/resources/META-INF/spring/quota.xml
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/spring/src/main/resources/META-INF/spring/quota.xml?rev=1704543&view=auto
==============================================================================
--- james/mailbox/trunk/spring/src/main/resources/META-INF/spring/quota.xml 
(added)
+++ james/mailbox/trunk/spring/src/main/resources/META-INF/spring/quota.xml Tue 
Sep 22 10:26:15 2015
@@ -0,0 +1,55 @@
+<?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";>
+
+    <bean id="defaultQuotaRootResolver" 
class="org.apache.james.mailbox.store.quota.DefaultQuotaRootResolver" 
lazy-init="true">
+        <constructor-arg index="0" ref="messageMapperFactory"/>
+    </bean>
+
+    <bean id="currentQuotaCalculator" 
class="org.apache.james.mailbox.store.quota.CurrentQuotaCalculator" 
lazy-init="true">
+        <constructor-arg index="0" ref="messageMapperFactory"/>
+        <constructor-arg index="1" ref="quotaRootResolver"/>
+    </bean>
+
+    <bean id="inMemoryCurrentQuotaManager" 
class="org.apache.james.mailbox.inmemory.quota.InMemoryCurrentQuotaManager" 
lazy-init="true">
+        <constructor-arg index="0" ref="currentQuotaCalculator"/>
+        <constructor-arg index="1" ref="mailboxmanager"/>
+    </bean>
+
+    <bean id="noMaxQuotaManager" 
class="org.apache.james.mailbox.store.quota.NoMaxQuotaManager" 
lazy-init="true"/>
+    <bean id="fixedMaxQuotaManager" 
class="org.apache.james.mailbox.store.quota.FixedMaxQuotaManager" 
lazy-init="true"/>
+    <bean id="inMemoryMaxQuotaManager" 
class="org.apache.james.mailbox.inmemory.quota.InMemoryPerUserMaxQuotaManager" 
lazy-init="true"/>
+
+    <bean id="noQuotaManager" 
class="org.apache.james.mailbox.store.quota.NoQuotaManager" lazy-init="true"/>
+    <bean id="storeQuotaManager" 
class="org.apache.james.mailbox.store.quota.StoreQuotaManager" lazy-init="true">
+        <property name="maxQuotaManager" ref="maxQuotaManager"/>
+        <property name="currentQuotaManager" ref="currentQuotaManager"/>
+    </bean>
+
+    <bean id="noQuotaUpdater" 
class="org.apache.james.mailbox.store.quota.NoQuotaUpdater" lazy-init="true"/>
+    <bean id="eventQuotaUpdater" 
class="org.apache.james.mailbox.store.quota.ListeningCurrentQuotaUpdater" 
lazy-init="true">
+        <property name="quotaRootResolver" ref="quotaRootResolver"/>
+        <property name="currentQuotaManager" ref="currentQuotaManager"/>
+    </bean>
+
+</beans>
\ No newline at end of file

Added: 
james/mailbox/trunk/spring/src/test/resources/META-INF/spring/quota-alias.xml
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/spring/src/test/resources/META-INF/spring/quota-alias.xml?rev=1704543&view=auto
==============================================================================
--- 
james/mailbox/trunk/spring/src/test/resources/META-INF/spring/quota-alias.xml 
(added)
+++ 
james/mailbox/trunk/spring/src/test/resources/META-INF/spring/quota-alias.xml 
Tue Sep 22 10:26:15 2015
@@ -0,0 +1,31 @@
+<?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";>
+
+    <alias name="noMaxQuotaManager" alias="maxQuotaManager"/>
+    <alias name="noQuotaManager" alias="quotaManager"/>
+    <alias name="noQuotaUpdater" alias="quotaUpdater"/>
+    <alias name="defaultQuotaRootResolver" alias="quotaRootResolver"/>
+    <alias name="jpa-sessionMapperFactory" alias="messageMapperFactory"/>
+
+</beans>
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to