1 package com.atlassian.activeobjects.config.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
10
11
12
13
14 public final class DefaultActiveObjectsPluginConfiguration implements ActiveObjectsPluginConfiguration {
15 private static final String DEFAULT_BASE_DIR = "data/plugins/activeobjects";
16
17 private final Logger logger = LoggerFactory.getLogger(this.getClass());
18
19 private final ActiveObjectsPluginConfiguration delegate;
20
21 public DefaultActiveObjectsPluginConfiguration(ActiveObjectsPluginConfiguration delegate) {
22 this.delegate = checkNotNull(delegate);
23 }
24
25 public String getDatabaseBaseDirectory() {
26 try {
27 return delegate.getDatabaseBaseDirectory();
28 } catch (RuntimeException e) {
29 if (e.getClass().getSimpleName().equals("ServiceUnavailableException")) {
30 logger.debug("Active objects plugin configuration service not present, so using default base directory <{}>", DEFAULT_BASE_DIR);
31 return DEFAULT_BASE_DIR;
32 }
33 throw e;
34 }
35 }
36 }