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);
34      }
35  
36      @Override
37      protected javax.mail.Authenticator getAuthenticator()
38  	{
39          return null;
40      }
41  
42      public String getType()
43  	{
44  		return MailServerManager.SERVER_TYPES[0];
45      }
46  
47  	public Session getSession() throws MailException
48  	{
49  		final Properties props = loadSystemProperties(getProperties());
50  		return getSessionFromServerManager(props, getAuthenticator());
51  	}
52  
53  }