public static SerializedSnapshot toSerializedSnapshot(Snapshot snapshot) { return new SerializedSnapshot(snapshot.getClass().getName(), JSonMapper.toJson(snapshot)); }
public static Snapshot toSnapshot(SerializedSnapshot serializedSnapshot) { Class<?> clasz; try { clasz = AggregateCrudMapping.class.getClassLoader().loadClass(serializedSnapshot.getSnapshotType()); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } return (Snapshot)JSonMapper.fromJson(serializedSnapshot.getJson(), clasz); }
return new LoadedSnapshot( new SerializedSnapshotWithVersion( new SerializedSnapshot(rs.getString("snapshot_type"), rs.getString("snapshot_json")), Int128.fromString(rs.getString("entity_version"))), rs.getString("triggering_events")); }, entityId, updatedEntityVersion.asString(), ss.getSnapshotType(), ss.getJson(), triggeringEvents); });
public static SerializedSnapshot toSerializedSnapshot(Snapshot snapshot) { return new SerializedSnapshot(snapshot.getClass().getName(), JSonMapper.toJson(snapshot)); }
public static Snapshot toSnapshot(SerializedSnapshot serializedSnapshot) { Class<?> clasz; try { clasz = AggregateCrudMapping.class.getClassLoader().loadClass(serializedSnapshot.getSnapshotType()); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } return (Snapshot)JSonMapper.fromJson(serializedSnapshot.getJson(), clasz); }
return new LoadedSnapshot( new SerializedSnapshotWithVersion( new SerializedSnapshot(rs.getString("snapshot_type"), rs.getString("snapshot_json")), Int128.fromString(rs.getString("entity_version"))), rs.getString("triggering_events"));
@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()); }
@Test public void testUpdate() { EventTypeAndData eventTypeAndData = new EventTypeAndData(testEventType, testEventData, Optional.empty()); SaveUpdateResult saveUpdateResult = eventuateJdbcAccess.save(testAggregate, Collections.singletonList(eventTypeAndData), Optional.empty()); EntityIdAndType entityIdAndType = new EntityIdAndType(saveUpdateResult.getEntityIdVersionAndEventIds().getEntityId(), testAggregate); eventTypeAndData = new EventTypeAndData("testEventType2", "testEventData2", Optional.empty()); eventuateJdbcAccess.update(entityIdAndType, saveUpdateResult.getEntityIdVersionAndEventIds().getEntityVersion(), Collections.singletonList(eventTypeAndData), Optional.of(new AggregateCrudUpdateOptions(Optional.empty(), Optional.of(new SerializedSnapshot("", ""))))); List<Map<String, Object>> events = jdbcTemplate.queryForList(readAllEventsSql()); Assert.assertEquals(2, events.size()); List<Map<String, Object>> entities = jdbcTemplate.queryForList(readAllEntitiesSql()); Assert.assertEquals(1, entities.size()); List<Map<String, Object>> snapshots = jdbcTemplate.queryForList(readAllSnapshots()); Assert.assertEquals(1, snapshots.size()); LoadedEvents loadedEvents = eventuateJdbcAccess.find(testAggregate, saveUpdateResult.getEntityIdVersionAndEventIds().getEntityId(), Optional.empty()); Assert.assertTrue(loadedEvents.getSnapshot().isPresent()); }