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 ro...@apache.org on 2019/03/04 15:03:36 UTC

[james-project] branch master updated (e2cc389 -> 407036b)

This is an automated email from the ASF dual-hosted git repository.

rouazana pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git.


    from e2cc389  JAMES-2664 Relocate NoopMailboxListener in tests
     new 802e9c1  JAMES-2578 Fix warning using Mailet new API
     new 407036b  Fixes Eclipse and checkstyle warnings

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/james/mailbox/MailboxManagerTest.java   |  1 -
 .../AbstractMessageIdManagerSideEffectTest.java    |  1 +
 .../apache/james/ai/classic/BayesianAnalysis.java  |  7 ++++--
 .../james/transport/SMIMEAttributeNames.java       | 15 +++++-------
 .../james/transport/mailets/AbstractSign.java      |  8 ++++---
 .../transport/mailets/SMIMECheckSignature.java     | 17 +++++++------
 .../james/transport/mailets/SMIMEDecrypt.java      |  9 ++++---
 .../james/transport/mailets/ICALToHeader.java      |  1 +
 .../transport/mailets/ICALToJsonAttribute.java     |  2 ++
 .../james/transport/mailets/ICalendarParser.java   |  1 +
 .../james/transport/mailets/ContactExtractor.java  | 12 +++++++---
 .../james/transport/mailets/RecoverAttachment.java |  1 +
 .../james/transport/mailets/SetMailAttribute.java  | 25 +++++++------------
 .../james/transport/mailets/StripAttachment.java   |  1 +
 .../james/transport/matchers/SentByMailetTest.java |  2 --
 .../org/apache/james/server/core/MailImplTest.java |  4 ++--
 .../org/apache/james/modules/MailboxModule.java    |  3 +++
 .../james/transport/mailets/BayesianAnalysis.java  |  7 ++++--
 .../james/transport/mailets/FromRepository.java    |  3 ++-
 .../org/apache/james/transport/mailets/SPF.java    | 11 +++++----
 .../transport/mailets/WithStorageDirective.java    | 20 +++++++++-------
 .../mailets/jsieve/delivery/SievePoster.java       |  3 ++-
 .../transport/mailets/remote/delivery/Bouncer.java |  7 ++++--
 .../apache/james/transport/matchers/dlp/Dlp.java   |  7 ++++--
 .../mailets/remote/delivery/BouncerTest.java       |  6 +++--
 .../apache/james/fetchmail/MessageProcessor.java   | 28 +++++++++++++---------
 .../james/jmap/mailet/filter/ActionApplier.java    |  3 ++-
 .../james/smtpserver/fastfail/SPFHandler.java      | 15 +++++++-----
 .../james/queue/activemq/ActiveMQMailQueue.java    |  5 ++--
 .../james/queue/activemq/ActiveMQSupport.java      |  4 ++--
 .../queue/api/ManageableMailQueueContract.java     |  1 -
 .../org/apache/james/queue/jms/JMSMailQueue.java   |  4 ++--
 32 files changed, 138 insertions(+), 96 deletions(-)


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[james-project] 01/02: JAMES-2578 Fix warning using Mailet new API

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rouazana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 802e9c1e9764e7472eff870a3a38fb2a48b7ac74
Author: Gautier DI FOLCO <gd...@linagora.com>
AuthorDate: Tue Feb 26 16:30:20 2019 +0100

    JAMES-2578 Fix warning using Mailet new API
---
 .../apache/james/ai/classic/BayesianAnalysis.java  |  7 ++++--
 .../james/transport/SMIMEAttributeNames.java       | 15 +++++-------
 .../james/transport/mailets/AbstractSign.java      |  8 ++++---
 .../transport/mailets/SMIMECheckSignature.java     | 17 +++++++------
 .../james/transport/mailets/SMIMEDecrypt.java      |  9 ++++---
 .../james/transport/mailets/ContactExtractor.java  | 12 +++++++---
 .../james/transport/mailets/SetMailAttribute.java  | 25 +++++++------------
 .../james/transport/mailets/BayesianAnalysis.java  |  7 ++++--
 .../james/transport/mailets/FromRepository.java    |  3 ++-
 .../org/apache/james/transport/mailets/SPF.java    | 11 +++++----
 .../transport/mailets/WithStorageDirective.java    | 20 +++++++++-------
 .../mailets/jsieve/delivery/SievePoster.java       |  3 ++-
 .../transport/mailets/remote/delivery/Bouncer.java |  7 ++++--
 .../apache/james/transport/matchers/dlp/Dlp.java   |  7 ++++--
 .../mailets/remote/delivery/BouncerTest.java       |  6 +++--
 .../apache/james/fetchmail/MessageProcessor.java   | 28 +++++++++++++---------
 .../james/jmap/mailet/filter/ActionApplier.java    |  3 ++-
 .../james/smtpserver/fastfail/SPFHandler.java      | 15 +++++++-----
 .../james/queue/activemq/ActiveMQMailQueue.java    |  5 ++--
 .../james/queue/activemq/ActiveMQSupport.java      |  4 ++--
 .../org/apache/james/queue/jms/JMSMailQueue.java   |  3 ++-
 21 files changed, 126 insertions(+), 89 deletions(-)

diff --git a/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java b/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java
index a91d178..e05ff98 100644
--- a/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java
+++ b/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java
@@ -33,6 +33,9 @@ import javax.mail.internet.MimeMessage;
 import javax.sql.DataSource;
 
 import org.apache.james.core.MailAddress;
