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 }