FINERACT-964

bump json-path from 0.9.1 to 2.4.0
This commit is contained in:
xurror
2020-05-20 00:56:20 +02:00
committed by Michael Vorburger ⛑️
parent 610375753c
commit dc3af0c867
2 changed files with 16 additions and 15 deletions
+1 -1
View File
@@ -99,7 +99,7 @@ dependencyManagement {
dependency 'com.amazonaws:aws-java-sdk-s3:1.11.779'
dependency 'net.sf.ehcache:ehcache:+'
dependency 'com.github.spullara.mustache.java:compiler:0.8.12'
dependency 'com.jayway.jsonpath:json-path:0.9.1'
dependency 'com.jayway.jsonpath:json-path:2.4.0'
dependency 'org.apache.tika:tika-core:1.24.1'
dependency 'org.apache.httpcomponents:httpclient:+'
dependency 'io.swagger:swagger-jersey-jaxrs:1.6.1'
@@ -21,7 +21,8 @@ package org.apache.fineract.batch.service;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.jayway.jsonpath.JsonModel;
import com.jayway.jsonpath.JsonPath;
import com.jayway.jsonpath.ReadContext;
import java.util.ArrayList;
import java.util.List;
import java.util.Map.Entry;
@@ -134,7 +135,7 @@ public class ResolutionHelper {
// Create a duplicate request
final BatchRequest br = request;
final JsonModel responseJsonModel = JsonModel.model(parentResponse.getBody());
final ReadContext responseCtx = JsonPath.parse(parentResponse.getBody());
// Gets the body from current Request as a JsonObject
final JsonObject jsonRequestBody = this.fromJsonHelper.parse(request.getBody()).getAsJsonObject();
@@ -145,7 +146,7 @@ public class ResolutionHelper {
// parameter
for (Entry<String, JsonElement> element : jsonRequestBody.entrySet()) {
final String key = element.getKey();
final JsonElement value = resolveDependentVariables(element, responseJsonModel);
final JsonElement value = resolveDependentVariables(element, responseCtx);
jsonResultBody.add(key, value);
}
@@ -167,7 +168,7 @@ public class ResolutionHelper {
for (String parameter : parameters) {
if (parameter.contains("$.")) {
final String resParamValue = responseJsonModel.get(parameter).toString();
final String resParamValue = responseCtx.read(parameter).toString();
relativeUrl = relativeUrl.replace(parameter, resParamValue);
br.setRelativeUrl(relativeUrl+queryParams);
}
@@ -177,53 +178,53 @@ public class ResolutionHelper {
return br;
}
private JsonElement resolveDependentVariables(final Entry<String, JsonElement> entryElement, final JsonModel responseJsonModel) {
private JsonElement resolveDependentVariables(final Entry<String, JsonElement> entryElement, final ReadContext responseCtx) {
JsonElement value = null;
final JsonElement element = entryElement.getValue();
if (element.isJsonObject()) {
final JsonObject jsObject = element.getAsJsonObject();
value = processJsonObject(jsObject, responseJsonModel);
value = processJsonObject(jsObject, responseCtx);
} else if (element.isJsonArray()) {
final JsonArray jsElementArray = element.getAsJsonArray();
value = processJsonArray(jsElementArray, responseJsonModel);
value = processJsonArray(jsElementArray, responseCtx);
} else {
value = resolveDependentVariable(element, responseJsonModel);
value = resolveDependentVariable(element, responseCtx);
}
return value;
}
private JsonElement processJsonObject(final JsonObject jsObject, final JsonModel responseJsonModel) {
private JsonElement processJsonObject(final JsonObject jsObject, final ReadContext responseCtx) {
JsonObject valueObj = new JsonObject();
for (Entry<String, JsonElement> element : jsObject.entrySet()) {
final String key = element.getKey();
final JsonElement value = resolveDependentVariable(element.getValue(), responseJsonModel);
final JsonElement value = resolveDependentVariable(element.getValue(), responseCtx);
valueObj.add(key, value);
}
return valueObj;
}
private JsonArray processJsonArray(final JsonArray elementArray, final JsonModel responseJsonModel) {
private JsonArray processJsonArray(final JsonArray elementArray, final ReadContext responseCtx) {
JsonArray valueArr = new JsonArray();
for (JsonElement element : elementArray) {
if (element.isJsonObject()) {
final JsonObject jsObject = element.getAsJsonObject();
valueArr.add(processJsonObject(jsObject, responseJsonModel));
valueArr.add(processJsonObject(jsObject, responseCtx));
}
}
return valueArr;
}
private JsonElement resolveDependentVariable(final JsonElement element, final JsonModel responseJsonModel) {
private JsonElement resolveDependentVariable(final JsonElement element, final ReadContext responseCtx) {
JsonElement value = element;
String paramVal = element.getAsString();
if (paramVal.contains("$.")) {
// Get the value of the parameter from parent response
final String resParamValue = responseJsonModel.get(paramVal).toString();
final String resParamValue = responseCtx.read(paramVal).toString();
value = this.fromJsonHelper.parse(resParamValue);
}
return value;