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 2019/11/20 01:57:07 UTC

[james-project] 39/49: [Refactoring] protocols-smtp should rely on constructor injection

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

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

commit a82bcf13eb597bd6799a30f7adaf87d8548ff974
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Sun Nov 17 21:03:59 2019 +0700

    [Refactoring] protocols-smtp should rely on constructor injection
---
 .../smtpserver/AuthRequiredToRelayRcptHook.java     |  5 ++---
 .../james/smtpserver/JamesMailCmdHandler.java       | 10 +++-------
 .../james/smtpserver/JamesRcptCmdHandler.java       |  9 ++-------
 .../apache/james/smtpserver/SendMailHandler.java    |  7 +++----
 .../SenderAuthIdentifyVerificationRcptHook.java     | 13 ++++---------
 .../james/smtpserver/UsersRepositoryAuthHook.java   | 19 ++-----------------
 .../james/smtpserver/fastfail/DNSRBLHandler.java    |  5 ++---
 .../fastfail/ResolvableEhloHeloHandler.java         |  5 ++---
 .../fastfail/ReverseEqualsEhloHeloHandler.java      |  5 ++---
 .../james/smtpserver/fastfail/ValidRcptMX.java      | 21 ++-------------------
 .../fastfail/ValidSenderDomainHandler.java          |  5 ++---
 .../james/smtpserver/ValidRcptHandlerTest.java      |  5 ++---
 .../apache/james/smtpserver/ValidRcptMXTest.java    |  3 +--
 13 files changed, 29 insertions(+), 83 deletions(-)

diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/AuthRequiredToRelayRcptHook.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/AuthRequiredToRelayRcptHook.java
index 5a17e0b..6cec91d 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/AuthRequiredToRelayRcptHook.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/AuthRequiredToRelayRcptHook.java
@@ -26,11 +26,10 @@ import org.apache.james.domainlist.api.DomainListException;
 import org.apache.james.protocols.smtp.core.AbstractAuthRequiredToRelayRcptHook;
 
 public class AuthRequiredToRelayRcptHook extends AbstractAuthRequiredToRelayRcptHook {
-
-    private DomainList domains;
+    private final DomainList domains;
 
     @Inject
-    public void setDomainList(DomainList domains) {
+    public AuthRequiredToRelayRcptHook(DomainList domains) {
         this.domains = domains;
     }
 
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesMailCmdHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesMailCmdHandler.java
index 9ff0e71..ad5d057 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesMailCmdHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesMailCmdHandler.java
@@ -26,19 +26,15 @@ import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.protocols.smtp.core.MailCmdHandler;
 
 public class JamesMailCmdHandler extends MailCmdHandler {
-
-    private DomainList domainList;
+    private final DomainList domainList;
 
     @Inject
-    public JamesMailCmdHandler(MetricFactory metricFactory) {
+    public JamesMailCmdHandler(MetricFactory metricFactory, DomainList domainList) {
         super(metricFactory);
-    }
-
-    @Inject
-    public final void setDomainList(DomainList domainList) {
         this.domainList = domainList;
     }
 
+
     @Override
     public String getDefaultDomain() {
         try {
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesRcptCmdHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesRcptCmdHandler.java
index 1ec3a2f..129a832 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesRcptCmdHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesRcptCmdHandler.java
@@ -27,16 +27,11 @@ import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.protocols.smtp.core.RcptCmdHandler;
 
 public class JamesRcptCmdHandler extends RcptCmdHandler {
-
-    private DomainList domainList;
+    private final DomainList domainList;
 
     @Inject
-    public JamesRcptCmdHandler(MetricFactory metricFactory) {
+    public JamesRcptCmdHandler(MetricFactory metricFactory, DomainList domainList) {
         super(metricFactory);
-    }
-
-    @Inject
-    public final void setDomainList(DomainList domainList) {
         this.domainList = domainList;
     }
 
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java
index 90ddd4f..4de5cfe 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java
@@ -23,7 +23,6 @@ import javax.inject.Inject;
 import javax.mail.MessagingException;
 
 import org.apache.commons.configuration2.Configuration;
-import org.apache.commons.configuration2.ex.ConfigurationException;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
@@ -40,16 +39,16 @@ import org.slf4j.LoggerFactory;
 public class SendMailHandler implements JamesMessageHook {
     private static final Logger LOGGER = LoggerFactory.getLogger(SendMailHandler.class);
 
+    private final MailQueueFactory<?> queueFactory;
     private MailQueue queue;
-    private MailQueueFactory<?> queueFactory;
 
     @Inject
-    public void setMailQueueFactory(MailQueueFactory<?> queueFactory) {
+    public SendMailHandler(MailQueueFactory<?> queueFactory) {
         this.queueFactory = queueFactory;
     }
 
     @Override
-    public void init(Configuration config) throws ConfigurationException {
+    public void init(Configuration config) {
         queue = queueFactory.createQueue(MailQueueFactory.SPOOL);
     }
 
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java
index 44b453f..5ed3567 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SenderAuthIdentifyVerificationRcptHook.java
@@ -39,18 +39,13 @@ import org.apache.james.user.api.UsersRepositoryException;
  * Handler which check if the authenticated user is incorrect
  */
 public class SenderAuthIdentifyVerificationRcptHook extends AbstractSenderAuthIdentifyVerificationRcptHook {
-
-    private DomainList domains;
-    private UsersRepository users;
-
-    @Inject
-    public final void setUsersRepository(UsersRepository users) {
-        this.users = users;
-    }
+    private final DomainList domains;
+    private final UsersRepository users;
 
     @Inject
-    public void setDomainList(DomainList domains) {
+    public SenderAuthIdentifyVerificationRcptHook(DomainList domains, UsersRepository users) {
         this.domains = domains;
+        this.users = users;
     }
 
     @Override
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/UsersRepositoryAuthHook.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/UsersRepositoryAuthHook.java
index 669e223..bf88b00 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/UsersRepositoryAuthHook.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/UsersRepositoryAuthHook.java
@@ -36,25 +36,10 @@ import org.slf4j.LoggerFactory;
 public class UsersRepositoryAuthHook implements AuthHook {
     private static final Logger LOGGER = LoggerFactory.getLogger(UsersRepositoryAuthHook.class);
 
-    private UsersRepository users;
+    private final UsersRepository users;
 
-    /**
-     * Gets the users repository.
-     * 
-     * @return the users
-     */
-    public final UsersRepository getUsers() {
-        return users;
-    }
-
-    /**
-     * Sets the users repository.
-     * 
-     * @param users
-     *            the users to set
-     */
     @Inject
-    public final void setUsersRepository(UsersRepository users) {
+    public UsersRepositoryAuthHook(UsersRepository users) {
         this.users = users;
     }
 
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/DNSRBLHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/DNSRBLHandler.java
index a3dd178..0caac3b 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/DNSRBLHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/DNSRBLHandler.java
@@ -33,11 +33,10 @@ import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.protocols.api.handler.ProtocolHandler;
 
 public class DNSRBLHandler extends org.apache.james.protocols.smtp.core.fastfail.DNSRBLHandler implements ProtocolHandler {
-
-    private DNSService dns;
+    private final DNSService dns;
 
     @Inject
-    public void setDNSService(DNSService dns) {
+    public DNSRBLHandler(DNSService dns) {
         this.dns = dns;
     }
 
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ResolvableEhloHeloHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ResolvableEhloHeloHandler.java
index 9af6100..940e7ee 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ResolvableEhloHeloHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ResolvableEhloHeloHandler.java
@@ -25,11 +25,10 @@ import javax.inject.Inject;
 import org.apache.james.dnsservice.api.DNSService;
 
 public class ResolvableEhloHeloHandler extends org.apache.james.protocols.smtp.core.fastfail.ResolvableEhloHeloHandler {
-
-    private DNSService dns;
+    private final DNSService dns;
 
     @Inject
-    public void setDNSService(DNSService dns) {
+    public ResolvableEhloHeloHandler(DNSService dns) {
         this.dns = dns;
     }
 
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ReverseEqualsEhloHeloHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ReverseEqualsEhloHeloHandler.java
index 1d2ce4c..8090fad 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ReverseEqualsEhloHeloHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ReverseEqualsEhloHeloHandler.java
@@ -25,11 +25,10 @@ import javax.inject.Inject;
 import org.apache.james.dnsservice.api.DNSService;
 
 public class ReverseEqualsEhloHeloHandler extends org.apache.james.protocols.smtp.core.fastfail.ReverseEqualsEhloHeloHandler {
-
-    private DNSService dns;
+    private final DNSService dns;
 
     @Inject
-    public void setDNSService(DNSService dns) {
+    public ReverseEqualsEhloHeloHandler(DNSService dns) {
         this.dns = dns;
     }
 
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
index e0684e1..dedbdcf 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
@@ -50,33 +50,16 @@ import com.github.steveash.guavate.Guavate;
  * authorized user or an authorized network.
  */
 public class ValidRcptMX implements RcptHook, ProtocolHandler {
-
     private static final Logger LOGGER = LoggerFactory.getLogger(ValidRcptMX.class);
 
-    private DNSService dnsService = null;
-
+    private  final DNSService dnsService;
     private NetMatcher bNetwork = null;
 
-    /**
-     * Gets the DNS service.
-     *
-     * @return the dnsService
-     */
-    public final DNSService getDNSService() {
-        return dnsService;
-    }
-
-    /**
-     * Sets the DNS service.
-     *
-     * @param dnsService the dnsService to set
-     */
     @Inject
-    public final void setDNSService(DNSService dnsService) {
+    public ValidRcptMX(DNSService dnsService) {
         this.dnsService = dnsService;
     }
 
-
     /**
      * Set the banned networks
      *
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidSenderDomainHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidSenderDomainHandler.java
index c3e2236..2bdc60a 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidSenderDomainHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidSenderDomainHandler.java
@@ -26,11 +26,10 @@ import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.protocols.smtp.SMTPSession;
 
 public class ValidSenderDomainHandler extends org.apache.james.protocols.smtp.core.fastfail.ValidSenderDomainHandler {
-    
-    private DNSService dnsService;
+    private final DNSService dnsService;
 
     @Inject
-    public void setDNSService(DNSService dnsService) {
+    public ValidSenderDomainHandler(DNSService dnsService) {
         this.dnsService = dnsService;
     }
 
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
index 72543f7..13adf0f 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptHandlerTest.java
@@ -59,13 +59,12 @@ public class ValidRcptHandlerTest {
 
     @Before
     public void setUp() throws Exception {
-        UsersRepository users = MemoryUsersRepository.withoutVirtualHosting();
-        users.addUser(VALID_USER, PASSWORD);
-
         MemoryDomainList memoryDomainList = new MemoryDomainList(mock(DNSService.class));
         memoryDomainList.configure(DomainListConfiguration.builder()
             .defaultDomain(Domain.LOCALHOST)
             .build());
+        UsersRepository users = MemoryUsersRepository.withoutVirtualHosting(memoryDomainList);
+        users.addUser(VALID_USER, PASSWORD);
 
         memoryRecipientRewriteTable = new MemoryRecipientRewriteTable();
         memoryRecipientRewriteTable.setDomainList(memoryDomainList);
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java
index c7db08d..be784d7 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/ValidRcptMXTest.java
@@ -81,8 +81,7 @@ public class ValidRcptMXTest {
         MailAddress mailAddress = new MailAddress("test@" + INVALID_HOST);
         SMTPSession session = setupMockedSMTPSession(mailAddress);
 
-        ValidRcptMX handler = new ValidRcptMX();
-        handler.setDNSService(dns);
+        ValidRcptMX handler = new ValidRcptMX(dns);
         handler.setBannedNetworks(ImmutableList.of(bannedAddress), dns);
         HookReturnCode rCode = handler.doRcpt(session, MaybeSender.nullSender(), mailAddress).getResult();
 


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