/** * Just to test IdGeneration Recording * @param file * @return * @throws Exception */ public List<IdRecordInfo> getIdRecords(String file) throws Exception { List<IdRecordInfo> infos = new ArrayList<>(); FastInput input = new FastInput(new FileInputStream(file)); Kryo kryo = new Kryo(); kryo.register(HashMap.class, new MapSerializer()); while (input.available() > 0) { InternalEventRecorder.InternalEventRecord record = kryo.readObject(input, InternalEventRecorder.InternalEventRecord.class); String tag = new String(record.tag).trim(); if (tag.equalsIgnoreCase(IdRecordInfo.ID_RECORD_TAG)) { infos.add((IdRecordInfo)record.data); } } return infos; }
@Override public <T> T deserialize(byte[] data, Class<T> clz) throws IOException, ClassNotFoundException { Kryo kryo = kryoThreadMap.get(); kryo.register(clz); KryoObjectInput input = new KryoObjectInput(kryo, new FastInput(new ByteArrayInputStream(data))); return (T) input.readObject(); }
public final Object deserialize(final byte[] bytes) { final Kryo kryo = threadLocalKryo.get(); return kryo.readClassAndObject(new FastInput(bytes)); }
public List<RestoredRequest> getRequests(String file, int limit) throws IOException { List<RestoredRequest> requests = new ArrayList<>(); FastInput input = new FastInput(new FileInputStream(file)); Kryo kryo = new Kryo(); kryo.register(HashMap.class, new MapSerializer()); while (input.available() > 0) { InternalEventRecorder.InternalEventRecord record = kryo.readObject(input, InternalEventRecorder.InternalEventRecord.class); String tag = new String(record.tag).trim(); if (tag.equalsIgnoreCase(HttpRecorderHelper.HTTP_RECORDER_TAG)) { HttpRecordInformation information = (HttpRecordInformation)record.data; RestoredRequest request = new RestoredRequest(); if (information.params != null && information.params.length > 0) { FastInput paramsInput = new FastInput(new ByteArrayInputStream(information.params)); request.parameters = kryo.readObject(paramsInput, HashMap.class); request.headers = kryo.readObject(paramsInput, HashMap.class); request.contentLength = kryo.readObjectOrNull(paramsInput, Integer.class); request.contentType = kryo.readObjectOrNull(paramsInput, String.class); request.uri = kryo.readObjectOrNull(paramsInput, String.class); request.method = kryo.readObjectOrNull(paramsInput, String.class); request.contextPath = kryo.readObjectOrNull(paramsInput, String.class); request.cookies = kryo.readObject(paramsInput, HashMap.class); } if (information.payload != null && information.payload.length > 0) { request.payload = new String(information.payload); } request.additional = information.additional; request.timestampNs = record.timestampNs; if (limit > 0 && requests.size() >= limit) { break; } requests.add(request); } } return requests; }