Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace field injection with injection by constructor #1558

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import org.apache.commons.configuration2.HierarchicalConfiguration;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.configuration2.tree.ImmutableNode;
import org.apache.james.filesystem.api.FileSystem;
import org.apache.james.imap.api.ImapConfiguration;
import org.apache.james.imap.api.ImapConstants;
import org.apache.james.imap.api.process.ImapProcessor;
Expand Down Expand Up @@ -147,7 +148,8 @@ public Optional<OidcSASLConfiguration> getOidcSASLConfiguration() {
private ReactiveThrottler reactiveThrottler;


public IMAPServer(ImapDecoder decoder, ImapEncoder encoder, ImapProcessor processor, ImapMetrics imapMetrics, GaugeRegistry gaugeRegistry) {
public IMAPServer(ImapDecoder decoder, ImapEncoder encoder, ImapProcessor processor, ImapMetrics imapMetrics, GaugeRegistry gaugeRegistry, FileSystem fileSystem) {
super(fileSystem);
this.processor = processor;
this.encoder = encoder;
this.decoder = decoder;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,19 +62,14 @@ public IMAPServerFactory(FileSystem fileSystem, ThrowingFunction<HierarchicalCon
this.gaugeRegistry = gaugeRegistry;
}

protected IMAPServer createServer(HierarchicalConfiguration<ImmutableNode> config) {
ImapSuite imapSuite = imapSuiteProvider.apply(config);
return new IMAPServer(imapSuite.getDecoder(), imapSuite.getEncoder(), imapSuite.getProcessor(), imapMetrics, gaugeRegistry);
}

@Override
protected List<AbstractConfigurableAsyncServer> createServers(HierarchicalConfiguration<ImmutableNode> config) throws Exception {
List<AbstractConfigurableAsyncServer> servers = new ArrayList<>();
List<HierarchicalConfiguration<ImmutableNode>> configs = config.configurationsAt("imapserver");

ImapSuite imapSuite = imapSuiteProvider.apply(config);

for (HierarchicalConfiguration<ImmutableNode> serverConfig: configs) {
IMAPServer server = createServer(serverConfig);
server.setFileSystem(fileSystem);
IMAPServer server = new IMAPServer(imapSuite.getDecoder(), imapSuite.getEncoder(), imapSuite.getProcessor(), imapMetrics, gaugeRegistry, fileSystem);
server.configure(serverConfig);
servers.add(server);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,13 @@ private IMAPServer createImapServer(HierarchicalConfiguration<ImmutableNode> con
memoryIntegrationResources = inMemoryIntegrationResources;

RecordingMetricFactory metricFactory = new RecordingMetricFactory();

Configuration configuration = Configuration.builder()
.workingDirectory("../")
.configurationFromClasspath()
.build();
FileSystemImpl fileSystem = new FileSystemImpl(configuration.directories());

IMAPServer imapServer = new IMAPServer(
DefaultImapDecoderFactory.createDecoder(),
new DefaultImapEncoderFactory().buildImapEncoder(),
Expand All @@ -163,14 +170,8 @@ private IMAPServer createImapServer(HierarchicalConfiguration<ImmutableNode> con
memoryIntegrationResources.getQuotaRootResolver(),
metricFactory),
new ImapMetrics(metricFactory),
new NoopGaugeRegistry());

Configuration configuration = Configuration.builder()
.workingDirectory("../")
.configurationFromClasspath()
.build();
FileSystemImpl fileSystem = new FileSystemImpl(configuration.directories());
imapServer.setFileSystem(fileSystem);
new NoopGaugeRegistry(),
fileSystem);

imapServer.configure(config);
imapServer.init();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.inject.Inject;
import javax.management.MBeanServer;
import javax.management.ObjectName;

Expand Down Expand Up @@ -87,7 +86,7 @@ public abstract class AbstractConfigurableAsyncServer

public static final int DEFAULT_MAX_EXECUTOR_COUNT = 16;

private FileSystem fileSystem;
private final FileSystem fileSystem;

private boolean enabled;

Expand All @@ -110,8 +109,7 @@ public abstract class AbstractConfigurableAsyncServer

private int port;

@Inject
public final void setFileSystem(FileSystem filesystem) {
protected AbstractConfigurableAsyncServer(FileSystem filesystem) {
this.fileSystem = filesystem;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,10 @@
****************************************************************/
package org.apache.james.protocols.lib.netty;

import javax.inject.Inject;

import org.apache.commons.configuration2.HierarchicalConfiguration;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.configuration2.tree.ImmutableNode;
import org.apache.james.filesystem.api.FileSystem;
import org.apache.james.protocols.api.handler.ProtocolHandler;
import org.apache.james.protocols.api.handler.ProtocolHandlerChain;
import org.apache.james.protocols.lib.ProtocolHandlerChainImpl;
Expand All @@ -36,12 +35,12 @@ public abstract class AbstractProtocolAsyncServer extends AbstractConfigurableAs

private ProtocolHandlerChainImpl handlerChain;

private ProtocolHandlerLoader loader;
private final ProtocolHandlerLoader loader;

private HierarchicalConfiguration<ImmutableNode> config;

@Inject
public void setProtocolHandlerLoader(ProtocolHandlerLoader loader) {
protected AbstractProtocolAsyncServer(ProtocolHandlerLoader loader, FileSystem fileSystem) {
super(fileSystem);
this.loader = loader;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,11 @@ public void put(String fileUrl, String resourceName) {
}

private static class TestableConfigurableAsyncServer extends AbstractConfigurableAsyncServer {

protected TestableConfigurableAsyncServer(FileSystem filesystem) {
super(filesystem);
}

@Override
public String getServiceType () {
return "Test Service";
Expand Down Expand Up @@ -132,8 +137,7 @@ public void buildSSLContext() throws Exception {
}

private void initTestServer(String configFile) throws Exception {
testServer = new TestableConfigurableAsyncServer();
testServer.setFileSystem(memoryFileSystem);
testServer = new TestableConfigurableAsyncServer(memoryFileSystem);
testServer.configure(ConfigLoader.getConfig(ClassLoader.getSystemResourceAsStream(configFile)));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,14 @@
import org.apache.commons.configuration2.HierarchicalConfiguration;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.configuration2.tree.ImmutableNode;
import org.apache.james.filesystem.api.FileSystem;
import org.apache.james.lmtpserver.CoreCmdHandlerLoader;
import org.apache.james.lmtpserver.jmx.JMXHandlersLoader;
import org.apache.james.protocols.api.OidcSASLConfiguration;
import org.apache.james.protocols.api.ProtocolSession;
import org.apache.james.protocols.api.ProtocolTransport;
import org.apache.james.protocols.lib.handler.HandlersPackage;
import org.apache.james.protocols.lib.handler.ProtocolHandlerLoader;
import org.apache.james.protocols.lib.netty.AbstractProtocolAsyncServer;
import org.apache.james.protocols.lmtp.LMTPConfiguration;
import org.apache.james.protocols.netty.AbstractChannelPipelineFactory;
Expand All @@ -54,7 +56,8 @@ public class LMTPServer extends AbstractProtocolAsyncServer implements LMTPServe
private final LMTPMetricsImpl lmtpMetrics;
private String lmtpGreeting;

public LMTPServer(LMTPMetricsImpl lmtpMetrics) {
public LMTPServer(LMTPMetricsImpl lmtpMetrics, ProtocolHandlerLoader loader, FileSystem fileSystem) {
super(loader, fileSystem);
this.lmtpMetrics = lmtpMetrics;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,19 +44,13 @@ public LMTPServerFactory(ProtocolHandlerLoader loader, FileSystem fileSystem, Me
this.lmtpMetrics = new LMTPMetricsImpl(metricFactory);
}

protected LMTPServer createServer() {
return new LMTPServer(lmtpMetrics);
}

@Override
protected List<AbstractConfigurableAsyncServer> createServers(HierarchicalConfiguration<ImmutableNode> config) throws Exception {
List<AbstractConfigurableAsyncServer> servers = new ArrayList<>();
List<HierarchicalConfiguration<ImmutableNode>> configs = config.configurationsAt("lmtpserver");

for (HierarchicalConfiguration<ImmutableNode> serverConfig: configs) {
LMTPServer server = createServer();
server.setFileSystem(fileSystem);
server.setProtocolHandlerLoader(loader);
LMTPServer server = new LMTPServer(lmtpMetrics, loader, fileSystem);
server.configure(serverConfig);
servers.add(server);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import org.apache.commons.configuration2.HierarchicalConfiguration;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.configuration2.tree.ImmutableNode;
import org.apache.james.filesystem.api.FileSystem;
import org.apache.james.managesieve.transcode.ManageSieveProcessor;
import org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer;
import org.apache.james.protocols.netty.AbstractChannelPipelineFactory;
Expand Down Expand Up @@ -61,7 +62,8 @@ public class ManageSieveServer extends AbstractConfigurableAsyncServer implement
private Optional<ConnectionLimitUpstreamHandler> connectionLimitUpstreamHandler = Optional.empty();
private Optional<ConnectionPerIpLimitUpstreamHandler> connectionPerIpLimitUpstreamHandler = Optional.empty();

public ManageSieveServer(int maxLineLength, ManageSieveProcessor manageSieveProcessor) {
public ManageSieveServer(int maxLineLength, ManageSieveProcessor manageSieveProcessor, FileSystem fileSystem) {
super(fileSystem);
this.maxLineLength = maxLineLength;
this.manageSieveProcessor = manageSieveProcessor;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,7 @@ protected List<AbstractConfigurableAsyncServer> createServers(HierarchicalConfig
List<HierarchicalConfiguration<ImmutableNode>> configs = config.configurationsAt("managesieveserver");

for (HierarchicalConfiguration<ImmutableNode> serverConfig: configs) {
ManageSieveServer server = new ManageSieveServer(8000, manageSieveProcessor);
server.setFileSystem(fileSystem);
ManageSieveServer server = new ManageSieveServer(8000, manageSieveProcessor, fileSystem);
server.configure(serverConfig);
servers.add(server);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,12 @@
****************************************************************/
package org.apache.james.pop3server.netty;

import org.apache.james.filesystem.api.FileSystem;
import org.apache.james.pop3server.core.CoreCmdHandlerLoader;
import org.apache.james.pop3server.jmx.JMXHandlersLoader;
import org.apache.james.protocols.api.ProtocolConfiguration;
import org.apache.james.protocols.lib.handler.HandlersPackage;
import org.apache.james.protocols.lib.handler.ProtocolHandlerLoader;
import org.apache.james.protocols.lib.netty.AbstractProtocolAsyncServer;
import org.apache.james.protocols.netty.AbstractChannelPipelineFactory;
import org.apache.james.protocols.netty.AllButStartTlsLineChannelHandlerFactory;
Expand All @@ -43,6 +45,10 @@ public class POP3Server extends AbstractProtocolAsyncServer implements POP3Serve
private final ProtocolConfiguration theConfigData = new POP3Configuration();
private POP3Protocol protocol;

public POP3Server(ProtocolHandlerLoader loader, FileSystem fileSystem) {
super(loader, fileSystem);
}

@Override
protected int getDefaultPort() {
return 110;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@
import java.util.ArrayList;
import java.util.List;

import javax.inject.Inject;

import org.apache.commons.configuration2.HierarchicalConfiguration;
import org.apache.commons.configuration2.tree.ImmutableNode;
import org.apache.james.filesystem.api.FileSystem;
Expand All @@ -33,33 +31,22 @@

public class POP3ServerFactory extends AbstractServerFactory {

private ProtocolHandlerLoader loader;
private FileSystem fileSystem;
private final ProtocolHandlerLoader loader;
private final FileSystem fileSystem;

@Inject
public void setProtocolHandlerLoader(ProtocolHandlerLoader loader) {
public POP3ServerFactory(ProtocolHandlerLoader loader, FileSystem fileSystem) {
this.loader = loader;
this.fileSystem = fileSystem;
}

@Inject
public final void setFileSystem(FileSystem filesystem) {
this.fileSystem = filesystem;
}

protected POP3Server createServer() {
return new POP3Server();
}

@Override
protected List<AbstractConfigurableAsyncServer> createServers(HierarchicalConfiguration<ImmutableNode> config) throws Exception {

List<AbstractConfigurableAsyncServer> servers = new ArrayList<>();
List<HierarchicalConfiguration<ImmutableNode>> configs = config.configurationsAt("pop3server");

for (HierarchicalConfiguration<ImmutableNode> serverConfig: configs) {
POP3Server server = createServer();
server.setProtocolHandlerLoader(loader);
server.setFileSystem(fileSystem);
POP3Server server = new POP3Server(loader, fileSystem);
server.configure(serverConfig);
servers.add(server);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -910,19 +910,13 @@ void testDeadlockOnRetr() throws Exception {

}

protected POP3Server createPOP3Server() {
return new POP3Server();
}

protected void initPOP3Server(XMLConfiguration configuration) throws Exception {
pop3Server.configure(configuration);
pop3Server.init();
}

protected void setUpPOP3Server() {
pop3Server = createPOP3Server();
pop3Server.setFileSystem(fileSystem);
pop3Server.setProtocolHandlerLoader(protocolHandlerChain);
pop3Server = new POP3Server(protocolHandlerChain, fileSystem);
}

protected void finishSetUp(XMLConfiguration pop3Configuration) throws Exception {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,17 @@
import java.util.Locale;
import java.util.Optional;

import javax.inject.Inject;

import org.apache.commons.configuration2.HierarchicalConfiguration;
import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.configuration2.tree.ImmutableNode;
import org.apache.james.dnsservice.api.DNSService;
import org.apache.james.dnsservice.library.netmatcher.NetMatcher;
import org.apache.james.filesystem.api.FileSystem;
import org.apache.james.protocols.api.OidcSASLConfiguration;
import org.apache.james.protocols.api.ProtocolSession;
import org.apache.james.protocols.api.ProtocolTransport;
import org.apache.james.protocols.lib.handler.HandlersPackage;
import org.apache.james.protocols.lib.handler.ProtocolHandlerLoader;
import org.apache.james.protocols.lib.netty.AbstractProtocolAsyncServer;
import org.apache.james.protocols.netty.AbstractChannelPipelineFactory;
import org.apache.james.protocols.netty.AllButStartTlsLineChannelHandlerFactory;
Expand Down Expand Up @@ -188,15 +188,11 @@ public Optional<OidcSASLConfiguration> getSaslConfiguration() {
private DNSService dns;
private String authorizedAddresses;

public SMTPServer(SmtpMetrics smtpMetrics) {
public SMTPServer(SmtpMetrics smtpMetrics, DNSService dns, ProtocolHandlerLoader protocolHandlerLoader, FileSystem fileSystem) {
super(protocolHandlerLoader, fileSystem);
this.smtpMetrics = smtpMetrics;
}

@Inject
public void setDnsService(DNSService dns) {
this.dns = dns;
}

@Override
protected void preInit() throws Exception {
super.preInit();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,6 @@ public SMTPServerFactory(DNSService dns, ProtocolHandlerLoader loader, FileSyste
this.smtpMetrics = new SmtpMetricsImpl(metricFactory);
}

protected SMTPServer createServer() {
return new SMTPServer(smtpMetrics);
}

@Override
protected List<AbstractConfigurableAsyncServer> createServers(HierarchicalConfiguration<ImmutableNode> config) throws Exception {
Expand All @@ -60,10 +57,7 @@ protected List<AbstractConfigurableAsyncServer> createServers(HierarchicalConfig
List<HierarchicalConfiguration<ImmutableNode>> configs = config.configurationsAt("smtpserver");

for (HierarchicalConfiguration<ImmutableNode> serverConfig: configs) {
SMTPServer server = createServer();
server.setDnsService(dns);
server.setProtocolHandlerLoader(loader);
server.setFileSystem(fileSystem);
var server = new SMTPServer(smtpMetrics, dns, loader, fileSystem);
server.configure(serverConfig);
servers.add(server);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,18 +123,11 @@ protected void createMailRepositoryStore() throws Exception {
mailRepositoryStore.init();
}

protected SMTPServer createSMTPServer(SmtpMetricsImpl smtpMetrics) {
return new SMTPServer(smtpMetrics);
}

protected void setUpSMTPServer() {
SmtpMetricsImpl smtpMetrics = mock(SmtpMetricsImpl.class);
when(smtpMetrics.getCommandsMetric()).thenReturn(mock(Metric.class));
when(smtpMetrics.getConnectionMetric()).thenReturn(mock(Metric.class));
smtpServer = createSMTPServer(smtpMetrics);
smtpServer.setDnsService(dnsServer);
smtpServer.setFileSystem(fileSystem);
smtpServer.setProtocolHandlerLoader(chain);
smtpServer = new SMTPServer(smtpMetrics, dnsServer, chain, fileSystem);
}

protected void setUpFakeLoader() {
Expand Down
Loading