public Int128Module() { addDeserializer(Int128.class, new IdDeserializer()); addSerializer(Int128.class, new IdSerializer()); }
@Override public JsonNode getSchema(SerializerProvider provider, Type typeHint, boolean isOptional) throws JsonMappingException { return createSchemaNode("string", true); } }
@Override public String toJson(PublishedEvent eventInfo) { return JSonMapper.toJson(eventInfo); }
@Override public Optional<DispatchedEvent<Event>> toDispatchedEvent(SerializedEvent se) { String eventType = se.getEventType(); Class<Event> eventClass = toEventClass(eventType); Event event = JSonMapper.fromJson(se.getEventData(), eventClass); return Optional.of(new DispatchedEvent<>(se.getEntityId(), se.getId(), event, se.getSwimLane(), se.getOffset(), se.getEventContext(), se.getMetadata() == null ? Optional.empty() : se.getMetadata().map(md -> JSonMapper.fromJson(md, Map.class)))); }
@Test public void shouldSerdeEmpty() { String s = JSonMapper.toJson(new EmptyEvent()); EmptyEvent x = JSonMapper.fromJson(s, EmptyEvent.class); assertNotNull(x); }
@Test public void shouldSaveAndLoadSnapshot() { EntityIdVersionAndEventIds eidv = eventStore.save(aggregateType, singletonList(new EventTypeAndData("MyEventType", "{}", Optional.empty())), Optional.of(new AggregateCrudSaveOptions().withEventContext(ectx))); EntityIdVersionAndEventIds updateResult = eventStore.update( new EntityIdAndType(eidv.getEntityId(), aggregateType), eidv.getEntityVersion(), singletonList(new EventTypeAndData("MyEventType", "{}", Optional.empty())), Optional.of(new AggregateCrudUpdateOptions().withSnapshot(new SerializedSnapshot("X", "Y")))); LoadedEvents findResult = eventStore.find(aggregateType, eidv.getEntityId(), Optional.of(new AggregateCrudFindOptions())); assertTrue(findResult.getSnapshot().isPresent()); assertTrue(findResult.getEvents().isEmpty()); }
public static EventWithMetadata toEventWithMetadata(EventIdTypeAndData eventIdTypeAndData) { Optional<String> metadata = eventIdTypeAndData.getMetadata(); return new EventWithMetadata(toEvent(eventIdTypeAndData), eventIdTypeAndData.getId(), metadata == null ? Optional.empty() : metadata.map(md -> JSonMapper.fromJson(md, Map.class))); }
public static Event toEvent(EventIdTypeAndData eventIdTypeAndData) { try { return JSonMapper.fromJson(eventIdTypeAndData.getEventData(), (Class<Event>) Class.forName(eventIdTypeAndData.getEventType())); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } }
private static SagaExecutionState decodeState(String currentState) { return JSonMapper.fromJson(currentState, SagaExecutionState.class); }
@Test public void findShouldCompleteWithDuplicateTriggeringEventException() throws ExecutionException, InterruptedException { EntityIdVersionAndEventIds eidv = eventStore.save(aggregateType, singletonList(new EventTypeAndData("MyEventType", "{}", Optional.empty())), Optional.of(new AggregateCrudSaveOptions().withEventContext(ectx))); shouldCompletedExceptionally(DuplicateTriggeringEventException.class, () -> eventStore.find(aggregateType, eidv.getEntityId(), Optional.of(new AggregateCrudFindOptions().withTriggeringEvent(ectx)))); }
private EventIdTypeAndData toEventWithId(EventTypeAndData eventTypeAndData) { return new EventIdTypeAndData(idGenerator.genId(), eventTypeAndData.getEventType(), eventTypeAndData.getEventData(), eventTypeAndData.getMetadata()); }
@Override public Optional<DispatchedEvent<Event>> toDispatchedEvent(SerializedEvent se) { String eventType = se.getEventType(); Class<Event> eventClass = toEventClass(eventType); Event event = JSonMapper.fromJson(se.getEventData(), eventClass); return Optional.of(new DispatchedEvent<>(se.getEntityId(), se.getId(), event, se.getSwimLane(), se.getOffset(), se.getEventContext(), se.getMetadata() == null ? Optional.empty() : se.getMetadata().map(md -> JSonMapper.fromJson(md, Map.class)))); }
public static EventWithMetadata toEventWithMetadata(EventIdTypeAndData eventIdTypeAndData) { Optional<String> metadata = eventIdTypeAndData.getMetadata(); return new EventWithMetadata(toEvent(eventIdTypeAndData), eventIdTypeAndData.getId(), metadata == null ? Optional.empty() : metadata.map(md -> JSonMapper.fromJson(md, Map.class))); }
public static Event toEvent(EventIdTypeAndData eventIdTypeAndData) { try { return JSonMapper.fromJson(eventIdTypeAndData.getEventData(), (Class<Event>) Class.forName(eventIdTypeAndData.getEventType())); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } }
private static String encodeState(SagaExecutionState state) { return JSonMapper.toJson(state); }
private static SagaExecutionState decodeState(String currentState) { return JSonMapper.fromJson(currentState, SagaExecutionState.class); }
public Int128Module() { addDeserializer(Int128.class, new IdDeserializer()); addSerializer(Int128.class, new IdSerializer()); }
@Override public JsonNode getSchema(SerializerProvider provider, Type typeHint, boolean isOptional) throws JsonMappingException { return createSchemaNode("string", true); } }
private static String encodeState(SagaExecutionState state) { return JSonMapper.toJson(state); }