Add apiVersion to rewrite (#806).
Change-Id: I393fb9397dd143e6026e8c17ebed61cb10ac5652
diff --git a/Changes b/Changes
index 122a8d9..a3b03af 100644
--- a/Changes
+++ b/Changes
@@ -14,6 +14,7 @@
- Clean up collection node from Krill response (#806)
- Add API version to NamedVCLoader (#806)
- Add corpus support at VirtualCorpusRewrite (#806)
+- Add apiVersion to rewrite (#806)
# version 0.79.1
diff --git a/src/main/java/de/ids_mannheim/korap/core/service/SearchService.java b/src/main/java/de/ids_mannheim/korap/core/service/SearchService.java
index 97bcc70..4624720 100644
--- a/src/main/java/de/ids_mannheim/korap/core/service/SearchService.java
+++ b/src/main/java/de/ids_mannheim/korap/core/service/SearchService.java
@@ -102,11 +102,12 @@
// return ss.toJSON();
String query = ss.toJSON();
- query = rewriteHandler.processQuery(ss.toJSON(), null);
+ query = rewriteHandler.processQuery(ss.toJSON(), null, apiVersion);
return query;
}
- public String search (String jsonld, String username, HttpHeaders headers)
+ public String search (String jsonld, String username, HttpHeaders headers,
+ double apiVersion)
throws KustvaktException {
User user = createUser(username, headers);
@@ -117,7 +118,7 @@
user.setCorpusAccess(CorpusAccess.ALL);
}
- String query = this.rewriteHandler.processQuery(jsonld, user);
+ String query = this.rewriteHandler.processQuery(jsonld, user, apiVersion);
// MH: todo: should be possible to add the meta part to
// the query serialization
// User user = controller.getUser(ctx.getUsername());
@@ -178,7 +179,7 @@
// Query pipe rewrite
query = runPipes(query, pipes);
- query = this.rewriteHandler.processQuery(query, user);
+ query = this.rewriteHandler.processQuery(query, user, apiVersion);
if (DEBUG) {
jlog.debug("the serialized query " + query);
}
diff --git a/src/main/java/de/ids_mannheim/korap/core/service/StatisticService.java b/src/main/java/de/ids_mannheim/korap/core/service/StatisticService.java
index aae79dd..173981b 100644
--- a/src/main/java/de/ids_mannheim/korap/core/service/StatisticService.java
+++ b/src/main/java/de/ids_mannheim/korap/core/service/StatisticService.java
@@ -25,7 +25,7 @@
//System.out.println("Before:" + json + "\n");
if (!cqList.isEmpty() && !combineMultipleCorpusQuery(cqList).isEmpty()) {
User user = createUser(username, headers);
- json = statisticsRewriteHandler.processQuery(json, user);
+ json = statisticsRewriteHandler.processQuery(json, user, apiVersion);
}
//System.out.println("After:" + json);
String stats = searchKrill.getStatistics(json);
diff --git a/src/main/java/de/ids_mannheim/korap/core/web/controller/SearchController.java b/src/main/java/de/ids_mannheim/korap/core/web/controller/SearchController.java
index 6dc08d6..e2613ce 100644
--- a/src/main/java/de/ids_mannheim/korap/core/web/controller/SearchController.java
+++ b/src/main/java/de/ids_mannheim/korap/core/web/controller/SearchController.java
@@ -166,6 +166,7 @@
@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
//@SearchResourceFilters
public Response searchPost (@Context SecurityContext context,
+ @Context ContainerRequestContext requestContext,
@Context Locale locale, @Context HttpHeaders headers,
String jsonld) {
@@ -173,11 +174,16 @@
jlog.debug("Serialized search: " + jsonld);
}
+ List<PathSegment> pathSegments = requestContext.getUriInfo()
+ .getPathSegments();
+ String version = pathSegments.get(0).getPath();
+ double requestedVersion = Double.parseDouble(version.substring(1));
+
TokenContext ctx = (TokenContext) context.getUserPrincipal();
try {
scopeService.verifyScope(ctx, OAuth2Scope.SEARCH);
String result = searchService.search(jsonld, ctx.getUsername(),
- headers);
+ headers, requestedVersion);
return Response.ok(result).build();
}
catch (KustvaktException e) {
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/AvailabilityRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/AvailabilityRewrite.java
index d0c0f38..764abc8 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/AvailabilityRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/AvailabilityRewrite.java
@@ -44,8 +44,6 @@
public static Logger jlog = LogManager.getLogger(AvailabilityRewrite.class);
- private double apiVersion = 1.1;
-
public AvailabilityRewrite () {
super();
}
@@ -107,7 +105,8 @@
@Override
public KoralNode rewriteQuery (KoralNode koralNode,
- KustvaktConfiguration config, User user) throws KustvaktException {
+ KustvaktConfiguration config, User user, double apiVersion)
+ throws KustvaktException {
JsonNode jsonNode = koralNode.rawNode();
FullConfiguration fullConfig = (FullConfiguration) config;
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/CollectionCleanRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/CollectionCleanRewrite.java
index 0ac1de3..3955209 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/CollectionCleanRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/CollectionCleanRewrite.java
@@ -22,7 +22,7 @@
@Override
public KoralNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
- User user) {
+ User user, double apiVersion) {
JsonNode jsonNode = process(node.rawNode());
return node.wrapNode(jsonNode);
}
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/CollectionConstraint.java b/src/main/java/de/ids_mannheim/korap/rewrite/CollectionConstraint.java
index 6342dbb..cc9b774 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/CollectionConstraint.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/CollectionConstraint.java
@@ -19,7 +19,7 @@
@Override
public KoralNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
- User user) {
+ User user, double apiVersion) {
if (node.get("@type").equals("koral:doc")) {
if (node.get("key").equals(Attributes.CORPUS_SIGLE)) {
String id = node.get("value");
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/FoundryInject.java b/src/main/java/de/ids_mannheim/korap/rewrite/FoundryInject.java
index 846d2e5..f57bbeb 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/FoundryInject.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/FoundryInject.java
@@ -20,14 +20,14 @@
@Override
public KoralNode rewriteQuery (KoralNode koralNode, KustvaktConfiguration config,
- User user) throws KustvaktException {
+ User user, double apiVersion) throws KustvaktException {
// EM: I don't know the purpose of the following code and it is not
// tested
if (koralNode.get("@type").equals("koral:span")) {
if (!koralNode.isMissingNode("/wrap")) {
koralNode = koralNode.at("/wrap");
- JsonNode term = rewriteQuery(koralNode, config, user).rawNode();
+ JsonNode term = rewriteQuery(koralNode, config, user, apiVersion).rawNode();
koralNode.replaceAt("/wrap", term,
new RewriteIdentifier("koral:term", "replace", ""));
}
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/FoundryRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/FoundryRewrite.java
index c59097c..743daf0 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/FoundryRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/FoundryRewrite.java
@@ -19,7 +19,7 @@
@Override
public KoralNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
- User user) throws KustvaktException {
+ User user, double apiVersion) throws KustvaktException {
String username = user.getUsername();
String jsonSettings = settingService.retrieveDefaultSettings(username);
if (jsonSettings != null) {
@@ -27,6 +27,6 @@
jsonSettings);
user.setUserSettingProcessor(processor);
}
- return super.rewriteQuery(node, config, user);
+ return super.rewriteQuery(node, config, user, apiVersion);
}
}
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/IdWriter.java b/src/main/java/de/ids_mannheim/korap/rewrite/IdWriter.java
index 113c176..bc98530 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/IdWriter.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/IdWriter.java
@@ -1,8 +1,7 @@
package de.ids_mannheim.korap.rewrite;
import com.fasterxml.jackson.databind.JsonNode;
-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;
@@ -20,7 +19,7 @@
@Override
public KoralNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
- User user) {
+ User user, double apiVersion) {
if (node.get("@type").equals("koral:token")) {
String s = extractToken(node.rawNode());
if (s != null && !s.isEmpty())
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/MetaConstraint.java b/src/main/java/de/ids_mannheim/korap/rewrite/MetaConstraint.java
index 2838f67..a3c17d9 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/MetaConstraint.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/MetaConstraint.java
@@ -1,7 +1,7 @@
package de.ids_mannheim.korap.rewrite;
import com.fasterxml.jackson.databind.JsonNode;
-import de.ids_mannheim.korap.config.BeanInjectable;
+
import de.ids_mannheim.korap.config.KustvaktConfiguration;
import de.ids_mannheim.korap.user.User;
@@ -13,7 +13,7 @@
@Override
public KoralNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
- User user) {
+ User user, double apiVersion) {
// redundant
if (node.rawNode().has("meta")) {
JsonNode meta = node.rawNode().path("meta");
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/QueryContextRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/QueryContextRewrite.java
index e5f3bee..6e7fa1c 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/QueryContextRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/QueryContextRewrite.java
@@ -19,7 +19,7 @@
@Override
public KoralNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
- User user) throws KustvaktException {
+ User user, double apiVersion) throws KustvaktException {
if (config.getMaxTokenContext() > 0) {
boolean isContextCut = false;
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/QueryReferenceRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/QueryReferenceRewrite.java
index e5f6a36..7b4d2b3 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/QueryReferenceRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/QueryReferenceRewrite.java
@@ -31,7 +31,7 @@
@Override
public KoralNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
- User user) throws KustvaktException {
+ User user, double apiVersion) throws KustvaktException {
if (node.has("query")) {
node = node.at("/query");
findQueryRef(user.getUsername(), node);
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/RewriteHandler.java b/src/main/java/de/ids_mannheim/korap/rewrite/RewriteHandler.java
index 6bad856..29e27cb 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/RewriteHandler.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/RewriteHandler.java
@@ -99,7 +99,7 @@
* @return boolean if rewriter class was successfully added to
* rewrite handler!
*/
- @Deprecated
+ // EM: MH marked this as @Deprecated
public boolean add (Class<? extends RewriteTask> rewriter) {
RewriteTask task;
try {
@@ -114,27 +114,27 @@
return addProcessor(task);
}
- public String processQuery (JsonNode root, User user)
+ public String processQuery (JsonNode root, User user, double apiVersion)
throws KustvaktException {
RewriteProcess process = new RewriteProcess(root, user);
- JsonNode pre = process.start(false);
+ JsonNode pre = process.start(false, apiVersion);
return JsonUtils.toJSON(pre);
}
- public String processQuery (String json, User user)
+ public String processQuery (String json, User user, double apiVersion)
throws KustvaktException {
- return processQuery(JsonUtils.readTree(json), user);
+ return processQuery(JsonUtils.readTree(json), user, apiVersion);
}
- public String processResult (String json, User user)
+ public String processResult (String json, User user, double apiVersion)
throws KustvaktException {
- return processResult(JsonUtils.readTree(json), user);
+ return processResult(JsonUtils.readTree(json), user, apiVersion);
}
- public String processResult (JsonNode node, User user)
+ public String processResult (JsonNode node, User user, double apiVersion)
throws KustvaktException {
RewriteProcess process = new RewriteProcess(node, user);
- JsonNode pre = process.start(true);
+ JsonNode pre = process.start(true, apiVersion);
return JsonUtils.toJSON(pre);
}
@@ -161,7 +161,7 @@
}
private KoralNode processNode (String key, JsonNode value,
- boolean result) throws KustvaktException {
+ boolean result, double apiVersion) throws KustvaktException {
KoralNode kroot = KoralNode.wrapNode(value);
if (value.isObject()) {
if (value.has("operands")) {
@@ -169,7 +169,7 @@
Iterator<JsonNode> it = ops.elements();
while (it.hasNext()) {
JsonNode next = it.next();
- KoralNode kn = processNode(key, next, result);
+ KoralNode kn = processNode(key, next, result, apiVersion);
if (kn.isRemove())
it.remove();
}
@@ -177,19 +177,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, result);
- return processNode(key, value.path("wrap"), result);
+ RewriteHandler.this.token_node_processors, result, apiVersion);
+ return processNode(key, value.path("wrap"), result, apiVersion);
}
else {
return rewrite(key, kroot,
- RewriteHandler.this.node_processors, result);
+ RewriteHandler.this.node_processors, result, apiVersion);
}
}
else if (value.isArray()) {
Iterator<JsonNode> it = value.elements();
while (it.hasNext()) {
JsonNode next = it.next();
- KoralNode kn = processNode(key, next, result);
+ KoralNode kn = processNode(key, next, result, apiVersion);
if (kn.isRemove())
it.remove();
}
@@ -197,7 +197,7 @@
return kroot;
}
- private JsonNode start (boolean result) throws KustvaktException {
+ private JsonNode start (boolean result, double apiVersion) throws KustvaktException {
if (DEBUG) {
jlog.debug("Running rewrite process on query " + root);
}
@@ -205,10 +205,10 @@
Iterator<Map.Entry<String, JsonNode>> it = root.fields();
while (it.hasNext()) {
Map.Entry<String, JsonNode> next = it.next();
- processNode(next.getKey(), next.getValue(), result);
+ processNode(next.getKey(), next.getValue(), result, apiVersion);
}
processFixedNode(root, RewriteHandler.this.query_processors,
- result);
+ result, apiVersion);
}
return root;
}
@@ -216,12 +216,13 @@
/**
* @param node
* @param tasks
+ * @param apiVersion
* @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 result)
+ Collection<? extends RewriteTask> tasks, boolean result, double apiVersion)
throws KustvaktException {
if (RewriteHandler.this.config == null)
throw new RuntimeException(
@@ -249,7 +250,7 @@
}
if (!result && task instanceof RewriteTask.RewriteQuery) {
((RewriteTask.RewriteQuery) task).rewriteQuery(node,
- RewriteHandler.this.config, this.user);
+ RewriteHandler.this.config, this.user, apiVersion);
}
else if (task instanceof RewriteTask.RewriteResult) {
((RewriteTask.RewriteResult) task).rewriteResult(node);
@@ -267,7 +268,7 @@
// fixme: merge with processNode!
private void processFixedNode (JsonNode node,
- Collection<RewriteTask> tasks, boolean post)
+ Collection<RewriteTask> tasks, boolean post, double apiVersion)
throws KustvaktException {
for (RewriteTask task : tasks) {
KoralNode next = KoralNode.wrapNode(node);
@@ -280,7 +281,7 @@
if (!post & task instanceof RewriteTask.RewriteQuery)
next = ((RewriteTask.RewriteQuery) task).rewriteQuery(next,
- RewriteHandler.this.config, user);
+ RewriteHandler.this.config, user, apiVersion);
else if (task instanceof RewriteTask.RewriteResult)
((RewriteTask.RewriteResult) task).rewriteResult(next);
next.buildRewrites();
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/RewriteTask.java b/src/main/java/de/ids_mannheim/korap/rewrite/RewriteTask.java
index b015c0e..feec93a 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/RewriteTask.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/RewriteTask.java
@@ -26,10 +26,12 @@
* injected by rewrite handler if available. Might
* cause {@link NullPointerException} if not
* checked properly
+ * @param apiVersion
+ * the version of the API
* @return
*/
KoralNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
- User user) throws KustvaktException;
+ User user, double apiVersion) throws KustvaktException;
}
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/TimeoutRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/TimeoutRewrite.java
index 1cdfd2f..eddfcd3 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/TimeoutRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/TimeoutRewrite.java
@@ -9,7 +9,7 @@
@Override
public KoralNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
- User user) throws KustvaktException {
+ User user, double apiVersion) throws KustvaktException {
CorpusAccess access = user.getCorpusAccess();
if (node.has("meta")) {
node = node.at("/meta");
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/TreeConstraint.java b/src/main/java/de/ids_mannheim/korap/rewrite/TreeConstraint.java
index 81f254a..a7d0983 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/TreeConstraint.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/TreeConstraint.java
@@ -59,7 +59,7 @@
@Override
public KoralNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
- User user) {
+ User user, double apiVersion) {
System.out.println("FIND PATH " + node.rawNode().findParent(pointer));
return node;
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/VirtualCorpusRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/VirtualCorpusRewrite.java
index ccdc704..7792c88 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/VirtualCorpusRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/VirtualCorpusRewrite.java
@@ -31,7 +31,7 @@
@Override
public KoralNode rewriteQuery (KoralNode node, KustvaktConfiguration config,
- User user) throws KustvaktException {
+ User user, double apiVersion) throws KustvaktException {
if (node.has("corpus")) {
node = node.at("/corpus");
findVCRef(user.getUsername(), node);
diff --git a/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java b/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java
index cd8c0b2..dc2e429 100644
--- a/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java
+++ b/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java
@@ -26,7 +26,10 @@
public final static String API_VERSION = "v1.1";
public final static String API_VERSION_V1_0 = "v1.0";
- protected final static double API_VERSION_DOUBLE = Double.parseDouble(API_VERSION.substring(1));
+ protected final static double API_VERSION_DOUBLE =
+ Double.parseDouble(API_VERSION.substring(1));
+ protected final static String COLLECTION_NODE_NAME =
+ (API_VERSION_DOUBLE >= 1.1) ? "corpus" : "collection";
protected final static String allCorpusAccess = "All corpus access policy "
+ "has been added.";
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/AvailabilityRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/AvailabilityRewriteTest.java
index 5e07b05..92c9976 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/AvailabilityRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/AvailabilityRewriteTest.java
@@ -39,7 +39,7 @@
s.setCollection("textClass=politik & corpusSigle=WPD");
String result = s.toJSON();
JsonNode node = JsonUtils.readTree(handler.processQuery(result,
- User.UserFactory.getUser("test_user")));
+ User.UserFactory.getUser("test_user"), API_VERSION_DOUBLE));
assertNotNull(node);
assertEquals(1, node.at("/"+collectionNodeName+"/operands").size());
}
@@ -58,7 +58,7 @@
s.setCollection("corpusSigle=BRZ13 & corpusSigle=WPD");
String result = s.toJSON();
JsonNode node = JsonUtils.readTree(handler.processQuery(result,
- User.UserFactory.getUser("test_user")));
+ User.UserFactory.getUser("test_user"), API_VERSION_DOUBLE));
assertNotNull(node);
assertEquals(0, node.at("/"+collectionNodeName+"/operands").size());
assertEquals("koral:rewrite",
@@ -77,7 +77,7 @@
"(corpusSigle=BRZ13 & textClass=Wissenschaft) & corpusSigle=WPD");
String result = s.toJSON();
JsonNode node = JsonUtils.readTree(handler.processQuery(result,
- User.UserFactory.getUser("test_user")));
+ User.UserFactory.getUser("test_user"), API_VERSION_DOUBLE));
assertNotNull(node);
assertEquals("koral:docGroup",
node.at("/"+collectionNodeName+"/operands/0/@type").asText());
@@ -101,7 +101,7 @@
"(corpusSigle=BRZ13 & corpusSigle=WPD) & textClass=Wissenschaft & textClass=Sport");
String result = s.toJSON();
JsonNode node = JsonUtils.readTree(handler.processQuery(result,
- User.UserFactory.getUser("test_user")));
+ User.UserFactory.getUser("test_user"), API_VERSION_DOUBLE));
assertNotNull(node);
assertEquals("koral:docGroup", node.at("/"+collectionNodeName+"/@type").asText());
assertEquals(2, node.at("/"+collectionNodeName+"/operands").size());
@@ -125,7 +125,7 @@
s.setCollection("(corpusSigle=BRZ13 & textClass=wissenschaft)");
String result = s.toJSON();
JsonNode node = JsonUtils.readTree(handler.processQuery(result,
- User.UserFactory.getUser("test_user")));
+ User.UserFactory.getUser("test_user"), API_VERSION_DOUBLE));
assertNotNull(node);
assertEquals("koral:doc", node.at("/"+collectionNodeName+"/@type").asText());
assertEquals("textClass",
@@ -149,7 +149,7 @@
"(corpusSigle=BRZ13 & corpusSigle=WPD) & textClass=Wissenschaft");
String result = s.toJSON();
JsonNode node = JsonUtils.readTree(handler.processQuery(result,
- User.UserFactory.getUser("test_user")));
+ User.UserFactory.getUser("test_user"), API_VERSION_DOUBLE));
assertNotNull(node);
assertEquals("koral:doc", node.at("/"+collectionNodeName+"/@type").asText());
assertEquals("textClass", node.at("/"+collectionNodeName+"/key").asText());
@@ -170,7 +170,7 @@
"(docID=random & textClass=Wissenschaft) & corpusSigle=WPD");
String org = s.toJSON();
JsonNode node = JsonUtils.readTree(handler.processQuery(org,
- User.UserFactory.getUser("test_user")));
+ User.UserFactory.getUser("test_user"), API_VERSION_DOUBLE));
assertNotNull(node);
assertEquals("koral:docGroup",
node.at("/"+collectionNodeName+"/@type").asText());
@@ -192,7 +192,7 @@
s.setCollection("(docSigle=WPD_AAA & textClass=wissenschaft)");
String org = s.toJSON();
JsonNode node = JsonUtils.readTree(handler.processQuery(org,
- User.UserFactory.getUser("test_user")));
+ User.UserFactory.getUser("test_user"), API_VERSION_DOUBLE));
assertNotNull(node);
assertEquals(2, node.at("/"+collectionNodeName+"/operands").size());
assertEquals("availability",
@@ -218,7 +218,7 @@
s.setQuery(TestVariables.SIMPLE_ADD_QUERY, "poliqarp");
String org = s.toJSON();
JsonNode node = JsonUtils.readTree(handler.processQuery(org,
- User.UserFactory.getUser("test_user")));
+ User.UserFactory.getUser("test_user"), API_VERSION_DOUBLE));
assertNotNull(node);
assertEquals(node.at("/"+collectionNodeName+"/key").asText(), "availability");
assertEquals(node.at("/"+collectionNodeName+"/value").asText(), "CC.*");
@@ -241,7 +241,7 @@
"(corpusSigle=BRZ14 & textClass=wissenschaft) | (corpusSigle=AZPR | textClass=freizeit)");
String org = s.toJSON();
JsonNode node = JsonUtils.readTree(handler.processQuery(org,
- User.UserFactory.getUser("test_user")));
+ User.UserFactory.getUser("test_user"), API_VERSION_DOUBLE));
assertNotNull(node);
assertEquals("koral:docGroup",
node.at("/"+collectionNodeName+"/@type").asText());
@@ -272,7 +272,7 @@
"(corpusSigle=BRZ14 & textClass=wissenschaft) | (corpusSigle=AZPR | textClass=freizeit)");
String org = s.toJSON();
JsonNode node = JsonUtils.readTree(handler.processQuery(org,
- User.UserFactory.getUser("test_user")));
+ User.UserFactory.getUser("test_user"), API_VERSION_DOUBLE));
assertNotNull(node);
assertEquals("koral:docGroup", node.at("/"+collectionNodeName+"/@type").asText());
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/FoundryRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/FoundryRewriteTest.java
index 4590149..bdc5ba6 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/FoundryRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/FoundryRewriteTest.java
@@ -88,7 +88,7 @@
QuerySerializer s = new QuerySerializer(1.1);;
s.setQuery("[pos=ADJA]", "poliqarp");
String result = rewriteHandler.processQuery(s.toJSON(),
- new KorAPUser(username));
+ new KorAPUser(username), API_VERSION_DOUBLE);
JsonNode node = JsonUtils.readTree(result);
assertEquals("corenlp", node.at("/query/wrap/foundry").asText());
assertEquals("foundry",
@@ -103,7 +103,7 @@
QuerySerializer s = new QuerySerializer(1.1);;
s.setQuery("[base=Haus]", "poliqarp");
String result = rewriteHandler.processQuery(s.toJSON(),
- new KorAPUser(username));
+ new KorAPUser(username), API_VERSION_DOUBLE);
JsonNode node = JsonUtils.readTree(result);
// EM: only for testing, in fact, opennlp lemma does not
// exist!
@@ -126,7 +126,8 @@
throws KustvaktException {
QuerySerializer s = new QuerySerializer(1.1);;
s.setQuery("[base=Haus]", "poliqarp");
- String result = rewriteHandler.processQuery(s.toJSON(), new KorAPUser("test"));
+ String result = rewriteHandler.processQuery(s.toJSON(),
+ new KorAPUser("test"), API_VERSION_DOUBLE);
JsonNode node = JsonUtils.readTree(result);
assertNotNull(node);
assertFalse(node.at("/query/wrap/foundry").isMissingNode());
@@ -143,7 +144,8 @@
throws KustvaktException {
QuerySerializer s = new QuerySerializer(1.1);;
s.setQuery("[pos=ADJA]", "poliqarp");
- String result = rewriteHandler.processQuery(s.toJSON(), new KorAPUser("test"));
+ String result = rewriteHandler.processQuery(s.toJSON(),
+ new KorAPUser("test"), API_VERSION_DOUBLE);
JsonNode node = JsonUtils.readTree(result);
assertNotNull(node);
assertFalse(node.at("/query/wrap/foundry").isMissingNode());
@@ -160,7 +162,8 @@
throws KustvaktException {
QuerySerializer s = new QuerySerializer(1.1);;
s.setQuery("[orth=laufe/i & base!=Lauf]", "poliqarp");
- String result = rewriteHandler.processQuery(s.toJSON(), new KorAPUser("test"));
+ String result = rewriteHandler.processQuery(s.toJSON(),
+ new KorAPUser("test"), API_VERSION_DOUBLE);
JsonNode node = JsonUtils.readTree(result);
assertNotNull(node);
assertEquals("koral:termGroup", node.at("/query/wrap/@type").asText());
@@ -175,7 +178,8 @@
throws KustvaktException {
QuerySerializer s = new QuerySerializer(1.1);;
s.setQuery("[(base=laufen | tt/pos=VVFIN)]", "poliqarp");
- String result = rewriteHandler.processQuery(s.toJSON(), new KorAPUser("test"));
+ String result = rewriteHandler.processQuery(s.toJSON(),
+ new KorAPUser("test"), API_VERSION_DOUBLE);
JsonNode node = JsonUtils.readTree(result);
assertNotNull(node);
assertEquals("koral:termGroup", node.at("/query/wrap/@type").asText());
@@ -189,7 +193,8 @@
public void testFoundryBaseRewrite () throws KustvaktException {
QuerySerializer s = new QuerySerializer(1.1);;
s.setQuery("[orth=laufen]", "poliqarp");
- String result = rewriteHandler.processQuery(s.toJSON(), new KorAPUser("test"));
+ String result = rewriteHandler.processQuery(s.toJSON(),
+ new KorAPUser("test"), API_VERSION_DOUBLE);
JsonNode node = JsonUtils.readTree(result);
assertEquals("koral:term", node.at("/query/wrap/@type").asText());
assertFalse(node.at("/query/wrap/foundry").isMissingNode());
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/IdRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/IdRewriteTest.java
index bd32d0c..4f28de8 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/IdRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/IdRewriteTest.java
@@ -6,13 +6,13 @@
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+
import com.fasterxml.jackson.databind.JsonNode;
+
import de.ids_mannheim.korap.config.KustvaktConfiguration;
import de.ids_mannheim.korap.config.SpringJerseyTest;
import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.query.serialize.QuerySerializer;
-import de.ids_mannheim.korap.rewrite.IdWriter;
-import de.ids_mannheim.korap.rewrite.RewriteHandler;
import de.ids_mannheim.korap.user.KorAPUser;
import de.ids_mannheim.korap.utils.JsonUtils;
@@ -32,7 +32,8 @@
String query = "[surface=Wort]";
QuerySerializer s = new QuerySerializer(API_VERSION_DOUBLE);
s.setQuery(query, "poliqarp");
- String value = handler.processQuery(s.toJSON(), new KorAPUser());
+ String value = handler.processQuery(s.toJSON(), new KorAPUser(),
+ API_VERSION_DOUBLE);
JsonNode result = JsonUtils.readTree(value);
assertNotNull(result);
assertTrue(result.path("query").has("idn"));
@@ -44,7 +45,8 @@
assertTrue(handler.add(IdWriter.class));
QuerySerializer s = new QuerySerializer(API_VERSION_DOUBLE);
s.setQuery("[base=Haus]", "poliqarp");
- String result = handler.processQuery(s.toJSON(), new KorAPUser());
+ String result = handler.processQuery(s.toJSON(), new KorAPUser(),
+ API_VERSION_DOUBLE);
JsonNode node = JsonUtils.readTree(result);
assertNotNull(node);
assertFalse(node.at("/query/wrap").isMissingNode());
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/QueryContextRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/QueryContextRewriteTest.java
index 138b117..5a596c2 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/QueryContextRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/QueryContextRewriteTest.java
@@ -61,7 +61,8 @@
assertEquals(60, context.at("/left/1").asInt());
assertEquals(60, context.at("/right/1").asInt());
- String result = rewriteHandler.processQuery(s.toJSON(), new KorAPUser("test"));
+ String result = rewriteHandler.processQuery(s.toJSON(),
+ new KorAPUser("test"), API_VERSION_DOUBLE);
JsonNode node = JsonUtils.readTree(result);
context = node.at("/meta/context");
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/ResultRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/ResultRewriteTest.java
index a7507fd..92a07bf 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/ResultRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/ResultRewriteTest.java
@@ -4,11 +4,10 @@
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+
import de.ids_mannheim.korap.config.SpringJerseyTest;
import de.ids_mannheim.korap.config.TestVariables;
import de.ids_mannheim.korap.exceptions.KustvaktException;
-import de.ids_mannheim.korap.rewrite.AvailabilityRewrite;
-import de.ids_mannheim.korap.rewrite.RewriteHandler;
import de.ids_mannheim.korap.utils.JsonUtils;
/**
@@ -24,7 +23,8 @@
public void testPostRewriteNothingToDo () throws KustvaktException {
assertEquals(true, rewriteHandler.add(AvailabilityRewrite.class),
"Handler could not be added to rewrite handler instance!");
- String v = rewriteHandler.processResult(TestVariables.RESULT, null);
+ String v = rewriteHandler.processResult(TestVariables.RESULT, null,
+ API_VERSION_DOUBLE);
assertEquals(JsonUtils.readTree(TestVariables.RESULT),
JsonUtils.readTree(v), "results do not match");
}
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/RewriteHandlerTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/RewriteHandlerTest.java
index fe64c18..45d9dc3 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/RewriteHandlerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/RewriteHandlerTest.java
@@ -1,16 +1,15 @@
package de.ids_mannheim.korap.rewrite;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+
import de.ids_mannheim.korap.config.KustvaktConfiguration;
import de.ids_mannheim.korap.config.SpringJerseyTest;
-import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.query.serialize.QuerySerializer;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
/**
* EM: to do: Fix tests
* New DB does not save users.
@@ -95,7 +94,7 @@
s.setQuery("[(base=laufen | base=gehen) & tt/pos=VVFIN]",
"poliqarp");
assertTrue(handler.add(FoundryInject.class));
- handler.processQuery(s.toJSON(), null);
+ handler.processQuery(s.toJSON(), null, API_VERSION_DOUBLE);
});
}
// @Deprecated
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/TimeoutRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/TimeoutRewriteTest.java
index 3ce9cee..99563a2 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/TimeoutRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/TimeoutRewriteTest.java
@@ -37,7 +37,7 @@
s.setMeta(map);
String result = s.toJSON();
JsonNode node = JsonUtils.readTree(handler.processQuery(result,
- User.UserFactory.getUser("test_user")));
+ User.UserFactory.getUser("test_user"), API_VERSION_DOUBLE));
node = node.at("/meta");
assertEquals(1000, node.at("/timeout").asInt());
@@ -57,7 +57,7 @@
s.setMeta(map);
String result = s.toJSON();
JsonNode node = JsonUtils.readTree(handler.processQuery(result,
- User.UserFactory.getUser("test_user")));
+ User.UserFactory.getUser("test_user"), API_VERSION_DOUBLE));
node = node.at("/meta");
assertEquals(10000, node.at("/timeout").asInt());
@@ -76,7 +76,7 @@
s.setMeta(map);
String result = s.toJSON();
JsonNode node = JsonUtils.readTree(handler.processQuery(result,
- User.UserFactory.getUser("test_user")));
+ User.UserFactory.getUser("test_user"), API_VERSION_DOUBLE));
node = node.at("/meta");
assertEquals(10000, node.at("/timeout").asInt());
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/SearchControllerTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/SearchControllerTest.java
index e047793..55a31b6 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/SearchControllerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/SearchControllerTest.java
@@ -140,7 +140,7 @@
assertEquals(302, node.at("/errors/0/0").asInt());
assertEquals(302, node.at("/errors/1/0").asInt());
assertTrue(node.at("/errors/2").isMissingNode());
- assertFalse(node.at("/corpus").isMissingNode());
+ assertFalse(node.at("/"+COLLECTION_NODE_NAME).isMissingNode());
assertEquals(13, node.at("/meta/count").asInt());
}
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusControllerTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusControllerTest.java
index 7a0554a..95085c6 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusControllerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusControllerTest.java
@@ -439,39 +439,40 @@
node.at("/errors/0/0").asInt());
}
- @Test
- public void testEditCorpusQuery ()
- throws ProcessingException, KustvaktException {
- createDoryVC();
- JsonNode node = testRetrieveKoralQuery("dory", "dory-vc");
- node = node.at("/corpus");
- assertEquals("koral:docGroup", node.at("/@type").asText());
- assertEquals(
- "operation:and",node.at("/operation").asText());
- assertEquals(2, node.at("/operands").size());
- String json = "{\"corpusQuery\": \"corpusSigle=WPD17\"}";
- editVC("dory", "dory", "dory-vc", json);
-
- node = testRetrieveKoralQuery("dory", "dory-vc");
- node = node.at("/corpus");
- assertEquals("koral:doc",node.at("/@type").asText());
- assertEquals("corpusSigle",node.at("/key").asText());
- assertEquals("WPD17",node.at("/value").asText());
-
- json = "{\"corpusQuery\": \"corpusSigle=GOE AND creationDate since "
- + "1820\"}";
- editVC("dory", "dory", "dory-vc", json);
- node = testRetrieveKoralQuery("dory", "dory-vc");
- node = node.at("/corpus");
- assertEquals("koral:docGroup", node.at("/@type").asText());
- assertEquals("operation:and", node.at("/operation").asText());
- assertEquals("corpusSigle",node.at("/operands/0/key").asText());
- assertEquals("GOE",node.at("/operands/0/value").asText());
- assertEquals("creationDate", node.at("/operands/1/key").asText());
- assertEquals("1820", node.at("/operands/1/value").asText());
-
- deleteVC("dory-vc", "dory", "dory");
- }
+ @Test
+ public void testEditCorpusQuery ()
+ throws ProcessingException, KustvaktException {
+ createDoryVC();
+ JsonNode node = testRetrieveKoralQuery("dory", "dory-vc");
+ node = node.at("/" + COLLECTION_NODE_NAME);
+ assertEquals("koral:docGroup", node.at("/@type").asText());
+ assertEquals("operation:and", node.at("/operation").asText());
+ assertEquals(2, node.at("/operands").size());
+ String json = "{\"corpusQuery\": \"corpusSigle=WPD17\"}";
+ editVC("dory", "dory", "dory-vc", json);
+
+ node = testRetrieveKoralQuery("dory", "dory-vc");
+
+ node = node.at("/" + COLLECTION_NODE_NAME);
+ assertEquals("koral:doc", node.at("/@type").asText());
+ assertEquals("corpusSigle", node.at("/key").asText());
+ assertEquals("WPD17", node.at("/value").asText());
+
+ json = "{\"corpusQuery\": \"corpusSigle=GOE AND creationDate since "
+ + "1820\"}";
+ editVC("dory", "dory", "dory-vc", json);
+ node = testRetrieveKoralQuery("dory", "dory-vc");
+
+ node = node.at("/" + COLLECTION_NODE_NAME);
+ assertEquals("koral:docGroup", node.at("/@type").asText());
+ assertEquals("operation:and", node.at("/operation").asText());
+ assertEquals("corpusSigle", node.at("/operands/0/key").asText());
+ assertEquals("GOE", node.at("/operands/0/value").asText());
+ assertEquals("creationDate", node.at("/operands/1/key").asText());
+ assertEquals(node.at("/operands/1/value").asText(), "1820");
+
+ deleteVC("dory-vc", "dory", "dory");
+ }
private JsonNode testRetrieveKoralQuery (String username, String vcName)
throws ProcessingException, KustvaktException {