+import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeName;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
@@ -137,7 +140,7 @@ public class BayesianAnalysis extends GenericMailet {
 
     DataSource datasource;
 
-    private static final String MAIL_ATTRIBUTE_NAME = "org.apache.james.spam.probability";
+    private static final AttributeName MAIL_ATTRIBUTE_NAME = AttributeName.of("org.apache.james.spam.probability");
     private static final String HEADER_NAME = "X-MessageIsSpamProbability";
     static final long CORPUS_RELOAD_INTERVAL = 600000;
     private String headerName;
@@ -309,7 +312,7 @@ public class BayesianAnalysis extends GenericMailet {
                 probability = 0.0;
             }
 
-            mail.setAttribute(MAIL_ATTRIBUTE_NAME, probability);
+            mail.setAttribute(new Attribute(MAIL_ATTRIBUTE_NAME, AttributeValue.of(probability)));
             message.setHeader(headerName, Double.toString(probability));
 
             DecimalFormat probabilityForm = (DecimalFormat) DecimalFormat.getInstance();
diff --git a/mailet/crypto/src/main/java/org/apache/james/transport/SMIMEAttributeNames.java b/mailet/crypto/src/main/java/org/apache/james/transport/SMIMEAttributeNames.java
index b403ccd..7d2b231 100644
--- a/mailet/crypto/src/main/java/org/apache/james/transport/SMIMEAttributeNames.java
+++ b/mailet/crypto/src/main/java/org/apache/james/transport/SMIMEAttributeNames.java
@@ -21,6 +21,8 @@
 
 package org.apache.james.transport;
 
+import org.apache.mailet.AttributeName;
+
 /**
  * Contains some SMIME related mail attribute names of general use.
  *
@@ -32,23 +34,18 @@ public interface SMIMEAttributeNames {
     /**
      * The attribute contains the server-side signing mailet name as a String.
      */
-    String SMIME_SIGNING_MAILET = "org.apache.james.smime.signing.mailetname";
+    AttributeName SMIME_SIGNING_MAILET = AttributeName.of("org.apache.james.smime.signing.mailetname");
     
     /**
      * The attribute contains the string "valid" or the reason of non-validity of the signature.
      * The status could be non valid either because the signature does not verify
      * or because the certificate could be not valid when the signature was done.
      */
-    String SMIME_SIGNATURE_VALIDITY = "org.apache.james.smime.signature.validity";
+    AttributeName SMIME_SIGNATURE_VALIDITY = AttributeName.of("org.apache.james.smime.signature.validity");
     
     /**
      * The attribute contains the signer's mail address as a String.
      */
-    String SMIME_SIGNER_ADDRESS = "org.apache.james.smime.signer.address";
-    
-    /**
-     * The attribute contains the signature timestamp as a Date object.
-     */
-    String SMIME_SIGNING_TIME = "org.apache.james.smime.signing.time";
-    
+    AttributeName SMIME_SIGNER_ADDRESS = AttributeName.of("org.apache.james.smime.signer.address");
+
 }
diff --git a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
index 42bd5f2..1cff04c 100644
--- a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
+++ b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
@@ -40,7 +40,9 @@ import org.apache.james.transport.KeyHolder;
 import org.apache.james.transport.SMIMEAttributeNames;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
+import org.apache.mailet.Attribute;
 import org.apache.mailet.AttributeUtils;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.base.RFC2822Headers;
