[ 
https://issues.apache.org/jira/browse/MAILBOX-64?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14899990#comment-14899990
 ] 

ASF GitHub Bot commented on MAILBOX-64:
---------------------------------------

GitHub user chibenwa opened a pull request:

    https://github.com/apache/james-mailbox/pull/12

    Mailbox 64

    RFC 2087 Mailbox Quota APIs and their implementations...
    
    This PR is a rework of what was previously commited on MAILBOX-64, with the 
following concepts :
    
     -  1 : Allow custom QUOTA ROOT definition
     -  2 : Prefer composition to inheritance
     -  3 : Each part can follow different backends
     -  4 : No behavioural changes if wanted using "fake" implementations
    
    1 : RFC 2087 manage quotas for mailboxes grouped in QUOTA ROOT. A QUOTA 
ROOT might group mailbox the way you want. Default is ( of course ) to group 
mailboxes of a user. But you might want to group mailboxes of a departement ( 
or any other group of people ). API is ere, just extend it ... Note that in 
regard of RFC-2087 a mailbox belongs to one and only one quota root.
    
    2 : That is why I introduced the CurrentQuotaManager and MaxQuotaManager 
APIs
    
    3 : Coming from point 2, you can easily select ( for instance ) an in 
memory cache for current quotas and select a LDAP based max quota manager ( 
still needs to be implemented ).
    
    4: All implementation available, at some point implies an overhead. It 
might be persisting quota uppon events, or recalculating quotas, checking 
QuotaManager on COPY or APPEND operations. I thought giving people the choice 
to completly drop quota support was a good idea. So I introduced No* classes. 
Was I right ?
    
    Available implementations :
    
      - inmemory : Current Quota manager acts like a cache. Unknown quotas need 
to be re-calculated . Of course, this is not persistant. Max Quota manager 
should be configuered threw JAMES-511 introduced quota.xml config file ( -> 
inmemory is not persistant ). In memory implementation is great for a 
standalone James server ( where you can afford to re-calculate quotas... )
    
      - cassandra : Data get stored in Cassandra. Slowest performance ( network 
calls, and so on ), but it work in a distributed context.
    
    Related to : MPT-26 , PROTOCOLS-108 , JAMES-511 , issues for which I 
provide a PR at the same time.


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/chibenwa/james-mailbox MAILBOX-64

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/james-mailbox/pull/12.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #12
    
----
commit fb8cc4f640d5b999ad0c6c6b722eb79fb3192963
Author: benwa <[email protected]>
Date:   2015-09-15T12:58:20Z

    MAILBOX-64 Moving Quota related interfaces to a new package

commit 0198a71ddb0481f5e992027a33d778792b7987f3
Author: benwa <[email protected]>
Date:   2015-09-15T13:13:51Z

    MAILBOX-64 Modify and extend Quota APIs

commit 236a8018c74085979b7c8a4c87d5be68736eb255
Author: benwa <[email protected]>
Date:   2015-09-15T13:16:43Z

    MAILBOX-64 Correct QuotaImpl bug

commit 8f043742abfaeb81413485ffd7f120e739b2ca1c
Author: benwa <[email protected]>
Date:   2015-09-15T13:26:36Z

    MAILBOX-64 Enrich QuotaImpl

commit fab95cd18bb6e2a2bd53296d43d3843d73350e36
Author: benwa <[email protected]>
Date:   2015-09-15T13:37:29Z

    MAILBOX-64 Introduce a fixed max quota manager

commit c77945d75f4b8faaf61c7fb94900b7ea2bb9dee6
Author: benwa <[email protected]>
Date:   2015-09-15T13:58:58Z

    MAILBOX-64 QuotaRoot Store implementation

commit 50ed6079cc2387a3f51e486a757085153c1b539b
Author: benwa <[email protected]>
Date:   2015-09-15T14:01:26Z

    MAILBOX-64 QuotaRootResolver and default implementation

commit a6fe8050e976717b38e407311d15e9f47ed32731
Author: benwa <[email protected]>
Date:   2015-09-15T14:07:48Z

    MAILBOX-64 Introduce a current quota calculator

commit 93e62ea19fc35cb6779a1b01a143fa060d44f965
Author: benwa <[email protected]>
Date:   2015-09-15T14:09:55Z

    MAILBOX-64 Change maven configuration to include Guava and mockito

commit f723165486ff3314b128cbbecba5b397a03715f4
Author: benwa <[email protected]>
Date:   2015-09-15T14:13:29Z

    MAILBOX-64 In memory implementation for PerUser max quota management

commit e7172c8c71376010aef7f411ff196cd017ad8ee5
Author: benwa <[email protected]>
Date:   2015-09-15T17:31:56Z

    MAILBOX-64 Store QuotaManager implementation

commit 3ec7bbb250b9524b40f4f50993a50a33806e2864
Author: benwa <[email protected]>
Date:   2015-09-15T17:48:44Z

    MAILBOX-64 Provide a Listening Quota updater and a fake quota updater

commit 0f21153a9985c129d72dfe2f4d02cb2cb116b936
Author: benwa <[email protected]>
Date:   2015-09-15T22:06:55Z

    MAILBOX-64 Memory implementation for CurrentQuotaManager - can be used for 
Quota caching

commit 0e563b1b96db31691f9025f87f0107a831d6245f
Author: benwa <[email protected]>
Date:   2015-09-15T22:28:25Z

    MAILBOX-64 A fake QuotaManager intended to be used to deactivate Quota 
related features

commit 3c0eea36bb2da75fca510315e63fb6e071f6627e
Author: benwa <[email protected]>
Date:   2015-09-15T22:55:59Z

    MAILBOX-64 Provide a MaxQuotaManager that only throws

commit 652e10ddfbf6cafd4a885f6a062e2f9430fb56cd
Author: benwa <[email protected]>
Date:   2015-09-16T10:56:14Z

    MAILBOX-64 StoreMessageManager should check quotas on append and copy 
commands

commit b384904be21c023ada5a0d85c701ed3d760e02ff
Author: benwa <[email protected]>
Date:   2015-09-16T20:59:40Z

    MAILBOX-64 Quota integration API and default tests

commit b2bd27643fbb38384824af9dc5d147a718bf8327
Author: benwa <[email protected]>
Date:   2015-09-16T21:00:01Z

    MAILBOX-64 Quota integration tests for in memory

commit d465a6d765391b9b230155240542ab71a0766f33
Author: benwa <[email protected]>
Date:   2015-09-16T22:21:32Z

    MAILBOX-64 Cassandra stored MaxQuotaManager + test generalization

commit b8fce43267e58c49129768b7213579edf128f6e1
Author: benwa <[email protected]>
Date:   2015-09-16T22:56:01Z

    MAILBOX-64 Cassandra stored CurrentQuotaManager

commit 73110843d2fc972a0743f768b3e40b23e6c86023
Author: benwa <[email protected]>
Date:   2015-09-19T23:05:45Z

    MAILBOX-64 Spring integration for quotas

----


> Add out-of-the box support for quotas
> -------------------------------------
>
>                 Key: MAILBOX-64
>                 URL: https://issues.apache.org/jira/browse/MAILBOX-64
>             Project: James Mailbox
>          Issue Type: New Feature
>          Components: api, store
>            Reporter: Norman Maurer
>            Assignee: Norman Maurer
>             Fix For: 0.3
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to