package org.opendaylight.ovsdb.lib.impl;
-import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
private static final Set<OvsdbConnectionListener> CONNECTION_LISTENERS = ConcurrentHashMap.newKeySet();
private static final Map<OvsdbClient, Channel> CONNECTIONS = new ConcurrentHashMap<>();
- private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper()
- .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
- .setSerializationInclusion(Include.NON_NULL);
private volatile boolean useSSL = false;
private final ICertificateManager certManagerSrv;
private static OvsdbClient getChannelClient(final Channel channel, final ConnectionType type,
final SocketConnectionType socketConnType) {
- JsonRpcEndpoint endpoint = new JsonRpcEndpoint(OBJECT_MAPPER, channel);
+ JsonRpcEndpoint endpoint = new JsonRpcEndpoint(channel);
channel.pipeline().addLast(endpoint);
OvsdbClientImpl client = new OvsdbClientImpl(endpoint, channel, type, socketConnType);
import static java.util.Objects.requireNonNull;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
List.class, JsonNode.class);
private static final JavaType JT_LIST_STRING = TypeFactory.defaultInstance().constructParametricType(
List.class, String.class);
+ private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper()
+ .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
+ .setSerializationInclusion(Include.NON_NULL);
private static int reaperInterval = 1000;
}
private final Map<String, CallContext> methodContext = new ConcurrentHashMap<>();
- private final ObjectMapper objectMapper;
private final Channel nettyChannel;
private volatile Callback currentCallback = null;
- public JsonRpcEndpoint(final ObjectMapper objectMapper, final Channel channel) {
- this.objectMapper = requireNonNull(objectMapper);
+ public JsonRpcEndpoint(final Channel channel) {
this.nettyChannel = requireNonNull(channel);
}
case "update": {
final UpdateNotification arg;
try {
- arg = objectMapper.convertValue(params, UpdateNotification.class);
+ arg = OBJECT_MAPPER.convertValue(params, UpdateNotification.class);
} catch (IllegalArgumentException e) {
return reportedMalformedParameters(requestId, e);
}
case "locked": {
final List<String> arg;
try {
- arg = objectMapper.convertValue(params, JT_LIST_STRING);
+ arg = OBJECT_MAPPER.convertValue(params, JT_LIST_STRING);
} catch (IllegalArgumentException e) {
return reportedMalformedParameters(requestId, e);
}
case "stolen": {
final List<String> arg;
try {
- arg = objectMapper.convertValue(params, JT_LIST_STRING);
+ arg = OBJECT_MAPPER.convertValue(params, JT_LIST_STRING);
} catch (IllegalArgumentException e) {
return reportedMalformedParameters(requestId, e);
}
final String jsonString;
try {
- jsonString = objectMapper.writeValueAsString(response);
+ jsonString = OBJECT_MAPPER.writeValueAsString(response);
} catch (JsonProcessingException e) {
LOG.error("Exception while processing JSON response {}", response, e);
return;
LOG.error("Request {} failed with error {}", requestId, error);
}
- final Object mappedResult = objectMapper.convertValue(result, returnCtxt.resultType);
+ final Object mappedResult = OBJECT_MAPPER.convertValue(result, returnCtxt.resultType);
if (!returnCtxt.future.set(mappedResult)) {
LOG.debug("Request {} did not accept result {}", requestId, mappedResult);
}
private <T> ListenableFuture<T> sendRequest(final JsonRpc10Request request, final JavaType resultType) {
final String requestString;
try {
- requestString = objectMapper.writeValueAsString(request);
+ requestString = OBJECT_MAPPER.writeValueAsString(request);
} catch (JsonProcessingException e) {
return Futures.immediateFailedFuture(e);
}