1   package com.atlassian.mail.server.impl;
2   
3   import com.atlassian.mail.MailException;
4   import com.atlassian.mail.MailProtocol;
5   import com.atlassian.mail.server.AbstractMailServer;
6   import com.atlassian.mail.server.MailServerManager;
7   import com.atlassian.mail.server.PopMailServer;
8   
9   import javax.mail.Session;
10  import java.util.Properties;
11  
12  import static com.atlassian.mail.MailConstants.*;
13  
14  public class PopMailServerImpl extends AbstractMailServer implements PopMailServer
15  {
16      public PopMailServerImpl()
17      {
18  
19      }
20  
21      public PopMailServerImpl(Long id, String name, String description, String serverName, String username, String password)
22      {
23          this(id, name, description, DEFAULT_POP_PROTOCOL, serverName, DEFAULT_POP_PORT, username, password, DEFAULT_TIMEOUT);
24      }
25  
26      public PopMailServerImpl(Long id, String name, String description, MailProtocol popProtocol, String serverName, String popPort, String username, String password)
27      {
28          this(id, name, description, popProtocol, serverName,  popPort, username, password, DEFAULT_TIMEOUT);
29      }
30  
31      public PopMailServerImpl(Long id, String name, String description, MailProtocol popProtocol, String serverName, String popPort, String username, String password, long timeout)
32      {
33          super(id, name, description, popProtocol, serverName,  popPort, username, password, timeout, null, null);
34      }
35      
36      public PopMailServerImpl(Long id, String name, String description, MailProtocol popProtocol, String serverName, String popPort, String username, String password, long timeout, String socksHost, String socksPort)
37      {
38          super(id, name, description, popProtocol, serverName,  popPort, username, password, timeout, socksHost, socksPort);
39      }
40  
41      @Override
42      protected javax.mail.Authenticator getAuthenticator()
43  	{
44          return null;
45      }
46  
47      public String getType()
48  	{
49  		return MailServerManager.SERVER_TYPES[0];
50      }
51  
52  	public Session getSession() throws MailException
53  	{
54  		final Properties props = loadSystemProperties(getProperties());
55  		return getSessionFromServerManager(props, getAuthenticator());
56  	}
57  
58  }