diff options
| author | Jakob Heher <jakob.heher@iaik.tugraz.at> | 2026-06-12 14:03:22 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-06-12 14:03:22 +0200 |
| commit | ce9f7ae9d70582bb07e1436360b1eab927c81bf0 (patch) | |
| tree | d11551cedfdb7d1b054b1684efd9d84a63f3ad81 /pdf-as-web/src/main/java | |
| parent | 326c1cd1a7340932b027266927dda1bb60555032 (diff) | |
| download | pdf-as-4-ce9f7ae9d70582bb07e1436360b1eab927c81bf0.tar.gz pdf-as-4-ce9f7ae9d70582bb07e1436360b1eab927c81bf0.tar.bz2 pdf-as-4-ce9f7ae9d70582bb07e1436360b1eab927c81bf0.zip | |
Fix pdf-as-web-db data model (#97)
* also delete packaged release builds when running gradle clean
* fix & test pdf-as-web-db
- rename column for `end`
- fix embeddable data model for statisticevent
- fix storage model to store sign request and statistic event paired
Diffstat (limited to 'pdf-as-web/src/main/java')
4 files changed, 18 insertions, 28 deletions
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java index 9c20e1a1..51cc5573 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java @@ -42,6 +42,7 @@ import at.gv.egiz.pdfas.web.helper.PdfAsHelper; import at.gv.egiz.pdfas.web.stats.StatisticEvent; import at.gv.egiz.pdfas.web.store.RequestStore; import lombok.extern.slf4j.Slf4j; +import lombok.val; @Slf4j public class UIEntryPointServlet extends HttpServlet { @@ -76,16 +77,16 @@ public class UIEntryPointServlet extends HttpServlet { throw new PdfAsStoreException("Wrong Parameters"); } - PdfasSignRequest pdfAsRequest = RequestStore.getInstance() + val storeEntry = RequestStore.getInstance() .fetchStoreEntry(storeId); - if (pdfAsRequest == null) { + if (storeEntry == null) { throw new PdfAsStoreException("Invalid " + REQUEST_ID_PARAM + " value"); } - StatisticEvent statisticEvent = RequestStore.getInstance() - .fetchStatisticEntry(storeId); + val pdfAsRequest = storeEntry.getFirst(); + val statisticEvent = storeEntry.getSecond(); PdfAsHelper.setStatisticEvent(req, resp, statisticEvent); diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/IRequestStore.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/IRequestStore.java index 643d3ea0..fdcded6c 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/IRequestStore.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/IRequestStore.java @@ -26,11 +26,11 @@ package at.gv.egiz.pdfas.web.store; import at.gv.egiz.pdfas.api.processing.PdfasSignRequest; import at.gv.egiz.pdfas.api.processing.PdfasSignResponse; import at.gv.egiz.pdfas.web.stats.StatisticEvent; +import kotlin.Pair; public interface IRequestStore { - public StatisticEvent fetchStatisticEntry(String id); public String createNewStoreEntry(PdfasSignRequest request, StatisticEvent event); - public PdfasSignRequest fetchStoreEntry(String id); + public Pair<PdfasSignRequest, StatisticEvent> fetchStoreEntry(String id); public String createNewResponseEntry(PdfasSignResponse response); public PdfasSignResponse fetchStoreResponse(String id); diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/InMemoryRequestStore.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/InMemoryRequestStore.java index 6ab58ce0..378714e4 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/InMemoryRequestStore.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/InMemoryRequestStore.java @@ -26,6 +26,8 @@ package at.gv.egiz.pdfas.web.store; import java.util.Map; import java.util.UUID; +import kotlin.Pair; +import lombok.val; import org.apache.commons.collections4.map.PassiveExpiringMap; import at.gv.egiz.pdfas.api.processing.PdfasSignRequest; @@ -37,40 +39,27 @@ public class InMemoryRequestStore implements IRequestStore { // expires after 10 minutes private static final long DEFAULT_EXPIRATION = 10 * 60 * 1000; - private Map<String, PdfasSignRequest> reqStore = new PassiveExpiringMap<>(DEFAULT_EXPIRATION); + private Map<String, Pair<PdfasSignRequest, StatisticEvent>> reqStore = new PassiveExpiringMap<>(DEFAULT_EXPIRATION); private Map<String, PdfasSignResponse> respStore = new PassiveExpiringMap<>(DEFAULT_EXPIRATION); - private Map<String, StatisticEvent> statEvents = new PassiveExpiringMap<>(DEFAULT_EXPIRATION); public InMemoryRequestStore() { } - + + @Override public String createNewStoreEntry(PdfasSignRequest request, StatisticEvent event) { UUID id = UUID.randomUUID(); String sid = id.toString(); - this.reqStore.put(sid, request); - this.statEvents.put(sid, event); + this.reqStore.put(sid, new Pair<>(request, event)); return sid; - } - public StatisticEvent fetchStatisticEntry(String id) { - if(statEvents.containsKey(id)) { - StatisticEvent event = statEvents.get(id); - statEvents.remove(id); - return event; - - } - - return null; - } - - public PdfasSignRequest fetchStoreEntry(String id) { + @Override + public Pair<PdfasSignRequest, StatisticEvent> fetchStoreEntry(String id) { if(reqStore.containsKey(id)) { - PdfasSignRequest request = reqStore.get(id); + val storeEntry = reqStore.get(id); reqStore.remove(id); - return request; - + return storeEntry; } return null; 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 index 5ed2bef0..e39e9399 100644 --- 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 @@ -49,7 +49,7 @@ public class RequestStore { throw new PdfAsStoreException("Failed to instantiate Request Store from " + storeClass); } } catch (Throwable e) { - e.printStackTrace(); + logger.error("Failed to instantiate Request Store", e); throw new PdfAsStoreException("Failed to instantiate Request Store", e); } } |
