aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java
diff options
context:
space:
mode:
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.java37
1 files changed, 26 insertions, 11 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
index 3b5a020..41b742b 100644
--- a/src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java
+++ b/src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java
@@ -4,46 +4,61 @@ package at.gv.egiz.moazs.repository;
import at.gv.egiz.moazs.scheme.MsgResponse;
import at.gv.zustellung.app2mzs.xsd.DeliveryRequestType;
import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Repository;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
+import static com.google.common.cache.CacheBuilder.newBuilder;
import static java.util.Optional.ofNullable;
@Repository
@Profile("!cluster")
public class InMemoryDeliveryRepository implements DeliveryRepository {
- private final Cache<String, DeliveryRequestType> requestRepository = CacheBuilder.newBuilder()
- .expireAfterWrite(30, TimeUnit.MINUTES)
- .build();
+ private final Cache<String, DeliveryRequestType> requestRepository;
+ private final Cache<String, MsgResponse> responseRepository;
+ private final Cache<String, byte[]> binaryResponseRepository;
- private final Cache<String, MsgResponse> responseRepository = CacheBuilder.newBuilder()
- .expireAfterWrite(30, TimeUnit.MINUTES)
- .build();
+ public InMemoryDeliveryRepository(int expiresAfterWrite) {
+ var builder = newBuilder().expireAfterWrite(expiresAfterWrite, TimeUnit.MINUTES);
+ this.requestRepository = builder.build();
+ this.responseRepository = builder.build();
+ this.binaryResponseRepository = builder.build();
+ }
@Override
- public void add(DeliveryRequestType request) {
+ public void store(DeliveryRequestType request) {
var key = request.getMetaData().getAppDeliveryID();
requestRepository.put(key, request);
}
@Override
- public Optional<DeliveryRequestType> getDeliveryRequest(String appDeliveryID) {
+ public Optional<DeliveryRequestType> retrieveDeliveryRequest(String appDeliveryID) {
return ofNullable(requestRepository.getIfPresent(appDeliveryID));
}
@Override
- public void add(MsgResponse response) {
+ public void store(MsgResponse response) {
String key = response.getResponseID();
responseRepository.put(key, response);
}
@Override
- public Optional<MsgResponse> getResponse(String responseID) {
+ public Optional<MsgResponse> retrieveResponse(String responseID) {
return ofNullable(responseRepository.getIfPresent(responseID));
}
+
+ @Override
+ public void store(String id, byte[] data) {
+ binaryResponseRepository.put(id, data);
+
+ }
+
+ @Override
+ public Optional<byte[]> retrieveBinaryResponse(String responseID) {
+ return ofNullable(binaryResponseRepository.getIfPresent(responseID));
+ }
+
}