aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/RedisRepository.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/RedisRepository.java')
-rw-r--r--src/main/java/at/gv/egiz/moazs/RedisRepository.java57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/RedisRepository.java b/src/main/java/at/gv/egiz/moazs/RedisRepository.java
new file mode 100644
index 0000000..dfc68ea
--- /dev/null
+++ b/src/main/java/at/gv/egiz/moazs/RedisRepository.java
@@ -0,0 +1,57 @@
+package at.gv.egiz.moazs;
+
+import at.gv.e_government.reference.namespace.zustellung.mzs.app2mzs_.DeliveryRequestType;
+import at.gv.e_government.reference.namespace.zustellung.mzs.app2mzs_.ObjectFactory;
+import org.apache.tools.ant.filters.StringInputStream;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.HashOperations;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Repository;
+
+import javax.annotation.PostConstruct;
+import javax.xml.bind.JAXBElement;
+
+@Repository
+public class RedisRepository {
+
+ private static final Logger logger = LoggerFactory.getLogger(RedisRepository.class);
+
+ private static final String KEY = "MZS_DELIVERY_REQUEST";
+
+ private final RedisTemplate<String, Object> redisTemplate;
+
+ private final MyMarshaller marshaller;
+
+ private HashOperations<String, String, String> hashOperations;
+
+ private final ObjectFactory factory = new ObjectFactory();
+
+ @Autowired
+ public RedisRepository(RedisTemplate<String, Object> redisTemplate, MyMarshaller marshaller){
+ this.redisTemplate = redisTemplate;
+ this.marshaller = marshaller;
+ }
+
+ @PostConstruct
+ private void init(){
+ hashOperations = redisTemplate.opsForHash();
+ }
+
+ public void add(DeliveryRequestType request) {
+ var hashKey = request.getMetaData().getAppDeliveryID();
+ var serializedRequest = marshaller.marshallXml(factory.createDeliveryRequest(request));
+
+ logger.info("Adding DeliveryRequest to repository: AppDeliveryId = {}, request = {}", hashKey, serializedRequest);
+ hashOperations.put(KEY, hashKey, serializedRequest);
+
+ var drs = (String) hashOperations.get(KEY, hashKey);
+ var requestFromRedis = (JAXBElement<DeliveryRequestType>) marshaller.unmarshallXml(new StringInputStream(drs));
+ String appDeliveryID = requestFromRedis.getValue().getMetaData().getAppDeliveryID();
+ logger.info("here's what i got out of redis: appDeliveryId = {}, request = {}", appDeliveryID, drs);
+
+
+ }
+
+}