@@ -514,13 +516,13 @@ public abstract class AbstractSign extends GenericMailet {
             mail.setMessage(newMessage);
             
             // marks this mail as server-signed
-            mail.setAttribute(SMIMEAttributeNames.SMIME_SIGNING_MAILET, this.getClass().getName());
+            mail.setAttribute(new Attribute(SMIMEAttributeNames.SMIME_SIGNING_MAILET, AttributeValue.of(this.getClass().getName())));
             // it is valid for us by definition (signed here by us)
-            mail.setAttribute(SMIMEAttributeNames.SMIME_SIGNATURE_VALIDITY, "valid");
+            mail.setAttribute(new Attribute(SMIMEAttributeNames.SMIME_SIGNATURE_VALIDITY, AttributeValue.of("valid")));
             
             // saves the trusted server signer address
             // warning: should be same as the mail address in the certificate, but it is not guaranteed
-            mail.setAttribute(SMIMEAttributeNames.SMIME_SIGNER_ADDRESS, getKeyHolder().getSignerAddress());
+            mail.setAttribute(new Attribute(SMIMEAttributeNames.SMIME_SIGNER_ADDRESS, AttributeValue.of(getKeyHolder().getSignerAddress())));
             
             if (isDebug()) {
                 LOGGER.debug("Message signed, reverse-path: {}, Id: {}", mail.getMaybeSender().asString(), messageId);
diff --git a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMECheckSignature.java b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMECheckSignature.java
index 6fd176e..4f109b6 100644
--- a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMECheckSignature.java
+++ b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMECheckSignature.java
@@ -34,6 +34,9 @@ import javax.mail.internet.MimeMultipart;
 
 import org.apache.james.transport.KeyStoreHolder;
 import org.apache.james.transport.SMIMESignerInfo;
+import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeName;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetConfig;
 import org.apache.mailet.base.GenericMailet;
@@ -103,13 +106,13 @@ import org.slf4j.LoggerFactory;
  */
 public class SMIMECheckSignature extends GenericMailet {
     private static final Logger LOGGER = LoggerFactory.getLogger(SMIMECheckSignature.class);
+
+    private KeyStoreHolder trustedCertificateStore;
     
-    protected KeyStoreHolder trustedCertificateStore;
-    
-    protected boolean stripSignature = false;
-    protected boolean onlyTrusted = true;
+    private boolean stripSignature = false;
+    private boolean onlyTrusted = true;
     
-    protected String mailAttribute = "org.apache.james.SMIMECheckSignature";
+    private AttributeName mailAttribute = AttributeName.of("org.apache.james.SMIMECheckSignature");
     
     public SMIMECheckSignature() {
         super();
@@ -132,7 +135,7 @@ public class SMIMECheckSignature extends GenericMailet {
         
         String mailAttributeConf = config.getInitParameter("mailAttribute");
         if (mailAttributeConf != null) {
-            mailAttribute = mailAttributeConf;
+            mailAttribute = AttributeName.of(mailAttributeConf);
         }
         
         
@@ -213,7 +216,7 @@ public class SMIMECheckSignature extends GenericMailet {
             }
 
             if (signerinfolist.size() > 0) {
-                mail.setAttribute(mailAttribute, signerinfolist);
+                mail.setAttribute(new Attribute(mailAttribute, AttributeValue.ofAny(signerinfolist)));
             } else {
                 // if no valid signers are found the message is not modified.
                 strippedMessage = null;
diff --git a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMEDecrypt.java b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMEDecrypt.java
index 2e2019b..df1d0fb 100644
--- a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMEDecrypt.java
+++ b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMEDecrypt.java
@@ -35,6 +35,9 @@ import javax.mail.internet.MimeMessage;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.james.transport.SMIMEKeyHolder;
+import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeName;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetConfig;
 import org.apache.mailet.base.GenericMailet;
@@ -79,7 +82,7 @@ public class SMIMEDecrypt extends GenericMailet {
 
     private SMIMEKeyHolder keyHolder;
     private X509CertificateHolder certificateHolder;
-    protected String mailAttribute = "org.apache.james.SMIMEDecrypt";
+    private AttributeName mailAttribute = AttributeName.of("org.apache.james.SMIMEDecrypt");
     
     @Override
     public void init() throws MessagingException {
@@ -101,7 +104,7 @@ public class SMIMEDecrypt extends GenericMailet {
         
         String mailAttributeConf = config.getInitParameter("mailAttribute");
         if (mailAttributeConf != null) {
-            mailAttribute = mailAttributeConf;
+            mailAttribute = AttributeName.of(mailAttributeConf);
         }
         
         try {
@@ -161,7 +164,7 @@ public class SMIMEDecrypt extends GenericMailet {
             // the result of the operation.
             ArrayList<X509Certificate> list = new ArrayList<>(1);
             list.add(keyHolder.getCertificate());
-            mail.setAttribute(mailAttribute, list);
+            mail.setAttribute(new Attribute(mailAttribute, AttributeValue.ofAny(list)));
 
             // I start the message stripping.
             try {
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ContactExtractor.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ContactExtractor.java
index 64e0524..02f0b9c 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ContactExtractor.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ContactExtractor.java
@@ -32,6 +32,9 @@ import javax.mail.internet.MimeMessage;
 import org.apache.james.core.MailAddress;
 import org.apache.james.mime4j.util.MimeUtil;
 import org.apache.james.util.StreamUtils;
+import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeName;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.MailetException;
@@ -73,12 +76,13 @@ public class ContactExtractor extends GenericMailet implements Mailet {
     private static final Logger LOGGER = LoggerFactory.getLogger(ContactExtractor.class);
 
     @VisibleForTesting ObjectMapper objectMapper;
-    private String extractAttributeTo;
+    private AttributeName extractAttributeTo;
 
     @Override
     public void init() throws MessagingException {
         extractAttributeTo = getInitParameterAsOptional(Configuration.ATTRIBUTE)
-                .orElseThrow(() -> new MailetException("No value for " + Configuration.ATTRIBUTE + " parameter was provided."));
+            .map(AttributeName::of)
+            .orElseThrow(() -> new MailetException("No value for " + Configuration.ATTRIBUTE + " parameter was provided."));
 
         objectMapper = new ObjectMapper().registerModule(new Jdk8Module());
     }
@@ -93,7 +97,9 @@ public class ContactExtractor extends GenericMailet implements Mailet {
         try {
             Optional<String> payload = extractContacts(mail);
             LOGGER.debug("payload : {}", payload);
-            payload.ifPresent(x -> mail.setAttribute(extractAttributeTo, x));
+            payload
+                .map(AttributeValue::of)
+                .ifPresent(x -> mail.setAttribute(new Attribute(extractAttributeTo, x)));
         } catch (Exception e) {
             LOGGER.error("Error while extracting contacts", e);
         }
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMailAttribute.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMailAttribute.java
index ea91948..3536650 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMailAttribute.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMailAttribute.java
@@ -21,16 +21,16 @@
 
 package org.apache.james.transport.mailets;
 
-import java.util.Iterator;
-import java.util.Map;
-
 import javax.mail.MessagingException;
 
+import org.apache.mailet.Attribute;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
 import org.apache.mailet.base.GenericMailet;
 
-import com.google.common.collect.ImmutableMap;
+import com.github.steveash.guavate.Guavate;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Streams;
 
 /**
  * <p>This mailet sets attributes on the Mail.</p>
@@ -47,7 +47,7 @@ import com.google.common.collect.ImmutableMap;
  */
 public class SetMailAttribute extends GenericMailet {
 
-    private ImmutableMap<String, String> entries;
+    private ImmutableList<Attribute> entries;
     
     @Override
     public String getMailetInfo() {
@@ -56,21 +56,14 @@ public class SetMailAttribute extends GenericMailet {
 
     @Override
     public void init() throws MailetException {
-        ImmutableMap.Builder<String, String> attributes = ImmutableMap.builder();
-        Iterator<String> iter = getInitParameterNames();
-        while (iter.hasNext()) {
-            String name = iter.next();
-            String value = getInitParameter(name);
-            attributes.put(name, value);
-        }
-        entries = attributes.build();
+        entries = Streams.stream(getInitParameterNames())
+            .map(name -> Attribute.convertToAttribute(name, getInitParameter(name)))
+            .collect(Guavate.toImmutableList());
     }
 
     @Override
     public void service(Mail mail) throws MessagingException {
-        for (Map.Entry<String, String> entry : entries.entrySet()) {
-            mail.setAttribute(entry.getKey(), entry.getValue());
-        }
+        entries.forEach(mail::setAttribute);
     }
     
 
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
index bd84484..32af9f5 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
@@ -35,6 +35,9 @@ import org.apache.james.core.MailAddress;
 import org.apache.james.filesystem.api.FileSystem;
 import org.apache.james.util.bayesian.JDBCBayesianAnalyzer;
 import org.apache.james.util.sql.JDBCUtil;
+import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeName;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
@@ -142,7 +145,7 @@ public class BayesianAnalysis extends GenericMailet {
 
     private DataSource datasource;
 
-    private static final String MAIL_ATTRIBUTE_NAME = "org.apache.james.spam.probability";
+    private static final AttributeName MAIL_ATTRIBUTE_NAME = AttributeName.of("org.apache.james.spam.probability");
     private static final String HEADER_NAME = "X-MessageIsSpamProbability";
     private static final long CORPUS_RELOAD_INTERVAL = 600000;
     private String headerName;
@@ -316,7 +319,7 @@ public class BayesianAnalysis extends GenericMailet {
                 probability = 0.0;
             }
 
-            mail.setAttribute(MAIL_ATTRIBUTE_NAME, probability);
+            mail.setAttribute(new Attribute(MAIL_ATTRIBUTE_NAME, AttributeValue.of(probability)));
             message.setHeader(headerName, Double.toString(probability));
 
             DecimalFormat probabilityForm = (DecimalFormat) DecimalFormat.getInstance();
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/FromRepository.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/FromRepository.java
index 5a3d58e..f99d231 100755
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/FromRepository.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/FromRepository.java
@@ -32,6 +32,7 @@ import org.apache.james.mailrepository.api.MailRepository;
 import org.apache.james.mailrepository.api.MailRepositoryStore;
 import org.apache.james.mailrepository.api.MailRepositoryUrl;
 import org.apache.james.transport.mailets.managesieve.ManageSieveMailet;
+import org.apache.mailet.Attribute;
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
@@ -109,7 +110,7 @@ public class FromRepository extends GenericMailet {
                 if (mail != null && mail.getRecipients() != null) {
                     LOGGER.debug("Spooling mail {} from {}", mail.getName(), repositoryPath);
 
-                    mail.setAttribute("FromRepository", Boolean.TRUE);
+                    mail.setAttribute(Attribute.convertToAttribute("FromRepository", Boolean.TRUE));
                     mail.setState(processor);
                     getMailetContext().sendMail(mail);
                     if (delete) {
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SPF.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SPF.java
index 3c71efd..9cc4eae 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SPF.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SPF.java
@@ -26,6 +26,9 @@ import org.apache.james.jspf.core.Logger;
 import org.apache.james.jspf.executor.SPFResult;
 import org.apache.james.jspf.impl.DefaultSPF;
 import org.apache.james.transport.mailets.managesieve.ManageSieveMailet;
+import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeName;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
@@ -57,8 +60,8 @@ public class SPF extends GenericMailet {
 
     private boolean addHeader = false;
     private org.apache.james.jspf.impl.SPF spf;
-    public static final String EXPLANATION_ATTRIBUTE = "org.apache.james.transport.mailets.spf.explanation";
-    public static final String RESULT_ATTRIBUTE = "org.apache.james.transport.mailets.spf.result";
+    private static final AttributeName EXPLANATION_ATTRIBUTE = AttributeName.of("org.apache.james.transport.mailets.spf.explanation");
+    private static final AttributeName RESULT_ATTRIBUTE = AttributeName.of("org.apache.james.transport.mailets.spf.result");
 
     @Override
     public void init() {
@@ -76,8 +79,8 @@ public class SPF extends GenericMailet {
         if (!remoteAddr.equals("127.0.0.1")) {
             String sender = mail.getMaybeSender().asString("");
             SPFResult result = spf.checkSPF(remoteAddr, sender, helo);
-            mail.setAttribute(EXPLANATION_ATTRIBUTE, result.getExplanation());
-            mail.setAttribute(RESULT_ATTRIBUTE, result.getResult());
+            mail.setAttribute(new Attribute(EXPLANATION_ATTRIBUTE, AttributeValue.of(result.getExplanation())));
+            mail.setAttribute(new Attribute(RESULT_ATTRIBUTE, AttributeValue.of(result.getResult())));
 
             LOGGER.debug("ip:{} from:{} helo:{} = {}", remoteAddr, sender, helo, result.getResult());
             if (addHeader) {
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WithStorageDirective.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WithStorageDirective.java
index 4070050..f6f1bbd 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WithStorageDirective.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WithStorageDirective.java
@@ -25,6 +25,9 @@ import javax.mail.MessagingException;
 import org.apache.james.core.MailAddress;
 import org.apache.james.transport.mailets.delivery.MailStore;
 import org.apache.james.user.api.UsersRepository;
+import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeName;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
 
@@ -52,7 +55,7 @@ public class WithStorageDirective extends GenericMailet {
 
     private final UsersRepository usersRepository;
 
-    private String targetFolderName;
+    private AttributeValue<String> targetFolderName;
 
     @Inject
     public WithStorageDirective(UsersRepository usersRepository) {
@@ -61,12 +64,13 @@ public class WithStorageDirective extends GenericMailet {
 
     @Override
     public void init() throws MessagingException {
-        targetFolderName = getInitParameter(TARGET_FOLDER_NAME);
-        validateMailetConfiguration();
+        targetFolderName = AttributeValue.of(validateMailetConfiguration(TARGET_FOLDER_NAME));
     }
 
-    public void validateMailetConfiguration() {
-        Preconditions.checkState(!Strings.isNullOrEmpty(targetFolderName), "You need to specify " + TARGET_FOLDER_NAME);
+    private String validateMailetConfiguration(String initParameterName) {
+        String initParameterValue = getInitParameter(initParameterName);
+        Preconditions.checkState(!Strings.isNullOrEmpty(initParameterValue), "You need to specify " + initParameterName);
+        return initParameterValue;
     }
 
     @Override
@@ -77,10 +81,8 @@ public class WithStorageDirective extends GenericMailet {
 
     public ThrowingConsumer<MailAddress> addStorageDirective(Mail mail) {
         return recipient -> {
-            String attributeNameForUser = MailStore.DELIVERY_PATH_PREFIX + usersRepository.getUser(recipient);
-            mail.setAttribute(
-                attributeNameForUser,
-                targetFolderName);
+            AttributeName attributeNameForUser = AttributeName.of(MailStore.DELIVERY_PATH_PREFIX + usersRepository.getUser(recipient));
+            mail.setAttribute(new Attribute(attributeNameForUser, targetFolderName));
         };
 
     }
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SievePoster.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SievePoster.java
index f7099b8..8a3b486 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SievePoster.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SievePoster.java
@@ -28,6 +28,7 @@ import org.apache.james.transport.mailets.delivery.MailStore;
 import org.apache.james.transport.mailets.jsieve.Poster;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
+import org.apache.mailet.Attribute;
 import org.apache.mailet.Mail;
 
 public class SievePoster implements Poster {
@@ -49,7 +50,7 @@ public class SievePoster implements Poster {
             if (scheme.equals("mailbox")) {
                 UserAndPath userAndPath = retrieveUserAndPath(url, endOfScheme);
 
-                mail.setAttribute(MailStore.DELIVERY_PATH_PREFIX + userAndPath.user, userAndPath.path);
+                mail.setAttribute(Attribute.convertToAttribute(MailStore.DELIVERY_PATH_PREFIX + userAndPath.user, userAndPath.path));
             } else {
                 throw new MessagingException("Unsupported protocol");
             }
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Bouncer.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Bouncer.java
index 43cfce3..f2d1d3f 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Bouncer.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Bouncer.java
@@ -29,6 +29,9 @@ import javax.mail.MessagingException;
 import javax.mail.SendFailedException;
 
 import org.apache.james.core.MailAddress;
+import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeName;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetContext;
 import org.slf4j.Logger;
@@ -37,7 +40,7 @@ import org.slf4j.LoggerFactory;
 public class Bouncer {
     private static final Logger LOGGER = LoggerFactory.getLogger(Bouncer.class);
 
-    public static final String DELIVERY_ERROR = "delivery-error";
+    public static final AttributeName DELIVERY_ERROR = AttributeName.of("delivery-error");
     private final RemoteDeliveryConfiguration configuration;
     private final MailetContext mailetContext;
 
@@ -51,7 +54,7 @@ public class Bouncer {
             LOGGER.debug("Null Sender: no bounce will be generated for {}", mail.getName());
         } else {
             if (configuration.getBounceProcessor() != null) {
-                mail.setAttribute(DELIVERY_ERROR, getErrorMsg(ex));
+                mail.setAttribute(new Attribute(DELIVERY_ERROR, AttributeValue.of(getErrorMsg(ex))));
                 try {
                     mailetContext.sendMail(mail, configuration.getBounceProcessor());
                 } catch (MessagingException e) {
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/dlp/Dlp.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/dlp/Dlp.java
index 4257c3b..945b170 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/dlp/Dlp.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/dlp/Dlp.java
@@ -27,6 +27,9 @@ import javax.inject.Inject;
 import org.apache.james.core.MailAddress;
 import org.apache.james.dlp.api.DLPConfigurationItem;
 import org.apache.james.dlp.api.DLPConfigurationStore;
+import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeName;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMatcher;
 
@@ -35,7 +38,7 @@ import com.google.common.collect.ImmutableList;
 
 public class Dlp extends GenericMatcher {
 
-    public static final String DLP_MATCHED_RULE = "DlpMatchedRule";
+    private static final AttributeName DLP_MATCHED_RULE = AttributeName.of("DlpMatchedRule");
 
     private final DlpRulesLoader rulesLoader;
 
@@ -62,7 +65,7 @@ public class Dlp extends GenericMatcher {
     }
 
     private void setRuleIdAsMailAttribute(Mail mail, DLPConfigurationItem.Id ruleId) {
-        mail.setAttribute(DLP_MATCHED_RULE, ruleId.asString());
+        mail.setAttribute(new Attribute(DLP_MATCHED_RULE, AttributeValue.of(ruleId.asString())));
     }
 
     private Optional<DLPConfigurationItem.Id> findFirstMatchingRule(Mail mail) {
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/BouncerTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/BouncerTest.java
index 9c1b289..723adfb 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/BouncerTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remote/delivery/BouncerTest.java
@@ -34,6 +34,8 @@ import javax.mail.SendFailedException;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.transport.mailets.remote.delivery.Bouncer;
 import org.apache.james.transport.mailets.remote.delivery.RemoteDeliveryConfiguration;
+import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
@@ -344,7 +346,7 @@ public class BouncerTest {
 
         FakeMailContext.SentMail expected = FakeMailContext.sentMailBuilder()
             .sender(MailAddressFixture.ANY_AT_JAMES)
-            .attribute(DELIVERY_ERROR, errorMessage)
+            .attribute(new Attribute(DELIVERY_ERROR, AttributeValue.of(errorMessage)))
             .state(BOUNCE_PROCESSOR)
             .fromMailet()
             .build();
@@ -446,7 +448,7 @@ public class BouncerTest {
 
         FakeMailContext.SentMail expected = FakeMailContext.sentMailBuilder()
             .sender(MailAddressFixture.ANY_AT_JAMES)
-            .attribute(DELIVERY_ERROR, "null")
+            .attribute(new Attribute(DELIVERY_ERROR, AttributeValue.of("null")))
             .state(BOUNCE_PROCESSOR)
             .fromMailet()
             .build();
diff --git a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
index 1adb19b..49c374b 100644
--- a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
+++ b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
@@ -34,6 +34,9 @@ import org.apache.james.core.MailAddress;
 import org.apache.james.domainlist.api.DomainListException;
 import org.apache.james.server.core.MailImpl;
 import org.apache.james.user.api.UsersRepositoryException;
+import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeName;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.RFC2822Headers;
 import org.slf4j.Logger;
@@ -1230,44 +1233,44 @@ public class MessageProcessor extends ProcessorAbstract {
      * @param aMail a Mail instance
      */
     protected void addMailAttributes(Mail aMail) throws MessagingException {
-        aMail.setAttribute(getAttributePrefix() + "taskName", getFetchTaskName());
+        aMail.setAttribute(new Attribute(makeAttributeName("taskName"), AttributeValue.of(getFetchTaskName())));
 
-        aMail.setAttribute(getAttributePrefix() + "folderName", getMessageIn().getFolder().getFullName());
+        aMail.setAttribute(new Attribute(makeAttributeName("folderName"), AttributeValue.of(getMessageIn().getFolder().getFullName())));
 
         if (isRemoteRecipient()) {
-            aMail.setAttribute(getAttributePrefix() + "isRemoteRecipient", null);
+            aMail.setAttribute(new Attribute(makeAttributeName("isRemoteRecipient"), AttributeValue.of(true)));
         }
 
         if (isUserUndefined()) {
-            aMail.setAttribute(getAttributePrefix() + "isUserUndefined", true);
+            aMail.setAttribute(new Attribute(makeAttributeName("isUserUndefined"), AttributeValue.of(true)));
         }
 
         if (isBlacklistedRecipient()) {
-            aMail.setAttribute(getAttributePrefix() + "isBlacklistedRecipient", true);
+            aMail.setAttribute(new Attribute(makeAttributeName("isBlacklistedRecipient"), AttributeValue.of(true)));
         }
 
         if (isRecipientNotFound()) {
-            aMail.setAttribute(getAttributePrefix() + "isRecipientNotFound", true);
+            aMail.setAttribute(new Attribute(makeAttributeName("isRecipientNotFound"), AttributeValue.of(true)));
         }
 
         if (isMaxMessageSizeExceeded()) {
-            aMail.setAttribute(getAttributePrefix() + "isMaxMessageSizeExceeded", Integer.toString(getMessageIn().getSize()));
+            aMail.setAttribute(new Attribute(makeAttributeName("isMaxMessageSizeExceeded"), AttributeValue.of(Integer.toString(getMessageIn().getSize()))));
         }
 
         if (isRemoteReceivedHeaderInvalid()) {
-            aMail.setAttribute(getAttributePrefix() + "isRemoteReceivedHeaderInvalid", true);
+            aMail.setAttribute(new Attribute(makeAttributeName("isRemoteReceivedHeaderInvalid"), AttributeValue.of(true)));
         }
 
         if (isDefaultSenderLocalPart()) {
-            aMail.setAttribute(getAttributePrefix() + "isDefaultSenderLocalPart", true);
+            aMail.setAttribute(new Attribute(makeAttributeName("isDefaultSenderLocalPart"), AttributeValue.of(true)));
         }
 
         if (isDefaultSenderDomainPart()) {
-            aMail.setAttribute(getAttributePrefix() + "isDefaultSenderDomainPart", true);
+            aMail.setAttribute(new Attribute(makeAttributeName("isDefaultSenderDomainPart"), AttributeValue.of(true)));
         }
 
         if (isDefaultRemoteAddress()) {
-            aMail.setAttribute(getAttributePrefix() + "isDefaultRemoteAddress", true);
+            aMail.setAttribute(new Attribute(makeAttributeName("isDefaultRemoteAddress"), AttributeValue.of(true)));
         }
     }
 
@@ -1650,4 +1653,7 @@ public class MessageProcessor extends ProcessorAbstract {
         fieldDefaultRemoteAddress = defaultRemoteAddress;
     }
 
+    private AttributeName makeAttributeName(String suffix) {
+        return AttributeName.of(getAttributePrefix() + suffix);
+    }
 }
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/filter/ActionApplier.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/filter/ActionApplier.java
index 72376ab..8c2e63e 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/filter/ActionApplier.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/filter/ActionApplier.java
@@ -30,6 +30,7 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.model.MailboxId;
+import org.apache.mailet.Attribute;
 import org.apache.mailet.Mail;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -98,7 +99,7 @@ public class ActionApplier {
 
             String mailboxName = messageManager.getMailboxPath().getName();
             String attributeNameForUser = DELIVERY_PATH_PREFIX + user.asString();
-            mail.setAttribute(attributeNameForUser, mailboxName);
+            mail.setAttribute(Attribute.convertToAttribute(attributeNameForUser, mailboxName));
         } catch (MailboxNotFoundException e) {
             LOGGER.info("Mailbox {} does not exist, but it was mentioned in a JMAP filtering rule", mailboxId, e);
         } catch (Exception e) {
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java
index 1d136ab..0bb898b 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java
@@ -39,6 +39,9 @@ import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.MailHook;
 import org.apache.james.protocols.smtp.hook.RcptHook;
 import org.apache.james.smtpserver.JamesMessageHook;
+import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeName;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -56,15 +59,15 @@ public class SPFHandler implements JamesMessageHook, MailHook, RcptHook, Protoco
      */
     private final Logger serviceLog = FALLBACK_LOG;
 
-    public static final String SPF_BLOCKLISTED = "SPF_BLOCKLISTED";
+    private static final String SPF_BLOCKLISTED = "SPF_BLOCKLISTED";
 
-    public static final String SPF_DETAIL = "SPF_DETAIL";
+    private static final String SPF_DETAIL = "SPF_DETAIL";
 
-    public static final String SPF_TEMPBLOCKLISTED = "SPF_TEMPBLOCKLISTED";
+    private static final String SPF_TEMPBLOCKLISTED = "SPF_TEMPBLOCKLISTED";
 
-    public static final String SPF_HEADER = "SPF_HEADER";
+    private static final String SPF_HEADER = "SPF_HEADER";
 
-    public static final String SPF_HEADER_MAIL_ATTRIBUTE_NAME = "org.apache.james.spf.header";
+    private static final AttributeName SPF_HEADER_MAIL_ATTRIBUTE_NAME = AttributeName.of("org.apache.james.spf.header");
 
     /** If set to true the mail will also be rejected on a softfail */
     private boolean blockSoftFail = false;
@@ -274,7 +277,7 @@ public class SPFHandler implements JamesMessageHook, MailHook, RcptHook, Protoco
     @Override
     public HookResult onMessage(SMTPSession session, Mail mail) {
         // Store the spf header as attribute for later using
-        mail.setAttribute(SPF_HEADER_MAIL_ATTRIBUTE_NAME, (String) session.getAttachment(SPF_HEADER, State.Transaction));
+        mail.setAttribute(new Attribute(SPF_HEADER_MAIL_ATTRIBUTE_NAME, AttributeValue.of((String) session.getAttachment(SPF_HEADER, State.Transaction))));
 
         return null;
     }
diff --git a/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueue.java b/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueue.java
index d072828..c6e094b 100644
--- a/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueue.java
+++ b/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueue.java
@@ -50,6 +50,7 @@ import org.apache.james.server.core.MimeMessageCopyOnWriteProxy;
 import org.apache.james.server.core.MimeMessageInputStream;
 import org.apache.james.server.core.MimeMessageSource;
 import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -122,8 +123,8 @@ public class ActiveMQMailQueue extends JMSMailQueue implements ActiveMQSupport {
             BlobMessage blobMessage = (BlobMessage) message;
             try {
                 // store URL and queueName for later usage
-                builder.addAttribute(Attribute.convertToAttribute(JAMES_BLOB_URL, blobMessage.getURL()));
-                builder.addAttribute(Attribute.convertToAttribute(JAMES_QUEUE_NAME, queueName));
+                builder.addAttribute(new Attribute(JAMES_BLOB_URL, AttributeValue.of(blobMessage.getURL())));
+                builder.addAttribute(new Attribute(JAMES_QUEUE_NAME, AttributeValue.of(queueName)));
             } catch (MalformedURLException e) {
                 // Ignore on error
                 LOGGER.debug("Unable to get url from blobmessage for mail");
diff --git a/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQSupport.java b/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQSupport.java
index 56841fa..a2c4da1 100644
--- a/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQSupport.java
+++ b/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQSupport.java
@@ -29,12 +29,12 @@ public interface ActiveMQSupport extends JMSSupport {
     /**
      * The name of the Queue the mail is stored in
      */
-    String JAMES_QUEUE_NAME = "JAMES_QUEUE_NAME";
+    AttributeName JAMES_QUEUE_NAME = AttributeName.of("JAMES_QUEUE_NAME");
 
     /**
      * The URL of the Blobmessage content
      */
-    String JAMES_BLOB_URL = "JAMES_BLOB_URL";
+    AttributeName JAMES_BLOB_URL = AttributeName.of("JAMES_BLOB_URL");
 
     /**
      * Indicate that the Blobmessage content is reused for a new message
diff --git a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java
index eb57b38..aea5ef4 100644
--- a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java
+++ b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java
@@ -70,6 +70,7 @@ import org.apache.james.util.SerializationUtil;
 import org.apache.mailet.Attribute;
 import org.apache.mailet.AttributeName;
 import org.apache.mailet.AttributeUtils;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.apache.mailet.PerRecipientHeaders;
 import org.slf4j.Logger;
@@ -438,7 +439,7 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori
         Object attrValue = Throwing.function(message::getObjectProperty).apply(name);
 
         if (attrValue instanceof String) {
-            return Stream.of(Attribute.convertToAttribute(name, SerializationUtil.deserialize((String) attrValue)));
+            return Stream.of(new Attribute(AttributeName.of(name), AttributeValue.ofAny(SerializationUtil.deserialize((String) attrValue))));
         } else {
             LOGGER.error("Not supported mail attribute {} of type {} for mail {}", name, attrValue, name);
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[james-project] 02/02: Fixes Eclipse and checkstyle warnings

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rouazana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 407036b0036568ef2d7a3fe031fb325d79837b5a
Author: Raphael Ouazana <ra...@linagora.com>
AuthorDate: Thu Feb 28 11:26:37 2019 +0100

    Fixes Eclipse and checkstyle warnings
---
 .../src/test/java/org/apache/james/mailbox/MailboxManagerTest.java    | 1 -
 .../james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java   | 1 +
 .../main/java/org/apache/james/transport/mailets/ICALToHeader.java    | 1 +
 .../java/org/apache/james/transport/mailets/ICALToJsonAttribute.java  | 2 ++
 .../main/java/org/apache/james/transport/mailets/ICalendarParser.java | 1 +
 .../java/org/apache/james/transport/mailets/RecoverAttachment.java    | 1 +
 .../main/java/org/apache/james/transport/mailets/StripAttachment.java | 1 +
 .../java/org/apache/james/transport/matchers/SentByMailetTest.java    | 2 --
 .../core/src/test/java/org/apache/james/server/core/MailImplTest.java | 4 ++--
 .../mailbox/src/main/java/org/apache/james/modules/MailboxModule.java | 3 +++
 .../java/org/apache/james/queue/api/ManageableMailQueueContract.java  | 1 -
 .../src/main/java/org/apache/james/queue/jms/JMSMailQueue.java        | 1 -
 12 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
index 87272e8..4e675b0 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
@@ -1340,7 +1340,6 @@ public abstract class MailboxManagerTest<T extends MailboxManager> {
         @Nested
         class PreDeletion {
 
-            private final QuotaRoot quotaRoot = QuotaRoot.quotaRoot("#private&USER_1", Optional.empty());
             private MailboxPath inbox;
             private MailboxId inboxId;
             private MailboxId anotherMailboxId;
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
index f26e772..c69ac27 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
@@ -128,6 +128,7 @@ public abstract class AbstractMessageIdManagerSideEffectTest {
         when(preDeletionHook2.notifyDelete(any(PreDeletionHook.DeleteOperation.class)))
             .thenReturn(Mono.empty());
     }
+
     @Test
     public void deleteShouldCallEventDispatcher() throws Exception {
         givenUnlimitedQuota();
diff --git a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToHeader.java b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToHeader.java
index 6be5782..4a4df5d 100644
--- a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToHeader.java
+++ b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToHeader.java
@@ -61,6 +61,7 @@ import net.fortuna.ical4j.model.component.VEvent;
  */
 public class ICALToHeader extends GenericMailet {
     private static final Logger LOGGER = LoggerFactory.getLogger(ICALToHeader.class);
+    @SuppressWarnings("unchecked")
     private static final Class<Map<String, Calendar>> MAP_STRING_CALENDAR = (Class<Map<String, Calendar>>) (Object) Map.class;
 
     public static final String ATTRIBUTE_PROPERTY = "attribute";
diff --git a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToJsonAttribute.java b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToJsonAttribute.java
index 2298002..5892e86 100644
--- a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToJsonAttribute.java
+++ b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToJsonAttribute.java
@@ -87,7 +87,9 @@ import net.fortuna.ical4j.model.Calendar;
  */
 public class ICALToJsonAttribute extends GenericMailet {
     private static final Logger LOGGER = LoggerFactory.getLogger(ICALToJsonAttribute.class);
+    @SuppressWarnings("unchecked")
     private static final Class<Map<String, byte[]>> MAP_STRING_BYTES_CLASS = (Class<Map<String, byte[]>>) (Object) Map.class;
+    @SuppressWarnings("unchecked")
     private static final Class<Map<String, Calendar>> MAP_STRING_CALENDAR_CLASS = (Class<Map<String, Calendar>>) (Object) Map.class;
 
     public static final String SOURCE_ATTRIBUTE_NAME = "source";
diff --git a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICalendarParser.java b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICalendarParser.java
index 62318b5..5b970f1 100644
--- a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICalendarParser.java
+++ b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICalendarParser.java
@@ -68,6 +68,7 @@ import net.fortuna.ical4j.model.Calendar;
  */
 public class ICalendarParser extends GenericMailet {
     private static final Logger LOGGER = LoggerFactory.getLogger(ICalendarParser.class);
+    @SuppressWarnings("unchecked")
     private static final Class<Map<String, byte[]>> MAP_STRING_BYTES_CLASS = (Class<Map<String, byte[]>>) (Object) Map.class;
 
     public static final String SOURCE_ATTRIBUTE_PARAMETER_NAME = "sourceAttribute";
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecoverAttachment.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecoverAttachment.java
index 7e31ff1..172b766 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecoverAttachment.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecoverAttachment.java
@@ -65,6 +65,7 @@ import com.github.fge.lambdas.Throwing;
 @Experimental
 public class RecoverAttachment extends GenericMailet {
     private static final Logger LOGGER = LoggerFactory.getLogger(RecoverAttachment.class);
+    @SuppressWarnings("unchecked")
     private static final Class<Map<String, byte[]>> MAP_STRING_BYTES_CLASS = (Class<Map<String, byte[]>>) (Object) Map.class;
 
     private static final String ATTRIBUTE_PARAMETER_NAME = "attribute";
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
index 36b2990..9239a0c 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
@@ -91,6 +91,7 @@ import com.google.common.collect.ImmutableMap;
  */
 public class StripAttachment extends GenericMailet {
     private static final Logger LOGGER = LoggerFactory.getLogger(StripAttachment.class);
+    @SuppressWarnings("unchecked")
     private static final Class<Map<String, byte[]>> MAP_STRING_BYTES_CLASS = (Class<Map<String, byte[]>>) (Object) Map.class;
 
     @SuppressWarnings("unchecked")
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/SentByMailetTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/SentByMailetTest.java
index 19d0015..c2a4402 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/SentByMailetTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/SentByMailetTest.java
@@ -24,8 +24,6 @@ import static org.assertj.core.api.Assertions.assertThat;
 import java.util.Collection;
 
 import org.apache.james.core.MailAddress;
-import org.apache.mailet.Attribute;
-import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
diff --git a/server/container/core/src/test/java/org/apache/james/server/core/MailImplTest.java b/server/container/core/src/test/java/org/apache/james/server/core/MailImplTest.java
index 3d8ce83..675eb29 100644
--- a/server/container/core/src/test/java/org/apache/james/server/core/MailImplTest.java
+++ b/server/container/core/src/test/java/org/apache/james/server/core/MailImplTest.java
@@ -283,13 +283,13 @@ public class MailImplTest extends ContractMailTest {
     }
 
     @Test
-    public void MailImplShouldNotAllowSettingNullName() {
+    public void mailImplShouldNotAllowSettingNullName() {
         assertThatThrownBy(() -> newMail().setName(null))
             .isInstanceOf(NullPointerException.class);
     }
 
     @Test
-    public void MailImplShouldNotAllowSettingEmptyName() {
+    public void mailImplShouldNotAllowSettingEmptyName() {
         assertThatThrownBy(() -> newMail().setName(""))
             .isInstanceOf(IllegalArgumentException.class);
     }
diff --git a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxModule.java b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxModule.java
index 9f3ed0b..eea456c 100644
--- a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxModule.java
+++ b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxModule.java
@@ -23,6 +23,7 @@ import org.apache.james.mailbox.acl.GroupMembershipResolver;
 import org.apache.james.mailbox.acl.MailboxACLResolver;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
+import org.apache.james.mailbox.extension.PreDeletionHook;
 import org.apache.james.mailbox.store.SystemMailboxesProviderImpl;
 import org.apache.james.modules.mailbox.PreDeletionHookModule;
 import org.apache.james.utils.GuiceProbe;
@@ -51,6 +52,8 @@ public class MailboxModule extends AbstractModule {
 
         bind(SystemMailboxesProviderImpl.class).in(Scopes.SINGLETON);
         bind(SystemMailboxesProvider.class).to(SystemMailboxesProviderImpl.class);
+
+        Multibinder<PreDeletionHook> noPreDeletionHooks = Multibinder.newSetBinder(binder(), PreDeletionHook.class);
     }
 
 }
diff --git a/server/queue/queue-api/src/test/java/org/apache/james/queue/api/ManageableMailQueueContract.java b/server/queue/queue-api/src/test/java/org/apache/james/queue/api/ManageableMailQueueContract.java
index 808ca47..ffa826f 100644
--- a/server/queue/queue-api/src/test/java/org/apache/james/queue/api/ManageableMailQueueContract.java
+++ b/server/queue/queue-api/src/test/java/org/apache/james/queue/api/ManageableMailQueueContract.java
@@ -36,7 +36,6 @@ import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Attribute;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.MailAddressFixture;
-import org.apache.mailet.base.test.FakeMail;
 import org.junit.jupiter.api.Test;
 
 import com.google.common.collect.ImmutableList;
diff --git a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java
index aea5ef4..b783a40 100644
--- a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java
+++ b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java
@@ -403,7 +403,6 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori
         Optional.ofNullable(SerializationUtil.<PerRecipientHeaders>deserialize(message.getStringProperty(JAMES_MAIL_PER_RECIPIENT_HEADERS)))
                 .ifPresent(builder::addAllHeadersForRecipients);
 
-        List<MailAddress> rcpts = new ArrayList<>();
         String recipients = message.getStringProperty(JAMES_MAIL_RECIPIENTS);
         StringTokenizer recipientTokenizer = new StringTokenizer(recipients, JAMES_MAIL_SEPARATOR);
         while (recipientTokenizer.hasMoreTokens()) {


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org