aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats
diff options
context:
space:
mode:
authorJakob Heher <jakob.heher@iaik.tugraz.at>2026-05-12 15:33:19 +0200
committerGitHub <noreply@github.com>2026-05-12 15:33:19 +0200
commitc8abbd8bef5349ab892a2853a4e5e3d5ed16b670 (patch)
tree04e86de8b547ac2685165cdf652b6c16355ae3c3 /pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats
parente2bfdc313c0b6395d272624688b4ed1cba7ce967 (diff)
downloadpdf-as-4-c8abbd8bef5349ab892a2853a4e5e3d5ed16b670.tar.gz
pdf-as-4-c8abbd8bef5349ab892a2853a4e5e3d5ed16b670.tar.bz2
pdf-as-4-c8abbd8bef5349ab892a2853a4e5e3d5ed16b670.zip
Update docs & various fixes discovered in the process (#86)
- update documentation for pdf-as 5 - document the v2 json api - fix a number of documentation quirks - document `keyId` parameter - px (pixels) -> pt (pdf page units) - document --verify_level - remove a number of documented features that were never implemented: - `adobeSignFieldValue` and `sigLogoAltText` from signature profiles - `UNDERLINE` and `STRIKETHRU` from fonts - `num-bytes` parameter - `verify_only`/`sign_only` enable states for profiles - update mobile BKU base URL - update pdfbox backend default to 3 in sample configurations - consistently made boolean parsing from configuration files case permissive - add moa verification timeout - add support for BOLDITALIC to all base fonts, and for ITALIC to helvetica and courier - fix a number of small quirks - hibernate properties are now reloaded properly - fix the signature block parameter key regex - v1 json api now correctly checks for onlinebku/mobilebku being enabled - pdfbox 2 module correctly compares for integer equality regardless of cached boxed ints - test operationcountwatcher no longer sometimes breaks due to spring context differences
Diffstat (limited to 'pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats')
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/impl/StatisticMicrometerBackend.java24
1 files changed, 11 insertions, 13 deletions
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/impl/StatisticMicrometerBackend.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/impl/StatisticMicrometerBackend.java
index 89127e6a..8b8fb489 100644
--- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/impl/StatisticMicrometerBackend.java
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/impl/StatisticMicrometerBackend.java
@@ -7,30 +7,25 @@ import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Tags;
import io.micrometer.core.instrument.Timer;
import lombok.extern.slf4j.Slf4j;
+import lombok.val;
import org.jspecify.annotations.NonNull;
import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.DisposableBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;
@Slf4j
public class StatisticMicrometerBackend implements StatisticBackend {
/** bridge between ServiceLoader component and Boot's beans */
@Component
- public static class SpringContextProxy implements ApplicationContextAware {
- private static volatile ApplicationContext applicationContext;
- @Override public void setApplicationContext(@NonNull ApplicationContext ctx) { applicationContext = ctx; }
- public static <T> T getBean(Class<T> type) {
- try {
- return (applicationContext != null) ? applicationContext.getBean(type) : null;
- } catch (BeansException ex) {
- log.warn("Spring MeterRegistry not available, skipped micrometer metric logging", ex);
- return null;
- }
- }
+ public static class SpringContextProxy {
+ public static MeterRegistry meterRegistry;
+ SpringContextProxy(MeterRegistry registry) { meterRegistry = registry; }
}
public static final String NAME = "StatisticMicrometerBackend";
@Override public String getName() { return NAME; }
@@ -39,8 +34,11 @@ public class StatisticMicrometerBackend implements StatisticBackend {
public void storeEvent(StatisticEvent e) {
if (e == null) return;
- MeterRegistry registry = SpringContextProxy.getBean(MeterRegistry.class);
- if (registry == null) return;
+ MeterRegistry registry = SpringContextProxy.meterRegistry;
+ if (registry == null) {
+ log.warn("Spring MeterRegistry not available, skipped micrometer metric logging");
+ return;
+ }
Tags baseTags = Tags.of(
"operation", safeName(e.getOperation(), v -> v.getName()),