Configuration.java
package com.icegreen.greenmail.webapp;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* GreenMail Web configuration.
*
* @author mm
*/
public class Configuration {
/**
* Default hostname ({@value}
*/
public static final String DEFAULT_HOSTNAME = "localhost";
/**
* Default port offset added to SMTP/IMAP/POP3/... default ports ({@value}).
* <p>
* Example: A port offset of 10000 results in SMTP port 10025.
*/
public static final int DEFAULT_PORT_OFFSET = 10000;
private final List<ServiceConfiguration> services;
private final List<User> users;
private String defaultHostname;
private int portOffset;
/**
* Initializes configuration with
*/
public Configuration() {
services = new ArrayList<>();
defaultHostname = DEFAULT_HOSTNAME;
portOffset = DEFAULT_PORT_OFFSET;
users = new ArrayList<>();
}
public String getDefaultHostname() {
return defaultHostname;
}
public void setDefaultHostname(final String pDefaultHostname) {
defaultHostname = pDefaultHostname;
}
public int getPortOffset() {
return portOffset;
}
public void setPortOffset(final int pPortOffset) {
portOffset = pPortOffset;
}
public void addUser(final User pUser) {
users.add(pUser);
}
public List<User> getUsers() {
return Collections.unmodifiableList(users);
}
public void addServiceConfiguration(final ServiceConfiguration pServiceConfiguration) {
services.add(pServiceConfiguration);
}
public List<ServiceConfiguration> getServiceConfigurations() {
return Collections.unmodifiableList(services);
}
public ServiceConfiguration getServiceConfigurationByProtocol(final Protocol pProtocol) {
for (ServiceConfiguration c : services) {
if (pProtocol.equals(c.protocol)) {
return c;
}
}
return null;
}
/**
* A mail service configuration entry.
* <p>
* An entry contains a mandatory protocol and optional hostname and port.
* If the hostname and port are not configured, GreenMail uses
* the default hostname and the default protocol port plus the port offset.
*/
public static class ServiceConfiguration {
Protocol protocol;
String hostname;
int port;
public Protocol getProtocol() {
return protocol;
}
public String getHostname() {
return hostname;
}
public int getPort() {
return port;
}
}
public static class User {
String login;
String password;
String email;
public String getLogin() {
return login;
}
public String getEmail() {
return email;
}
}
}