text rewrite tests
diff --git a/pom.xml b/pom.xml
index dd918d6..cdde2f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>de.ids_mannheim.korap</groupId>
<artifactId>Kustvakt-core</artifactId>
- <version>0.59.2</version>
+ <version>0.59.4</version>
<packaging>jar</packaging>
<name>Kustvakt core</name>
<description>Kustvakt core, basic rest api for testing purposes and default
@@ -131,7 +131,7 @@
<compilerCompliance>1.7</compilerCompliance>
<compilerTargetPlatform>1.7</compilerTargetPlatform>
</configuration>
- <!--
+
<executions>
<execution>
<goals>
@@ -139,7 +139,7 @@
</goals>
</execution>
</executions>
- -->
+
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
diff --git a/src/main/java/de/ids_mannheim/korap/config/Attributes.java b/src/main/java/de/ids_mannheim/korap/config/Attributes.java
index 6e2c227..77fa6e1 100644
--- a/src/main/java/de/ids_mannheim/korap/config/Attributes.java
+++ b/src/main/java/de/ids_mannheim/korap/config/Attributes.java
@@ -87,8 +87,8 @@
public static final String DESCRIPTION = "description";
public static final String CORPUS_SIGLE = "corpusSigle";
-
public static final String DOC_SIGLE = "docSigle";
+ public static final String TEXT_SIGLE = "textSigle";
public static final String REF_CORPUS = "refCorpus";
public static final String QUERY = "query";
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/CollectionCleanupFilter.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/CollectionCleanupFilter.java
deleted file mode 100644
index 3985bd0..0000000
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/CollectionCleanupFilter.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package de.ids_mannheim.korap.resource.rewrite;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import de.ids_mannheim.korap.config.BeanInjectable;
-import de.ids_mannheim.korap.config.ContextHolder;
-import de.ids_mannheim.korap.config.KustvaktConfiguration;
-import de.ids_mannheim.korap.user.User;
-import de.ids_mannheim.korap.utils.JsonUtils;
-import edu.emory.mathcs.backport.java.util.Arrays;
-
-import java.util.Iterator;
-
-/**
- * @author hanl
- * @date 28/07/2015
- */
-public class CollectionCleanupFilter implements RewriteTask.RewriteNodeAt {
-
- @Override
- public JsonNode preProcess (KoralNode node, KustvaktConfiguration config,
- User user) {
- return process(node.rawNode());
- }
-
-
- private JsonNode process (JsonNode root) {
- JsonNode sub = root;
- if (root.isObject()) {
- if (root.has("operands")) {
- JsonNode node = root.at("/operands");
- Iterator<JsonNode> it = node.elements();
- while (it.hasNext()) {
- JsonNode n = it.next();
- JsonNode s = process(n);
- if (s == null)
- it.remove();
- }
-
- int count = node.size();
- // remove group element and replace with single doc
- if (count == 1)
- sub = node.path(0);
- // indicate empty group
- else if (count == 0) // can't do anything here -- fixme: edge case?!
- return null;
- }
-
- // what happens to array nodes?
- if (!root.equals(sub)) {
- if (sub.isObject()) {
- ObjectNode ob = (ObjectNode) root;
- ob.remove(Arrays.asList(new String[]{"@type", "operation", "operands"}));
- ob.putAll((ObjectNode) sub);
- //if (!rewrites.isMissingNode())
- // ob.put("rewrites", rewrites);
- }
- }
- }
- return root;
- }
-
- @Override
- public JsonNode postProcess (KoralNode node) {
- return null;
- }
-
-
- @Override
- public String at () {
- return "/collection";
- }
-}
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/CollectionConstraint.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/CollectionConstraint.java
index f725c9a..f005413 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/CollectionConstraint.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/CollectionConstraint.java
@@ -17,30 +17,32 @@
-
@Override
- public JsonNode preProcess (KoralNode node, KustvaktConfiguration config,
+ public JsonNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
User user) {
if (node.get("@type").equals("koral:doc")) {
- if (node.get("key").equals(Attributes.CORPUS_SIGLE)
- && !check(node, user))
- node.removeNode(Attributes.CORPUS_SIGLE);
+ if (node.get("key").equals(Attributes.CORPUS_SIGLE)) {
+ String id = node.get("value");
+ KustvaktResource corpus = check(id, user);
+ if (corpus == null)
+ node.removeNode(new KoralNode.RewriteIdentifier(
+ Attributes.CORPUS_SIGLE, id));
+ }
}
return node.rawNode();
}
/**
- * @param node
+ * @param id
* @param user
* @return boolean if true access granted
*/
- private boolean check (KoralNode node, User user) {
+ private KustvaktResource check (String id, User user) {
// todo: can be used to circumvent access control if public filter not applied
if (user == null)
- return true;
+ return null;
- String id = node.get("value");
KustvaktResource corpus;
try {
SecurityManager m = SecurityManager
@@ -48,14 +50,14 @@
corpus = m.getResource();
}
catch (RuntimeException | KustvaktException e) {
- return false;
+ return null;
}
- return corpus != null;
+ return corpus;
}
@Override
- public JsonNode postProcess (KoralNode node) {
+ public JsonNode rewriteResult (KoralNode node) {
return null;
}
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/DocMatchRewrite.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/DocMatchRewrite.java
index b3f99f5..fc47c8b 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/DocMatchRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/DocMatchRewrite.java
@@ -36,24 +36,25 @@
@Override
- public JsonNode postProcess (KoralNode node) throws KustvaktException {
+ public JsonNode rewriteResult (KoralNode node) throws KustvaktException {
Document doc = null;
if (this.docDao == null)
throw new RuntimeException("Document dao must be set!");
- if (node.has(Attributes.DOC_SIGLE)) {
- String docID = node.get(Attributes.DOC_SIGLE);
- Element e = this.cache.get(docID);
+ if (node.has(Attributes.TEXT_SIGLE)) {
+ String textSigle = node.get(Attributes.TEXT_SIGLE);
+ Element e = this.cache.get(textSigle);
if (e == null) {
- doc = docDao.findbyId(docID, null);
+ doc = docDao.findbyId(textSigle, null);
if (doc != null)
- this.cache.put(new Element(docID, doc));
+ this.cache.put(new Element(textSigle, doc));
}
else
doc = (Document) e.getObjectValue();
if (doc != null && doc.isDisabled())
- node.removeNode(Attributes.DOC_SIGLE);
+ node.removeNode(new KoralNode.RewriteIdentifier(
+ Attributes.TEXT_SIGLE, doc.getPersistentID()));
}
return node.rawNode();
}
@@ -66,7 +67,7 @@
@Override
- public JsonNode preProcess (KoralNode node, KustvaktConfiguration config,
+ public JsonNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
User user) {
return null;
}
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/FoundryInject.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/FoundryInject.java
index 486ae25..9c3762b 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/FoundryInject.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/FoundryInject.java
@@ -30,7 +30,7 @@
@Override
- public JsonNode preProcess (KoralNode node, KustvaktConfiguration config,
+ public JsonNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
User user) throws KustvaktException {
LayerMapper mapper;
@@ -62,7 +62,7 @@
@Override
- public JsonNode postProcess (KoralNode node) {
+ public JsonNode rewriteResult (KoralNode node) {
return null;
}
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/IdWriter.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/IdWriter.java
index f0b1200..e35fd17 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/IdWriter.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/IdWriter.java
@@ -14,13 +14,14 @@
private int counter;
+
public IdWriter () {
this.counter = 0;
}
@Override
- public JsonNode preProcess (KoralNode node, KustvaktConfiguration config,
+ public JsonNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
User user) {
if (node.get("@type").equals("koral:token")) {
String s = extractToken(node.rawNode());
@@ -30,6 +31,7 @@
return node.rawNode();
}
+
private String extractToken (JsonNode token) {
JsonNode wrap = token.path("wrap");
if (!wrap.isMissingNode())
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/KoralNode.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/KoralNode.java
index dbce70e..6de5552 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/KoralNode.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/KoralNode.java
@@ -29,14 +29,16 @@
}
- public void buildRewrites(JsonNode node) {
+ public void buildRewrites (JsonNode node) {
this.rewrites.build(node);
}
- public void buildRewrites() {
+
+ public void buildRewrites () {
this.rewrites.build(this.node);
}
+
@Override
public String toString () {
return this.node.toString();
@@ -60,7 +62,7 @@
}
- public void remove (Object identifier) {
+ public void remove (Object identifier, RewriteIdentifier ident) {
boolean set = false;
if (this.node.isObject() && identifier instanceof String) {
ObjectNode n = (ObjectNode) this.node;
@@ -72,13 +74,17 @@
n.remove((Integer) identifier);
set = true;
}
+
+ if (ident != null)
+ identifier = ident.toString();
+
if (set) {
this.rewrites.add("deletion", identifier);
}
}
- public void replace (String name, Object value) {
+ public void replace (String name, Object value, RewriteIdentifier ident) {
if (this.node.isObject() && this.node.has(name)) {
ObjectNode n = (ObjectNode) this.node;
if (value instanceof String)
@@ -87,11 +93,16 @@
n.put(name, (Integer) value);
else if (value instanceof JsonNode)
n.put(name, (JsonNode) value);
+
+ if (ident != null)
+ name = ident.toString();
+
this.rewrites.add("override", name);
}
}
- public void set (String name, Object value, String attrIdent) {
+
+ public void set (String name, Object value, RewriteIdentifier ident) {
if (this.node.isObject()) {
ObjectNode n = (ObjectNode) this.node;
if (value instanceof String)
@@ -100,10 +111,16 @@
n.put(name, (Integer) value);
else if (value instanceof JsonNode)
n.put(name, (JsonNode) value);
- this.rewrites.add("insertion", attrIdent);
+
+
+ if (ident != null)
+ name = ident.toString();
+
+ this.rewrites.add("insertion", name);
}
}
+
public String get (String name) {
if (this.node.isObject())
return this.node.path(name).asText();
@@ -131,11 +148,30 @@
}
- public void removeNode (String identifier) {
- this.rewrites.add("deletion", identifier);
+ public void removeNode (RewriteIdentifier ident) {
+ this.rewrites.add("deletion", ident.toString());
this.remove = true;
}
+ public static class RewriteIdentifier {
+
+ private String key, value;
+
+
+ public RewriteIdentifier (String key, Object value) {
+ this.key = key;
+ this.value = value.toString();
+ }
+
+
+ @Override
+ public String toString () {
+ return key + "(" + value + ")";
+ }
+
+
+ }
+
public boolean isRemove () {
return this.remove;
@@ -144,14 +180,15 @@
public static class KoralRewriteBuilder {
- private List<KoralRewrite> rewrites;
+ private List<KoralRewrite> rewrites;
- public KoralRewriteBuilder() {
+
+ public KoralRewriteBuilder () {
this.rewrites = new ArrayList<>();
}
- public KoralRewriteBuilder add(String op, Object scope) {
+ public KoralRewriteBuilder add (String op, Object scope) {
KoralRewrite rewrite = new KoralRewrite();
rewrite.setOperation(op);
rewrite.setScope(scope.toString());
@@ -169,12 +206,17 @@
if (node.has("rewrites")) {
ArrayNode n = (ArrayNode) node.path("rewrites");
n.add(JsonUtils.valueToTree(rewrite.map));
- } else {
+ }
+ else if (node.isObject()) {
ObjectNode n = (ObjectNode) node;
List l = new LinkedList<>();
l.add(JsonUtils.valueToTree(rewrite.map));
n.put("rewrites", JsonUtils.valueToTree(l));
}
+ else {
+ //fixme: matches in result will land here. rewrites need to be placed under root node - though then there might be unclear where they belong to
+ }
+
}
this.rewrites.clear();
return node;
@@ -184,11 +226,11 @@
-
private static class KoralRewrite {
private Map<String, String> map;
+
private KoralRewrite () {
this.map = new LinkedHashMap<>();
this.map.put("@type", "koral:rewrite");
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/MetaConstraint.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/MetaConstraint.java
index 3158af0..522ac45 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/MetaConstraint.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/MetaConstraint.java
@@ -13,7 +13,7 @@
@Override
- public JsonNode preProcess (KoralNode node, KustvaktConfiguration config,
+ public JsonNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
User user) {
// redundant
if (node.rawNode().has("meta")) {
@@ -26,7 +26,7 @@
@Override
- public JsonNode postProcess (KoralNode node) {
+ public JsonNode rewriteResult (KoralNode node) {
return null;
}
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/PublicCollection.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/PublicCollection.java
index 114c35a..6bd59a5 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/PublicCollection.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/PublicCollection.java
@@ -11,26 +11,24 @@
import de.ids_mannheim.korap.user.User;
import de.ids_mannheim.korap.utils.KoralCollectionQueryBuilder;
import de.ids_mannheim.korap.utils.JsonUtils;
-import org.w3c.dom.Attr;
import java.util.ArrayList;
-import java.util.Arrays;
+import java.util.HashSet;
import java.util.Set;
/**
* @author hanl
* @date 04/07/2015
*/
-public class PublicCollection implements RewriteTask.RewriteBefore {
+public class PublicCollection implements RewriteTask.RewriteQuery {
public PublicCollection () {
super();
}
- // todo: where to inject the array node into? --> super group with and relation plus subgroup with ids and or operator
@Override
- public JsonNode preProcess (KoralNode node, KustvaktConfiguration config,
+ public JsonNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
User user) {
JsonNode subnode = node.rawNode();
@@ -48,13 +46,18 @@
throw new KustvaktException(StatusCodes.PERMISSION_DENIED,
"No resources found for user", user.getUsername());
+ Set ids = new HashSet(resources.size());
for (int i = 0; i < list.size(); i++) {
if (i > 0)
b.or();
- b.with(Attributes.CORPUS_SIGLE+"=" + list.get(i).getPersistentID());
+ b.with(Attributes.CORPUS_SIGLE + "="
+ + list.get(i).getPersistentID());
+ ids.add(list.get(i).getPersistentID());
}
JsonNode rewritten = JsonUtils.readTree(b.toJSON());
- node.set("collection", rewritten.at("/collection"), Attributes.CORPUS_SIGLE);
+ node.set("collection", rewritten.at("/collection"),
+ new KoralNode.RewriteIdentifier(
+ Attributes.CORPUS_SIGLE, ids));
node.at("/collection");
}
catch (KustvaktException e) {
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandler.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandler.java
index 8d00d7a..3ede387 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandler.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandler.java
@@ -52,7 +52,7 @@
this.add(PublicCollection.class);
this.add(IdWriter.class);
this.add(DocMatchRewrite.class);
- this.add(CollectionCleanupFilter.class);
+ this.add(CollectionCleanRewrite.class);
}
@@ -68,8 +68,8 @@
else if (rewriter instanceof RewriteTask.IterableRewritePath)
return this.node_processors
.add((RewriteTask.IterableRewritePath) rewriter);
- else if (rewriter instanceof RewriteTask.RewriteBefore
- | rewriter instanceof RewriteTask.RewriteAfter)
+ else if (rewriter instanceof RewriteTask.RewriteQuery
+ | rewriter instanceof RewriteTask.RewriteResult)
return this.query_processors.add(rewriter);
this.failed_task_registration.add(rewriter.getClass());
@@ -115,20 +115,31 @@
-
- public String process(JsonNode root, User user) {
+ public String processQuery (JsonNode root, User user) {
RewriteProcess process = new RewriteProcess(root, user);
JsonNode pre = process.start(false);
- //return iterate(pre, user, true);
return JsonUtils.toJSON(pre);
}
- public String process(String json, User user) {
- return process(JsonUtils.readTree(json), user);
+ public String processQuery (String json, User user) {
+ return processQuery(JsonUtils.readTree(json), user);
}
+ public String processResult (String json, User user) {
+ return processResult(JsonUtils.readTree(json), user);
+ }
+
+
+ public String processResult (JsonNode node, User user) {
+ RewriteProcess process = new RewriteProcess(node, user);
+ JsonNode pre = process.start(true);
+ return JsonUtils.toJSON(pre);
+ }
+
+
+
public void clear () {
this.node_processors.clear();
this.query_processors.clear();
@@ -149,12 +160,15 @@
private JsonNode root;
private User user;
- private RewriteProcess(JsonNode root, User user) {
+
+ private RewriteProcess (JsonNode root, User user) {
this.root = root;
this.user = user;
}
- private KoralNode processNode (String key, JsonNode value, boolean post) {
+
+ private KoralNode processNode (String key, JsonNode value,
+ boolean result) {
KoralNode kroot = KoralNode.wrapNode(value);
if (value.isObject()) {
if (value.has("operands")) {
@@ -162,7 +176,7 @@
Iterator<JsonNode> it = ops.elements();
while (it.hasNext()) {
JsonNode next = it.next();
- KoralNode kn = processNode(key, next, post);
+ KoralNode kn = processNode(key, next, result);
if (kn.isRemove())
it.remove();
}
@@ -170,19 +184,19 @@
else if (value.path("@type").asText().equals("koral:token")) {
// todo: koral:token nodes cannot be flagged for deletion --> creates the possibility for empty koral:token nodes
rewrite(key, kroot,
- RewriteHandler.this.token_node_processors, post);
- return processNode(key, value.path("wrap"), post);
+ RewriteHandler.this.token_node_processors, result);
+ return processNode(key, value.path("wrap"), result);
}
else {
return rewrite(key, kroot,
- RewriteHandler.this.node_processors, post);
+ RewriteHandler.this.node_processors, result);
}
}
else if (value.isArray()) {
Iterator<JsonNode> it = value.elements();
while (it.hasNext()) {
JsonNode next = it.next();
- KoralNode kn = processNode(key, next, post);
+ KoralNode kn = processNode(key, next, result);
if (kn.isRemove())
it.remove();
}
@@ -191,27 +205,30 @@
}
- private JsonNode start(boolean post) {
+ private JsonNode start (boolean result) {
jlog.debug("Running rewrite process on query {}", root);
if (root != null) {
Iterator<Map.Entry<String, JsonNode>> it = root.fields();
while (it.hasNext()) {
Map.Entry<String, JsonNode> next = it.next();
- processNode(next.getKey(), next.getValue(), post);
+ processNode(next.getKey(), next.getValue(), result);
}
- processFixedNode(root, RewriteHandler.this.query_processors, post);
+ processFixedNode(root, RewriteHandler.this.query_processors,
+ result);
}
return root;
}
+
/**
* @param node
* @param tasks
- * @return boolean true if node is to be removed from parent! Only
+ * @return boolean true if node is to be removed from parent!
+ * Only
* applies if parent is an array node
*/
private KoralNode rewrite (String rootNode, KoralNode node,
- Collection<? extends RewriteTask> tasks, boolean post) {
+ Collection<? extends RewriteTask> tasks, boolean result) {
if (RewriteHandler.this.config == null)
throw new RuntimeException("KustvaktConfiguration must be set!");
@@ -219,8 +236,10 @@
jlog.debug("running processor on node: " + node);
jlog.debug("on processor: " + task.getClass().toString());
- if (RewriteHandler.this.beans != null && task instanceof BeanInjectable)
- ((BeanInjectable) task).insertBeans(RewriteHandler.this.beans);
+ if (RewriteHandler.this.beans != null
+ && task instanceof BeanInjectable)
+ ((BeanInjectable) task)
+ .insertBeans(RewriteHandler.this.beans);
if (task instanceof RewriteTask.IterableRewritePath) {
RewriteTask.IterableRewritePath rw = (RewriteTask.IterableRewritePath) task;
@@ -230,31 +249,34 @@
}
}
try {
- if (!post && task instanceof RewriteTask.RewriteBefore) {
- ((RewriteTask.RewriteBefore) task).preProcess(node,
+ if (!result && task instanceof RewriteTask.RewriteQuery) {
+ ((RewriteTask.RewriteQuery) task).rewriteQuery(node,
RewriteHandler.this.config, this.user);
}
- else if (task instanceof RewriteTask.RewriteAfter) {
- ((RewriteTask.RewriteAfter) task).postProcess(node);
+ else if (task instanceof RewriteTask.RewriteResult) {
+ ((RewriteTask.RewriteResult) task).rewriteResult(node);
}
}
catch (KustvaktException e) {
- jlog.error("Error in rewrite processor {} for node {}", task
- .getClass().getSimpleName(), node.rawNode().toString());
+ jlog.error("Error in rewrite processor {} for node {}",
+ task.getClass().getSimpleName(), node.rawNode()
+ .toString());
e.printStackTrace();
}
if (node.isRemove()) {
- node.buildRewrites(this.root.at("/"+ rootNode));
+ node.buildRewrites(this.root.at("/" + rootNode));
break;
- } else
+ }
+ else
node.buildRewrites();
}
return node;
}
+
// fixme: merge with processNode!
private void processFixedNode (JsonNode node,
- Collection<RewriteTask> tasks, boolean post) {
+ Collection<RewriteTask> tasks, boolean post) {
for (RewriteTask task : tasks) {
KoralNode next = KoralNode.wrapNode(node);
if (task instanceof RewriteTask.RewriteNodeAt) {
@@ -264,16 +286,16 @@
}
try {
- if (!post & task instanceof RewriteTask.RewriteBefore)
- ((RewriteTask.RewriteBefore) task).preProcess(next,
+ if (!post & task instanceof RewriteTask.RewriteQuery)
+ ((RewriteTask.RewriteQuery) task).rewriteQuery(next,
RewriteHandler.this.config, user);
- else if (task instanceof RewriteTask.RewriteAfter)
- ((RewriteTask.RewriteAfter) task).postProcess(next);
+ else if (task instanceof RewriteTask.RewriteResult)
+ ((RewriteTask.RewriteResult) task).rewriteResult(next);
next.buildRewrites();
}
catch (KustvaktException e) {
- jlog.error("Error in rewrite processor {} for node {}", task
- .getClass().getSimpleName(), next.toString());
+ jlog.error("Error in rewrite processor {} for node {}",
+ task.getClass().getSimpleName(), next.toString());
e.printStackTrace();
}
}
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteTask.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteTask.java
index fcc43aa..9eab6ca 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteTask.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/RewriteTask.java
@@ -13,9 +13,10 @@
/**
- * unspecified query rewrite that gets injected the entire root node during preprocessing
+ * unspecified query rewrite that gets injected the entire root
+ * node during preprocessing
*/
- interface RewriteBefore extends RewriteTask {
+ interface RewriteQuery extends RewriteTask {
/**
* @param node
* Json node in KoralNode wrapper
@@ -28,21 +29,18 @@
* checked properly
* @return
*/
- JsonNode preProcess (KoralNode node, KustvaktConfiguration config,
+ JsonNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
User user) throws KustvaktException;
}
/**
* Post processor targeted at result sets for queries
- * {@link de.ids_mannheim.korap.resource.rewrite.RewriteTask.RewriteAfter}
- * queries will run
- * after
- * {@link IterableRewritePath}
- * have been processed
+ * {@link RewriteResult} queries will run
+ * after {@link IterableRewritePath} have been processed
*/
- interface RewriteAfter extends RewriteTask {
- JsonNode postProcess (KoralNode node) throws KustvaktException;
+ interface RewriteResult extends RewriteTask {
+ JsonNode rewriteResult (KoralNode node) throws KustvaktException;
}
/**
@@ -52,7 +50,7 @@
* Deletion via KoralNode not allowed. Supports pre- and
* post-processing
*/
- interface RewriteNodeAt extends RewriteBefore, RewriteAfter {
+ interface RewriteNodeAt extends RewriteQuery, RewriteResult {
String at ();
}
@@ -61,7 +59,7 @@
* iteration
* (both object and array node iteration supported)
*/
- interface IterableRewritePath extends RewriteBefore, RewriteAfter {
+ interface IterableRewritePath extends RewriteQuery, RewriteResult {
String path ();
}
@@ -72,6 +70,6 @@
* rewrites {@link RewriteKoralToken} rewrite DOES NOT support the
* deletion of the respective node
*/
- interface RewriteKoralToken extends RewriteBefore {}
+ interface RewriteKoralToken extends RewriteQuery {}
}
diff --git a/src/main/java/de/ids_mannheim/korap/resource/rewrite/TreeConstraint.java b/src/main/java/de/ids_mannheim/korap/resource/rewrite/TreeConstraint.java
index e4f134a..5713570 100644
--- a/src/main/java/de/ids_mannheim/korap/resource/rewrite/TreeConstraint.java
+++ b/src/main/java/de/ids_mannheim/korap/resource/rewrite/TreeConstraint.java
@@ -60,7 +60,7 @@
@Override
- public JsonNode preProcess (KoralNode node, KustvaktConfiguration config,
+ public JsonNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
User user) {
System.out.println("FIND PATH " + node.rawNode().findParent(pointer));
@@ -69,7 +69,7 @@
@Override
- public JsonNode postProcess (KoralNode node) {
+ public JsonNode rewriteResult (KoralNode node) {
return null;
}
diff --git a/src/main/java/de/ids_mannheim/korap/resources/Document.java b/src/main/java/de/ids_mannheim/korap/resources/Document.java
index 9f86444..c603011 100644
--- a/src/main/java/de/ids_mannheim/korap/resources/Document.java
+++ b/src/main/java/de/ids_mannheim/korap/resources/Document.java
@@ -7,6 +7,7 @@
* @author hanl
* @date 05/11/2014
*/
+// todo: distinguish between document and text!
@Getter
@Setter
public class Document extends KustvaktResource {
@@ -37,6 +38,11 @@
}
+ public boolean isText () {
+ return this.getPersistentID().contains(".");
+ }
+
+
@Override
public String toString () {
return "Document{" + "id='" + this.getId() + "'" + "persistentid='"
diff --git a/src/main/java/de/ids_mannheim/korap/resources/KustvaktResource.java b/src/main/java/de/ids_mannheim/korap/resources/KustvaktResource.java
index 532e8f3..7bbb43f 100644
--- a/src/main/java/de/ids_mannheim/korap/resources/KustvaktResource.java
+++ b/src/main/java/de/ids_mannheim/korap/resources/KustvaktResource.java
@@ -104,7 +104,8 @@
return JsonUtils.valueToTree(this.fields);
}
- public String getStringData() {
+
+ public String getStringData () {
return JsonUtils.toJSON(this.fields);
}
diff --git a/src/main/java/de/ids_mannheim/korap/resources/ResourceFactory.java b/src/main/java/de/ids_mannheim/korap/resources/ResourceFactory.java
index c6de012..7890b4a 100644
--- a/src/main/java/de/ids_mannheim/korap/resources/ResourceFactory.java
+++ b/src/main/java/de/ids_mannheim/korap/resources/ResourceFactory.java
@@ -64,7 +64,8 @@
public static <T extends KustvaktResource> T createID (T resource) {
if (resource.getData() != null && !resource.getStringData().isEmpty())
- resource.setPersistentID(DigestUtils.sha1Hex(resource.getStringData()));
+ resource.setPersistentID(DigestUtils.sha1Hex(resource
+ .getStringData()));
return resource;
}
diff --git a/src/main/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManager.java b/src/main/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManager.java
index 00a6e17..5c98f8f 100644
--- a/src/main/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManager.java
+++ b/src/main/java/de/ids_mannheim/korap/security/auth/KustvaktAuthenticationManager.java
@@ -757,7 +757,8 @@
if (data == null)
throw new KustvaktException(user.getId(),
- StatusCodes.EMPTY_RESULTS, "No data found!", clazz.getSimpleName());
+ StatusCodes.EMPTY_RESULTS, "No data found!",
+ clazz.getSimpleName());
return data;
}
catch (KustvaktException e) {
@@ -785,6 +786,7 @@
}
}
+
private String cache_key (String input) throws KustvaktException {
try {
return crypto.hash(KEY + "@" + input);
diff --git a/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java b/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java
index 4d6b6f1..86ac337 100644
--- a/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java
+++ b/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java
@@ -26,12 +26,12 @@
private String mergeOperator;
- public KoralCollectionQueryBuilder() {
+ public KoralCollectionQueryBuilder () {
this(false);
}
- public KoralCollectionQueryBuilder(boolean verbose) {
+ public KoralCollectionQueryBuilder (boolean verbose) {
this.verbose = verbose;
this.builder = new StringBuilder();
this.base = null;
@@ -49,7 +49,7 @@
* @return
*/
public KoralCollectionQueryBuilder fieldValue (String field, String op,
- String value) {
+ String value) {
this.builder.append(field + op + value);
return this;
}
@@ -65,7 +65,7 @@
* element
* @return
*/
- public KoralCollectionQueryBuilder with(String query) {
+ public KoralCollectionQueryBuilder with (String query) {
if (!query.startsWith("(") && !query.endsWith(")"))
query = "(" + query + ")";
this.builder.append(query);
@@ -74,8 +74,6 @@
-
-
public KoralCollectionQueryBuilder and () {
if (this.builder.length() != 0)
this.builder.append(" & ");
@@ -112,17 +110,20 @@
if (request != null) {
JsonNode tobase = request.at("/collection");
request = tmp;
- JsonNode result = JsonBuilder.buildDocGroup(this.mergeOperator != null
- ? this.mergeOperator.toLowerCase() : "and",
- request.at("/collection"), tobase);
+ JsonNode result = JsonBuilder.buildDocGroup(
+ this.mergeOperator != null ? this.mergeOperator
+ .toLowerCase() : "and", request
+ .at("/collection"), tobase);
((ObjectNode) request).put("collection", result);
- } else
+ }
+ else
request = tmp;
}
return request;
}
- public JsonNode mergeWith(JsonNode node) {
+
+ public JsonNode mergeWith (JsonNode node) {
if (this.base != null) {
// check that collection non empty
if (node != null) {
@@ -150,6 +151,8 @@
this.base = JsonUtils.readTree(query);
return this;
}
+
+
public KoralCollectionQueryBuilder setBaseQuery (JsonNode query) {
this.base = query;
return this;
diff --git a/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java b/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java
index 8ff8f3c..9b04a14 100644
--- a/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java
+++ b/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java
@@ -312,7 +312,7 @@
ss.setMeta(meta);
- String query = this.processor.process(ss.toJSON(), user);
+ String query = this.processor.processQuery(ss.toJSON(), user);
return Response.ok(query).build();
}
@@ -385,7 +385,8 @@
if (resource instanceof VirtualCollection)
cquery.mergeWith(resource.getData());
else if (resource instanceof Corpus)
- cquery.with(Attributes.CORPUS_SIGLE + resource.getPersistentID());
+ cquery.with(Attributes.CORPUS_SIGLE
+ + resource.getPersistentID());
}
catch (KustvaktException e) {
@@ -409,7 +410,7 @@
// todo: should be possible to add the meta part to the query serialization
try {
User user = controller.getUser(ctx.getUsername());
- jsonld = this.processor.process(jsonld, user);
+ jsonld = this.processor.processQuery(jsonld, user);
}
catch (KustvaktException e) {
throw KustvaktResponseHandler.throwit(e);
@@ -468,7 +469,7 @@
serializer.setMeta(meta.raw());
//fixme: policy rewrite!
- String query = this.processor.process(serializer.toJSON(), user);
+ String query = this.processor.processQuery(serializer.toJSON(), user);
jlog.info("the serialized query {}", query);
@@ -551,7 +552,8 @@
if (resource instanceof VirtualCollection)
builder.setBaseQuery(resource.getData());
else if (resource instanceof Corpus)
- builder.with(Attributes.CORPUS_SIGLE+ resource.getPersistentID());
+ builder.with(Attributes.CORPUS_SIGLE
+ + resource.getPersistentID());
else
throw KustvaktResponseHandler.throwit(
StatusCodes.ILLEGAL_ARGUMENT,
@@ -577,7 +579,7 @@
try {
// rewrite process
- query = this.processor.process(query, user);
+ query = this.processor.processQuery(query, user);
if (eng.equals(KustvaktConfiguration.BACKENDS.NEO4J)) {
if (raw)
@@ -669,10 +671,10 @@
query.setBaseQuery(resource.getData());
}
else if (resource instanceof Corpus) {
- query.with(Attributes.CORPUS_SIGLE+"=" + resource.getName());
+ query.with(Attributes.CORPUS_SIGLE + "=" + resource.getName());
}
String res = query.toJSON();
- String qstr = processor.process(res, user);
+ String qstr = processor.processQuery(res, user);
return Response.ok(searchKrill.getStatistics(qstr)).build();
}
catch (KustvaktException e) {
@@ -705,8 +707,7 @@
VirtualCollection tmp = resourceHandler.getCache(cache.getId(),
VirtualCollection.class);
if (tmp == null) {
- String query = this.processor.process(cache.getData(),
- user);
+ String query = this.processor.processQuery(cache.getData(), user);
String stats = searchKrill.getStatistics(query);
cache.setStats(JsonUtils.readSimple(stats, Map.class));
resourceHandler.cache(cache);
@@ -787,8 +788,8 @@
JsonNode base;
if (reference != null && !reference.equals("null")) {
try {
- base = resourceHandler.findbyStrId(reference,
- user, VirtualCollection.class).getData();
+ base = resourceHandler.findbyStrId(reference, user,
+ VirtualCollection.class).getData();
}
catch (KustvaktException e) {
throw KustvaktResponseHandler.throwit(e);
@@ -877,8 +878,8 @@
KoralCollectionQueryBuilder cquery = new KoralCollectionQueryBuilder();
if (reference != null && !reference.equals("null")) {
try {
- cquery.setBaseQuery(resourceHandler.findbyStrId(
- reference, user, VirtualCollection.class).getData());
+ cquery.setBaseQuery(resourceHandler.findbyStrId(reference,
+ user, VirtualCollection.class).getData());
}
catch (KustvaktException e) {
diff --git a/src/main/java/de/ids_mannheim/korap/web/service/light/LightService.java b/src/main/java/de/ids_mannheim/korap/web/service/light/LightService.java
index d07b912..b55cb45 100644
--- a/src/main/java/de/ids_mannheim/korap/web/service/light/LightService.java
+++ b/src/main/java/de/ids_mannheim/korap/web/service/light/LightService.java
@@ -88,8 +88,7 @@
@QueryParam("cutoff") Boolean cutoff,
@QueryParam("count") Integer pageLength,
@QueryParam("offset") Integer pageIndex,
- @QueryParam("page") Integer startPage,
- @QueryParam("cq") String cq) {
+ @QueryParam("page") Integer startPage, @QueryParam("cq") String cq) {
QuerySerializer ss = new QuerySerializer().setQuery(q, ql, v);
MetaQueryBuilder meta = new MetaQueryBuilder();
@@ -102,14 +101,14 @@
ss.setMeta(meta);
if (cq != null)
ss.setCollection(cq);
- return Response.ok(processor.process(ss.toJSON(), null)).build();
+ return Response.ok(processor.processQuery(ss.toJSON(), null)).build();
}
@POST
@Path("search")
public Response queryRaw (@QueryParam("engine") String engine, String jsonld) {
- jsonld = processor.process(jsonld, null);
+ jsonld = processor.processQuery(jsonld, null);
// todo: should be possible to add the meta part to the query serialization
jlog.info("Serialized search: {}", jsonld);
@@ -143,7 +142,7 @@
if (cq != null)
serializer.setCollection(cq);
- String query = processor.process(serializer.toJSON(), null);
+ String query = processor.processQuery(serializer.toJSON(), null);
jlog.info("the serialized query {}", query);
// This may not work with the the KoralQuery
@@ -214,7 +213,7 @@
// meta.addEntry("itemsPerResource", 1);
QuerySerializer s = new QuerySerializer().setQuery(query, ql, v)
.setMeta(meta);
- query = processor.process(s.toJSON(), null);
+ query = processor.processQuery(s.toJSON(), null);
}
String result;
try {
diff --git a/src/test/java/CollectionQueryBuilderTest.java b/src/test/java/CollectionQueryBuilderTest.java
index 407608d..f895962 100644
--- a/src/test/java/CollectionQueryBuilderTest.java
+++ b/src/test/java/CollectionQueryBuilderTest.java
@@ -38,7 +38,8 @@
assertEquals("koral:docGroup", node.at("/collection/@type").asText());
assertEquals("operation:and", node.at("/collection/operation").asText());
- assertEquals("corpusSigle", node.at("/collection/operands/0/key").asText());
+ assertEquals("corpusSigle", node.at("/collection/operands/0/key")
+ .asText());
assertEquals("textClass", node.at("/collection/operands/1/key")
.asText());
}
@@ -92,11 +93,14 @@
.asText());
assertEquals(2, node.at("/collection/operands").size());
assertEquals(2, node.at("/collection/operands/0/operands").size());
- assertEquals(2, node.at("/collection/operands/0/operands/0/operands").size());
+ assertEquals(2, node.at("/collection/operands/0/operands/0/operands")
+ .size());
assertEquals("operation:and", node.at("/collection/operation").asText());
- assertEquals("operation:or", node.at("/collection/operands/0/operation").asText());
- assertEquals("operation:and", node.at("/collection/operands/0/operands/0/operation").asText());
+ assertEquals("operation:or", node
+ .at("/collection/operands/0/operation").asText());
+ assertEquals("operation:and",
+ node.at("/collection/operands/0/operands/0/operation").asText());
assertEquals("WPD", node.at("/collection/operands/1/value").asText());
}
@@ -152,7 +156,8 @@
assertEquals("koral:doc", res.at("/collection/operands/1/@type")
.asText());
assertEquals("WPD", res.at("/collection/operands/0/value").asText());
- assertEquals("corpusSigle", res.at("/collection/operands/0/key").asText());
+ assertEquals("corpusSigle", res.at("/collection/operands/0/key")
+ .asText());
// check also that query is still there
assertEquals("koral:token", res.at("/query/@type").asText());
@@ -182,8 +187,9 @@
assertEquals(base.at("/collection/operands/0/operands").size(), 2);
}
+
@Test
- public void testNodeMergeWithBase() {
+ public void testNodeMergeWithBase () {
String coll = "corpusSigle=WPD";
String query = "[base=Haus]";
QuerySerializer check = new QuerySerializer();
@@ -209,8 +215,9 @@
}
+
@Test
- public void testAddOROperator() {
+ public void testAddOROperator () {
String coll = "corpusSigle=WPD";
String query = "[base=Haus]";
QuerySerializer check = new QuerySerializer();
@@ -227,8 +234,9 @@
assertEquals(2, node.at("/collection/operands/1/operands").size());
}
+
@Test
- public void testAddANDOperator() {
+ public void testAddANDOperator () {
String coll = "corpusSigle=WPD";
String query = "[base=Haus]";
QuerySerializer check = new QuerySerializer();
@@ -245,8 +253,9 @@
assertEquals(2, node.at("/collection/operands/1/operands").size());
}
+
@Test
- public void testAddDefaultOperator() {
+ public void testAddDefaultOperator () {
String coll = "corpusSigle=WPD";
String query = "[base=Haus]";
QuerySerializer check = new QuerySerializer();
@@ -263,9 +272,10 @@
assertEquals(2, node.at("/collection/operands/1/operands").size());
}
+
@Test
@Ignore
- public void testMergeOperator() {
+ public void testMergeOperator () {
String coll = "corpusSigle=WPD";
String query = "[base=Haus]";
QuerySerializer check = new QuerySerializer();
diff --git a/src/test/java/KoralNodeTest.java b/src/test/java/KoralNodeTest.java
index d8f5ab1..6418ee1 100644
--- a/src/test/java/KoralNodeTest.java
+++ b/src/test/java/KoralNodeTest.java
@@ -7,6 +7,7 @@
* @author hanl
* @date 21/10/2015
*/
+// todo: complete tests
public class KoralNodeTest {
// todo: 21.10.15 --> e.g. injection does not tell you if an entire node was injected, or just a value!
@@ -25,7 +26,7 @@
ObjectNode node = JsonUtils.createObjectNode();
node.put("value_1", "setting_1");
KoralNode knode = KoralNode.wrapNode(node);
- knode.remove("value_1");
+ knode.remove("value_1", null);
System.out.println(knode.rawNode().toString());
}
@@ -35,7 +36,7 @@
ObjectNode node = JsonUtils.createObjectNode();
node.put("value_1", "setting_1");
KoralNode knode = KoralNode.wrapNode(node);
- knode.replace("value_1", "settings_2");
+ knode.replace("value_1", "settings_2", null);
System.out.println(knode.rawNode().toString());
}
diff --git a/src/test/java/de/ids_mannheim/korap/resource/rewrite/CollectionRewriteTest.java b/src/test/java/de/ids_mannheim/korap/resource/rewrite/CollectionRewriteTest.java
index d655713..8e67a30 100644
--- a/src/test/java/de/ids_mannheim/korap/resource/rewrite/CollectionRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/resource/rewrite/CollectionRewriteTest.java
@@ -5,13 +5,10 @@
import de.ids_mannheim.korap.config.KustvaktConfiguration;
import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.query.serialize.QuerySerializer;
-import de.ids_mannheim.korap.resources.Corpus;
-import de.ids_mannheim.korap.security.ac.ResourceFinder;
import de.ids_mannheim.korap.user.User;
import de.ids_mannheim.korap.utils.JsonUtils;
import org.junit.Test;
-import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -58,14 +55,15 @@
s.setQuery(simple_add_query, "poliqarp");
s.setCollection("textClass=politik & corpusSigle=WPD");
String result = s.toJSON();
- JsonNode node = JsonUtils.readTree(handler.process(result,
+ JsonNode node = JsonUtils.readTree(handler.processQuery(result,
User.UserFactory.getUser("test_user")));
assertNotNull(node);
assertEquals(1, node.at("/collection/operands").size());
}
+
@Test
- public void testCollectionNodeDeletionNotification() {
+ public void testCollectionNodeDeletionNotification () {
}
@@ -80,13 +78,15 @@
s.setCollection("corpusSigle=BRZ13 & corpusSigle=WPD");
String result = s.toJSON();
try {
- JsonNode node = JsonUtils.readTree(handler.process(result,
+ JsonNode node = JsonUtils.readTree(handler.processQuery(result,
User.UserFactory.getUser("test_user")));
System.out.println(node);
assertNotNull(node);
assertEquals(0, node.at("/collection/operands").size());
- assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type").asText());
- } catch ( Exception e) {
+ assertEquals("koral:rewrite",
+ node.at("/collection/rewrites/0/@type").asText());
+ }
+ catch (Exception e) {
e.printStackTrace();
}
}
@@ -101,7 +101,7 @@
s.setQuery(simple_add_query, "poliqarp");
s.setCollection("(corpusSigle=BRZ13 & textClass=Wissenschaft) & corpusSigle=WPD");
String result = s.toJSON();
- JsonNode node = JsonUtils.readTree(handler.process(result,
+ JsonNode node = JsonUtils.readTree(handler.processQuery(result,
User.UserFactory.getUser("test_user")));
assertNotNull(node);
@@ -109,7 +109,8 @@
.asText());
assertEquals("textClass",
node.at("/collection/operands/0/operands/0/key").asText());
- assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type").asText());
+ assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type")
+ .asText());
}
@@ -119,13 +120,13 @@
RewriteHandler handler = new RewriteHandler();
handler.insertBeans(helper().getContext());
handler.add(CollectionConstraint.class);
- handler.add(CollectionCleanupFilter.class);
+ handler.add(CollectionCleanRewrite.class);
QuerySerializer s = new QuerySerializer();
s.setQuery(simple_add_query, "poliqarp");
s.setCollection("(corpusSigle=BRZ13 & corpusSigle=WPD) & textClass=Wissenschaft & textClass=Sport");
String result = s.toJSON();
- JsonNode node = JsonUtils.readTree(handler.process(result,
+ JsonNode node = JsonUtils.readTree(handler.processQuery(result,
User.UserFactory.getUser("test_user")));
@@ -137,7 +138,8 @@
.asText());
assertEquals("textClass", node.at("/collection/operands/1/key")
.asText());
- assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type").asText());
+ assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type")
+ .asText());
}
@@ -146,18 +148,19 @@
RewriteHandler handler = new RewriteHandler();
handler.insertBeans(helper().getContext());
handler.add(CollectionConstraint.class);
- handler.add(CollectionCleanupFilter.class);
+ handler.add(CollectionCleanRewrite.class);
QuerySerializer s = new QuerySerializer();
s.setQuery(simple_add_query, "poliqarp");
s.setCollection("(corpusSigle=BRZ13 & textClass=wissenschaft)");
String result = s.toJSON();
- JsonNode node = JsonUtils.readTree(handler.process(result,
+ JsonNode node = JsonUtils.readTree(handler.processQuery(result,
User.UserFactory.getUser("test_user")));
assertNotNull(node);
assertEquals("koral:doc", node.at("/collection/@type").asText());
assertEquals("textClass", node.at("/collection/key").asText());
assertEquals("wissenschaft", node.at("/collection/value").asText());
- assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type").asText());
+ assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type")
+ .asText());
}
@@ -166,18 +169,19 @@
RewriteHandler handler = new RewriteHandler();
handler.insertBeans(helper().getContext());
handler.add(CollectionConstraint.class);
- handler.add(CollectionCleanupFilter.class);
+ handler.add(CollectionCleanRewrite.class);
QuerySerializer s = new QuerySerializer();
s.setQuery(simple_add_query, "poliqarp");
s.setCollection("(corpusSigle=BRZ13 & corpusSigle=WPD) & textClass=Wissenschaft");
String result = s.toJSON();
- JsonNode node = JsonUtils.readTree(handler.process(result,
+ JsonNode node = JsonUtils.readTree(handler.processQuery(result,
User.UserFactory.getUser("test_user")));
assertNotNull(node);
assertEquals("koral:doc", node.at("/collection/@type").asText());
assertEquals("textClass", node.at("/collection/key").asText());
- assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type").asText());
+ assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type")
+ .asText());
}
@@ -186,12 +190,12 @@
RewriteHandler handler = new RewriteHandler();
handler.insertBeans(helper().getContext());
handler.add(CollectionConstraint.class);
- handler.add(CollectionCleanupFilter.class);
+ handler.add(CollectionCleanRewrite.class);
QuerySerializer s = new QuerySerializer();
s.setQuery(simple_add_query, "poliqarp");
s.setCollection("(docID=random & textClass=Wissenschaft) & corpusSigle=WPD");
String org = s.toJSON();
- JsonNode node = JsonUtils.readTree(handler.process(org,
+ JsonNode node = JsonUtils.readTree(handler.processQuery(org,
User.UserFactory.getUser("test_user")));
System.out.println(node);
assertNotNull(node);
@@ -201,7 +205,8 @@
.asText());
assertEquals("koral:doc", node.at("/collection/operands/1/@type")
.asText());
- assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type").asText());
+ assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type")
+ .asText());
}
@@ -214,12 +219,16 @@
QuerySerializer s = new QuerySerializer();
s.setQuery(simple_add_query, "poliqarp");
String org = s.toJSON();
- JsonNode node = JsonUtils.readTree(handler.process(org,
+ JsonNode node = JsonUtils.readTree(handler.processQuery(org,
User.UserFactory.getUser("test_user")));
assertNotNull(node);
- assertEquals("corpusSigle", node.at("/collection/operands/0/key").asText());
- assertEquals("corpusSigle", node.at("/collection/operands/1/key").asText());
- assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type").asText());
+ assertEquals("corpusSigle", node.at("/collection/operands/0/key")
+ .asText());
+ assertEquals("corpusSigle", node.at("/collection/operands/1/key")
+ .asText());
+ assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type")
+ .asText());
+ System.out.println("NODE " + node);
}
@@ -230,22 +239,25 @@
handler.insertBeans(helper().getContext());
handler.add(PublicCollection.class);
- QuerySerializer s = new QuerySerializer();
- s.setQuery(simple_add_query, "poliqarp");
- s.setCollection("(docSigle=WPD_AAA & textClass=wissenschaft)");
- String org = s.toJSON();
- JsonNode node = JsonUtils.readTree(handler.process(org,
- User.UserFactory.getUser("test_user")));
- assertNotNull(node);
- assertEquals(2, node.at("/collection/operands").size());
- assertEquals("corpusSigle", node.at("/collection/operands/1/operands/0/key").asText());
- assertEquals("corpusSigle", node.at("/collection/operands/1/operands/1/key").asText());
- assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type").asText());
+ QuerySerializer s = new QuerySerializer();
+ s.setQuery(simple_add_query, "poliqarp");
+ s.setCollection("(docSigle=WPD_AAA & textClass=wissenschaft)");
+ String org = s.toJSON();
+ JsonNode node = JsonUtils.readTree(handler.processQuery(org,
+ User.UserFactory.getUser("test_user")));
+ assertNotNull(node);
+ assertEquals(2, node.at("/collection/operands").size());
+ assertEquals("corpusSigle",
+ node.at("/collection/operands/1/operands/0/key").asText());
+ assertEquals("corpusSigle",
+ node.at("/collection/operands/1/operands/1/key").asText());
+ assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type")
+ .asText());
}
@Test
- public void testRemoveCorpusFromDifferentGroups() {
+ public void testRemoveCorpusFromDifferentGroups () {
RewriteHandler handler = new RewriteHandler();
handler.insertBeans(helper().getContext());
handler.add(CollectionConstraint.class);
@@ -253,7 +265,7 @@
s.setQuery(simple_add_query, "poliqarp");
s.setCollection("(corpusSigle=BRZ14 & textClass=wissenschaft) | (corpusSigle=AZPR | textClass=freizeit)");
String org = s.toJSON();
- JsonNode node = JsonUtils.readTree(handler.process(org,
+ JsonNode node = JsonUtils.readTree(handler.processQuery(org,
User.UserFactory.getUser("test_user")));
assertNotNull(node);
assertEquals("koral:docGroup", node.at("/collection/@type").asText());
@@ -264,34 +276,43 @@
.asText());
assertEquals(1, node.at("/collection/operands/0/operands").size());
assertEquals(1, node.at("/collection/operands/1/operands").size());
- assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type").asText());
+ assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type")
+ .asText());
}
+
@Test
- public void testRemoveOneCorpusAndMoveDocFromTwoGroups() {
+ public void testRemoveOneCorpusAndMoveDocFromTwoGroups () {
RewriteHandler handler = new RewriteHandler();
handler.insertBeans(helper().getContext());
handler.add(CollectionConstraint.class);
// todo: use this collection query also to test clean up filter! after reduction of corpusSigle (wiss | freizeit)!
- handler.add(CollectionCleanupFilter.class);
+ handler.add(CollectionCleanRewrite.class);
QuerySerializer s = new QuerySerializer();
s.setQuery(simple_add_query, "poliqarp");
s.setCollection("(corpusSigle=BRZ14 & textClass=wissenschaft) | (corpusSigle=AZPR | textClass=freizeit)");
String org = s.toJSON();
- JsonNode node = JsonUtils.readTree(handler.process(org,
+ JsonNode node = JsonUtils.readTree(handler.processQuery(org,
User.UserFactory.getUser("test_user")));
assertNotNull(node);
assertEquals("koral:docGroup", node.at("/collection/@type").asText());
assertEquals(2, node.at("/collection/operands").size());
assertEquals("koral:doc", node.at("/collection/operands/0/@type")
.asText());
- assertEquals("koral:doc", node.at("/collection/operands/0/@type").asText());
- assertEquals("textClass", node.at("/collection/operands/0/key").asText());
- assertEquals("wissenschaft", node.at("/collection/operands/0/value").asText());
- assertEquals("koral:doc", node.at("/collection/operands/1/@type").asText());
- assertEquals("textClass", node.at("/collection/operands/1/key").asText());
- assertEquals("freizeit", node.at("/collection/operands/1/value").asText());
- assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type").asText());
+ assertEquals("koral:doc", node.at("/collection/operands/0/@type")
+ .asText());
+ assertEquals("textClass", node.at("/collection/operands/0/key")
+ .asText());
+ assertEquals("wissenschaft", node.at("/collection/operands/0/value")
+ .asText());
+ assertEquals("koral:doc", node.at("/collection/operands/1/@type")
+ .asText());
+ assertEquals("textClass", node.at("/collection/operands/1/key")
+ .asText());
+ assertEquals("freizeit", node.at("/collection/operands/1/value")
+ .asText());
+ assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type")
+ .asText());
}
diff --git a/src/test/java/de/ids_mannheim/korap/resource/rewrite/FoundryRewriteTest.java b/src/test/java/de/ids_mannheim/korap/resource/rewrite/FoundryRewriteTest.java
index 90bcc86..8c0f1f0 100644
--- a/src/test/java/de/ids_mannheim/korap/resource/rewrite/FoundryRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/resource/rewrite/FoundryRewriteTest.java
@@ -63,7 +63,7 @@
processor.add(FoundryInject.class);
QuerySerializer s = new QuerySerializer();
s.setQuery("[base=Haus]", "poliqarp");
- String result = processor.process(s.toJSON(), null);
+ String result = processor.processQuery(s.toJSON(), null);
JsonNode node = JsonUtils.readTree(result);
assertNotNull(node);
assertFalse(node.at("/query/wrap/foundry").isMissingNode());
@@ -87,7 +87,7 @@
handler.insertBeans(helper().getContext());
s.setQuery("[pos=ADJA]", "poliqarp");
assertTrue(handler.add(FoundryInject.class));
- String result = handler.process(s.toJSON(), null);
+ String result = handler.processQuery(s.toJSON(), null);
JsonNode node = JsonUtils.readTree(result);
assertNotNull(node);
@@ -112,7 +112,7 @@
handler.add(FoundryInject.class);
QuerySerializer s = new QuerySerializer();
s.setQuery("[pos=ADJA]", "poliqarp");
- String result = handler.process(s.toJSON(), user);
+ String result = handler.processQuery(s.toJSON(), user);
JsonNode node = JsonUtils.readTree(result);
UserDataDbIface dao = BeansFactory.getTypeFactory().getTypedBean(
@@ -142,7 +142,7 @@
handler.add(FoundryInject.class);
QuerySerializer s = new QuerySerializer();
s.setQuery("[base=Haus]", "poliqarp");
- String result = handler.process(s.toJSON(), user);
+ String result = handler.processQuery(s.toJSON(), user);
JsonNode node = JsonUtils.readTree(result);
UserDataDbIface dao = BeansFactory.getTypeFactory().getTypedBean(
@@ -170,7 +170,7 @@
handler.insertBeans(helper().getContext());
s.setQuery("[orth=laufe/i & base!=Lauf]", "poliqarp");
assertTrue(handler.add(FoundryInject.class));
- String result = handler.process(s.toJSON(), null);
+ String result = handler.processQuery(s.toJSON(), null);
JsonNode node = JsonUtils.readTree(result);
assertNotNull(node);
@@ -189,7 +189,7 @@
handler.insertBeans(helper().getContext());
s.setQuery("[(base=laufen | base=gehen) & tt/pos=VVFIN]", "poliqarp");
assertTrue(handler.add(FoundryInject.class));
- String result = handler.process(s.toJSON(), null);
+ String result = handler.processQuery(s.toJSON(), null);
JsonNode node = JsonUtils.readTree(result);
assertNotNull(node);
diff --git a/src/test/java/de/ids_mannheim/korap/resource/rewrite/IdRewriteTest.java b/src/test/java/de/ids_mannheim/korap/resource/rewrite/IdRewriteTest.java
index 909f9c9..69e8ea7 100644
--- a/src/test/java/de/ids_mannheim/korap/resource/rewrite/IdRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/resource/rewrite/IdRewriteTest.java
@@ -25,7 +25,7 @@
QuerySerializer s = new QuerySerializer();
s.setQuery(query, "poliqarp");
- String value = handler.process(s.toJSON(), null);
+ String value = handler.processQuery(s.toJSON(), null);
JsonNode result = JsonUtils.readTree(value);
assertNotNull(result);
@@ -41,7 +41,7 @@
QuerySerializer s = new QuerySerializer();
s.setQuery("[base=Haus]", "poliqarp");
- String result = handler.process(s.toJSON(), null);
+ String result = handler.processQuery(s.toJSON(), null);
JsonNode node = JsonUtils.readTree(result);
assertNotNull(node);
assertFalse(node.at("/query/wrap").isMissingNode());
diff --git a/src/test/java/de/ids_mannheim/korap/resource/rewrite/PostRewriteTest.java b/src/test/java/de/ids_mannheim/korap/resource/rewrite/PostRewriteTest.java
deleted file mode 100644
index ef0c10a..0000000
--- a/src/test/java/de/ids_mannheim/korap/resource/rewrite/PostRewriteTest.java
+++ /dev/null
@@ -1,518 +0,0 @@
-package de.ids_mannheim.korap.resource.rewrite;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import de.ids_mannheim.korap.config.BeanConfigTest;
-import de.ids_mannheim.korap.exceptions.KustvaktException;
-import de.ids_mannheim.korap.handlers.DocumentDao;
-import de.ids_mannheim.korap.resources.Document;
-import de.ids_mannheim.korap.utils.JsonUtils;
-import net.sf.ehcache.CacheManager;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-/**
- * @author hanl
- * @date 12/11/2015
- */
-// todo: logging!
-public class PostRewriteTest extends BeanConfigTest {
-
- @Override
- public void initMethod () throws KustvaktException {
-
- }
-
-
- // otherwise cache will maintain values not relevant for other tests
- @Before
- public void before () {
- CacheManager.getInstance().getCache("documents").removeAll();
- DocumentDao dao = new DocumentDao(helper().getContext()
- .getPersistenceClient());
- dao.truncate();
- }
-
-
- @Test
- public void testPostRewriteNothingToDo () throws KustvaktException {
- RewriteHandler ha = new RewriteHandler();
- ha.insertBeans(helper().getContext());
- assertEquals("Handler could not be added to rewriter instance!", true,
- ha.add(DocMatchRewrite.class));
-
- DocumentDao dao = new DocumentDao(helper().getContext()
- .getPersistenceClient());
- try {
- Document d = dao.findbyId("BRZ13_APR.00014", null);
- assertNull(d);
- String v = ha.process(RESULT, null);
- assertEquals("results do not match", JsonUtils.readTree(RESULT),
- JsonUtils.readTree(v));
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
-
-
- @Test
- public void testPostRewriteRemoveDoc () {
- DocumentDao dao = new DocumentDao(helper().getContext()
- .getPersistenceClient());
-
- Document doc = new Document("BRZ13_APR.00014");
- doc.setDisabled(true);
- try {
- dao.storeResource(doc, null);
- }
- catch (KustvaktException e) {
- return;
- }
-
- RewriteHandler ha = new RewriteHandler();
- ha.insertBeans(helper().getContext());
- assertEquals("Handler could not be added to rewriter instance!", true,
- ha.add(DocMatchRewrite.class));
-
- String v = ha.process(RESULT, null);
-
- JsonNode node = JsonUtils.readTree(v);
-
- assertNotEquals("Wrong DocID", "BRZ13_APR.00014",
- node.at("/matches/1/docID"));
-
- try {
- dao.deleteResource(doc.getPersistentID(), null);
- Document d = dao.findbyId(doc.getPersistentID(), null);
- if (d != null)
- System.out.println("IS SUPPOSED TO BE NULL! " + d);
- }
- catch (KustvaktException e) {
- e.printStackTrace();
- return;
- }
-
- }
-
-
- @Test
- public void testPath () {
- String v = "{\n" + " \"meta\": {\n" + " \"count\": 25,\n"
- + " \"startIndex\": 0,\n"
- + " \"timeout\": 120000,\n" + " \"context\": {\n"
- + " \"left\": [\n" + " \"token\",\n"
- + " 6\n" + " ],\n"
- + " \"right\": [\n" + " \"token\",\n"
- + " 6\n" + " ]\n" + " }}}";
- JsonNode n = JsonUtils.readTree(v);
-
- }
-
- private static final String RESULT = "{\n"
- + " \"meta\": {\n"
- + " \"count\": 25,\n"
- + " \"startIndex\": 0,\n"
- + " \"timeout\": 120000,\n"
- + " \"context\": {\n"
- + " \"left\": [\n"
- + " \"token\",\n"
- + " 6\n"
- + " ],\n"
- + " \"right\": [\n"
- + " \"token\",\n"
- + " 6\n"
- + " ]\n"
- + " },\n"
- + " \"fields\": [\n"
- + " \"textSigle\",\n"
- + " \"author\",\n"
- + " \"docSigle\",\n"
- + " \"title\",\n"
- + " \"pubDate\",\n"
- + " \"UID\",\n"
- + " \"corpusID\",\n"
- + " \"textClass\",\n"
- + " \"subTitle\",\n"
- + " \"layerInfos\",\n"
- + " \"ID\",\n"
- + " \"pubPlace\",\n"
- + " \"corpusSigle\"\n"
- + " ],\n"
- + " \"version\": \"unknown\",\n"
- + " \"benchmark\": \"0.204314141 s\",\n"
- + " \"totalResults\": 1755,\n"
- + " \"serialQuery\": \"tokens:tt/l:Wort\",\n"
- + " \"itemsPerPage\": 25\n"
- + " },\n"
- + " \"query\": {\n"
- + " \"@type\": \"koral:token\",\n"
- + " \"wrap\": {\n"
- + " \"@type\": \"koral:term\",\n"
- + " \"key\": \"Wort\",\n"
- + " \"layer\": \"lemma\",\n"
- + " \"match\": \"match:eq\",\n"
- + " \"foundry\": \"tt\",\n"
- + " \"rewrites\": [\n"
- + " {\n"
- + " \"@type\": \"koral:rewrite\",\n"
- + " \"src\": \"Kustvakt\",\n"
- + " \"operation\": \"operation:injection\"\n"
- + " }\n"
- + " ]\n"
- + " }\n"
- + " },\n"
- + " \"matches\": [\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"staat-gesellschaft familie-geschlecht\",\n"
- + " \"title\": \"Sexueller Missbrauch –„Das schreiende Kind steckt noch tief in mir“\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>in ihrer Stimme schwingt bei diesem </span><mark>Wort</mark><span class=\\\"context-right\\\"> Sarkasmus mit. Bis man einen passenden<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00001-p454-455\",\n"
- + " \"docID\": \"BRZ13_APR.00001\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-02\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"freizeit-unterhaltung reisen\",\n"
- + " \"title\": \"Leben dick und prall\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>der DLRG, ausgelassene Partys und markige </span><mark>Worte</mark><span class=\\\"context-right\\\"> des Dompredigers: „Ostern ist kein goethischer<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00014-p96-97\",\n"
- + " \"docID\": \"BRZ13_APR.00014\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-02\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"staat-gesellschaft biographien-interviews kultur musik\",\n"
- + " \"title\": \"So wird es gemacht:\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>derfehlende Buchstabe.Gelingt es dir,das </span><mark>Wort</mark><span class=\\\"context-right\\\"> vervollständigen? Tipp: Probiere auch mal rückwärts<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00055-p19-20\",\n"
- + " \"docID\": \"BRZ13_APR.00055\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-02\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"politik ausland\",\n"
- + " \"title\": \"Südkorea droht mit Angriffen – USA rüsten auf\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>der Stunde. „Aus einem Krieg der </span><mark>Worte</mark><span class=\\\"context-right\\\"> darf kein echter Krieg werden“, sagte<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00076-p238-239\",\n"
- + " \"docID\": \"BRZ13_APR.00076\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-02\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"politik inland freizeit-unterhaltung reisen\",\n"
- + " \"title\": \"Dauercamper kämpfen für ihren Platz\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>„Initiative Campingplatz Räbke“. „Als ich das </span><mark>Wort</mark><span class=\\\"context-right\\\"> Schließung gelesen habe, war ich richtig<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00200-p255-256\",\n"
- + " \"docID\": \"BRZ13_APR.00200\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-02\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"freizeit-unterhaltung reisen\",\n"
- + " \"title\": \"Neue Aktionen lockten Besucher\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>Jan Waldheim (CWG) unter den aufmunternden </span><mark>Worten</mark><span class=\\\"context-right\\\"> eines augenzwinkernden Axel Schnalke („Ein bisschen<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00210-p142-143\",\n"
- + " \"docID\": \"BRZ13_APR.00210\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-02\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"kultur musik\",\n"
- + " \"title\": \"Travestie – Helden in Strumpfhosen\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>trotzdem nicht. Selten wurden so viele </span><mark>Worte</mark><span class=\\\"context-right\\\">, die der Autor hier lieber verschweigt<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00253-p166-167\",\n"
- + " \"docID\": \"BRZ13_APR.00253\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-02\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"kultur musik\",\n"
- + " \"title\": \"Travestie – Helden in Strumpfhosen\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>zudem nicht immer nur bei den </span><mark>Worten</mark><span class=\\\"context-right\\\"> geblieben) und dabei gleichzeitig soviel Charme<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00253-p191-192\",\n"
- + " \"docID\": \"BRZ13_APR.00253\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-02\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"kultur musik\",\n"
- + " \"title\": \"Travestie – Helden in Strumpfhosen\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>bedeutet Travestie sich zu verkleiden, das </span><mark>Wort</mark><span class=\\\"context-right\\\"> stammt aus dem Französischen. Traditionell belegten<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00253-p371-372\",\n"
- + " \"docID\": \"BRZ13_APR.00253\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-02\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"sport fussball\",\n"
- + " \"title\": \"VfL kommt nicht vom Fleck\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>am internationalen Geschäft berechtigt. Mit anderen </span><mark>Worten</mark><span class=\\\"context-right\\\">: Die „Wölfe“ stecken im grauen Mittelmaß<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00260-p93-94\",\n"
- + " \"docID\": \"BRZ13_APR.00260\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-02\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"sport fussball\",\n"
- + " \"title\": \"Mensch, Mayer! Super Tor\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>bekommst, ist das unbezahlbar – ein Bonus.“ </span><mark>Worte</mark><span class=\\\"context-right\\\">, die dem Torschützen weiteres Selbstvertrauen geben<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00275-p271-272\",\n"
- + " \"docID\": \"BRZ13_APR.00275\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-02\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"sport fussball\",\n"
- + " \"title\": \"Nur Gerücht? KHL-Klub will „Dshuni“\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>und hakt das Thema ab.cb Kein </span><mark>Wort</mark><span class=\\\"context-right\\\"> zum Interesse aus Astana: Daniar Dshunussow.Foto<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00277-p163-164\",\n"
- + " \"docID\": \"BRZ13_APR.00277\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-02\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"staat-gesellschaft biographien-interviews\",\n"
- + " \"title\": \"Das Leben ist nicht auf diese Erde beschränkt\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>1. Korinther 1,18 denken: Denn das </span><mark>Wort</mark><span class=\\\"context-right\\\"> vom Kreuz ist eine Torheit denen<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00520-p32-33\",\n"
- + " \"docID\": \"BRZ13_APR.00520\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-03\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"sport fussball\",\n"
- + " \"title\": \"Allofs und Hecking knöpfensich die VfL-Profis vor\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>für die Profis am Dienstag klare </span><mark>Worte</mark><span class=\\\"context-right\\\"> vom Führungsduo. Von Thorsten Grunow Wolfsburg<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00557-p17-18\",\n"
- + " \"docID\": \"BRZ13_APR.00557\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-03\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"sport fussball\",\n"
- + " \"title\": \"Allofs und Hecking knöpfensich die VfL-Profis vor\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>Minuten setzte es am Dienstagnachmittag klare </span><mark>Worte</mark><span class=\\\"context-right\\\"> für die kickende Belegschaft, die durchaus<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00557-p60-61\",\n"
- + " \"docID\": \"BRZ13_APR.00557\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-03\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"sport fussball\",\n"
- + " \"title\": \"Allofs und Hecking knöpfensich die VfL-Profis vor\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>Manager ist überzeugt, dass die klaren </span><mark>Worte</mark><span class=\\\"context-right\\\"> auf fruchtbaren Boden gefallen sind. „Ich<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_APR.00557-p235-236\",\n"
- + " \"docID\": \"BRZ13_APR.00557\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-04-03\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"politik inland politik ausland\",\n"
- + " \"title\": \"Zeitungsartikelzufällig deponiert?\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>erspart“, lautete die Schlagzeile – wobei das </span><mark>Wort</mark><span class=\\\"context-right\\\"> „erspart“ abgeschnitten war. Ein plumper Versuch<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07616-p31-32\",\n"
- + " \"docID\": \"BRZ13_JAN.07616\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-01-21\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"politik inland\",\n"
- + " \"title\": \"„Philipp Rösler wackelt nicht“\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>Vizekanzler bei all dem Jubel zu </span><mark>Wort</mark><span class=\\\"context-right\\\"> kommt. „Ein großartiger Tag“, sagt er<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07617-p177-178\",\n"
- + " \"docID\": \"BRZ13_JAN.07617\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-01-21\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"freizeit-unterhaltung reisen\",\n"
- + " \"title\": \"Lanz gibt den charmanten, zurückhaltenden Gastgeber\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>er, als seine Assistentin ihm ins </span><mark>Wort</mark><span class=\\\"context-right\\\"> fiel. Dennoch holte das ungleiche Duo<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07621-p261-262\",\n"
- + " \"docID\": \"BRZ13_JAN.07621\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-01-21\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"politik inland\",\n"
- + " \"title\": \"Mundlos denkt über Rücktritt nach\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>räumte selbst ein, wie sarkastisch diese </span><mark>Worte</mark><span class=\\\"context-right\\\"> nach einer solchen Wahlnacht klingen mussten<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07694-p192-193\",\n"
- + " \"docID\": \"BRZ13_JAN.07694\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-01-21\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"politik inland\",\n"
- + " \"title\": \"BraunschweigGold – Hannover Blech\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>im Volksfreundhaus hört man kein schlechtes </span><mark>Wort</mark><span class=\\\"context-right\\\"> über den Kanzlerkandidaten Peer Steinbrück – und<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07695-p169-170\",\n"
- + " \"docID\": \"BRZ13_JAN.07695\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-01-21\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"politik inland\",\n"
- + " \"title\": \"BraunschweigGold – Hannover Blech\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>Volksfreundhaus merklich steigen. Hier hat das </span><mark>Wort</mark><span class=\\\"context-right\\\"> von der Wahlparty bei Bier, Bockwurst<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07695-p266-267\",\n"
- + " \"docID\": \"BRZ13_JAN.07695\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-01-21\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"staat-gesellschaft kirche\",\n"
- + " \"title\": \"Fernsehen überträgt Gottesdienst\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>schon mal von der Sendung „Das </span><mark>Wort</mark><span class=\\\"context-right\\\"> zum Sonntag“ gehört. Das sind Predigten<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07840-p37-38\",\n"
- + " \"docID\": \"BRZ13_JAN.07840\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-01-21\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"politik inland\",\n"
- + " \"title\": \"Wahlkrimi im Ratssaal\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>ihre Konkurrentin Glosemeyer hatte sie warme </span><mark>Worte</mark><span class=\\\"context-right\\\"> übrig. „Für den ersten Anlauf eine<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07848-p147-148\",\n"
- + " \"docID\": \"BRZ13_JAN.07848\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-01-21\"\n"
- + " },\n"
- + " {\n"
- + " \"field\": \"tokens\",\n"
- + " \"textClass\": \"politik inland\",\n"
- + " \"title\": \"Warme Worte nach eiskaltem Wahlkampf\",\n"
- + " \"author\": \"\",\n"
- + " \"startMore\": true,\n"
- + " \"endMore\": true,\n"
- + " \"corpusID\": \"BRZ13\",\n"
- + " \"snippet\": \"<span class=\\\"context-left\\\">Warme </span><mark>Worte</mark><span class=\\\"context-right\\\"> nach eiskaltem Wahlkampf Die SPD feierte<span class=\\\"more\\\"></span></span>\",\n"
- + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07850-p1-2\",\n"
- + " \"docID\": \"BRZ13_JAN.07850\",\n"
- + " \"UID\": 0,\n"
- + " \"pubDate\": \"2013-01-21\"\n" + " }\n"
- + " ]\n" + "}";
-
-}
diff --git a/src/test/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandlerTest.java b/src/test/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandlerTest.java
index 15df2a9..112282c 100644
--- a/src/test/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandlerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/resource/rewrite/RewriteHandlerTest.java
@@ -39,7 +39,7 @@
handler.insertBeans(helper().getContext());
assertTrue(handler.add(FoundryInject.class));
assertTrue(handler.add(DocMatchRewrite.class));
- assertTrue(handler.add(CollectionCleanupFilter.class));
+ assertTrue(handler.add(CollectionCleanRewrite.class));
assertTrue(handler.add(IdWriter.class));
}
@@ -51,7 +51,7 @@
QuerySerializer s = new QuerySerializer();
s.setQuery("[(base=laufen | base=gehen) & tt/pos=VVFIN]", "poliqarp");
assertTrue(handler.add(FoundryInject.class));
- handler.process(s.toJSON(), null);
+ handler.processQuery(s.toJSON(), null);
}
@@ -62,7 +62,7 @@
QuerySerializer s = new QuerySerializer();
s.setQuery("[(base=laufen | base=gehen) & tt/pos=VVFIN]", "poliqarp");
assertTrue(handler.add(FoundryInject.class));
- String res = handler.process(s.toJSON(), null);
+ String res = handler.processQuery(s.toJSON(), null);
assertNotNull(res);
}
@@ -74,7 +74,7 @@
QuerySerializer s = new QuerySerializer();
s.setQuery("[(base=laufen | base=gehen) & tt/pos=VVFIN]", "poliqarp");
assertTrue(handler.add(FoundryInject.class));
- String res = handler.process(s.toJSON(), null);
+ String res = handler.processQuery(s.toJSON(), null);
JsonNode node = JsonUtils.readTree(res);
assertNotNull(node);
@@ -93,7 +93,7 @@
QuerySerializer s = new QuerySerializer();
s.setQuery("[(base=laufen | base=gehen) & tt/pos=VVFIN]", "poliqarp");
assertTrue(handler.add(FoundryInject.class));
- String res = handler.process(s.toJSON(), helper().getUser());
+ String res = handler.processQuery(s.toJSON(), helper().getUser());
JsonNode node = JsonUtils.readTree(res);
assertNotNull(node);
assertEquals("tt_test",
diff --git a/src/test/java/de/ids_mannheim/korap/web/service/OAuth2HandlerTest.java b/src/test/java/de/ids_mannheim/korap/web/service/OAuth2HandlerTest.java
index d7e33b9..d24cad1 100644
--- a/src/test/java/de/ids_mannheim/korap/web/service/OAuth2HandlerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/service/OAuth2HandlerTest.java
@@ -14,6 +14,7 @@
import org.junit.Test;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
/**
* @author hanl
@@ -48,14 +49,6 @@
}
- // @AfterClass
- // public static void drop() throws KustvaktException {
- // assert handler != null;
- // handler.removeClient(info, helper().getUser());
- // helper().dropUser();
- // BeansFactory.closeApplication();
- // }
-
@Test
public void testStoreAuthorizationCodeThrowsNoException ()
throws KustvaktException {
@@ -89,7 +82,7 @@
assertNotNull("context is null", ctx);
AuthCodeInfo c2 = handler.getAuthorization(codeInfo.getCode());
- Assert.assertNull("clearing authorization failed", c2);
+ assertNull("clearing authorization failed", c2);
}
diff --git a/src/test/java/de/ids_mannheim/korap/web/service/full/LightServiceTest.java b/src/test/java/de/ids_mannheim/korap/web/service/full/LightServiceTest.java
index 5a604e2..3ba4f31 100644
--- a/src/test/java/de/ids_mannheim/korap/web/service/full/LightServiceTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/service/full/LightServiceTest.java
@@ -46,12 +46,11 @@
assertEquals("13", node.at("/meta/count").asText());
}
+
@Test
- public void testbuildAndPostQuery() {
- ClientResponse response = resource()
- .path(getAPIVersion())
- .path("search")
- .queryParam("q", "[orth=das]")
+ public void testbuildAndPostQuery () {
+ ClientResponse response = resource().path(getAPIVersion())
+ .path("search").queryParam("q", "[orth=das]")
.queryParam("ql", "poliqarp")
.queryParam("cq", "corpusSigle=WPD | corpusSigle=GOE")
.method("TRACE", ClientResponse.class);
@@ -62,9 +61,8 @@
JsonNode node = JsonUtils.readTree(query);
assertNotNull(node);
- response = resource()
- .path(getAPIVersion())
- .path("search").post(ClientResponse.class, query);
+ response = resource().path(getAPIVersion()).path("search")
+ .post(ClientResponse.class, query);
assertEquals(ClientResponse.Status.OK.getStatusCode(),
response.getStatus());
diff --git a/src/test/java/de/ids_mannheim/korap/web/service/full/ResourceServiceTest.java b/src/test/java/de/ids_mannheim/korap/web/service/full/ResourceServiceTest.java
index 6a5ab99..039593e 100644
--- a/src/test/java/de/ids_mannheim/korap/web/service/full/ResourceServiceTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/service/full/ResourceServiceTest.java
@@ -42,6 +42,7 @@
JsonNode node = JsonUtils.readTree(response.getEntity(String.class));
assertNotNull(node);
+ System.out.println("NODE " + node);
assertNotEquals(0, node.path("matches").size());
}