aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/knowcenter/wag/egov/egiz/cfg/OverridePropertyHolder.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/knowcenter/wag/egov/egiz/cfg/OverridePropertyHolder.java')
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/cfg/OverridePropertyHolder.java28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/cfg/OverridePropertyHolder.java b/src/main/java/at/knowcenter/wag/egov/egiz/cfg/OverridePropertyHolder.java
index 33a0e4a..049ce06 100644
--- a/src/main/java/at/knowcenter/wag/egov/egiz/cfg/OverridePropertyHolder.java
+++ b/src/main/java/at/knowcenter/wag/egov/egiz/cfg/OverridePropertyHolder.java
@@ -3,6 +3,7 @@ package at.knowcenter.wag.egov.egiz.cfg;
import java.util.Properties;
import at.gv.egiz.pdfas.api.sign.SignParameters;
+import at.gv.egiz.pdfas.utils.OgnlUtil;
/**
* Thread local holder for profile override values.
@@ -16,6 +17,7 @@ public class OverridePropertyHolder {
private static ThreadLocal propHolder = new ThreadLocal() {
protected Object initialValue() { return new Properties();};
};
+ private static ThreadLocal ognlHolder = new ThreadLocal();
public static Properties getOverrideProps() {
return (Properties) propHolder.get();
@@ -30,12 +32,32 @@ public class OverridePropertyHolder {
}
public static String getProperty(String key) {
- return getOverrideProps().getProperty(key);
+
+ String res = getOverrideProps().getProperty(key);
+ if (res != null) {
+ OgnlUtil ognl = getOgnl();
+ if (ognl != null && ognl.containsExpression(res)) {
+ // evaluate expression
+ res = ognl.compileMessage(res);
+ }
+ }
+ return res;
}
- public static void removeProperties() {
- propHolder.remove();
+ public static void removeProperties() {
propHolder.set(new Properties());
}
+
+ public static void setOgnlUtil(OgnlUtil ognl) {
+ ognlHolder.set(ognl);
+ }
+
+ private static OgnlUtil getOgnl() {
+ return (OgnlUtil) ognlHolder.get();
+ }
+
+ public static void removeOgnlUtil() {
+ ognlHolder.set(null);
+ }
}