1   package com.atlassian.mail;
2   
3   import com.atlassian.mail.config.ConfigLoader;
4   import com.atlassian.mail.server.MailServerManager;
5   import com.atlassian.util.concurrent.ResettableLazyReference;
6   
7   public class MailFactory
8   {
9       /**
10       * @deprecated since 2.5.0. Use {@link Settings#ATLASSIAN_MAIL_SEND_DISABLED_SYSTEM_PROPERTY_KEY} instead.
11       */
12      @Deprecated
13      public static final String MAIL_DISABLED_KEY = "atlassian.mail.senddisabled";
14  
15      private static final ResettableLazyReference<MailServerManager> serverManager =
16              new ResettableLazyReference<MailServerManager>()
17              {
18                  @Override
19                  protected MailServerManager create() throws Exception
20                  {
21                      return ConfigLoader.getServerManager();
22                  }
23              };
24  
25      private static final ResettableLazyReference<Settings> settings = new ResettableLazyReference<Settings>()
26      {
27          @Override
28          protected Settings create() throws Exception
29          {
30              return ConfigLoader.getSettings();
31          }
32      };
33  
34      public static void refresh()
35      {
36          serverManager.reset();
37          settings.reset();
38      }
39  
40      public static MailServerManager getServerManager()
41      {
42          return serverManager.get();
43      }
44  
45      public static Settings getSettings()
46      {
47          return settings.get();
48      }
49  
50      /**
51       * @deprecated since 2.5.0. Use {@link com.atlassian.mail.Settings#isSendingDisabled()} instead
52       */
53      @Deprecated
54      public static boolean isSendingDisabled()
55      {
56          return getSettings().isSendingDisabled();
57      }
58  }