use of org.infinispan.commons.dataconversion.internal.Json in project infinispan by infinispan.
the class RestLoggingResource method testListAppenders.
@Test
public void testListAppenders() {
RestClient client = SERVER_TEST.rest().create();
RestResponse response = sync(client.server().logging().listAppenders());
String body = response.getBody();
Json appenders = Json.read(body);
assertEquals(body, 5, appenders.asMap().size());
}
use of org.infinispan.commons.dataconversion.internal.Json in project infinispan by infinispan.
the class RestLoggingResource method testListLoggers.
@Test
public void testListLoggers() {
RestClient client = SERVER_TEST.rest().create();
RestResponse response = sync(client.server().logging().listLoggers());
Json loggers = Json.read(response.getBody());
assertTrue(loggers.asJsonList().size() > 0);
}
use of org.infinispan.commons.dataconversion.internal.Json in project infinispan by infinispan.
the class AbstractSchemaJdbcStore method recursiveUpdateParameters.
void recursiveUpdateParameters(Descriptor descriptor, Map<String, Parameter> parameterMap, String[] nestedMessageNames, Set<String> seenNames, boolean key) {
for (FieldDescriptor fieldDescriptor : descriptor.getFields()) {
String name = fieldDescriptor.getName();
if (fieldDescriptor.isRepeated()) {
throw log.repeatedFieldsNotSupported(name, fieldDescriptor.getTypeName());
}
Descriptor fieldMessageDescriptor = fieldDescriptor.getMessageType();
if (fieldMessageDescriptor != null) {
String[] newNestedMessageNames;
if (nestedMessageNames == null) {
newNestedMessageNames = new String[1];
newNestedMessageNames[0] = name;
} else {
newNestedMessageNames = Arrays.copyOf(nestedMessageNames, nestedMessageNames.length + 1);
newNestedMessageNames[nestedMessageNames.length] = name;
}
recursiveUpdateParameters(fieldMessageDescriptor, parameterMap, newNestedMessageNames, seenNames, key);
continue;
}
if (!seenNames.add(name)) {
throw log.duplicateFieldInSchema(name, fieldDescriptor.getTypeName());
}
Parameter parameter = parameterMap.get(name.toUpperCase());
if (parameter == null) {
if (fieldDescriptor.isRequired()) {
throw log.requiredSchemaFieldNotPresent(name, fieldDescriptor.getTypeName());
}
continue;
}
if (parameter.primaryIdentifier && !key && !config.getSchemaJdbcConfiguration().embeddedKey()) {
throw log.primaryKeyPresentButNotEmbedded(parameter.name, fieldDescriptor.getTypeName());
}
Function<Json, Json> retrievalFunction;
BiConsumer<Json, Object> valueConsumer;
// Oracle doesn't have a boolean type, so use a number of 0 or 1 instead
if (parameter.type == ProtostreamFieldType.INT_32 && fieldDescriptor.getType() == Type.BOOL) {
retrievalFunction = json -> Json.factory().number(json.at(name).asBoolean() ? 1 : 0);
valueConsumer = (json, o) -> json.set(name, ((Integer) o) == 1);
} else {
retrievalFunction = json -> json.at(name);
valueConsumer = (json, o) -> json.set(name, o);
}
if (nestedMessageNames == null) {
updateUnwrap(parameter, key, retrievalFunction);
parameter.jsonUpdateConsumer = valueConsumer;
} else {
updateUnwrap(parameter, key, json -> {
for (String nestedName : nestedMessageNames) {
json = json.at(nestedName);
if (json == null)
return null;
}
return retrievalFunction.apply(json);
});
parameter.jsonUpdateConsumer = ((json, o) -> {
Json nestedJSon = json;
for (String nestedName : nestedMessageNames) {
nestedJSon = json.at(nestedName);
if (nestedJSon == null) {
nestedJSon = Json.object();
json.set(nestedName, nestedJSon);
}
json = nestedJSon;
}
valueConsumer.accept(nestedJSon, o);
});
}
}
}
use of org.infinispan.commons.dataconversion.internal.Json in project infinispan by infinispan.
the class AbstractSchemaJdbcStore method verifyParametersPresentForMessage.
void verifyParametersPresentForMessage(ImmutableSerializationContext ctx, String fullTypeName, Map<String, Parameter> parameterMap, boolean key) {
GenericDescriptor genericDescriptor;
try {
genericDescriptor = ctx.getDescriptorByName(fullTypeName);
} catch (IllegalArgumentException t) {
throw log.schemaNotFound(fullTypeName);
}
Set<String> seenNames = new HashSet<>();
if (genericDescriptor instanceof Descriptor) {
recursiveUpdateParameters((Descriptor) genericDescriptor, parameterMap, null, seenNames, key);
} else if (genericDescriptor instanceof EnumDescriptor) {
if (!key && config.getSchemaJdbcConfiguration().embeddedKey()) {
throw log.keyCannotEmbedWithEnum(fullTypeName);
}
String name = genericDescriptor.getName();
// treat an enum as just a string
Parameter enumParam = parameterMap.get(name.toUpperCase());
if (enumParam != null) {
assert enumParam.getType() == ProtostreamFieldType.STRING;
updateUnwrap(enumParam, key, json -> json.at("_value"));
enumParam.jsonUpdateConsumer = (json, o) -> {
json.set("_type", fullTypeName);
json.set("_value", o);
};
}
} else {
throw new UnsupportedOperationException("Unsupported descriptor found " + genericDescriptor);
}
}
use of org.infinispan.commons.dataconversion.internal.Json in project infinispan by infinispan.
the class QueryRequest method fromJson.
public static QueryRequest fromJson(Json jsonRequest) {
String queryString = jsonRequest.at(QUERY_STRING_FIELD).asString();
Json offsetValue = jsonRequest.at(START_OFFSET_FIELD);
Json maxResults = jsonRequest.at(MAX_RESULTS_FIELD);
Json named = jsonRequest.at(NAMED_PARAMETERS_FIELD);
List<NamedParameter> params = named.isArray() ? named.asJsonList().stream().map(NamedParameter::fromJson).collect(toList()) : Collections.emptyList();
QueryRequest queryRequest = new QueryRequest();
queryRequest.setQueryString(queryString);
if (!offsetValue.isNull())
queryRequest.setStartOffset(offsetValue.asLong());
if (!maxResults.isNull())
queryRequest.setMaxResults(maxResults.asInteger());
if (!params.isEmpty())
queryRequest.setNamedParameters(params);
return queryRequest;
}
Aggregations