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 }