aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/RequestStore.java
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/RequestStore.java')
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/RequestStore.java35
1 files changed, 35 insertions, 0 deletions
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/RequestStore.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/RequestStore.java
new file mode 100644
index 00000000..a4eba2e6
--- /dev/null
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/RequestStore.java
@@ -0,0 +1,35 @@
+package at.gv.egiz.pdfas.web.store;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import at.gv.egiz.pdfas.web.config.WebConfiguration;
+import at.gv.egiz.pdfas.web.exception.PdfAsStoreException;
+
+public class RequestStore {
+ private static IRequestStore instance = null;
+
+ private static final Logger logger = LoggerFactory
+ .getLogger(RequestStore.class);
+
+ public synchronized static IRequestStore getInstance() throws PdfAsStoreException {
+ if (instance == null) {
+ try {
+ String storeClass = WebConfiguration.getStoreClass();
+ logger.info("Using Request Store: " + storeClass);
+
+ Class<?> clazz = Class.forName(storeClass);
+ Object store = clazz.newInstance();
+ if(store instanceof IRequestStore) {
+ instance = (IRequestStore)store;
+ } else {
+ throw new PdfAsStoreException("Failed to instanciate Request Store from " + storeClass);
+ }
+ } catch (Throwable e) {
+ e.printStackTrace();
+ throw new PdfAsStoreException("Failed to instanciate Request Store", e);
+ }
+ }
+ return instance;
+ }
+}