View Javadoc
1   package com.atlassian.activeobjects.internal;
2   
3   import com.atlassian.activeobjects.spi.ActiveObjectsPluginConfiguration;
4   import org.slf4j.Logger;
5   import org.slf4j.LoggerFactory;
6   
7   import static com.google.common.base.Preconditions.checkNotNull;
8   
9   public class DefaultDatabaseConfiguration implements DatabaseConfiguration {
10      private static final String DEFAULT_BASE_DIR = "data/plugins/activeobjects";
11  
12      private final Logger log = LoggerFactory.getLogger(this.getClass());
13      private final ActiveObjectsPluginConfiguration pluginConfiguration;
14  
15      public DefaultDatabaseConfiguration(ActiveObjectsPluginConfiguration pluginConfiguration) {
16          this.pluginConfiguration = checkNotNull(pluginConfiguration);
17      }
18  
19      public String getBaseDirectory() {
20          try {
21              return pluginConfiguration.getDatabaseBaseDirectory();
22          } catch (RuntimeException e) {
23              if (e.getClass().getSimpleName().equals("ServiceUnavailableException")) {
24                  log.debug("Active objects plugin configuration service not present, so using default base directory <{}>", DEFAULT_BASE_DIR);
25                  return DEFAULT_BASE_DIR;
26              }
27              throw e;
28          }
29      }
30  }