You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2017/11/03 02:33:21 UTC
[04/15] james-project git commit: MAILBOX-317 Solve Spring related
issues.
MAILBOX-317 Solve Spring related issues.
Over-customization in OpenJpaMailboxManager led Spring choosing the wrong constructor. Thus I propose a simplification of untested features.
(Enabling compression / encryption will require extending OpenJpaMailboxManager)
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/afbed0f2
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/afbed0f2
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/afbed0f2
Branch: refs/heads/master
Commit: afbed0f2ac65c99b10e2b610ff7ad988761fb389
Parents: 9e7abcb
Author: benwa <bt...@linagora.com>
Authored: Thu Nov 2 12:51:38 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Nov 3 09:32:32 2017 +0700
----------------------------------------------------------------------
.../jpa/openjpa/OpenJPAMailboxManager.java | 54 +++-----------------
.../jpa/openjpa/OpenJPAMessageManager.java | 15 ------
.../resources/META-INF/spring/mailbox-jpa.xml | 6 ++-
.../META-INF/spring/mailbox-maildir.xml | 7 +--
.../META-INF/spring/mailbox-memory.xml | 5 +-
.../META-INF/spring/spring-mailbox.xml | 5 ++
6 files changed, 22 insertions(+), 70 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/afbed0f2/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java
index 5c25eeb..5f7421d 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java
@@ -22,12 +22,10 @@ package org.apache.james.mailbox.jpa.openjpa;
import javax.inject.Inject;
-import org.apache.james.mailbox.MailboxPathLocker;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.jpa.JPAMailboxManager;
import org.apache.james.mailbox.jpa.JPAMailboxSessionMapperFactory;
-import org.apache.james.mailbox.jpa.mail.model.openjpa.EncryptDecryptHelper;
import org.apache.james.mailbox.jpa.openjpa.OpenJPAMessageManager.AdvancedFeature;
import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.store.Authenticator;
@@ -47,62 +45,22 @@ import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
*/
public class OpenJPAMailboxManager extends JPAMailboxManager {
- private final AdvancedFeature feature;
-
+ @Inject
public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory,
Authenticator authenticator,
Authorizator authorizator,
- MailboxPathLocker locker,
- boolean useStreaming,
MessageParser messageParser,
MessageId.Factory messageIdFactory,
- StoreMailboxAnnotationManager annotationManager,
DelegatingMailboxListener delegatingMailboxListener,
MailboxEventDispatcher mailboxEventDispatcher,
- StoreRightManager storeRightManager) {
- super(mapperFactory, authenticator, authorizator, locker, messageParser,
- messageIdFactory, delegatingMailboxListener, mailboxEventDispatcher, annotationManager, storeRightManager);
- if (useStreaming) {
- feature = AdvancedFeature.Streaming;
- } else {
- feature = AdvancedFeature.None;
- }
- }
-
- public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory,
- Authenticator authenticator,
- Authorizator authorizator,
- MailboxPathLocker locker,
- String encryptPass,
- MessageParser messageParser,
- MessageId.Factory messageIdFactory,
StoreMailboxAnnotationManager annotationManager,
- DelegatingMailboxListener delegatingMailboxListener,
- MailboxEventDispatcher mailboxEventDispatcher,
StoreRightManager storeRightManager) {
- super(mapperFactory, authenticator, authorizator, locker, messageParser,
+ super(mapperFactory, authenticator, authorizator, new JVMMailboxPathLocker(), messageParser,
messageIdFactory, delegatingMailboxListener, mailboxEventDispatcher, annotationManager, storeRightManager);
- if (encryptPass != null) {
- EncryptDecryptHelper.init(encryptPass);
- feature = AdvancedFeature.Encryption;
- } else {
- feature = AdvancedFeature.None;
- }
}
-
- @Inject
- public OpenJPAMailboxManager(JPAMailboxSessionMapperFactory mapperFactory,
- Authenticator authenticator,
- Authorizator authorizator,
- MessageParser messageParser,
- MessageId.Factory messageIdFactory,
- DelegatingMailboxListener delegatingMailboxListener,
- MailboxEventDispatcher mailboxEventDispatcher,
- StoreMailboxAnnotationManager annotationManager,
- StoreRightManager storeRightManager) {
- this(mapperFactory, authenticator, authorizator, new JVMMailboxPathLocker(), false,
- messageParser, messageIdFactory, annotationManager, delegatingMailboxListener, mailboxEventDispatcher,
- storeRightManager);
+
+ protected AdvancedFeature getAdvancedFeature() {
+ return AdvancedFeature.None;
}
@Override
@@ -112,7 +70,7 @@ public class OpenJPAMailboxManager extends JPAMailboxManager {
getEventDispatcher(),
getLocker(),
mailboxRow,
- feature,
+ getAdvancedFeature(),
getQuotaManager(),
getQuotaRootResolver(),
getMessageParser(),
http://git-wip-us.apache.org/repos/asf/james-project/blob/afbed0f2/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMessageManager.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMessageManager.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMessageManager.java
index e02ce9e..e82ee00 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMessageManager.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMessageManager.java
@@ -58,17 +58,6 @@ public class OpenJPAMessageManager extends JPAMessageManager {
Streaming,
Encryption
}
-
- public OpenJPAMessageManager(MailboxSessionMapperFactory mapperFactory,
- MessageSearchIndex index,MailboxEventDispatcher dispatcher,
- MailboxPathLocker locker, Mailbox mailbox,
- QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, MessageParser messageParser,
- MessageId.Factory messageIdFactory, BatchSizes batchSizes,
- ImmutableMailboxMessage.Factory immutableMailboxMessageFactory,
- StoreRightManager storeRightManager) throws MailboxException {
- this(mapperFactory, index, dispatcher, locker, mailbox, AdvancedFeature.None,
- quotaManager, quotaRootResolver, messageParser, messageIdFactory, batchSizes, immutableMailboxMessageFactory, storeRightManager);
- }
public OpenJPAMessageManager(MailboxSessionMapperFactory mapperFactory,
MessageSearchIndex index, MailboxEventDispatcher dispatcher,
@@ -84,10 +73,6 @@ public class OpenJPAMessageManager extends JPAMessageManager {
@Override
protected MailboxMessage createMessage(Date internalDate, int size, int bodyStartOctet, SharedInputStream content, Flags flags, PropertyBuilder propertyBuilder, List<MessageAttachment> attachments) throws MailboxException {
- int headerEnd = bodyStartOctet -2;
- if (headerEnd < 0) {
- headerEnd = 0;
- }
switch (feature) {
case Streaming:
return new JPAStreamingMailboxMessage((JPAMailbox) getMailboxEntity(), internalDate, size, flags, content, bodyStartOctet, propertyBuilder);
http://git-wip-us.apache.org/repos/asf/james-project/blob/afbed0f2/mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml b/mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml
index 86d3966..53d378c 100644
--- a/mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml
+++ b/mailbox/jpa/src/main/resources/META-INF/spring/mailbox-jpa.xml
@@ -38,11 +38,13 @@
<constructor-arg index="2" ref="authorizator"/>
<constructor-arg index="3" ref="messageParser"/>
<constructor-arg index="4" ref="messageIdFactory"/>
- <constructor-arg index="5" ref="storeRightManager" />
+ <constructor-arg index="5" ref="delegating-listener"/>
+ <constructor-arg index="6" ref="dispatcher"/>
+ <constructor-arg index="7" ref="storeMailboxAnnotationManager"/>
+ <constructor-arg index="8" ref="storeRightManager" />
<property name="quotaManager" ref="quotaManager"/>
<property name="quotaRootResolver" ref="quotaRootResolver"/>
<property name="quotaUpdater" ref="quotaUpdater"/>
- <property name="delegatingMailboxListener" ref="delegating-listener"/>
</bean>
<bean id ="jpa-subscriptionManager" class="org.apache.james.mailbox.jpa.JPASubscriptionManager">
http://git-wip-us.apache.org/repos/asf/james-project/blob/afbed0f2/mailbox/maildir/src/main/resources/META-INF/spring/mailbox-maildir.xml
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/resources/META-INF/spring/mailbox-maildir.xml b/mailbox/maildir/src/main/resources/META-INF/spring/mailbox-maildir.xml
index ebbdd03..ca75508 100644
--- a/mailbox/maildir/src/main/resources/META-INF/spring/mailbox-maildir.xml
+++ b/mailbox/maildir/src/main/resources/META-INF/spring/mailbox-maildir.xml
@@ -41,9 +41,10 @@
<constructor-arg index="3" ref="maildir-locker"/>
<constructor-arg index="4" ref="messageParser"/>
<constructor-arg index="5" ref="messageIdFactory" />
- <constructor-arg index="6" ref="dispatcher" />
- <constructor-arg index="7" ref="delegating-listener" />
- <constructor-arg index="8" ref="storeRightManager" />
+ <constructor-arg index="6" ref="storeMailboxAnnotationManager" />
+ <constructor-arg index="7" ref="dispatcher" />
+ <constructor-arg index="8" ref="delegating-listener" />
+ <constructor-arg index="9" ref="storeRightManager" />
<!-- <property name="messageSearchIndex" ref="lazyIndex"/> -->
<property name="quotaManager" ref="quotaManager"/>
<property name="quotaRootResolver" ref="quotaRootResolver"/>
http://git-wip-us.apache.org/repos/asf/james-project/blob/afbed0f2/mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml b/mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml
index 0e3d011..7857d0f 100644
--- a/mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml
+++ b/mailbox/memory/src/main/resources/META-INF/spring/mailbox-memory.xml
@@ -31,7 +31,7 @@
<!-- WARNING: Memory does not persist the mailbox. -->
<!-- Information will be lost after jvm restart. -->
- <bean id="memory-mailboxManager" class="org.apache.james.mailbox.store.StoreMailboxManager" init-method="init">
+ <bean id="memory-mailboxManager" class="org.apache.james.mailbox.inmemory.InMemoryMailboxManager" init-method="init">
<constructor-arg index="0" ref="memory-sessionMapperFactory"/>
<constructor-arg index="1" ref="authenticator"/>
<constructor-arg index="2" ref="authorizator"/>
@@ -40,7 +40,8 @@
<constructor-arg index="5" ref="messageIdFactory" />
<constructor-arg index="6" ref="dispatcher" />
<constructor-arg index="7" ref="delegating-listener" />
- <constructor-arg index="8" ref="storeRightManager" />
+ <constructor-arg index="8" ref="storeMailboxAnnotationManager" />
+ <constructor-arg index="9" ref="storeRightManager" />
<!-- <property name="messageSearchIndex" ref="lazyIndex"/> -->
<property name="quotaManager" ref="quotaManager"/>
<property name="quotaRootResolver" ref="quotaRootResolver"/>
http://git-wip-us.apache.org/repos/asf/james-project/blob/afbed0f2/mailbox/spring/src/main/resources/META-INF/spring/spring-mailbox.xml
----------------------------------------------------------------------
diff --git a/mailbox/spring/src/main/resources/META-INF/spring/spring-mailbox.xml b/mailbox/spring/src/main/resources/META-INF/spring/spring-mailbox.xml
index ca91f42..8caa3cb 100644
--- a/mailbox/spring/src/main/resources/META-INF/spring/spring-mailbox.xml
+++ b/mailbox/spring/src/main/resources/META-INF/spring/spring-mailbox.xml
@@ -60,6 +60,11 @@
-->
<bean id="messageParser" class="org.apache.james.mailbox.store.mail.model.impl.MessageParser"/>
+ <bean id="storeMailboxAnnotationManager" class="org.apache.james.mailbox.store.StoreMailboxAnnotationManager">
+ <constructor-arg index="0" ref="messageMapperFactory" />
+ <constructor-arg index="1" ref="storeRightManager" />
+ </bean>
+
<bean id="storeRightManager" class="org.apache.james.mailbox.store.StoreRightManager" >
<constructor-arg index="0" ref="messageMapperFactory" />
<constructor-arg index="1" ref="aclResolver" />
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org