From a4f9018bf6a9fd74312ad62a3633a71a9724f3ab Mon Sep 17 00:00:00 2001 From: pdanner Date: Wed, 1 Dec 2010 14:02:31 +0000 Subject: fixed override properties for binsig with placeholders git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@659 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../wag/egov/egiz/cfg/OverridePropertyHolder.java | 28 +++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'src/main/java/at/knowcenter/wag/egov/egiz/cfg/OverridePropertyHolder.java') 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); + } } -- cgit v1.2.3