aboutsummaryrefslogtreecommitdiff
path: root/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config
diff options
context:
space:
mode:
authorThomas Lenz <tlenz@iaik.tugraz.at>2015-09-15 12:55:30 +0200
committerThomas Lenz <tlenz@iaik.tugraz.at>2015-09-15 12:55:30 +0200
commitfa3f73a46151d06c4f80eb0c43d3eda6c23c3709 (patch)
treeea5567192489a16d7dbd24a62f3f9512df76f489 /id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config
parent76bae60e9bda1acb7ee0e3d45ab187749d16bf82 (diff)
downloadmoa-id-spss-fa3f73a46151d06c4f80eb0c43d3eda6c23c3709.tar.gz
moa-id-spss-fa3f73a46151d06c4f80eb0c43d3eda6c23c3709.tar.bz2
moa-id-spss-fa3f73a46151d06c4f80eb0c43d3eda6c23c3709.zip
fix problems with OracleDB and configuration storage implementation
Diffstat (limited to 'id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config')
-rw-r--r--id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/DatabaseConfigPropertyImpl.java35
1 files changed, 31 insertions, 4 deletions
diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/DatabaseConfigPropertyImpl.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/DatabaseConfigPropertyImpl.java
index f59e39ac6..aad830d65 100644
--- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/DatabaseConfigPropertyImpl.java
+++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/DatabaseConfigPropertyImpl.java
@@ -1,6 +1,10 @@
package at.gv.egovernment.moa.id.commons.db.dao.config;
+import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
+import java.util.Map.Entry;
+import java.util.regex.Pattern;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@@ -137,10 +141,33 @@ public class DatabaseConfigPropertyImpl extends AbstractConfigurationImpl {
throw new ConfigurationException("No EntityManager set!");
}
- TypedQuery<String> query = em.createQuery("select key from ConfigProperty dbconfig where dbconfig.value like :value", String.class);
- query.setParameter("value", searchString.replace("*", "%"));
- List<String> result = query.getResultList();
- return result.toArray(new String[result.size()]);
+ TypedQuery<ConfigProperty> query = em.createQuery("select * from ConfigProperty dbconfig", ConfigProperty.class);
+ List<ConfigProperty> all = query.getResultList();
+
+ searchString = searchString.replace(".", "\\.");
+ String regex = searchString.replace("*", ".*");
+ regex = regex.replace("%", "\\w*");
+ log.debug("Searching with regex: {}", regex);
+ Pattern pattern = Pattern.compile(regex);
+
+ List<String> keyList = new ArrayList<String>();
+ Iterator<ConfigProperty> keyIt;
+ if (all != null) {
+ keyIt = all.iterator();
+ while(keyIt.hasNext()) {
+ ConfigProperty entry = keyIt.next();
+ String value = entry.getValue();
+ String key = entry.getKey();
+
+ if(pattern.matcher(value).matches()) {
+ keyList.add(key);
+ }
+ }
+ }
+
+ String[] result = new String[keyList.size()];
+ return keyList.toArray(result);
+
}
/* (non-Javadoc)