@Override public void serialize( final JobFailure jobFailure, final JsonGenerator jgen, final SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeStartObject(); jgen.writeStringField("worker", jobFailure.getWorker()); jgen.writeStringField("queue", jobFailure.getQueue()); jgen.writeFieldName("payload"); ObjectMapperFactory.get().writeValue(jgen, jobFailure.getPayload()); jgen.writeStringField( "exception", (jobFailure.getException() == null) ? null : jobFailure.getException().getClass().getName()); jgen.writeStringField( "error", (jobFailure.getException() == null) ? null : jobFailure.getException().getMessage()); jgen.writeFieldName("backtrace"); ObjectMapperFactory.get() .writeValue( jgen, (jobFailure.getException() == null) ? null : JesqueUtils.createBacktrace(jobFailure.getException())); jgen.writeFieldName("failed_at"); ObjectMapperFactory.get().writeValue(jgen, jobFailure.getFailedAt()); jgen.writeFieldName("retried_at"); ObjectMapperFactory.get().writeValue(jgen, jobFailure.getRetriedAt()); jgen.writeEndObject(); }
@Override public String toJson() { String json = null; try { json = ObjectMapperFactory.getObjectMapper().writeValueAsString(this); } catch (JsonProcessingException e) { throw new RuntimeException(e); } return json; }
public JsonSerializer() { objectMapper = ObjectMapperFactory.objectMapper(); }