Coverage Summary for Class: JacksonBasedRpcSerializer (co.rsk.rpc)
Class |
Class, %
|
Method, %
|
Line, %
|
JacksonBasedRpcSerializer |
0%
(0/1)
|
0%
(0/3)
|
0%
(0/4)
|
1 /*
2 * This file is part of RskJ
3 * Copyright (C) 2018 RSK Labs Ltd.
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18 package co.rsk.rpc;
19
20 import co.rsk.jsonrpc.JsonRpcMessage;
21 import co.rsk.rpc.modules.RskJsonRpcRequest;
22 import com.fasterxml.jackson.core.JsonProcessingException;
23 import com.fasterxml.jackson.databind.ObjectMapper;
24
25 import java.io.IOException;
26 import java.io.InputStream;
27
28 /**
29 * This implements basic JSON-RPC serialization using Jackson.
30 */
31 public class JacksonBasedRpcSerializer implements JsonRpcSerializer {
32 //From https://fasterxml.github.io/jackson-databind/javadoc/2.5/com/fasterxml/jackson/databind/ObjectMapper.html
33 // ObjectMapper is thread-safe as long as the config methods are not called after the serialiation begins.
34 private final ObjectMapper mapper = new ObjectMapper();
35
36 @Override
37 public String serializeMessage(JsonRpcMessage message) throws JsonProcessingException {
38 return mapper.writeValueAsString(message);
39 }
40
41 @Override
42 public RskJsonRpcRequest deserializeRequest(InputStream source) throws IOException {
43 return mapper.readValue(source, RskJsonRpcRequest.class);
44 }
45 }