aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java
diff options
context:
space:
mode:
authorChristof Rabensteiner <christof.rabensteiner@iaik.tugraz.at>2019-04-17 15:34:48 +0200
committerChristof Rabensteiner <christof.rabensteiner@iaik.tugraz.at>2019-04-17 15:34:48 +0200
commit7a003c9287be57fe90173e4dd728ad995ed7036e (patch)
tree0f1f9f82a5fee3acac64610181d3a1d89cf2b240 /src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java
parent8e362d5feaf5535bb59bacc1be677d8f10d08f86 (diff)
downloadmoa-zs-7a003c9287be57fe90173e4dd728ad995ed7036e.tar.gz
moa-zs-7a003c9287be57fe90173e4dd728ad995ed7036e.tar.bz2
moa-zs-7a003c9287be57fe90173e4dd728ad995ed7036e.zip
Refactor: Move Repositories to Repository Package
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java')
-rw-r--r--src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java b/src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java
new file mode 100644
index 0000000..e5486d7
--- /dev/null
+++ b/src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java
@@ -0,0 +1,40 @@
+package at.gv.egiz.moazs.repository;
+
+import at.gv.e_government.reference.namespace.zustellung.mzs.app2mzs_.DeliveryRequestType;
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Profile;
+import org.springframework.stereotype.Repository;
+
+import java.util.Optional;
+import java.util.concurrent.TimeUnit;
+
+@Repository
+@Profile("!cluster")
+public class InMemoryDeliveryRepository implements DeliveryRepository {
+
+ private static final Logger logger = LoggerFactory.getLogger(InMemoryDeliveryRepository.class);
+
+ private static final Cache<String, DeliveryRequestType> rep = CacheBuilder.newBuilder()
+ .expireAfterWrite(30, TimeUnit.MINUTES)
+ .build();
+
+ public InMemoryDeliveryRepository() {
+ logger.info("InMemoryDeliveryRepository()");
+ }
+
+ @Override
+ public void add(DeliveryRequestType request) {
+ String key = request.getMetaData().getAppDeliveryID();
+ logger.info("Save DeliveryRequest with AppDeliveryId = {} to Cache.", key);
+ rep.put(key, request);
+ }
+
+ @Override
+ public Optional<DeliveryRequestType> getDeliveryRequest(String appDeliveryID) {
+ DeliveryRequestType deliveryRequestType = rep.getIfPresent(appDeliveryID);
+ return Optional.ofNullable(deliveryRequestType);
+ }
+}