diff --git a/aggregate-snapshot/aggregate-snapshot-service/src/main/java/uk/gov/justice/services/eventsourcing/source/core/SnapshotAwareEventSourceFactory.java b/aggregate-snapshot/aggregate-snapshot-service/src/main/java/uk/gov/justice/services/eventsourcing/source/core/SnapshotAwareEventSourceFactory.java index 943f4a9bc..28b2d2c5e 100644 --- a/aggregate-snapshot/aggregate-snapshot-service/src/main/java/uk/gov/justice/services/eventsourcing/source/core/SnapshotAwareEventSourceFactory.java +++ b/aggregate-snapshot/aggregate-snapshot-service/src/main/java/uk/gov/justice/services/eventsourcing/source/core/SnapshotAwareEventSourceFactory.java @@ -5,7 +5,7 @@ import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepositoryFactory; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventFinder; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventFinder; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepositoryFactory; import uk.gov.justice.services.eventsourcing.source.core.snapshot.SnapshotService; @@ -33,7 +33,7 @@ public class SnapshotAwareEventSourceFactory { private SnapshotService snapshotService; @Inject - private LinkedEventFinder linkedEventFinder; + private PublishedEventFinder publishedEventFinder; public EventSource create(final String jndiDatasource, final String eventSourceName) { @@ -43,7 +43,7 @@ public EventSource create(final String jndiDatasource, final String eventSourceN final EventRepository eventRepository = eventRepositoryFactory.eventRepository( eventJdbcRepository, eventStreamJdbcRepository, - linkedEventFinder); + publishedEventFinder); final EventStreamManager eventStreamManager = eventStreamManagerFactory.eventStreamManager(eventRepository, eventSourceName); diff --git a/aggregate-snapshot/aggregate-snapshot-service/src/test/java/uk/gov/justice/services/core/aggregate/SnapshotAwareAggregateServiceIT.java b/aggregate-snapshot/aggregate-snapshot-service/src/test/java/uk/gov/justice/services/core/aggregate/SnapshotAwareAggregateServiceIT.java index 4eb429da3..526498c9e 100644 --- a/aggregate-snapshot/aggregate-snapshot-service/src/test/java/uk/gov/justice/services/core/aggregate/SnapshotAwareAggregateServiceIT.java +++ b/aggregate-snapshot/aggregate-snapshot-service/src/test/java/uk/gov/justice/services/core/aggregate/SnapshotAwareAggregateServiceIT.java @@ -45,7 +45,7 @@ import uk.gov.justice.services.eventsourcing.repository.jdbc.EventRepositoryFactory; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepositoryFactory; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventFinder; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventFinder; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepositoryFactory; import uk.gov.justice.services.eventsourcing.source.core.EventAppender; import uk.gov.justice.services.eventsourcing.source.core.EventSource; @@ -209,7 +209,7 @@ public class SnapshotAwareAggregateServiceIT { DefaultEventSourceDefinitionFactory.class, SubscriptionHelper.class, - LinkedEventFinder.class + PublishedEventFinder.class }) public WebApp war() { diff --git a/aggregate-snapshot/aggregate-snapshot-service/src/test/java/uk/gov/justice/services/eventsourcing/source/core/SnapshotAwareEventSourceFactoryTest.java b/aggregate-snapshot/aggregate-snapshot-service/src/test/java/uk/gov/justice/services/eventsourcing/source/core/SnapshotAwareEventSourceFactoryTest.java index bf89840db..b9977304a 100644 --- a/aggregate-snapshot/aggregate-snapshot-service/src/test/java/uk/gov/justice/services/eventsourcing/source/core/SnapshotAwareEventSourceFactoryTest.java +++ b/aggregate-snapshot/aggregate-snapshot-service/src/test/java/uk/gov/justice/services/eventsourcing/source/core/SnapshotAwareEventSourceFactoryTest.java @@ -12,7 +12,7 @@ import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepositoryFactory; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventFinder; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventFinder; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepositoryFactory; import uk.gov.justice.services.eventsourcing.source.core.snapshot.SnapshotService; @@ -47,7 +47,7 @@ public class SnapshotAwareEventSourceFactoryTest { private EventConverter eventConverter; @Mock - private LinkedEventFinder linkedEventFinder; + private PublishedEventFinder publishedEventFinder; @InjectMocks private SnapshotAwareEventSourceFactory snapshotAwareEventSourceFactory; @@ -69,7 +69,7 @@ public void shouldCreateSnapshotAwareEventSource() throws Exception { when(eventRepositoryFactory.eventRepository( eventJdbcRepository, eventStreamJdbcRepository, - linkedEventFinder)).thenReturn(eventRepository); + publishedEventFinder)).thenReturn(eventRepository); when(eventStreamManagerFactory.eventStreamManager(eventRepository, EVENT_SOURCE_NAME)).thenReturn(eventStreamManager); diff --git a/aggregate-snapshot/aggregate-snapshot-service/src/test/java/uk/gov/justice/services/eventsourcing/source/core/SnapshotAwareEventSourceTest.java b/aggregate-snapshot/aggregate-snapshot-service/src/test/java/uk/gov/justice/services/eventsourcing/source/core/SnapshotAwareEventSourceTest.java index 33c025aed..b6096362b 100644 --- a/aggregate-snapshot/aggregate-snapshot-service/src/test/java/uk/gov/justice/services/eventsourcing/source/core/SnapshotAwareEventSourceTest.java +++ b/aggregate-snapshot/aggregate-snapshot-service/src/test/java/uk/gov/justice/services/eventsourcing/source/core/SnapshotAwareEventSourceTest.java @@ -14,7 +14,7 @@ import uk.gov.justice.services.eventsourcing.repository.jdbc.EventStreamMetadata; import uk.gov.justice.services.eventsourcing.repository.jdbc.JdbcBasedEventRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import uk.gov.justice.services.messaging.JsonEnvelope; import java.util.List; @@ -87,11 +87,11 @@ public void shouldFindEventsByEventNumber() throws Exception { final long eventNumber = 92834L; - final LinkedEvent linkedEvent = mock(LinkedEvent.class); + final PublishedEvent publishedEvent = mock(PublishedEvent.class); final JsonEnvelope jsonEnvelope = mock(JsonEnvelope.class); - when(eventRepository.findEventsSince(eventNumber)).thenReturn(Stream.of(linkedEvent)); - when(eventConverter.envelopeOf(linkedEvent)).thenReturn(jsonEnvelope); + when(eventRepository.findEventsSince(eventNumber)).thenReturn(Stream.of(publishedEvent)); + when(eventConverter.envelopeOf(publishedEvent)).thenReturn(jsonEnvelope); final List envelopes = snapshotAwareEventSource.findEventsSince(eventNumber).collect(toList()); diff --git a/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/EventFetcher.java b/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/EventFetcher.java index 341fc9e4b..db5474c12 100644 --- a/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/EventFetcher.java +++ b/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/EventFetcher.java @@ -3,7 +3,7 @@ import static java.lang.String.format; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import uk.gov.justice.subscription.registry.SubscriptionDataSourceProvider; import java.sql.Connection; @@ -38,17 +38,17 @@ public Optional getEvent(final UUID id) { } /** - * Method that gets an LinkedEvent from the linked_event table by id. + * Method that gets an PublishedEvent from the published_event table by id. * * @return Optional */ - public Optional getLinkedEvent(final UUID id) { + public Optional getPublishedEvent(final UUID id) { final DataSource eventStoreDataSource = subscriptionDataSourceProvider.getEventStoreDataSource(); try (final Connection connection = eventStoreDataSource.getConnection()) { - return eventFetcherRepository.getLinkedEvent(id, connection); + return eventFetcherRepository.getPublishedEvent(id, connection); } catch (final SQLException e) { - throw new EventFetchingException(format("Failed to get LinkedEvent with id '%s'", id), e); + throw new EventFetchingException(format("Failed to get PublishedEvent with id '%s'", id), e); } } } diff --git a/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/EventFetcherRepository.java b/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/EventFetcherRepository.java index 59c31b5b4..f91e4fed0 100644 --- a/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/EventFetcherRepository.java +++ b/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/EventFetcherRepository.java @@ -6,7 +6,7 @@ import static uk.gov.justice.services.common.converter.ZonedDateTimes.fromSqlTimestamp; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import java.sql.Connection; import java.sql.PreparedStatement; @@ -25,7 +25,7 @@ public class EventFetcherRepository { private static final String SELECT_FROM_LINKED_EVENT_QUERY = "SELECT stream_id, position_in_stream, name, payload, metadata, date_created, event_number, previous_event_number " + - "FROM linked_event " + + "FROM published_event " + "WHERE id = ?"; /** @@ -65,7 +65,7 @@ public Optional getEvent(final UUID id, final Connection connection) thro return empty(); } - public Optional getLinkedEvent(final UUID id, final Connection connection) throws SQLException { + public Optional getPublishedEvent(final UUID id, final Connection connection) throws SQLException { try (final PreparedStatement preparedStatement = connection.prepareStatement(SELECT_FROM_LINKED_EVENT_QUERY)) { @@ -83,7 +83,7 @@ public Optional getLinkedEvent(final UUID id, final Connection conn final long eventNumber = resultSet.getLong("event_number"); final long previousEventNumber = resultSet.getLong("previous_event_number"); - return of(new LinkedEvent( + return of(new PublishedEvent( id, streamId, positionInStream, diff --git a/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/prepublish/EventPrePublisher.java b/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/prepublish/EventPrePublisher.java index 8ecf952f6..ee58690f5 100644 --- a/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/prepublish/EventPrePublisher.java +++ b/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/prepublish/EventPrePublisher.java @@ -7,8 +7,8 @@ import uk.gov.justice.services.eventsourcing.PublishQueueException; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventJdbcRepository; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventJdbcRepository; import uk.gov.justice.services.messaging.Metadata; import uk.gov.justice.subscription.registry.SubscriptionDataSourceProvider; @@ -31,7 +31,7 @@ public class EventPrePublisher { private PrePublishRepository prePublishRepository; @Inject - private LinkedEventJdbcRepository linkedEventJdbcRepository; + private PublishedEventJdbcRepository publishedEventJdbcRepository; @Inject private UtcClock clock; @@ -40,7 +40,7 @@ public class EventPrePublisher { private EventConverter eventConverter; @Inject - private LinkedEventFactory linkedEventFactory; + private PublishedEventFactory publishedEventFactory; @Transactional(MANDATORY) public void prePublish(final Event event) { @@ -56,13 +56,13 @@ public void prePublish(final Event event) { previousEventNumber, eventNumber); - final LinkedEvent linkedEvent = linkedEventFactory.create( + final PublishedEvent publishedEvent = publishedEventFactory.create( event, updatedMetadata, eventNumber, previousEventNumber); - linkedEventJdbcRepository.insertLinkedEvent(linkedEvent, connection); + publishedEventJdbcRepository.insertPublishedEvent(publishedEvent, connection); prePublishRepository.addToPublishQueueTable(eventId, clock.now(), connection); } catch (final SQLException e) { diff --git a/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/prepublish/PrePublishRepository.java b/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/prepublish/PrePublishRepository.java index 3282d560d..50183e10e 100644 --- a/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/prepublish/PrePublishRepository.java +++ b/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/prepublish/PrePublishRepository.java @@ -17,11 +17,6 @@ public class PrePublishRepository { private static final String SELECT_EVENT_NUMBER_SQL = "SELECT event_number FROM event_log WHERE id = ?"; private static final String SELECT_PREVIOUS_EVENT_NUMBER_SQL = "SELECT event_number FROM event_log, event_stream WHERE event_number < ? and event_log.stream_id = event_stream.stream_id and event_stream.active = true ORDER BY event_number DESC LIMIT 1"; private static final String INSERT_INTO_PUBLISH_QUEUE_SQL = "INSERT INTO publish_queue (event_log_id, date_queued) VALUES (?, ?)"; - private static final String INSERT_INTO_LINKED_EVENT_SQL = "INSERT into linked_event (" + - "id, stream_id, position_in_stream, name, payload, metadata, date_created, event_number, previous_event_number) " + - "VALUES " + - "(?, ?, ?, ?, ?, ?, ?, ?, ?)"; - public long getEventNumber(final UUID eventId, final Connection connection) throws SQLException { diff --git a/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/prepublish/LinkedEventFactory.java b/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/prepublish/PublishedEventFactory.java similarity index 85% rename from event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/prepublish/LinkedEventFactory.java rename to event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/prepublish/PublishedEventFactory.java index bb1f5d3a1..d02cb46ee 100644 --- a/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/prepublish/LinkedEventFactory.java +++ b/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/prepublish/PublishedEventFactory.java @@ -1,18 +1,18 @@ package uk.gov.justice.services.eventsourcing.prepublish; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import uk.gov.justice.services.messaging.Metadata; -public class LinkedEventFactory { +public class PublishedEventFactory { - public LinkedEvent create( + public PublishedEvent create( final Event event, final Metadata updatedMetadata, final long eventNumber, final Long previousEventNumber) { - return new LinkedEvent( + return new PublishedEvent( event.getId(), event.getStreamId(), event.getSequenceId(), diff --git a/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/publishing/LinkedEventDeQueuerAndPublisher.java b/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/publishing/PublishedEventDeQueuerAndPublisher.java similarity index 78% rename from event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/publishing/LinkedEventDeQueuerAndPublisher.java rename to event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/publishing/PublishedEventDeQueuerAndPublisher.java index a70122fdb..04ab2d142 100644 --- a/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/publishing/LinkedEventDeQueuerAndPublisher.java +++ b/event-sourcing/event-publisher/event-publisher-process/src/main/java/uk/gov/justice/services/eventsourcing/publishing/PublishedEventDeQueuerAndPublisher.java @@ -9,7 +9,7 @@ import uk.gov.justice.services.eventsourcing.EventFetchingException; import uk.gov.justice.services.eventsourcing.publisher.jms.EventPublisher; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import uk.gov.justice.services.messaging.JsonEnvelope; import java.util.Optional; @@ -22,19 +22,19 @@ * The EventDeQueuerAndPublisher class provides a method that returns an event from the EventDeQueuer * and publishes the event. */ -public class LinkedEventDeQueuerAndPublisher { +public class PublishedEventDeQueuerAndPublisher { @Inject - EventDeQueuer eventDeQueuer; + private EventDeQueuer eventDeQueuer; @Inject - EventPublisher eventPublisher; + private EventPublisher eventPublisher; @Inject - EventConverter eventConverter; + private EventConverter eventConverter; @Inject - EventFetcher eventFetcher; + private EventFetcher eventFetcher; /** * Method that gets the next event to process from the EventDeQueuer, @@ -48,15 +48,15 @@ public boolean deQueueAndPublish() { final Optional eventId = eventDeQueuer.popNextEventId(PUBLISH_TABLE_NAME); if (eventId.isPresent()) { - final Optional linkedEvent = eventFetcher.getLinkedEvent(eventId.get()); + final Optional publishedEvent = eventFetcher.getPublishedEvent(eventId.get()); - if(linkedEvent.isPresent()) { - final JsonEnvelope jsonEnvelope = eventConverter.envelopeOf(linkedEvent.get()); + if(publishedEvent.isPresent()) { + final JsonEnvelope jsonEnvelope = eventConverter.envelopeOf(publishedEvent.get()); eventPublisher.publish(jsonEnvelope); return true; } else { - throw new EventFetchingException(format("Failed to find LinkedEvent with id '%s'", eventId.get())); + throw new EventFetchingException(format("Failed to find PublishedEvent with id '%s'", eventId.get())); } } diff --git a/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/EventFetcherRepositoryIT.java b/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/EventFetcherRepositoryIT.java index c88a7602c..62bc06c6e 100644 --- a/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/EventFetcherRepositoryIT.java +++ b/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/EventFetcherRepositoryIT.java @@ -8,7 +8,7 @@ import uk.gov.justice.services.eventsourcing.publishing.helpers.EventFactory; import uk.gov.justice.services.eventsourcing.publishing.helpers.TestEventInserter; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import uk.gov.justice.services.test.utils.core.eventsource.EventStoreInitializer; import uk.gov.justice.services.test.utils.persistence.FrameworkTestDataSourceFactory; @@ -63,17 +63,17 @@ public void shouldReturnEmptyIfNoEventFound() throws Exception { } @Test - public void shouldFetchLinkedEventById() throws Exception { + public void shouldFetchPublishedEventById() throws Exception { - final LinkedEvent linkedEvent = eventFactory.createLinkedEvent(randomUUID(),"example.linked-event", 1L, 1L, 0L); + final PublishedEvent publishedEvent = eventFactory.createPublishedEvent(randomUUID(),"example.published-event", 1L, 1L, 0L); - testEventInserter.insertIntoLinkedEvent(linkedEvent); + testEventInserter.insertIntoPublishedEvent(publishedEvent); try (final Connection connection = dataSource.getConnection()) { - final Optional linkedEventOptional = eventFetcherRepository.getLinkedEvent(linkedEvent.getId(), connection); + final Optional publishedEventOptional = eventFetcherRepository.getPublishedEvent(publishedEvent.getId(), connection); - if (linkedEventOptional.isPresent()) { - assertThat(linkedEventOptional.get(), is(linkedEvent)); + if (publishedEventOptional.isPresent()) { + assertThat(publishedEventOptional.get(), is(publishedEvent)); } else { fail(); } @@ -81,12 +81,12 @@ public void shouldFetchLinkedEventById() throws Exception { } @Test - public void shouldReturnEmptyIfNoLinkedEventFound() throws Exception { + public void shouldReturnEmptyIfNoPublishedEventFound() throws Exception { final UUID unknownId = randomUUID(); try (final Connection connection = dataSource.getConnection()) { - assertThat(eventFetcherRepository.getLinkedEvent(unknownId, connection).isPresent(), is(false)); + assertThat(eventFetcherRepository.getPublishedEvent(unknownId, connection).isPresent(), is(false)); } } } diff --git a/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/EventFetcherTest.java b/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/EventFetcherTest.java index 179e8c9a6..036c42e6d 100644 --- a/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/EventFetcherTest.java +++ b/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/EventFetcherTest.java @@ -9,7 +9,7 @@ import static org.mockito.Mockito.when; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import uk.gov.justice.subscription.registry.SubscriptionDataSourceProvider; import java.sql.Connection; @@ -79,24 +79,24 @@ public void shouldThowExceptionIfGettingAnEventFails() throws Exception { } @Test - public void shouldRetrieveLinkedEventFromTheRepository() throws Exception { + public void shouldRetrievePublishedEventFromTheRepository() throws Exception { final UUID id = randomUUID(); final DataSource eventStoreDataSource = mock(DataSource.class); final Connection connection = mock(Connection.class); - final Optional linkedEvent = of(mock(LinkedEvent.class)); + final Optional publishedEvent = of(mock(PublishedEvent.class)); when(subscriptionDataSourceProvider.getEventStoreDataSource()).thenReturn(eventStoreDataSource); when(eventStoreDataSource.getConnection()).thenReturn(connection); - when(eventFetcherRepository.getLinkedEvent(id, connection)).thenReturn(linkedEvent); + when(eventFetcherRepository.getPublishedEvent(id, connection)).thenReturn(publishedEvent); - assertThat(eventFetcher.getLinkedEvent(id), is(linkedEvent)); + assertThat(eventFetcher.getPublishedEvent(id), is(publishedEvent)); } @Test - public void shouldThowExceptionIfGettingLInkedEventFails() throws Exception { + public void shouldThowExceptionIfGettingPublishedEventFails() throws Exception { final SQLException sqlException = new SQLException("Ooops"); @@ -108,14 +108,14 @@ public void shouldThowExceptionIfGettingLInkedEventFails() throws Exception { when(subscriptionDataSourceProvider.getEventStoreDataSource()).thenReturn(eventStoreDataSource); when(eventStoreDataSource.getConnection()).thenReturn(connection); - when(eventFetcherRepository.getLinkedEvent(id, connection)).thenThrow(sqlException); + when(eventFetcherRepository.getPublishedEvent(id, connection)).thenThrow(sqlException); try { - eventFetcher.getLinkedEvent(id); + eventFetcher.getPublishedEvent(id); fail(); } catch (final EventFetchingException expected) { assertThat(expected.getCause(), is(sqlException)); - assertThat(expected.getMessage(), is("Failed to get LinkedEvent with id '" + id + "'")); + assertThat(expected.getMessage(), is("Failed to get PublishedEvent with id '" + id + "'")); } } } diff --git a/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/EventPrePublisherTest.java b/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/EventPrePublisherTest.java index 4ff4ad074..6462a9769 100644 --- a/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/EventPrePublisherTest.java +++ b/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/EventPrePublisherTest.java @@ -14,8 +14,8 @@ import uk.gov.justice.services.eventsourcing.PublishQueueException; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventJdbcRepository; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventJdbcRepository; import uk.gov.justice.services.messaging.Metadata; import uk.gov.justice.subscription.registry.SubscriptionDataSourceProvider; @@ -46,7 +46,7 @@ public class EventPrePublisherTest { private PrePublishRepository prePublishRepository; @Mock - private LinkedEventJdbcRepository linkedEventJdbcRepository; + private PublishedEventJdbcRepository publishedEventJdbcRepository; @Mock private UtcClock clock; @@ -55,7 +55,7 @@ public class EventPrePublisherTest { private EventConverter eventConverter; @Mock - private LinkedEventFactory linkedEventFactory; + private PublishedEventFactory publishedEventFactory; @InjectMocks private EventPrePublisher eventPrePublisher; @@ -76,7 +76,7 @@ public void shouldAddSequenceNumberIntoTheEventMetadataAndSetItForPublishing() t final Connection connection = mock(Connection.class); final Event event = mock(Event.class); - final LinkedEvent linkedEvent = mock(LinkedEvent.class); + final PublishedEvent publishedEvent = mock(PublishedEvent.class); when(event.getId()).thenReturn(eventId); when(subscriptionDataSourceProvider.getEventStoreDataSource().getConnection()).thenReturn(connection); @@ -89,15 +89,15 @@ public void shouldAddSequenceNumberIntoTheEventMetadataAndSetItForPublishing() t originalMetadata, previousEventNumber, eventNumber)).thenReturn(updatedMetadata); - when(linkedEventFactory.create(event, updatedMetadata, eventNumber, previousEventNumber)).thenReturn(linkedEvent); + when(publishedEventFactory.create(event, updatedMetadata, eventNumber, previousEventNumber)).thenReturn(publishedEvent); when(updatedMetadata.asJsonObject()).thenReturn(metadataJsonObject); when(metadataJsonObject.toString()).thenReturn(updatedMetadataString); eventPrePublisher.prePublish(event); - final InOrder inOrder = inOrder(linkedEventJdbcRepository, prePublishRepository); - inOrder.verify(linkedEventJdbcRepository).insertLinkedEvent(linkedEvent, connection); + final InOrder inOrder = inOrder(publishedEventJdbcRepository, prePublishRepository); + inOrder.verify(publishedEventJdbcRepository).insertPublishedEvent(publishedEvent, connection); inOrder.verify(prePublishRepository).addToPublishQueueTable(eventId, now, connection); } diff --git a/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/LinkedEventFactoryTest.java b/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/PublishedEventFactoryTest.java similarity index 67% rename from event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/LinkedEventFactoryTest.java rename to event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/PublishedEventFactoryTest.java index 5a75f58fb..780fc22bb 100644 --- a/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/LinkedEventFactoryTest.java +++ b/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/PublishedEventFactoryTest.java @@ -7,7 +7,7 @@ import uk.gov.justice.services.common.util.UtcClock; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import uk.gov.justice.services.messaging.Metadata; import java.time.ZonedDateTime; @@ -20,15 +20,15 @@ @RunWith(MockitoJUnitRunner.class) -public class LinkedEventFactoryTest { +public class PublishedEventFactoryTest { @InjectMocks - private LinkedEventFactory linkedEventFactory; + private PublishedEventFactory publishedEventFactory; @SuppressWarnings("OptionalGetWithoutIsPresent") @Test - public void shouldCreateALinkedEventFromAnEvent() throws Exception { + public void shouldCreateAPublishedEventFromAnEvent() throws Exception { final long eventNumber = 923874L; final long previousEventNumber = 923873L; @@ -59,20 +59,20 @@ public void shouldCreateALinkedEventFromAnEvent() throws Exception { ); - final LinkedEvent linkedEvent = linkedEventFactory.create( + final PublishedEvent publishedEvent = publishedEventFactory.create( event, updatedMetadata, eventNumber, previousEventNumber); - assertThat(linkedEvent.getId(), is(eventId)); - assertThat(linkedEvent.getStreamId(), is(streamId)); - assertThat(linkedEvent.getSequenceId(), is(sequenceId)); - assertThat(linkedEvent.getName(), is(name)); - assertThat(linkedEvent.getPayload(), is(payload)); - assertThat(linkedEvent.getMetadata(), is(updatedMetadata.asJsonObject().toString())); - assertThat(linkedEvent.getCreatedAt(), is(createdAt)); - assertThat(linkedEvent.getEventNumber().get(), is(eventNumber)); - assertThat(linkedEvent.getPreviousEventNumber(), is(previousEventNumber)); + assertThat(publishedEvent.getId(), is(eventId)); + assertThat(publishedEvent.getStreamId(), is(streamId)); + assertThat(publishedEvent.getSequenceId(), is(sequenceId)); + assertThat(publishedEvent.getName(), is(name)); + assertThat(publishedEvent.getPayload(), is(payload)); + assertThat(publishedEvent.getMetadata(), is(updatedMetadata.asJsonObject().toString())); + assertThat(publishedEvent.getCreatedAt(), is(createdAt)); + assertThat(publishedEvent.getEventNumber().get(), is(eventNumber)); + assertThat(publishedEvent.getPreviousEventNumber(), is(previousEventNumber)); } } diff --git a/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/publishing/LinkedEventDeQueuerAndPublisherTest.java b/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/publishing/PublishedEventDeQueuerAndPublisherTest.java similarity index 68% rename from event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/publishing/LinkedEventDeQueuerAndPublisherTest.java rename to event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/publishing/PublishedEventDeQueuerAndPublisherTest.java index de0ed0d12..c9df901e3 100644 --- a/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/publishing/LinkedEventDeQueuerAndPublisherTest.java +++ b/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/publishing/PublishedEventDeQueuerAndPublisherTest.java @@ -16,7 +16,7 @@ import uk.gov.justice.services.eventsourcing.EventFetchingException; import uk.gov.justice.services.eventsourcing.publisher.jms.EventPublisher; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import uk.gov.justice.services.messaging.JsonEnvelope; import java.util.UUID; @@ -28,7 +28,7 @@ import org.mockito.runners.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) -public class LinkedEventDeQueuerAndPublisherTest { +public class PublishedEventDeQueuerAndPublisherTest { @Mock private EventDeQueuer eventDeQueuer; @@ -43,52 +43,52 @@ public class LinkedEventDeQueuerAndPublisherTest { private EventFetcher eventFetcher; @InjectMocks - private LinkedEventDeQueuerAndPublisher linkedEventDeQueuerAndPublisher; + private PublishedEventDeQueuerAndPublisher publishedEventDeQueuerAndPublisher; @Test - public void shouldPublishLinkedEventIfFound() throws Exception { + public void shouldPublishPublishedEventIfFound() throws Exception { final UUID eventId = UUID.randomUUID(); final String eventName = "event-name"; - final LinkedEvent linkedEvent = mock(LinkedEvent.class); + final PublishedEvent publishedEvent = mock(PublishedEvent.class); final JsonEnvelope jsonEnvelope = mock(JsonEnvelope.class); when(eventDeQueuer.popNextEventId(PUBLISH_TABLE_NAME)).thenReturn(of(eventId)); - when(eventFetcher.getLinkedEvent(eventId)).thenReturn(of(linkedEvent)); - when(eventConverter.envelopeOf(linkedEvent)).thenReturn(jsonEnvelope); - when(linkedEvent.getName()).thenReturn(eventName); + when(eventFetcher.getPublishedEvent(eventId)).thenReturn(of(publishedEvent)); + when(eventConverter.envelopeOf(publishedEvent)).thenReturn(jsonEnvelope); + when(publishedEvent.getName()).thenReturn(eventName); - assertThat(linkedEventDeQueuerAndPublisher.deQueueAndPublish(), is(true)); + assertThat(publishedEventDeQueuerAndPublisher.deQueueAndPublish(), is(true)); verify(eventPublisher).publish(jsonEnvelope); } @Test - public void shouldNotPublishIfNoLinkedEventsAreFoundOnQueue() throws Exception { + public void shouldNotPublishIfNoPublishedEventsAreFoundOnQueue() throws Exception { when(eventDeQueuer.popNextEventId(PUBLISH_TABLE_NAME)).thenReturn(empty()); - assertThat(linkedEventDeQueuerAndPublisher.deQueueAndPublish(), is(false)); + assertThat(publishedEventDeQueuerAndPublisher.deQueueAndPublish(), is(false)); verifyZeroInteractions(eventConverter); verifyZeroInteractions(eventPublisher); } @Test - public void shouldThrowExceptionIfNoLinkedEventFoundInLinkedEventTable() throws Exception { + public void shouldThrowExceptionIfNoPublishedEventFoundInPublishedEventTable() throws Exception { final UUID eventId = UUID.randomUUID(); when(eventDeQueuer.popNextEventId(PUBLISH_TABLE_NAME)).thenReturn(of(eventId)); - when(eventFetcher.getLinkedEvent(eventId)).thenReturn(empty()); + when(eventFetcher.getPublishedEvent(eventId)).thenReturn(empty()); try { - linkedEventDeQueuerAndPublisher.deQueueAndPublish(); + publishedEventDeQueuerAndPublisher.deQueueAndPublish(); fail(); } catch (final EventFetchingException expected) { - assertThat(expected.getMessage(), is("Failed to find LinkedEvent with id '" + eventId + "'")); + assertThat(expected.getMessage(), is("Failed to find PublishedEvent with id '" + eventId + "'")); } verifyZeroInteractions(eventConverter); diff --git a/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/publishing/helpers/EventFactory.java b/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/publishing/helpers/EventFactory.java index 17d31eec1..901d6a059 100644 --- a/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/publishing/helpers/EventFactory.java +++ b/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/publishing/helpers/EventFactory.java @@ -8,7 +8,7 @@ import uk.gov.justice.services.common.util.UtcClock; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import uk.gov.justice.services.messaging.JsonEnvelope; import java.time.ZonedDateTime; @@ -102,7 +102,7 @@ public Event createEvent(final UUID streamId, final UUID eventId, final String n of(eventNumber)); } - public LinkedEvent createLinkedEvent(final UUID streamId, final String name, final long sequenceId, final long eventNumber, final long previousEventNumber) { + public PublishedEvent createPublishedEvent(final UUID streamId, final String name, final long sequenceId, final long eventNumber, final long previousEventNumber) { final UUID eventId = randomUUID(); final String source = "event source"; final JsonEnvelope envelope = envelopeFrom( @@ -119,7 +119,7 @@ public LinkedEvent createLinkedEvent(final UUID streamId, final String name, fin final ZonedDateTime createdAt = clock.now(); - return new LinkedEvent( + return new PublishedEvent( eventId, streamId, sequenceId, diff --git a/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/publishing/helpers/TestEventInserter.java b/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/publishing/helpers/TestEventInserter.java index 0ddbe741b..266e76927 100644 --- a/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/publishing/helpers/TestEventInserter.java +++ b/event-sourcing/event-publisher/event-publisher-process/src/test/java/uk/gov/justice/services/eventsourcing/publishing/helpers/TestEventInserter.java @@ -3,7 +3,7 @@ import static uk.gov.justice.services.common.converter.ZonedDateTimes.toSqlTimestamp; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import uk.gov.justice.services.messaging.JsonEnvelope; import uk.gov.justice.services.test.utils.persistence.FrameworkTestDataSourceFactory; @@ -24,8 +24,8 @@ public class TestEventInserter { "id, stream_id, position_in_stream, name, payload, metadata, date_created" + ") VALUES (?, ?, ?, ?, ?, ?, ?)"; - private static final String INSERT_INTO_LINKED_EVENT_QUERY = - "INSERT INTO linked_event (" + + private static final String INSERT_INTO_PUBLISHED_EVENT_QUERY = + "INSERT INTO published_event (" + "id, stream_id, position_in_stream, name, payload, metadata, date_created, event_number, previous_event_number" + ") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; @@ -86,20 +86,20 @@ public void insertIntoEventLog( } } - public void insertIntoLinkedEvent(final LinkedEvent linkedEvent) throws SQLException { + public void insertIntoPublishedEvent(final PublishedEvent publishedEvent) throws SQLException { try (final Connection connection = eventStoreDataSource.getConnection()) { - try (final PreparedStatement preparedStatement = connection.prepareStatement(INSERT_INTO_LINKED_EVENT_QUERY)) { - preparedStatement.setObject(1, linkedEvent.getId()); - preparedStatement.setObject(2, linkedEvent.getStreamId()); - preparedStatement.setLong(3, linkedEvent.getSequenceId()); - preparedStatement.setString(4, linkedEvent.getName()); - preparedStatement.setString(5, linkedEvent.getPayload()); - preparedStatement.setString(6, linkedEvent.getMetadata()); - preparedStatement.setObject(7, toSqlTimestamp(linkedEvent.getCreatedAt())); - preparedStatement.setLong(8, linkedEvent.getEventNumber().get()); - preparedStatement.setLong(9, linkedEvent.getPreviousEventNumber()); + try (final PreparedStatement preparedStatement = connection.prepareStatement(INSERT_INTO_PUBLISHED_EVENT_QUERY)) { + preparedStatement.setObject(1, publishedEvent.getId()); + preparedStatement.setObject(2, publishedEvent.getStreamId()); + preparedStatement.setLong(3, publishedEvent.getSequenceId()); + preparedStatement.setString(4, publishedEvent.getName()); + preparedStatement.setString(5, publishedEvent.getPayload()); + preparedStatement.setString(6, publishedEvent.getMetadata()); + preparedStatement.setObject(7, toSqlTimestamp(publishedEvent.getCreatedAt())); + preparedStatement.setLong(8, publishedEvent.getEventNumber().get()); + preparedStatement.setLong(9, publishedEvent.getPreviousEventNumber()); preparedStatement.executeUpdate(); } diff --git a/event-sourcing/event-publisher/event-publisher-timer/src/main/java/uk/gov/justice/services/eventsourcing/publishing/PublisherTimerBean.java b/event-sourcing/event-publisher/event-publisher-timer/src/main/java/uk/gov/justice/services/eventsourcing/publishing/PublisherTimerBean.java index 981ee2b69..dbb9f1fe5 100644 --- a/event-sourcing/event-publisher/event-publisher-timer/src/main/java/uk/gov/justice/services/eventsourcing/publishing/PublisherTimerBean.java +++ b/event-sourcing/event-publisher/event-publisher-timer/src/main/java/uk/gov/justice/services/eventsourcing/publishing/PublisherTimerBean.java @@ -20,22 +20,22 @@ public class PublisherTimerBean { private static final String TIMER_JOB_NAME = "event-store.de-queue-events-and-publish.job"; @Resource - TimerService timerService; + private TimerService timerService; @Inject - PublisherTimerConfig publisherTimerConfig; + private PublisherTimerConfig publisherTimerConfig; @Inject - TimerServiceManager timerServiceManager; + private TimerServiceManager timerServiceManager; @Inject - TimerCanceler timerCanceler; + private TimerCanceler timerCanceler; @Inject - LinkedEventDeQueuerAndPublisher linkedEventDeQueuerAndPublisher; + private PublishedEventDeQueuerAndPublisher publishedEventDeQueuerAndPublisher; @Inject - ShutteringFlagProducerBean shutteringFlagProducerBean; + private ShutteringFlagProducerBean shutteringFlagProducerBean; @PostConstruct public void startTimerService() { @@ -52,7 +52,7 @@ public void doDeQueueAndPublish() { if (shutteringFlagProducerBean.isDoShuttering()) timerServiceManager.cancelOverlappingTimers(TIMER_JOB_NAME, THRESHOLD, timerService); else{ - while (linkedEventDeQueuerAndPublisher.deQueueAndPublish()) { + while (publishedEventDeQueuerAndPublisher.deQueueAndPublish()) { timerServiceManager.cancelOverlappingTimers(TIMER_JOB_NAME, THRESHOLD, timerService); } } diff --git a/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/EventPublishIT.java b/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/EventPublishIT.java index 80ba6d522..b3401515f 100644 --- a/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/EventPublishIT.java +++ b/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/EventPublishIT.java @@ -25,12 +25,12 @@ import uk.gov.justice.services.eventsourcing.prepublish.helpers.TestGlobalValueProducer; import uk.gov.justice.services.eventsourcing.publisher.jms.EventDestinationResolver; import uk.gov.justice.services.eventsourcing.publisher.jms.EventPublisher; -import uk.gov.justice.services.eventsourcing.publishing.LinkedEventDeQueuerAndPublisher; +import uk.gov.justice.services.eventsourcing.publishing.PublishedEventDeQueuerAndPublisher; import uk.gov.justice.services.eventsourcing.publishing.PublisherTimerBean; import uk.gov.justice.services.eventsourcing.publishing.PublisherTimerConfig; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventJdbcRepository; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventJdbcRepository; import uk.gov.justice.services.eventsourcing.util.jee.timer.TimerCanceler; import uk.gov.justice.services.eventsourcing.util.jee.timer.TimerConfigFactory; import uk.gov.justice.services.eventsourcing.util.jee.timer.TimerServiceManager; @@ -106,7 +106,7 @@ public void initializeDatabase() throws Exception { @Module @Classes(cdi = true, value = { - LinkedEventDeQueuerAndPublisher.class, + PublishedEventDeQueuerAndPublisher.class, EventDeQueuer.class, EventPublisher.class, DummyEventPublisher.class, @@ -148,13 +148,13 @@ public void initializeDatabase() throws Exception { UtcClock.class, EventFetcher.class, EventFetcherRepository.class, - LinkedEventFactory.class, + PublishedEventFactory.class, PublisherTimerBean.class, PublisherTimerConfig.class, PrePublishTimerBean.class, PrePublishTimerConfig.class, SubscriptionHelper.class, - LinkedEventJdbcRepository.class, + PublishedEventJdbcRepository.class, ShutteringFlagProducerBean.class }) diff --git a/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/helpers/EventFactory.java b/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/helpers/EventFactory.java index cb2418f90..7237547d5 100644 --- a/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/helpers/EventFactory.java +++ b/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/helpers/EventFactory.java @@ -8,7 +8,7 @@ import uk.gov.justice.services.common.util.UtcClock; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import uk.gov.justice.services.messaging.JsonEnvelope; import java.time.ZonedDateTime; @@ -45,7 +45,7 @@ public Event createEvent(final UUID streamId, final UUID eventId, final String n of(eventNumber)); } - public LinkedEvent createLinkedEvent(final UUID streamId, final String name, final long sequenceId, final long eventNumber, final long previousEventNumber) { + public PublishedEvent createPublishedEvent(final UUID streamId, final String name, final long sequenceId, final long eventNumber, final long previousEventNumber) { final UUID eventId = randomUUID(); final String source = "event source"; final JsonEnvelope envelope = envelopeFrom( @@ -62,7 +62,7 @@ public LinkedEvent createLinkedEvent(final UUID streamId, final String name, fin final ZonedDateTime createdAt = clock.now(); - return new LinkedEvent( + return new PublishedEvent( eventId, streamId, sequenceId, diff --git a/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/helpers/TestEventInserter.java b/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/helpers/TestEventInserter.java index fd2fa9120..42a78f4d5 100644 --- a/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/helpers/TestEventInserter.java +++ b/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/prepublish/helpers/TestEventInserter.java @@ -3,7 +3,7 @@ import static uk.gov.justice.services.common.converter.ZonedDateTimes.toSqlTimestamp; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import uk.gov.justice.services.messaging.JsonEnvelope; import uk.gov.justice.services.test.utils.persistence.FrameworkTestDataSourceFactory; @@ -24,7 +24,7 @@ public class TestEventInserter { "id, stream_id, position_in_stream, name, payload, metadata, date_created" + ") VALUES (?, ?, ?, ?, ?, ?, ?)"; - private static final String INSERT_INTO_LINKED_EVENT_QUERY = + private static final String INSERT_INTO_PUBLISHED_EVENT_QUERY = "INSERT INTO linked_event (" + "id, stream_id, position_in_stream, name, payload, metadata, date_created, event_number, previous_event_number" + ") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; @@ -86,20 +86,20 @@ public void insertIntoEventLog( } } - public void insertIntoLinkedEvent(final LinkedEvent linkedEvent) throws SQLException { + public void insertIntoPublishedEvent(final PublishedEvent publishedEvent) throws SQLException { try (final Connection connection = eventStoreDataSource.getConnection()) { - try (final PreparedStatement preparedStatement = connection.prepareStatement(INSERT_INTO_LINKED_EVENT_QUERY)) { - preparedStatement.setObject(1, linkedEvent.getId()); - preparedStatement.setObject(2, linkedEvent.getStreamId()); - preparedStatement.setLong(3, linkedEvent.getSequenceId()); - preparedStatement.setString(4, linkedEvent.getName()); - preparedStatement.setString(5, linkedEvent.getPayload()); - preparedStatement.setString(6, linkedEvent.getMetadata()); - preparedStatement.setObject(7, toSqlTimestamp(linkedEvent.getCreatedAt())); - preparedStatement.setLong(8, linkedEvent.getEventNumber().get()); - preparedStatement.setLong(9, linkedEvent.getPreviousEventNumber()); + try (final PreparedStatement preparedStatement = connection.prepareStatement(INSERT_INTO_PUBLISHED_EVENT_QUERY)) { + preparedStatement.setObject(1, publishedEvent.getId()); + preparedStatement.setObject(2, publishedEvent.getStreamId()); + preparedStatement.setLong(3, publishedEvent.getSequenceId()); + preparedStatement.setString(4, publishedEvent.getName()); + preparedStatement.setString(5, publishedEvent.getPayload()); + preparedStatement.setString(6, publishedEvent.getMetadata()); + preparedStatement.setObject(7, toSqlTimestamp(publishedEvent.getCreatedAt())); + preparedStatement.setLong(8, publishedEvent.getEventNumber().get()); + preparedStatement.setLong(9, publishedEvent.getPreviousEventNumber()); preparedStatement.executeUpdate(); } diff --git a/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/publishing/PublisherTimerBeanTest.java b/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/publishing/PublisherTimerBeanTest.java index cab835004..9b2b37e8f 100644 --- a/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/publishing/PublisherTimerBeanTest.java +++ b/event-sourcing/event-publisher/event-publisher-timer/src/test/java/uk/gov/justice/services/eventsourcing/publishing/PublisherTimerBeanTest.java @@ -26,7 +26,7 @@ public class PublisherTimerBeanTest { private PublisherTimerConfig publisherTimerConfig; @Mock - private LinkedEventDeQueuerAndPublisher linkedEventDeQueuerAndPublisher; + private PublishedEventDeQueuerAndPublisher publishedEventDeQueuerAndPublisher; @Mock private TimerServiceManager timerServiceManager; @@ -62,12 +62,12 @@ public void shouldSetUpTheTimerServiceOnPostConstruct() throws Exception { @Test public void shouldRunPublishUntilAllEventsArePublished() throws Exception { - when(linkedEventDeQueuerAndPublisher.deQueueAndPublish()).thenReturn(true, true, false); + when(publishedEventDeQueuerAndPublisher.deQueueAndPublish()).thenReturn(true, true, false); when(shutteringFlagProducerBean.isDoShuttering()).thenReturn(false); publisherTimerBean.doDeQueueAndPublish(); - verify(linkedEventDeQueuerAndPublisher, times(3)).deQueueAndPublish(); + verify(publishedEventDeQueuerAndPublisher, times(3)).deQueueAndPublish(); verify(timerServiceManager, times(2)).cancelOverlappingTimers("event-store.de-queue-events-and-publish.job", 10, timerService); } } diff --git a/event-sourcing/event-publisher/linked-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventSQLException.java b/event-sourcing/event-publisher/linked-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventSQLException.java deleted file mode 100644 index 75a29268f..000000000 --- a/event-sourcing/event-publisher/linked-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventSQLException.java +++ /dev/null @@ -1,12 +0,0 @@ -package uk.gov.justice.services.eventsourcing.linkedevent; - -public class LinkedEventSQLException extends RuntimeException { - - public LinkedEventSQLException(final String message) { - super(message); - } - - public LinkedEventSQLException(final String message, final Throwable cause) { - super(message, cause); - } -} diff --git a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventProcessorTest.java b/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventProcessorTest.java deleted file mode 100644 index 4b8a21a1b..000000000 --- a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventProcessorTest.java +++ /dev/null @@ -1,72 +0,0 @@ -package uk.gov.justice.services.eventsourcing.linkedevent; - -import static java.util.UUID.randomUUID; -import static org.mockito.Answers.RETURNS_DEEP_STUBS; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import uk.gov.justice.services.eventsourcing.prepublish.LinkedEventFactory; -import uk.gov.justice.services.eventsourcing.prepublish.MetadataEventNumberUpdater; -import uk.gov.justice.services.eventsourcing.prepublish.PrePublishRepository; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventJdbcRepository; -import uk.gov.justice.services.messaging.Metadata; -import uk.gov.justice.subscription.registry.SubscriptionDataSourceProvider; - -import java.sql.Connection; -import java.util.Optional; -import java.util.UUID; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; - -@RunWith(MockitoJUnitRunner.class) -public class LinkedEventProcessorTest { - - @Mock(answer = RETURNS_DEEP_STUBS) - private SubscriptionDataSourceProvider subscriptionDataSourceProvider; - - @Mock - private MetadataEventNumberUpdater metadataEventNumberUpdater; - - @Mock - private EventConverter eventConverter; - - @Mock - private PrePublishRepository prePublishRepository; - - @Mock - private LinkedEventFactory linkedEventFactory; - - @Mock - private LinkedEventJdbcRepository linkedEventJdbcRepository; - - @InjectMocks - private LinkedEventProcessor linkedEventProcessor; - - @Test - public void shouldCreateLinkedEvent() throws Exception { - final Connection connection = mock(Connection.class); - final Event event = mock(Event.class); - final Metadata metadata = mock(Metadata.class); - - final UUID eventId = randomUUID(); - final Long eventNumber = 10l; - final Long previousEventNumber = 9l; - when(eventConverter.metadataOf(event)).thenReturn(metadata); - when(event.getId()).thenReturn(eventId); - when(event.getEventNumber()).thenReturn(Optional.of(eventNumber)); - when(prePublishRepository.getEventNumber(eventId, connection)).thenReturn(eventNumber); - when(prePublishRepository.getPreviousEventNumber(eventNumber, connection)).thenReturn(previousEventNumber); - when(metadataEventNumberUpdater.updateMetadataJson(metadata, previousEventNumber, eventNumber)).thenReturn(metadata); - when(subscriptionDataSourceProvider.getEventStoreDataSource().getConnection()).thenReturn(connection); - - linkedEventProcessor.createLinkedEvent(event); - verify(linkedEventFactory).create(event, metadata, eventNumber, previousEventNumber); - } -} diff --git a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventsProcessorTest.java b/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventsProcessorTest.java deleted file mode 100644 index 4df81d88d..000000000 --- a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventsProcessorTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package uk.gov.justice.services.eventsourcing.linkedevent; - -import static java.util.UUID.randomUUID; -import static org.mockito.Answers.RETURNS_DEEP_STUBS; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventJdbcRepository; -import uk.gov.justice.subscription.registry.SubscriptionDataSourceProvider; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.UUID; -import java.util.stream.Stream; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; - -@RunWith(MockitoJUnitRunner.class) -public class LinkedEventsProcessorTest { - @Mock(answer = RETURNS_DEEP_STUBS) - private SubscriptionDataSourceProvider subscriptionDataSourceProvider; - - @Mock - private EventJdbcRepository eventJdbcRepository; - - @Mock - private LinkedEventProcessor linkedEventProcessor; - - @Mock - private LinkedEventJdbcRepository linkedEventJdbcRepository; - - @InjectMocks - private LinkedEventsProcessor linkedEventsProcessor; - - @Test - public void shouldCreateLinkedEvents() throws SQLException { - final Connection connection = mock(Connection.class); - when(subscriptionDataSourceProvider.getEventStoreDataSource().getConnection()).thenReturn(connection); - - final Event event1 = mock(Event.class); - final Event event2 = mock(Event.class); - final Event event3 = mock(Event.class); - - final UUID streamID1 = randomUUID(); - final Stream eventIds = Stream.of(event1, event2, event3); - - when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamID1)).thenReturn(eventIds); - - linkedEventsProcessor.populateLinkedEvents(streamID1, eventJdbcRepository); - - verify(linkedEventProcessor).createLinkedEvent(event1); - verify(linkedEventProcessor).createLinkedEvent(event2); - verify(linkedEventProcessor).createLinkedEvent(event3); - } -} diff --git a/event-sourcing/event-publisher/pom.xml b/event-sourcing/event-publisher/pom.xml index 2846b25f9..fa6da1163 100644 --- a/event-sourcing/event-publisher/pom.xml +++ b/event-sourcing/event-publisher/pom.xml @@ -15,7 +15,7 @@ event-publisher-jms event-publisher-process - linked-event-processor + published-event-processor event-publisher-timer diff --git a/event-sourcing/event-publisher/linked-event-processor/pom.xml b/event-sourcing/event-publisher/published-event-processor/pom.xml similarity index 100% rename from event-sourcing/event-publisher/linked-event-processor/pom.xml rename to event-sourcing/event-publisher/published-event-processor/pom.xml diff --git a/event-sourcing/event-publisher/linked-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/linkedevent/ActiveStreamsProcessor.java b/event-sourcing/event-publisher/published-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/publishedevent/ActiveStreamsProcessor.java similarity index 68% rename from event-sourcing/event-publisher/linked-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/linkedevent/ActiveStreamsProcessor.java rename to event-sourcing/event-publisher/published-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/publishedevent/ActiveStreamsProcessor.java index 041408f99..025417017 100644 --- a/event-sourcing/event-publisher/linked-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/linkedevent/ActiveStreamsProcessor.java +++ b/event-sourcing/event-publisher/published-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/publishedevent/ActiveStreamsProcessor.java @@ -1,4 +1,4 @@ -package uk.gov.justice.services.eventsourcing.linkedevent; +package uk.gov.justice.services.eventsourcing.publishedevent; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepositoryFactory; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStream; @@ -14,18 +14,18 @@ public class ActiveStreamsProcessor { @Inject - LinkedEventsProcessor linkedEventsProcessor; + private PublishedEventsProcessor publishedEventsProcessor; @Inject - EventStreamJdbcRepositoryFactory eventStreamJdbcRepositoryFactory; + private EventStreamJdbcRepositoryFactory eventStreamJdbcRepositoryFactory; @Inject - EventJdbcRepositoryFactory eventJdbcRepositoryFactory; + private EventJdbcRepositoryFactory eventJdbcRepositoryFactory; @Inject - DefaultEventSourceDefinitionFactory defaultEventSourceDefinitionFactory; + private DefaultEventSourceDefinitionFactory defaultEventSourceDefinitionFactory; - public void populateLinkedEvents() { + public void populatePublishedEvents() { final Optional dataSource; dataSource = defaultEventSourceDefinitionFactory.createDefaultEventSource().getLocation().getDataSource(); @@ -34,8 +34,8 @@ public void populateLinkedEvents() { final EventStreamJdbcRepository eventStreamJdbcRepository = eventStreamJdbcRepositoryFactory.eventStreamJdbcRepository(jndiDatasource); try (final Stream activeStreams = eventStreamJdbcRepository.findActive()) { activeStreams.forEach(stream -> { - linkedEventsProcessor.populateLinkedEvents(stream.getStreamId(), eventJdbcRepositoryFactory.eventJdbcRepository(jndiDatasource)); + publishedEventsProcessor.populatePublishedEvents(stream.getStreamId(), eventJdbcRepositoryFactory.eventJdbcRepository(jndiDatasource)); }); } } -} \ No newline at end of file +} diff --git a/event-sourcing/event-publisher/linked-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventProcessor.java b/event-sourcing/event-publisher/published-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventProcessor.java similarity index 51% rename from event-sourcing/event-publisher/linked-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventProcessor.java rename to event-sourcing/event-publisher/published-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventProcessor.java index 49dc25ad9..b8d5b0f09 100644 --- a/event-sourcing/event-publisher/linked-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventProcessor.java +++ b/event-sourcing/event-publisher/published-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventProcessor.java @@ -1,14 +1,14 @@ -package uk.gov.justice.services.eventsourcing.linkedevent; +package uk.gov.justice.services.eventsourcing.publishedevent; import static java.lang.String.format; -import uk.gov.justice.services.eventsourcing.prepublish.LinkedEventFactory; import uk.gov.justice.services.eventsourcing.prepublish.MetadataEventNumberUpdater; import uk.gov.justice.services.eventsourcing.prepublish.PrePublishRepository; +import uk.gov.justice.services.eventsourcing.prepublish.PublishedEventFactory; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventJdbcRepository; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventJdbcRepository; import uk.gov.justice.services.messaging.Metadata; import uk.gov.justice.subscription.registry.SubscriptionDataSourceProvider; @@ -17,49 +17,49 @@ import javax.inject.Inject; -public class LinkedEventProcessor { +public class PublishedEventProcessor { @Inject - SubscriptionDataSourceProvider subscriptionDataSourceProvider; + private SubscriptionDataSourceProvider subscriptionDataSourceProvider; @Inject - MetadataEventNumberUpdater metadataEventNumberUpdater; + private MetadataEventNumberUpdater metadataEventNumberUpdater; @Inject - EventConverter eventConverter; + private EventConverter eventConverter; @Inject - PrePublishRepository prePublishRepository; + private PrePublishRepository prePublishRepository; @Inject - LinkedEventFactory linkedEventFactory; + private PublishedEventFactory publishedEventFactory; @Inject - LinkedEventJdbcRepository linkedEventJdbcRepository; + private PublishedEventJdbcRepository publishedEventJdbcRepository; + public void createPublishedEvent(final Event event) throws PublishedEventSQLException { - public void createLinkedEvent(final Event event) throws LinkedEventSQLException { - - final Long eventNumber = event.getEventNumber().get(); + final long eventNumber = event.getEventNumber().get(); final long previousEventNumber; try (final Connection connection = subscriptionDataSourceProvider.getEventStoreDataSource().getConnection()) { previousEventNumber = prePublishRepository.getPreviousEventNumber(eventNumber, connection); } catch (final SQLException e) { - throw new LinkedEventSQLException(format("Unable to get previous event number %d ", eventNumber), e); + throw new PublishedEventSQLException(format("Unable to get previous event number for event with id '%s'", event.getId()), e); } + final Metadata metadata = eventConverter.metadataOf(event); final Metadata updatedMetadata = metadataEventNumberUpdater.updateMetadataJson( - eventConverter.metadataOf(event), + metadata, previousEventNumber, eventNumber); - final LinkedEvent linkedEvent = linkedEventFactory.create(event, updatedMetadata, eventNumber, previousEventNumber); + final PublishedEvent publishedEvent = publishedEventFactory.create(event, updatedMetadata, eventNumber, previousEventNumber); try (final Connection connection = subscriptionDataSourceProvider.getEventStoreDataSource().getConnection()) { - linkedEventJdbcRepository.insertLinkedEvent(linkedEvent, connection); + publishedEventJdbcRepository.insertPublishedEvent(publishedEvent, connection); } catch (final SQLException e) { - throw new LinkedEventSQLException(format("Unable to insert linked event previous event number %d ", linkedEvent.getPreviousEventNumber()), e); + throw new PublishedEventSQLException(format("Unable to insert PublishedEvent with id '%s'", event.getId()), e); } } diff --git a/event-sourcing/event-publisher/published-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventSQLException.java b/event-sourcing/event-publisher/published-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventSQLException.java new file mode 100644 index 000000000..f5d144739 --- /dev/null +++ b/event-sourcing/event-publisher/published-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventSQLException.java @@ -0,0 +1,12 @@ +package uk.gov.justice.services.eventsourcing.publishedevent; + +public class PublishedEventSQLException extends RuntimeException { + + public PublishedEventSQLException(final String message) { + super(message); + } + + public PublishedEventSQLException(final String message, final Throwable cause) { + super(message, cause); + } +} diff --git a/event-sourcing/event-publisher/linked-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventsProcessor.java b/event-sourcing/event-publisher/published-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventsProcessor.java similarity index 52% rename from event-sourcing/event-publisher/linked-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventsProcessor.java rename to event-sourcing/event-publisher/published-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventsProcessor.java index 71edc90c5..025f26039 100644 --- a/event-sourcing/event-publisher/linked-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventsProcessor.java +++ b/event-sourcing/event-publisher/published-event-processor/src/main/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventsProcessor.java @@ -1,8 +1,8 @@ -package uk.gov.justice.services.eventsourcing.linkedevent; +package uk.gov.justice.services.eventsourcing.publishedevent; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventJdbcRepository; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventJdbcRepository; import uk.gov.justice.subscription.registry.SubscriptionDataSourceProvider; import java.sql.Connection; @@ -12,30 +12,31 @@ import javax.inject.Inject; -public class LinkedEventsProcessor { +public class PublishedEventsProcessor { + @Inject - SubscriptionDataSourceProvider subscriptionDataSourceProvider; + private SubscriptionDataSourceProvider subscriptionDataSourceProvider; @Inject - LinkedEventProcessor linkedEventProcessor; + private PublishedEventProcessor publishedEventProcessor; @Inject - private LinkedEventJdbcRepository linkedEventJdbcRepository; + private PublishedEventJdbcRepository publishedEventJdbcRepository; - public void populateLinkedEvents(final UUID streamId, final EventJdbcRepository eventJdbcRepository) throws LinkedEventSQLException { + public void populatePublishedEvents(final UUID streamId, final EventJdbcRepository eventJdbcRepository) { final Stream events = eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId); events.forEach(event -> { - linkedEventProcessor.createLinkedEvent(event); + publishedEventProcessor.createPublishedEvent(event); }); } - public void truncateLinkedEvents() throws LinkedEventSQLException { + public void truncatePublishedEvents() throws PublishedEventSQLException { try (final Connection connection = subscriptionDataSourceProvider.getEventStoreDataSource().getConnection()) { - linkedEventJdbcRepository.truncate(connection); + publishedEventJdbcRepository.truncate(connection); } catch (final SQLException e) { - throw new LinkedEventSQLException("Failed to truncate Linked Events table", e); + throw new PublishedEventSQLException("Failed to truncate Linked Events table", e); } } } diff --git a/event-sourcing/event-publisher/linked-event-processor/src/main/resources/META-INF/beans.xml b/event-sourcing/event-publisher/published-event-processor/src/main/resources/META-INF/beans.xml similarity index 100% rename from event-sourcing/event-publisher/linked-event-processor/src/main/resources/META-INF/beans.xml rename to event-sourcing/event-publisher/published-event-processor/src/main/resources/META-INF/beans.xml diff --git a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/ActiveStreamsProcessorIT.java b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/ActiveStreamsProcessorIT.java similarity index 70% rename from event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/ActiveStreamsProcessorIT.java rename to event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/ActiveStreamsProcessorIT.java index 664312141..a31e714d1 100644 --- a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/ActiveStreamsProcessorIT.java +++ b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/ActiveStreamsProcessorIT.java @@ -1,4 +1,4 @@ -package uk.gov.justice.services.eventsourcing.linkedevent; +package uk.gov.justice.services.eventsourcing.publishedevent; import static java.nio.file.Paths.get; import static java.util.Optional.of; @@ -10,18 +10,18 @@ import uk.gov.justice.services.common.converter.StringToJsonObjectConverter; import uk.gov.justice.services.eventsourcing.EventFetcherRepository; -import uk.gov.justice.services.eventsourcing.linkedevent.helpers.EventFactory; -import uk.gov.justice.services.eventsourcing.linkedevent.helpers.TestEventInserter; -import uk.gov.justice.services.eventsourcing.linkedevent.helpers.TestEventStreamInserter; -import uk.gov.justice.services.eventsourcing.prepublish.LinkedEventFactory; import uk.gov.justice.services.eventsourcing.prepublish.MetadataEventNumberUpdater; import uk.gov.justice.services.eventsourcing.prepublish.PrePublishRepository; +import uk.gov.justice.services.eventsourcing.prepublish.PublishedEventFactory; +import uk.gov.justice.services.eventsourcing.publishedevent.helpers.EventFactory; +import uk.gov.justice.services.eventsourcing.publishedevent.helpers.TestEventInserter; +import uk.gov.justice.services.eventsourcing.publishedevent.helpers.TestEventStreamInserter; import uk.gov.justice.services.eventsourcing.repository.jdbc.AnsiSQLEventLogInsertionStrategy; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepositoryFactory; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventJdbcRepository; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepositoryFactory; import uk.gov.justice.services.jdbc.persistence.JdbcRepositoryHelper; import uk.gov.justice.services.test.utils.core.eventsource.EventStoreInitializer; @@ -53,19 +53,19 @@ public class ActiveStreamsProcessorIT { private EventStreamJdbcRepositoryFactory eventStreamJdbcRepositoryFactory = new EventStreamJdbcRepositoryFactory(); private EventJdbcRepositoryFactory eventJdbcRepositoryFactory = new EventJdbcRepositoryFactory(); private final ActiveStreamsProcessor activeStreamsProcessor = new ActiveStreamsProcessor(); - private final LinkedEventsProcessor linkedEventsProcessor = new LinkedEventsProcessor(); - private final LinkedEventProcessor linkedEventProcessor = new LinkedEventProcessor(); + private final PublishedEventsProcessor publishedEventsProcessor = new PublishedEventsProcessor(); + private final PublishedEventProcessor publishedEventProcessor = new PublishedEventProcessor(); @Before public void initDatabase() throws Exception { new EventStoreInitializer().initializeEventStore(eventStoreDataSource); - setField(activeStreamsProcessor, "linkedEventsProcessor", linkedEventsProcessor); + setField(activeStreamsProcessor, "publishedEventsProcessor", publishedEventsProcessor); setField(activeStreamsProcessor, "eventJdbcRepositoryFactory", eventJdbcRepositoryFactory); setField(activeStreamsProcessor, "eventStreamJdbcRepositoryFactory", eventStreamJdbcRepositoryFactory); setField(activeStreamsProcessor, "defaultEventSourceDefinitionFactory", new DefaultEventSourceDefinitionFactory()); - setUpLinkedEventProcessor(linkedEventProcessor); - setUpLinkedEventsProcessor(linkedEventsProcessor, linkedEventProcessor); + setUpPublishedEventProcessor(publishedEventProcessor); + setUpPublishedEventsProcessor(publishedEventsProcessor, publishedEventProcessor); } @@ -91,24 +91,23 @@ private SubscriptionDataSourceProvider setUpSubscriptionDataSourceProvider() thr } - private void setUpLinkedEventsProcessor(final LinkedEventsProcessor linkedEventsProcessor, - final LinkedEventProcessor linkedEventProcessor) throws MalformedURLException { - setField(linkedEventsProcessor, "linkedEventProcessor", linkedEventProcessor); - setField(linkedEventsProcessor, "linkedEventJdbcRepository", new LinkedEventJdbcRepository()); - setField(linkedEventsProcessor, "linkedEventProcessor", linkedEventProcessor); - setField(linkedEventsProcessor, "subscriptionDataSourceProvider", setUpSubscriptionDataSourceProvider()); + private void setUpPublishedEventsProcessor(final PublishedEventsProcessor publishedEventsProcessor, + final PublishedEventProcessor publishedEventProcessor) throws MalformedURLException { + setField(publishedEventsProcessor, "publishedEventJdbcRepository", new PublishedEventJdbcRepository()); + setField(publishedEventsProcessor, "publishedEventProcessor", publishedEventProcessor); + setField(publishedEventsProcessor, "subscriptionDataSourceProvider", setUpSubscriptionDataSourceProvider()); } - private void setUpLinkedEventProcessor(final LinkedEventProcessor linkedEventProcessor) throws MalformedURLException { + private void setUpPublishedEventProcessor(final PublishedEventProcessor publishedEventProcessor) throws MalformedURLException { final EventConverter eventConverter = new EventConverter(); - setField(linkedEventProcessor, "metadataEventNumberUpdater", new MetadataEventNumberUpdater()); - setField(linkedEventProcessor, "eventConverter", eventConverter); - setField(linkedEventProcessor, "prePublishRepository", new PrePublishRepository()); - setField(linkedEventProcessor, "linkedEventFactory", new LinkedEventFactory()); - setField(linkedEventProcessor, "linkedEventJdbcRepository", new LinkedEventJdbcRepository()); + setField(publishedEventProcessor, "metadataEventNumberUpdater", new MetadataEventNumberUpdater()); + setField(publishedEventProcessor, "eventConverter", eventConverter); + setField(publishedEventProcessor, "prePublishRepository", new PrePublishRepository()); + setField(publishedEventProcessor, "publishedEventFactory", new PublishedEventFactory()); + setField(publishedEventProcessor, "publishedEventJdbcRepository", new PublishedEventJdbcRepository()); setField(eventConverter, "stringToJsonObjectConverter", new StringToJsonObjectConverter()); - setField(linkedEventProcessor, "eventConverter", eventConverter); - setField(linkedEventProcessor, "subscriptionDataSourceProvider", setUpSubscriptionDataSourceProvider()); + setField(publishedEventProcessor, "eventConverter", eventConverter); + setField(publishedEventProcessor, "subscriptionDataSourceProvider", setUpSubscriptionDataSourceProvider()); } @@ -119,7 +118,7 @@ private URL getFromClasspath(final String name) throws MalformedURLException { @Test - public void shouldPopulateLinkedEvents() throws Exception { + public void shouldPopulatePublishedEvents() throws Exception { final String name = "example.first-event"; final long sequenceId = 1L; @@ -135,12 +134,12 @@ public void shouldPopulateLinkedEvents() throws Exception { try (final Connection connection = eventStoreDataSource.getConnection()) { - activeStreamsProcessor.populateLinkedEvents(); + activeStreamsProcessor.populatePublishedEvents(); - final Optional linkedEventOptional = new EventFetcherRepository().getLinkedEvent(eventId, connection); + final Optional publishedEventOptional = new EventFetcherRepository().getPublishedEvent(eventId, connection); - if (linkedEventOptional.isPresent()) { - final LinkedEvent actual = linkedEventOptional.get(); + if (publishedEventOptional.isPresent()) { + final PublishedEvent actual = publishedEventOptional.get(); assertThat(actual.getId(), is(event.getId())); assertThat(actual.getName(), is(name)); assertThat(actual.getPreviousEventNumber(), is(0L)); diff --git a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/ActiveStreamsProcessorTest.java b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/ActiveStreamsProcessorTest.java similarity index 85% rename from event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/ActiveStreamsProcessorTest.java rename to event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/ActiveStreamsProcessorTest.java index 1d91235b4..3f6fbb38f 100644 --- a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/ActiveStreamsProcessorTest.java +++ b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/ActiveStreamsProcessorTest.java @@ -1,4 +1,4 @@ -package uk.gov.justice.services.eventsourcing.linkedevent; +package uk.gov.justice.services.eventsourcing.publishedevent; import static java.time.ZonedDateTime.now; import static org.mockito.Answers.RETURNS_DEEP_STUBS; @@ -41,7 +41,7 @@ public class ActiveStreamsProcessorTest { private EventJdbcRepository eventJdbcRepository; @Mock - private LinkedEventsProcessor linkedEventsProcessors; + private PublishedEventsProcessor publishedEventsProcessors; @InjectMocks private ActiveStreamsProcessor activeStreamsProcessor; @@ -65,10 +65,10 @@ public void shouldProcessActiveStreams() throws SQLException, DatasourceExceptio when(eventStreamJdbcRepository.findActive()).thenReturn(eventStreams); - activeStreamsProcessor.populateLinkedEvents(); + activeStreamsProcessor.populatePublishedEvents(); - verify(linkedEventsProcessors).populateLinkedEvents(streamId1, eventJdbcRepository); - verify(linkedEventsProcessors).populateLinkedEvents(streamId2, eventJdbcRepository); - verify(linkedEventsProcessors).populateLinkedEvents(streamId3, eventJdbcRepository); + verify(publishedEventsProcessors).populatePublishedEvents(streamId1, eventJdbcRepository); + verify(publishedEventsProcessors).populatePublishedEvents(streamId2, eventJdbcRepository); + verify(publishedEventsProcessors).populatePublishedEvents(streamId3, eventJdbcRepository); } -} \ No newline at end of file +} diff --git a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventProcessorIT.java b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventProcessorIT.java similarity index 77% rename from event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventProcessorIT.java rename to event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventProcessorIT.java index 0772386ab..678d226ef 100644 --- a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventProcessorIT.java +++ b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventProcessorIT.java @@ -1,4 +1,4 @@ -package uk.gov.justice.services.eventsourcing.linkedevent; +package uk.gov.justice.services.eventsourcing.publishedevent; import static java.nio.file.Paths.get; import static java.util.Optional.of; @@ -9,17 +9,17 @@ import uk.gov.justice.services.common.converter.StringToJsonObjectConverter; import uk.gov.justice.services.eventsourcing.EventFetcherRepository; -import uk.gov.justice.services.eventsourcing.linkedevent.helpers.EventFactory; -import uk.gov.justice.services.eventsourcing.linkedevent.helpers.TestEventInserter; -import uk.gov.justice.services.eventsourcing.prepublish.LinkedEventFactory; import uk.gov.justice.services.eventsourcing.prepublish.MetadataEventNumberUpdater; import uk.gov.justice.services.eventsourcing.prepublish.PrePublishRepository; +import uk.gov.justice.services.eventsourcing.prepublish.PublishedEventFactory; +import uk.gov.justice.services.eventsourcing.publishedevent.helpers.EventFactory; +import uk.gov.justice.services.eventsourcing.publishedevent.helpers.TestEventInserter; import uk.gov.justice.services.eventsourcing.repository.jdbc.AnsiSQLEventLogInsertionStrategy; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepositoryFactory; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventJdbcRepository; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepositoryFactory; import uk.gov.justice.services.jdbc.persistence.JdbcRepositoryHelper; import uk.gov.justice.services.test.utils.core.eventsource.EventStoreInitializer; @@ -40,12 +40,12 @@ import org.junit.Before; import org.junit.Test; -public class LinkedEventProcessorIT { +public class PublishedEventProcessorIT { private final DataSource eventStoreDataSource = new FrameworkTestDataSourceFactory().createEventStoreDataSource(); private final TestEventInserter testEventInserter = new TestEventInserter(); private final EventFactory eventFactory = new EventFactory(); - private final LinkedEventProcessor linkedEventProcessor = new LinkedEventProcessor(); + private final PublishedEventProcessor publishedEventProcessor = new PublishedEventProcessor(); private final EventFetcherRepository eventFetcherRepository = new EventFetcherRepository(); private final EventConverter eventConverter = new EventConverter(); private final EventStreamJdbcRepositoryFactory eventStreamJdbcRepositoryFactory = new EventStreamJdbcRepositoryFactory(); @@ -54,7 +54,7 @@ public class LinkedEventProcessorIT { @Before public void initDatabase() throws Exception { new EventStoreInitializer().initializeEventStore(eventStoreDataSource); - setUpLinkedEventProcessor(); + setUpPublishedEventProcessor(); } private URL getFromClasspath(final String name) throws MalformedURLException { @@ -83,13 +83,13 @@ private SubscriptionDataSourceProvider setUpSubscriptionDataSourceProvider() thr return subscriptionDataSourceProvider; } - private void setUpLinkedEventProcessor() throws MalformedURLException { - setField(linkedEventProcessor, "metadataEventNumberUpdater", new MetadataEventNumberUpdater()); - setField(linkedEventProcessor, "eventConverter", eventConverter); - setField(linkedEventProcessor, "prePublishRepository", new PrePublishRepository()); - setField(linkedEventProcessor, "linkedEventFactory", new LinkedEventFactory()); - setField(linkedEventProcessor, "linkedEventJdbcRepository", new LinkedEventJdbcRepository()); - setField(linkedEventProcessor, "subscriptionDataSourceProvider", setUpSubscriptionDataSourceProvider()); + private void setUpPublishedEventProcessor() throws MalformedURLException { + setField(publishedEventProcessor, "metadataEventNumberUpdater", new MetadataEventNumberUpdater()); + setField(publishedEventProcessor, "eventConverter", eventConverter); + setField(publishedEventProcessor, "prePublishRepository", new PrePublishRepository()); + setField(publishedEventProcessor, "publishedEventFactory", new PublishedEventFactory()); + setField(publishedEventProcessor, "publishedEventJdbcRepository", new PublishedEventJdbcRepository()); + setField(publishedEventProcessor, "subscriptionDataSourceProvider", setUpSubscriptionDataSourceProvider()); setField(eventConverter, "stringToJsonObjectConverter", new StringToJsonObjectConverter()); } @@ -103,13 +103,13 @@ public void shouldFetchAnEventById() throws Exception { final Event event = eventFactory.createEvent(name, sequenceId, eventNumber); testEventInserter.insertIntoEventLog(event); - linkedEventProcessor.createLinkedEvent(event); + publishedEventProcessor.createPublishedEvent(event); try (final Connection connection = eventStoreDataSource.getConnection()) { - final Optional linkedEventOptional = eventFetcherRepository.getLinkedEvent(event.getId(), connection); + final Optional publishedEventOptional = eventFetcherRepository.getPublishedEvent(event.getId(), connection); - if (linkedEventOptional.isPresent()) { - final LinkedEvent actual = linkedEventOptional.get(); + if (publishedEventOptional.isPresent()) { + final PublishedEvent actual = publishedEventOptional.get(); assertThat(actual.getId(), is(event.getId())); assertThat(actual.getName(), is(name)); assertThat(actual.getPreviousEventNumber(), is(0L)); diff --git a/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventProcessorTest.java b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventProcessorTest.java new file mode 100644 index 000000000..3dd88bb77 --- /dev/null +++ b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventProcessorTest.java @@ -0,0 +1,143 @@ +package uk.gov.justice.services.eventsourcing.publishedevent; + +import static java.util.UUID.fromString; +import static java.util.UUID.randomUUID; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.fail; +import static org.mockito.Answers.RETURNS_DEEP_STUBS; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.when; + +import uk.gov.justice.services.eventsourcing.prepublish.MetadataEventNumberUpdater; +import uk.gov.justice.services.eventsourcing.prepublish.PrePublishRepository; +import uk.gov.justice.services.eventsourcing.prepublish.PublishedEventFactory; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventJdbcRepository; +import uk.gov.justice.services.messaging.Metadata; +import uk.gov.justice.subscription.registry.SubscriptionDataSourceProvider; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.Optional; +import java.util.UUID; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; + +@RunWith(MockitoJUnitRunner.class) +public class PublishedEventProcessorTest { + + @Mock(answer = RETURNS_DEEP_STUBS) + private SubscriptionDataSourceProvider subscriptionDataSourceProvider; + + @Mock + private MetadataEventNumberUpdater metadataEventNumberUpdater; + + @Mock + private EventConverter eventConverter; + + @Mock + private PrePublishRepository prePublishRepository; + + @Mock + private PublishedEventFactory publishedEventFactory; + + @Mock + private PublishedEventJdbcRepository publishedEventJdbcRepository; + + @InjectMocks + private PublishedEventProcessor publishedEventProcessor; + + @Test + public void shouldCreatePublishedEvent() throws Exception { + final Connection connection = mock(Connection.class); + final Event event = mock(Event.class); + final PublishedEvent publishedEvent = mock(PublishedEvent.class); + final Metadata metadata = mock(Metadata.class, "metadata"); + final Metadata updatedMetadata = mock(Metadata.class, "updatedMetadata"); + + final UUID eventId = randomUUID(); + final long eventNumber = 10l; + final Long previousEventNumber = 9l; + when(eventConverter.metadataOf(event)).thenReturn(metadata); + when(event.getId()).thenReturn(eventId); + when(event.getEventNumber()).thenReturn(Optional.of(eventNumber)); + when(subscriptionDataSourceProvider.getEventStoreDataSource().getConnection()).thenReturn(connection); + when(prePublishRepository.getPreviousEventNumber(eventNumber, connection)).thenReturn(previousEventNumber); + when(metadataEventNumberUpdater.updateMetadataJson(metadata, previousEventNumber, eventNumber)).thenReturn(updatedMetadata); + when(publishedEventFactory.create(event, updatedMetadata, eventNumber, previousEventNumber)).thenReturn(publishedEvent); + + publishedEventProcessor.createPublishedEvent(event); + + verify(publishedEventJdbcRepository).insertPublishedEvent(publishedEvent, connection); + } + + @Test + public void shouldThrowExceptionIfGettingPreviousEventNumberFails() throws Exception { + + final SQLException sqlException = new SQLException("(Ooops"); + final UUID eventId = fromString("df7958f4-ce50-45a1-a8ee-501d55475e69"); + + final Connection connection = mock(Connection.class); + final Event event = mock(Event.class); + final Metadata metadata = mock(Metadata.class, "metadata"); + + final long eventNumber = 10l; + when(eventConverter.metadataOf(event)).thenReturn(metadata); + when(event.getId()).thenReturn(eventId); + when(event.getEventNumber()).thenReturn(Optional.of(eventNumber)); + when(subscriptionDataSourceProvider.getEventStoreDataSource().getConnection()).thenReturn(connection); + when(prePublishRepository.getPreviousEventNumber(eventNumber, connection)).thenThrow(sqlException); + + try { + publishedEventProcessor.createPublishedEvent(event); + fail(); + } catch (final PublishedEventSQLException expected) { + assertThat(expected.getCause(), is(sqlException)); + assertThat(expected.getMessage(), is("Unable to get previous event number for event with id 'df7958f4-ce50-45a1-a8ee-501d55475e69'")); + } + + verifyZeroInteractions(publishedEventJdbcRepository); + } + + @Test + public void shouldThrowExceptionIfInsertingPublishedEventFails() throws Exception { + final SQLException sqlException = new SQLException("(Ooops"); + final UUID eventId = fromString("df7958f4-ce50-45a1-a8ee-501d55475e69"); + + final Connection connection = mock(Connection.class); + final Event event = mock(Event.class); + final PublishedEvent publishedEvent = mock(PublishedEvent.class); + final Metadata metadata = mock(Metadata.class, "metadata"); + final Metadata updatedMetadata = mock(Metadata.class, "updatedMetadata"); + + final long previousEventNumber = 9l; + final long eventNumber = 10l; + when(eventConverter.metadataOf(event)).thenReturn(metadata); + when(event.getId()).thenReturn(eventId); + when(event.getEventNumber()).thenReturn(Optional.of(eventNumber)); + when(subscriptionDataSourceProvider.getEventStoreDataSource().getConnection()).thenReturn(connection); + when(prePublishRepository.getPreviousEventNumber(eventNumber, connection)).thenReturn(previousEventNumber); + when(metadataEventNumberUpdater.updateMetadataJson(metadata, previousEventNumber, eventNumber)).thenReturn(updatedMetadata); + when(publishedEventFactory.create(event, updatedMetadata, eventNumber, previousEventNumber)).thenReturn(publishedEvent); + + doThrow(sqlException).when(publishedEventJdbcRepository).insertPublishedEvent(publishedEvent, connection); + + try { + publishedEventProcessor.createPublishedEvent(event); + fail(); + } catch (final PublishedEventSQLException expected) { + assertThat(expected.getCause(), is(sqlException)); + assertThat(expected.getMessage(), is("Unable to insert PublishedEvent with id 'df7958f4-ce50-45a1-a8ee-501d55475e69'")); + } + } +} diff --git a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventsProcessorIT.java b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventsProcessorIT.java similarity index 64% rename from event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventsProcessorIT.java rename to event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventsProcessorIT.java index f5329a175..16961ead4 100644 --- a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/LinkedEventsProcessorIT.java +++ b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventsProcessorIT.java @@ -1,4 +1,4 @@ -package uk.gov.justice.services.eventsourcing.linkedevent; +package uk.gov.justice.services.eventsourcing.publishedevent; import static java.nio.file.Paths.get; import static java.util.Optional.of; @@ -10,16 +10,16 @@ import uk.gov.justice.services.common.converter.StringToJsonObjectConverter; import uk.gov.justice.services.eventsourcing.EventFetcherRepository; -import uk.gov.justice.services.eventsourcing.linkedevent.helpers.EventFactory; -import uk.gov.justice.services.eventsourcing.linkedevent.helpers.TestEventInserter; -import uk.gov.justice.services.eventsourcing.linkedevent.helpers.TestEventStreamInserter; -import uk.gov.justice.services.eventsourcing.prepublish.LinkedEventFactory; import uk.gov.justice.services.eventsourcing.prepublish.MetadataEventNumberUpdater; import uk.gov.justice.services.eventsourcing.prepublish.PrePublishRepository; +import uk.gov.justice.services.eventsourcing.prepublish.PublishedEventFactory; +import uk.gov.justice.services.eventsourcing.publishedevent.helpers.EventFactory; +import uk.gov.justice.services.eventsourcing.publishedevent.helpers.TestEventInserter; +import uk.gov.justice.services.eventsourcing.publishedevent.helpers.TestEventStreamInserter; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventJdbcRepository; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventJdbcRepository; import uk.gov.justice.services.test.utils.core.eventsource.EventStoreInitializer; import uk.gov.justice.services.test.utils.persistence.FrameworkTestDataSourceFactory; import uk.gov.justice.services.test.utils.persistence.TestJdbcDataSourceProvider; @@ -43,20 +43,20 @@ import org.mockito.runners.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) -public class LinkedEventsProcessorIT { +public class PublishedEventsProcessorIT { private final DataSource eventStoreDataSource = new FrameworkTestDataSourceFactory().createEventStoreDataSource(); private final TestEventInserter testEventInserter = new TestEventInserter(); private final TestEventStreamInserter testEventStreamInserter = new TestEventStreamInserter(); private final EventFactory eventFactory = new EventFactory(); - private final LinkedEventsProcessor linkedEventsProcessor = new LinkedEventsProcessor(); - private final LinkedEventProcessor linkedEventProcessor = new LinkedEventProcessor(); + private final PublishedEventsProcessor publishedEventsProcessor = new PublishedEventsProcessor(); + private final PublishedEventProcessor publishedEventProcessor = new PublishedEventProcessor(); private final EventConverter eventConverter = new EventConverter(); @Before public void initDatabase() throws Exception { new EventStoreInitializer().initializeEventStore(eventStoreDataSource); - setUpLinkedEventProcessor(linkedEventProcessor, eventConverter); - setUpLinkedEventsProcessor(eventConverter); + setUpPublishedEventProcessor(publishedEventProcessor, eventConverter); + setUpPublishedEventsProcessor(eventConverter); } private SubscriptionDataSourceProvider setUpSubscriptionDataSourceProvider() throws MalformedURLException { @@ -73,22 +73,21 @@ private SubscriptionDataSourceProvider setUpSubscriptionDataSourceProvider() thr } - private void setUpLinkedEventsProcessor(EventConverter eventConverter) throws MalformedURLException { - setField(linkedEventsProcessor, "linkedEventProcessor", linkedEventProcessor); - setField(linkedEventsProcessor, "linkedEventJdbcRepository", new LinkedEventJdbcRepository()); - setField(linkedEventsProcessor, "linkedEventProcessor", linkedEventProcessor); - setField(linkedEventsProcessor, "subscriptionDataSourceProvider", setUpSubscriptionDataSourceProvider()); + private void setUpPublishedEventsProcessor(EventConverter eventConverter) throws MalformedURLException { + setField(publishedEventsProcessor, "publishedEventJdbcRepository", new PublishedEventJdbcRepository()); + setField(publishedEventsProcessor, "publishedEventProcessor", publishedEventProcessor); + setField(publishedEventsProcessor, "subscriptionDataSourceProvider", setUpSubscriptionDataSourceProvider()); } - private void setUpLinkedEventProcessor(LinkedEventProcessor linkedEventProcessor, EventConverter eventConverter) throws MalformedURLException { - setField(linkedEventProcessor, "metadataEventNumberUpdater", new MetadataEventNumberUpdater()); - setField(linkedEventProcessor, "eventConverter", eventConverter); - setField(linkedEventProcessor, "prePublishRepository", new PrePublishRepository()); - setField(linkedEventProcessor, "linkedEventFactory", new LinkedEventFactory()); - setField(linkedEventProcessor, "linkedEventJdbcRepository", new LinkedEventJdbcRepository()); - setField(linkedEventProcessor, "eventConverter", eventConverter); + private void setUpPublishedEventProcessor(PublishedEventProcessor publishedEventProcessor, EventConverter eventConverter) throws MalformedURLException { + setField(publishedEventProcessor, "metadataEventNumberUpdater", new MetadataEventNumberUpdater()); + setField(publishedEventProcessor, "eventConverter", eventConverter); + setField(publishedEventProcessor, "prePublishRepository", new PrePublishRepository()); + setField(publishedEventProcessor, "publishedEventFactory", new PublishedEventFactory()); + setField(publishedEventProcessor, "publishedEventJdbcRepository", new PublishedEventJdbcRepository()); + setField(publishedEventProcessor, "eventConverter", eventConverter); setField(eventConverter, "stringToJsonObjectConverter", new StringToJsonObjectConverter()); - setField(linkedEventProcessor, "subscriptionDataSourceProvider", setUpSubscriptionDataSourceProvider()); + setField(publishedEventProcessor, "subscriptionDataSourceProvider", setUpSubscriptionDataSourceProvider()); } @@ -98,7 +97,7 @@ private URL getFromClasspath(final String name) throws MalformedURLException { } @Test - public void shouldTruncateLinkedEvents() throws Exception { + public void shouldTruncatePublishedEvents() throws Exception { final String name = "example.first-event"; final long sequenceId = 1L; @@ -108,17 +107,17 @@ public void shouldTruncateLinkedEvents() throws Exception { testEventInserter.insertIntoEventLog(event); try (final Connection connection = eventStoreDataSource.getConnection()) { - linkedEventsProcessor.truncateLinkedEvents(); - final Optional linkedEventOptional = new EventFetcherRepository().getLinkedEvent(event.getId(), connection); + publishedEventsProcessor.truncatePublishedEvents(); + final Optional publishedEventOptional = new EventFetcherRepository().getPublishedEvent(event.getId(), connection); - if (linkedEventOptional.isPresent()) { + if (publishedEventOptional.isPresent()) { fail(); } } } @Test - public void shouldPopulateLinkedEvents() throws Exception { + public void shouldPopulatePublishedEvents() throws Exception { final String name = "example.first-event"; final long sequenceId = 1L; @@ -133,12 +132,12 @@ public void shouldPopulateLinkedEvents() throws Exception { testEventStreamInserter.insertIntoEventStream(streamId, positionInStream, active, ZonedDateTime.now()); try (final Connection connection = eventStoreDataSource.getConnection()) { - linkedEventsProcessor.populateLinkedEvents(streamId, new TestEventJdbcRepository(eventStoreDataSource)); + publishedEventsProcessor.populatePublishedEvents(streamId, new TestEventJdbcRepository(eventStoreDataSource)); - final Optional linkedEventOptional = new EventFetcherRepository().getLinkedEvent(eventId, connection); + final Optional publishedEventOptional = new EventFetcherRepository().getPublishedEvent(eventId, connection); - if (linkedEventOptional.isPresent()) { - final LinkedEvent actual = linkedEventOptional.get(); + if (publishedEventOptional.isPresent()) { + final PublishedEvent actual = publishedEventOptional.get(); assertThat(actual.getId(), is(event.getId())); assertThat(actual.getName(), is(name)); assertThat(actual.getPreviousEventNumber(), is(0L)); diff --git a/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventsProcessorTest.java b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventsProcessorTest.java new file mode 100644 index 000000000..a8dd1aa29 --- /dev/null +++ b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/PublishedEventsProcessorTest.java @@ -0,0 +1,96 @@ +package uk.gov.justice.services.eventsourcing.publishedevent; + +import static java.util.UUID.randomUUID; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.fail; +import static org.mockito.Answers.RETURNS_DEEP_STUBS; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventJdbcRepository; +import uk.gov.justice.subscription.registry.SubscriptionDataSourceProvider; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.UUID; +import java.util.stream.Stream; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; + +@RunWith(MockitoJUnitRunner.class) +public class PublishedEventsProcessorTest { + @Mock(answer = RETURNS_DEEP_STUBS) + private SubscriptionDataSourceProvider subscriptionDataSourceProvider; + + @Mock + private EventJdbcRepository eventJdbcRepository; + + @Mock + private PublishedEventProcessor publishedEventProcessor; + + @Mock + private PublishedEventJdbcRepository publishedEventJdbcRepository; + + @InjectMocks + private PublishedEventsProcessor publishedEventsProcessor; + + @Test + public void shouldCreatePublishedEvents() throws SQLException { + final Connection connection = mock(Connection.class); + when(subscriptionDataSourceProvider.getEventStoreDataSource().getConnection()).thenReturn(connection); + + final Event event1 = mock(Event.class); + final Event event2 = mock(Event.class); + final Event event3 = mock(Event.class); + + final UUID streamID1 = randomUUID(); + final Stream eventIds = Stream.of(event1, event2, event3); + + when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamID1)).thenReturn(eventIds); + + publishedEventsProcessor.populatePublishedEvents(streamID1, eventJdbcRepository); + + verify(publishedEventProcessor).createPublishedEvent(event1); + verify(publishedEventProcessor).createPublishedEvent(event2); + verify(publishedEventProcessor).createPublishedEvent(event3); + } + + @Test + public void shouldTruncateEvents() throws Exception { + + final Connection connection = mock(Connection.class); + + when(subscriptionDataSourceProvider.getEventStoreDataSource().getConnection()).thenReturn(connection); + + publishedEventsProcessor.truncatePublishedEvents(); + + verify(publishedEventJdbcRepository).truncate(connection); + } + + @Test + public void shouldThrowPublishedEventSQLExceptionOnFailure() throws Exception { + + final SQLException sqlException = new SQLException("Ooops"); + + final Connection connection = mock(Connection.class); + + when(subscriptionDataSourceProvider.getEventStoreDataSource().getConnection()).thenReturn(connection); + when(publishedEventJdbcRepository.truncate(connection)).thenThrow(sqlException); + + try { + publishedEventsProcessor.truncatePublishedEvents(); + fail(); + } catch (final PublishedEventSQLException expected) { + assertThat(expected.getCause(), is(sqlException)); + assertThat(expected.getMessage(), is("Failed to truncate Linked Events table")); + } + } +} diff --git a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/TestEventJdbcRepository.java b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/TestEventJdbcRepository.java similarity index 93% rename from event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/TestEventJdbcRepository.java rename to event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/TestEventJdbcRepository.java index 2f2138864..cf8b3cd68 100644 --- a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/TestEventJdbcRepository.java +++ b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/TestEventJdbcRepository.java @@ -1,4 +1,4 @@ -package uk.gov.justice.services.eventsourcing.linkedevent; +package uk.gov.justice.services.eventsourcing.publishedevent; import static org.slf4j.LoggerFactory.getLogger; diff --git a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/TestEventStreamJdbcRepository.java b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/TestEventStreamJdbcRepository.java similarity index 93% rename from event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/TestEventStreamJdbcRepository.java rename to event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/TestEventStreamJdbcRepository.java index c0495d242..c1836e6d3 100644 --- a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/TestEventStreamJdbcRepository.java +++ b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/TestEventStreamJdbcRepository.java @@ -1,4 +1,4 @@ -package uk.gov.justice.services.eventsourcing.linkedevent; +package uk.gov.justice.services.eventsourcing.publishedevent; import static org.slf4j.LoggerFactory.getLogger; diff --git a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/helpers/EventFactory.java b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/helpers/EventFactory.java similarity index 92% rename from event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/helpers/EventFactory.java rename to event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/helpers/EventFactory.java index 07b1440b0..0a1caae94 100644 --- a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/helpers/EventFactory.java +++ b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/helpers/EventFactory.java @@ -1,4 +1,4 @@ -package uk.gov.justice.services.eventsourcing.linkedevent.helpers; +package uk.gov.justice.services.eventsourcing.publishedevent.helpers; import static java.util.Optional.of; import static java.util.UUID.randomUUID; @@ -8,7 +8,7 @@ import uk.gov.justice.services.common.util.UtcClock; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import uk.gov.justice.services.messaging.JsonEnvelope; import java.time.ZonedDateTime; @@ -74,7 +74,7 @@ public Event createEvent(final UUID streamId, final UUID eventId, final String n of(eventNumber)); } - public LinkedEvent createLinkedEvent(final UUID streamId, final String name, final long sequenceId, final long eventNumber, final long previousEventNumber) { + public PublishedEvent createPublishedEvent(final UUID streamId, final String name, final long sequenceId, final long eventNumber, final long previousEventNumber) { final UUID eventId = randomUUID(); final String source = "event source"; final JsonEnvelope envelope = envelopeFrom( @@ -91,7 +91,7 @@ public LinkedEvent createLinkedEvent(final UUID streamId, final String name, fin final ZonedDateTime createdAt = clock.now(); - return new LinkedEvent( + return new PublishedEvent( eventId, streamId, sequenceId, diff --git a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/helpers/TestEventInserter.java b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/helpers/TestEventInserter.java similarity index 96% rename from event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/helpers/TestEventInserter.java rename to event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/helpers/TestEventInserter.java index adf10e8db..bcc592a58 100644 --- a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/helpers/TestEventInserter.java +++ b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/helpers/TestEventInserter.java @@ -1,4 +1,4 @@ -package uk.gov.justice.services.eventsourcing.linkedevent.helpers; +package uk.gov.justice.services.eventsourcing.publishedevent.helpers; import static uk.gov.justice.services.common.converter.ZonedDateTimes.toSqlTimestamp; diff --git a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/helpers/TestEventStreamInserter.java b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/helpers/TestEventStreamInserter.java similarity index 95% rename from event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/helpers/TestEventStreamInserter.java rename to event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/helpers/TestEventStreamInserter.java index 6a50ebb85..4040f13c0 100644 --- a/event-sourcing/event-publisher/linked-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/linkedevent/helpers/TestEventStreamInserter.java +++ b/event-sourcing/event-publisher/published-event-processor/src/test/java/uk/gov/justice/services/eventsourcing/publishedevent/helpers/TestEventStreamInserter.java @@ -1,4 +1,4 @@ -package uk.gov.justice.services.eventsourcing.linkedevent.helpers; +package uk.gov.justice.services.eventsourcing.publishedevent.helpers; import static uk.gov.justice.services.common.converter.ZonedDateTimes.toSqlTimestamp; diff --git a/event-sourcing/event-publisher/linked-event-processor/src/test/resources/yaml/event-sources.yaml b/event-sourcing/event-publisher/published-event-processor/src/test/resources/yaml/event-sources.yaml similarity index 100% rename from event-sourcing/event-publisher/linked-event-processor/src/test/resources/yaml/event-sources.yaml rename to event-sourcing/event-publisher/published-event-processor/src/test/resources/yaml/event-sources.yaml diff --git a/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/EventRepository.java b/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/EventRepository.java index e4d46816b..e8378faaf 100644 --- a/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/EventRepository.java +++ b/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/EventRepository.java @@ -1,6 +1,6 @@ package uk.gov.justice.services.eventsourcing.repository.jdbc; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import uk.gov.justice.services.eventsourcing.repository.jdbc.exception.StoreEventRequestFailedException; import uk.gov.justice.services.messaging.JsonEnvelope; @@ -142,6 +142,6 @@ public interface EventRepository { * * @return A Stream of events since the supplied eventNumber */ - Stream findEventsSince(final long eventNumber); + Stream findEventsSince(final long eventNumber); } diff --git a/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/EventRepositoryFactory.java b/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/EventRepositoryFactory.java index 7247a6191..7e35b9aa2 100644 --- a/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/EventRepositoryFactory.java +++ b/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/EventRepositoryFactory.java @@ -2,7 +2,7 @@ import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventFinder; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventFinder; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepository; import javax.enterprise.context.ApplicationScoped; @@ -19,13 +19,13 @@ public class EventRepositoryFactory { public EventRepository eventRepository( final EventJdbcRepository eventJdbcRepository, final EventStreamJdbcRepository eventStreamJdbcRepository, - final LinkedEventFinder linkedEventFinder) { + final PublishedEventFinder publishedEventFinder) { return new JdbcBasedEventRepository( eventConverter, eventJdbcRepository, eventStreamJdbcRepository, - linkedEventFinder, + publishedEventFinder, LoggerFactory.getLogger(EventRepository.class) ); } diff --git a/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/JdbcBasedEventRepository.java b/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/JdbcBasedEventRepository.java index 2674ddf9b..62b7e978d 100644 --- a/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/JdbcBasedEventRepository.java +++ b/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/JdbcBasedEventRepository.java @@ -3,8 +3,8 @@ import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventFinder; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventFinder; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStream; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.exception.InvalidPositionException; @@ -32,15 +32,15 @@ public class JdbcBasedEventRepository implements EventRepository { private final EventConverter eventConverter; private final EventJdbcRepository eventJdbcRepository; private final EventStreamJdbcRepository eventStreamJdbcRepository; - private final LinkedEventFinder linkedEventFinder; + private final PublishedEventFinder publishedEventFinder; public JdbcBasedEventRepository( final EventConverter eventConverter, final EventJdbcRepository eventJdbcRepository, final EventStreamJdbcRepository eventStreamJdbcRepository, - final LinkedEventFinder linkedEventFinder, + final PublishedEventFinder publishedEventFinder, final Logger logger) { - this.linkedEventFinder = linkedEventFinder; + this.publishedEventFinder = publishedEventFinder; this.logger = logger; this.eventConverter = eventConverter; @@ -169,8 +169,8 @@ public long getStreamPosition(final UUID streamId) { } @Override - public Stream findEventsSince(final long eventNumber) { - return linkedEventFinder.findEventsSince(eventNumber, eventStreamJdbcRepository.getDataSource()); + public Stream findEventsSince(final long eventNumber) { + return publishedEventFinder.findEventsSince(eventNumber, eventStreamJdbcRepository.getDataSource()); } private Function toEventStreamMetadata() { diff --git a/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEvent.java b/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEvent.java similarity index 67% rename from event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEvent.java rename to event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEvent.java index 35ff6a82b..0f0a27700 100644 --- a/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEvent.java +++ b/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEvent.java @@ -6,11 +6,11 @@ import java.util.Objects; import java.util.UUID; -public class LinkedEvent extends Event { +public class PublishedEvent extends Event { private final Long previousEventNumber; - public LinkedEvent( + public PublishedEvent( final UUID id, final UUID streamId, final Long sequenceId, @@ -33,16 +33,16 @@ public Long getPreviousEventNumber() { public boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - final LinkedEvent linkedEvent = (LinkedEvent) o; - return Objects.equals(getId(), linkedEvent.getId()) && - Objects.equals(getStreamId(), linkedEvent.getStreamId()) && - Objects.equals(getSequenceId(), linkedEvent.getSequenceId()) && - Objects.equals(getName(), linkedEvent.getName()) && - Objects.equals(getPayload(), linkedEvent.getPayload()) && - Objects.equals(getMetadata(), linkedEvent.getMetadata()) && - Objects.equals(getCreatedAt(), linkedEvent.getCreatedAt()) && - Objects.equals(getEventNumber(), linkedEvent.getEventNumber()) && - Objects.equals(previousEventNumber, linkedEvent.previousEventNumber); + final PublishedEvent publishedEvent = (PublishedEvent) o; + return Objects.equals(getId(), publishedEvent.getId()) && + Objects.equals(getStreamId(), publishedEvent.getStreamId()) && + Objects.equals(getSequenceId(), publishedEvent.getSequenceId()) && + Objects.equals(getName(), publishedEvent.getName()) && + Objects.equals(getPayload(), publishedEvent.getPayload()) && + Objects.equals(getMetadata(), publishedEvent.getMetadata()) && + Objects.equals(getCreatedAt(), publishedEvent.getCreatedAt()) && + Objects.equals(getEventNumber(), publishedEvent.getEventNumber()) && + Objects.equals(previousEventNumber, publishedEvent.previousEventNumber); } @Override @@ -52,7 +52,7 @@ public int hashCode() { @Override public String toString() { - return "LinkedEvent{" + + return "PublishedEvent{" + "id=" + getId() + ", streamId=" + getStreamId() + ", sequenceId=" + getSequenceId() + diff --git a/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEventFinder.java b/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEventFinder.java similarity index 84% rename from event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEventFinder.java rename to event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEventFinder.java index f9b0dfe03..7b8f72537 100644 --- a/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEventFinder.java +++ b/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEventFinder.java @@ -16,9 +16,9 @@ import javax.inject.Inject; import javax.sql.DataSource; -public class LinkedEventFinder { +public class PublishedEventFinder { - private static final String SQL_FIND_ALL_SINCE = "SELECT * FROM linked_event WHERE event_number > ? ORDER BY event_number ASC"; + private static final String SQL_FIND_ALL_SINCE = "SELECT * FROM published_event WHERE event_number > ? ORDER BY event_number ASC"; private static final String ID = "id"; private static final String STREAM_ID = "stream_id"; @@ -34,23 +34,23 @@ public class LinkedEventFinder { private JdbcRepositoryHelper jdbcRepositoryHelper; - public Stream findEventsSince(final long eventNumber, final DataSource dataSource) { + public Stream findEventsSince(final long eventNumber, final DataSource dataSource) { try { final PreparedStatementWrapper psWrapper = jdbcRepositoryHelper.preparedStatementWrapperOf(dataSource, SQL_FIND_ALL_SINCE); psWrapper.setLong(1, eventNumber); - return jdbcRepositoryHelper.streamOf(psWrapper, asLinkedEvent()); + return jdbcRepositoryHelper.streamOf(psWrapper, asPublishedEvent()); } catch (final SQLException e) { throw new JdbcRepositoryException(format("Failed to find events since event_number %d", eventNumber), e); } } - private Function asLinkedEvent() { + private Function asPublishedEvent() { return resultSet -> { try { - return new LinkedEvent((UUID) resultSet.getObject(ID), + return new PublishedEvent((UUID) resultSet.getObject(ID), (UUID) resultSet.getObject(STREAM_ID), resultSet.getLong(POSITION_IN_STREAM), resultSet.getString(NAME), diff --git a/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEventJdbcRepository.java b/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEventJdbcRepository.java similarity index 56% rename from event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEventJdbcRepository.java rename to event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEventJdbcRepository.java index 9b0e44385..50186e6e3 100644 --- a/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEventJdbcRepository.java +++ b/event-sourcing/event-repository/event-repository-jdbc/src/main/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEventJdbcRepository.java @@ -6,11 +6,11 @@ import java.sql.PreparedStatement; import java.sql.SQLException; -public class LinkedEventJdbcRepository { - private static final String TRUNCATE_LINKED_EVENT = "TRUNCATE linked_event"; +public class PublishedEventJdbcRepository { + private static final String TRUNCATE_LINKED_EVENT = "TRUNCATE published_event"; private static final String TRUNCATE_PREPUBLISH_QUEUE = "TRUNCATE pre_publish_queue"; - private static final String INSERT_INTO_LINKED_EVENT_SQL = "INSERT into linked_event (" + + private static final String INSERT_INTO_LINKED_EVENT_SQL = "INSERT into published_event (" + "id, stream_id, position_in_stream, name, payload, metadata, date_created, event_number, previous_event_number) " + "VALUES " + "(?, ?, ?, ?, ?, ?, ?, ?, ?)"; @@ -27,18 +27,18 @@ public long truncate(final Connection connection) throws SQLException { return 0; } - public void insertLinkedEvent(final LinkedEvent linkedEvent, final Connection connection) throws SQLException { + public void insertPublishedEvent(final PublishedEvent publishedEvent, final Connection connection) throws SQLException { try (final PreparedStatement preparedStatement = connection.prepareStatement(INSERT_INTO_LINKED_EVENT_SQL)) { - preparedStatement.setObject(1, linkedEvent.getId()); - preparedStatement.setObject(2, linkedEvent.getStreamId()); - preparedStatement.setLong(3, linkedEvent.getSequenceId()); - preparedStatement.setString(4, linkedEvent.getName()); - preparedStatement.setString(5, linkedEvent.getPayload()); - preparedStatement.setString(6, linkedEvent.getMetadata()); - preparedStatement.setObject(7, toSqlTimestamp(linkedEvent.getCreatedAt())); - preparedStatement.setLong(8, linkedEvent.getEventNumber().orElseThrow(() -> new MissingEventNumberException("Event with id '%s' does not have an event number"))); - preparedStatement.setLong(9, linkedEvent.getPreviousEventNumber()); + preparedStatement.setObject(1, publishedEvent.getId()); + preparedStatement.setObject(2, publishedEvent.getStreamId()); + preparedStatement.setLong(3, publishedEvent.getSequenceId()); + preparedStatement.setString(4, publishedEvent.getName()); + preparedStatement.setString(5, publishedEvent.getPayload()); + preparedStatement.setString(6, publishedEvent.getMetadata()); + preparedStatement.setObject(7, toSqlTimestamp(publishedEvent.getCreatedAt())); + preparedStatement.setLong(8, publishedEvent.getEventNumber().orElseThrow(() -> new MissingEventNumberException("Event with id '%s' does not have an event number"))); + preparedStatement.setLong(9, publishedEvent.getPreviousEventNumber()); preparedStatement.execute(); } diff --git a/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/EventRepositoryFactoryTest.java b/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/EventRepositoryFactoryTest.java index f2d7439e4..9afe7355c 100644 --- a/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/EventRepositoryFactoryTest.java +++ b/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/EventRepositoryFactoryTest.java @@ -8,7 +8,7 @@ import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventFinder; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventFinder; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepository; import org.junit.Test; @@ -31,12 +31,12 @@ public class EventRepositoryFactoryTest { public void shouldProduceEventStreamManager() throws Exception { final EventJdbcRepository eventJdbcRepository = mock(EventJdbcRepository.class); final EventStreamJdbcRepository eventStreamJdbcRepository = mock(EventStreamJdbcRepository.class); - final LinkedEventFinder linkedEventFinder = mock(LinkedEventFinder.class); + final PublishedEventFinder publishedEventFinder = mock(PublishedEventFinder.class); final EventRepository eventRepository = eventRepositoryFactory.eventRepository( eventJdbcRepository, eventStreamJdbcRepository, - linkedEventFinder); + publishedEventFinder); assertThat(eventRepository, is(notNullValue())); @@ -49,8 +49,8 @@ public void shouldProduceEventStreamManager() throws Exception { final EventConverter eventConverterField = getValueOfField(eventRepository, "eventConverter", EventConverter.class); assertThat(eventConverterField, is(eventConverter)); - final LinkedEventFinder linkedEventFinderField = getValueOfField(eventRepository, "linkedEventFinder", LinkedEventFinder.class); - assertThat(linkedEventFinderField, is(linkedEventFinder)); + final PublishedEventFinder publishedEventFinderField = getValueOfField(eventRepository, "publishedEventFinder", PublishedEventFinder.class); + assertThat(publishedEventFinderField, is(publishedEventFinder)); final Logger loggerField = getValueOfField(eventRepository, "logger", Logger.class); assertThat(loggerField, is(notNullValue())); diff --git a/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/JdbcBasedEventRepositoryTest.java b/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/JdbcBasedEventRepositoryTest.java index 0dabb4496..f37c8a483 100644 --- a/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/JdbcBasedEventRepositoryTest.java +++ b/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/JdbcBasedEventRepositoryTest.java @@ -1,9 +1,9 @@ package uk.gov.justice.services.eventsourcing.repository.jdbc; import static java.time.ZonedDateTime.now; -import static java.util.Collections.singletonList; import static java.util.UUID.randomUUID; import static java.util.stream.Collectors.toList; +import static java.util.stream.Stream.of; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; @@ -19,8 +19,8 @@ import uk.gov.justice.services.eventsourcing.repository.jdbc.event.Event; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventFinder; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventFinder; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStream; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.exception.InvalidPositionException; @@ -32,8 +32,6 @@ import uk.gov.justice.services.test.utils.common.stream.StreamCloseSpy; import java.time.ZonedDateTime; -import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.UUID; @@ -79,7 +77,7 @@ public class JdbcBasedEventRepositoryTest { private EventStream eventStream; @Mock - private LinkedEventFinder linkedEventFinder; + private PublishedEventFinder publishedEventFinder; @InjectMocks private JdbcBasedEventRepository jdbcBasedEventRepository; @@ -88,7 +86,7 @@ public class JdbcBasedEventRepositoryTest { @Test public void shouldGetAllEvents() throws Exception { - when(eventJdbcRepository.findAll()).thenReturn(Stream.of(event)); + when(eventJdbcRepository.findAll()).thenReturn(of(event)); when(eventConverter.envelopeOf(event)).thenReturn(envelope); Stream streamOfEnvelopes = jdbcBasedEventRepository.getEvents(); @@ -100,7 +98,7 @@ public void shouldGetAllEvents() throws Exception { @Test public void shouldGetByStreamId() throws Exception { - when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(STREAM_ID)).thenReturn(Stream.of(event)); + when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(STREAM_ID)).thenReturn(of(event)); when(eventConverter.envelopeOf(event)).thenReturn(envelope); Stream streamOfEnvelopes = jdbcBasedEventRepository.getEventsByStreamId(STREAM_ID); @@ -117,7 +115,7 @@ public void shouldThrowExceptionOnNullStreamId() throws Exception { @Test public void shouldGetByStreamIdAndSequenceId() throws Exception { - when(eventJdbcRepository.findByStreamIdFromPositionOrderByPositionAsc(STREAM_ID, POSITION)).thenReturn(Stream.of(event)); + when(eventJdbcRepository.findByStreamIdFromPositionOrderByPositionAsc(STREAM_ID, POSITION)).thenReturn(of(event)); when(eventConverter.envelopeOf(event)).thenReturn(envelope); Stream streamOfEnvelopes = jdbcBasedEventRepository.getEventsByStreamIdFromPosition(STREAM_ID, POSITION); @@ -132,7 +130,7 @@ public void shouldGetByStreamIdAndPositionByPage() throws Exception { final Integer pageSize = 1000; - when(eventJdbcRepository.findByStreamIdFromPositionOrderByPositionAsc(STREAM_ID, POSITION, pageSize)).thenReturn(Stream.of(event)); + when(eventJdbcRepository.findByStreamIdFromPositionOrderByPositionAsc(STREAM_ID, POSITION, pageSize)).thenReturn(of(event)); when(eventConverter.envelopeOf(event)).thenReturn(envelope); final Stream streamOfEnvelopes = jdbcBasedEventRepository.getEventsByStreamIdFromPosition(STREAM_ID, POSITION, pageSize); @@ -176,10 +174,10 @@ public void shouldGetStreamOfStreams() throws Exception { final JsonEnvelope envelope3 = mock(JsonEnvelope.class); - when(eventJdbcRepository.getStreamIds()).thenReturn(Stream.of(streamId1, streamId2, streamId3)); - when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId1)).thenReturn(Stream.of(event1)); - when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId2)).thenReturn(Stream.of(event2)); - when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId3)).thenReturn(Stream.of(event3)); + when(eventJdbcRepository.getStreamIds()).thenReturn(of(streamId1, streamId2, streamId3)); + when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId1)).thenReturn(of(event1)); + when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId2)).thenReturn(of(event2)); + when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId3)).thenReturn(of(event3)); when(eventConverter.envelopeOf(event1)).thenReturn(envelope1); when(eventConverter.envelopeOf(event2)).thenReturn(envelope2); @@ -208,10 +206,10 @@ public void shouldGetActiveStreamOfStreams() throws Exception { final JsonEnvelope envelope2 = mock(JsonEnvelope.class); final JsonEnvelope envelope3 = mock(JsonEnvelope.class); - when(eventStreamJdbcRepository.findActive()).thenReturn(Stream.of(buildEventStreamFor(streamId1, 1L), buildEventStreamFor(streamId2, 2L), buildEventStreamFor(streamId3, 3L))); - when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId1)).thenReturn(Stream.of(event1)); - when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId2)).thenReturn(Stream.of(event2)); - when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId3)).thenReturn(Stream.of(event3)); + when(eventStreamJdbcRepository.findActive()).thenReturn(of(buildEventStreamFor(streamId1, 1L), buildEventStreamFor(streamId2, 2L), buildEventStreamFor(streamId3, 3L))); + when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId1)).thenReturn(of(event1)); + when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId2)).thenReturn(of(event2)); + when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId3)).thenReturn(of(event3)); when(eventConverter.envelopeOf(event1)).thenReturn(envelope1); when(eventConverter.envelopeOf(event2)).thenReturn(envelope2); @@ -234,7 +232,7 @@ public void shouldGetActiveStreamOfStreamIds() throws Exception { final UUID streamId2 = UUID.fromString("4b4e80a0-76f7-476c-b75b-527e38fb252e"); final UUID streamId3 = UUID.fromString("4b4e80a0-76f7-476c-b75b-527e38fb253e"); - when(eventStreamJdbcRepository.findActive()).thenReturn(Stream.of(buildEventStreamFor(streamId1, 1L), buildEventStreamFor(streamId2, 2L), buildEventStreamFor(streamId3, 3L))); + when(eventStreamJdbcRepository.findActive()).thenReturn(of(buildEventStreamFor(streamId1, 1L), buildEventStreamFor(streamId2, 2L), buildEventStreamFor(streamId3, 3L))); final Stream allActiveStreamIds = jdbcBasedEventRepository.getAllActiveStreamIds(); @@ -264,10 +262,10 @@ public void shouldCloseAllStreamsOnCloseOfStreamOfStreams() throws Exception { StreamCloseSpy streamCloseSpy3 = new StreamCloseSpy(); StreamCloseSpy streamCloseSpy4 = new StreamCloseSpy(); - when(eventJdbcRepository.getStreamIds()).thenReturn(Stream.of(streamId1, streamId2, streamId3).onClose(streamCloseSpy1)); - when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId1)).thenReturn(Stream.of(event1).onClose(streamCloseSpy2)); - when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId2)).thenReturn(Stream.of(event2).onClose(streamCloseSpy3)); - when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId3)).thenReturn(Stream.of(event3).onClose(streamCloseSpy4)); + when(eventJdbcRepository.getStreamIds()).thenReturn(of(streamId1, streamId2, streamId3).onClose(streamCloseSpy1)); + when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId1)).thenReturn(of(event1).onClose(streamCloseSpy2)); + when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId2)).thenReturn(of(event2).onClose(streamCloseSpy3)); + when(eventJdbcRepository.findByStreamIdOrderByPositionAsc(streamId3)).thenReturn(of(event3).onClose(streamCloseSpy4)); when(eventConverter.envelopeOf(event1)).thenReturn(envelope1); when(eventConverter.envelopeOf(event2)).thenReturn(envelope2); @@ -326,7 +324,7 @@ public void shouldDeleteStream() { public void shouldGetEventStreamBySequenceId() { final long POSITION = 1L; - when(eventStreamJdbcRepository.findEventStreamWithPositionFrom(POSITION)).thenReturn(Stream.of(eventStream)); + when(eventStreamJdbcRepository.findEventStreamWithPositionFrom(POSITION)).thenReturn(of(eventStream)); final Stream streamOfEnvelopes = eventStreamJdbcRepository.findEventStreamWithPositionFrom(POSITION); final List eventStreamObjectList = streamOfEnvelopes.collect(toList()); @@ -351,7 +349,7 @@ public void shouldGetEventStreamByPosition() { final boolean active = true; final ZonedDateTime createdAt = now(); final EventStream eventStream1 = new EventStream(streamId, position, true, createdAt); - final Stream eventStreams = Stream.of(eventStream1); + final Stream eventStreams = of(eventStream1); when(eventStreamJdbcRepository.findEventStreamWithPositionFrom(position)).thenReturn(eventStreams); @@ -376,7 +374,7 @@ public void shouldGetAllEventStreams() { final boolean active = true; final ZonedDateTime createdAt = now(); final EventStream eventStream1 = new EventStream(streamId, position, true, createdAt); - final Stream eventStreams = Stream.of(eventStream1); + final Stream eventStreams = of(eventStream1); when(eventStreamJdbcRepository.findAll()).thenReturn(eventStreams); @@ -413,17 +411,17 @@ public void shouldStoreEventStream() { } @Test - public void shouldUseTheLinkedEventFinderToFendEventsToCatchup() throws Exception { + public void shouldUseThePublishedEventFinderToFindEventsToCatchup() throws Exception { final long eventNumber = 23L; - final Stream linkedEventStream = Stream.of(mock(LinkedEvent.class)); + final Stream publishedEventStream = of(mock(PublishedEvent.class)); final DataSource dataSource = mock(DataSource.class); when(eventStreamJdbcRepository.getDataSource()).thenReturn(dataSource); - when(linkedEventFinder.findEventsSince(eventNumber, dataSource)).thenReturn(linkedEventStream); + when(publishedEventFinder.findEventsSince(eventNumber, dataSource)).thenReturn(publishedEventStream); - assertThat(linkedEventFinder.findEventsSince(eventNumber, dataSource), is(linkedEventStream)); + assertThat(publishedEventFinder.findEventsSince(eventNumber, dataSource), is(publishedEventStream)); } private EventStream buildEventStreamFor(final UUID streamId, final Long sequence) { @@ -433,4 +431,17 @@ private EventStream buildEventStreamFor(final UUID streamId, final Long sequence private Event eventOf(final UUID streamId) { return new Event(null, streamId, null, null, null, null, null); } + + @Test + public void shouldFindEventsSince() throws Exception { + + final Long eventNumber = 348374L; + final DataSource dataSource = mock(DataSource.class); + final Stream publishedEventStream = of(mock(PublishedEvent.class)); + + when(eventStreamJdbcRepository.getDataSource()).thenReturn(dataSource); + when(publishedEventFinder.findEventsSince(eventNumber, dataSource)).thenReturn(publishedEventStream); + + assertThat(jdbcBasedEventRepository.findEventsSince(eventNumber), is(publishedEventStream)); + } } diff --git a/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEventBuilder.java b/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEventBuilder.java similarity index 54% rename from event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEventBuilder.java rename to event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEventBuilder.java index 252536d53..c44c638fb 100644 --- a/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEventBuilder.java +++ b/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEventBuilder.java @@ -7,7 +7,7 @@ import java.time.ZonedDateTime; import java.util.UUID; -public class LinkedEventBuilder { +public class PublishedEventBuilder { private UUID id = randomUUID(); private UUID streamId = randomUUID(); @@ -19,58 +19,58 @@ public class LinkedEventBuilder { private Long eventNumber = 23L; private Long previousEventNumber = 22L; - protected LinkedEventBuilder() {} + protected PublishedEventBuilder() {} - public static LinkedEventBuilder linkedEventBuilder() { - return new LinkedEventBuilder(); + public static PublishedEventBuilder publishedEventBuilder() { + return new PublishedEventBuilder(); } - public LinkedEventBuilder withId(final UUID id) { + public PublishedEventBuilder withId(final UUID id) { this.id = id; return this; } - public LinkedEventBuilder withStreamId(final UUID streamId) { + public PublishedEventBuilder withStreamId(final UUID streamId) { this.streamId = streamId; return this; } - public LinkedEventBuilder withSequenceId(final Long sequenceId) { + public PublishedEventBuilder withSequenceId(final Long sequenceId) { this.sequenceId = sequenceId; return this; } - public LinkedEventBuilder withName(final String name) { + public PublishedEventBuilder withName(final String name) { this.name = name; return this; } - public LinkedEventBuilder withMetadataJSON(final String metadataJSON) { + public PublishedEventBuilder withMetadataJSON(final String metadataJSON) { this.metadataJSON = metadataJSON; return this; } - public LinkedEventBuilder withPayloadJSON(final String payloadJSON) { + public PublishedEventBuilder withPayloadJSON(final String payloadJSON) { this.payloadJSON = payloadJSON; return this; } - public LinkedEventBuilder withTimestamp(final ZonedDateTime timestamp) { + public PublishedEventBuilder withTimestamp(final ZonedDateTime timestamp) { this.timestamp = timestamp; return this; } - public LinkedEventBuilder withEventNumber(final long eventNumber) { + public PublishedEventBuilder withEventNumber(final long eventNumber) { this.eventNumber = eventNumber; return this; } - public LinkedEventBuilder withPreviousEventNumber(final long previousEventNumber) { + public PublishedEventBuilder withPreviousEventNumber(final long previousEventNumber) { this.previousEventNumber = previousEventNumber; return this; } - public LinkedEvent build() { - return new LinkedEvent(id, streamId, sequenceId, name, metadataJSON, payloadJSON, timestamp, eventNumber, previousEventNumber); + public PublishedEvent build() { + return new PublishedEvent(id, streamId, sequenceId, name, metadataJSON, payloadJSON, timestamp, eventNumber, previousEventNumber); } } diff --git a/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEventFinderIT.java b/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEventFinderIT.java similarity index 50% rename from event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEventFinderIT.java rename to event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEventFinderIT.java index 838747ce7..4391c7508 100644 --- a/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEventFinderIT.java +++ b/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEventFinderIT.java @@ -3,7 +3,7 @@ import static java.util.stream.Collectors.toList; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; -import static uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventBuilder.linkedEventBuilder; +import static uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventBuilder.publishedEventBuilder; import uk.gov.justice.services.jdbc.persistence.JdbcRepositoryHelper; import uk.gov.justice.services.test.utils.persistence.DatabaseCleaner; @@ -24,9 +24,9 @@ import org.mockito.runners.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) -public class LinkedEventFinderIT { +public class PublishedEventFinderIT { - private LinkedEventJdbcRepository linkedEventJdbcRepository = new LinkedEventJdbcRepository(); + private PublishedEventJdbcRepository publishedEventJdbcRepository = new PublishedEventJdbcRepository(); private DataSource dataSource; @Spy @@ -34,7 +34,7 @@ public class LinkedEventFinderIT { private JdbcRepositoryHelper jdbcRepositoryHelper = new JdbcRepositoryHelper(); @InjectMocks - private LinkedEventFinder linkedEventFinder; + private PublishedEventFinder publishedEventFinder; @Before public void initialize() throws Exception { @@ -50,27 +50,27 @@ public void after() throws SQLException { @Test public void shouldGetEventsSinceEventNumber() throws Exception { - final LinkedEvent event_1 = linkedEventBuilder().withPreviousEventNumber(0).withEventNumber(1).build(); - final LinkedEvent event_2 = linkedEventBuilder().withPreviousEventNumber(1).withEventNumber(2).build(); - final LinkedEvent event_3 = linkedEventBuilder().withPreviousEventNumber(2).withEventNumber(3).build(); - final LinkedEvent event_4 = linkedEventBuilder().withPreviousEventNumber(3).withEventNumber(4).build(); - final LinkedEvent event_5 = linkedEventBuilder().withPreviousEventNumber(4).withEventNumber(5).build(); + final PublishedEvent event_1 = publishedEventBuilder().withPreviousEventNumber(0).withEventNumber(1).build(); + final PublishedEvent event_2 = publishedEventBuilder().withPreviousEventNumber(1).withEventNumber(2).build(); + final PublishedEvent event_3 = publishedEventBuilder().withPreviousEventNumber(2).withEventNumber(3).build(); + final PublishedEvent event_4 = publishedEventBuilder().withPreviousEventNumber(3).withEventNumber(4).build(); + final PublishedEvent event_5 = publishedEventBuilder().withPreviousEventNumber(4).withEventNumber(5).build(); final Connection connection = dataSource.getConnection(); - linkedEventJdbcRepository.insertLinkedEvent(event_1, connection); - linkedEventJdbcRepository.insertLinkedEvent(event_2, connection); - linkedEventJdbcRepository.insertLinkedEvent(event_3, connection); - linkedEventJdbcRepository.insertLinkedEvent(event_4, connection); - linkedEventJdbcRepository.insertLinkedEvent(event_5, connection); + publishedEventJdbcRepository.insertPublishedEvent(event_1, connection); + publishedEventJdbcRepository.insertPublishedEvent(event_2, connection); + publishedEventJdbcRepository.insertPublishedEvent(event_3, connection); + publishedEventJdbcRepository.insertPublishedEvent(event_4, connection); + publishedEventJdbcRepository.insertPublishedEvent(event_5, connection); - final List linkedEvents = linkedEventFinder.findEventsSince(3, dataSource) + final List publishedEvents = publishedEventFinder.findEventsSince(3, dataSource) .collect(toList()); - assertThat(linkedEvents.size(), is(2)); + assertThat(publishedEvents.size(), is(2)); - assertThat(linkedEvents.get(0).getId(), is(event_4.getId())); - assertThat(linkedEvents.get(1).getId(), is(event_5.getId())); + assertThat(publishedEvents.get(0).getId(), is(event_4.getId())); + assertThat(publishedEvents.get(1).getId(), is(event_5.getId())); } } diff --git a/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEventJdbcRepositoryTest.java b/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEventJdbcRepositoryTest.java similarity index 65% rename from event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEventJdbcRepositoryTest.java rename to event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEventJdbcRepositoryTest.java index 8744e0759..d7ed3c6cc 100644 --- a/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/LinkedEventJdbcRepositoryTest.java +++ b/event-sourcing/event-repository/event-repository-jdbc/src/test/java/uk/gov/justice/services/eventsourcing/repository/jdbc/event/PublishedEventJdbcRepositoryTest.java @@ -24,11 +24,12 @@ @RunWith(MockitoJUnitRunner.class) -public class LinkedEventJdbcRepositoryTest { +public class PublishedEventJdbcRepositoryTest { + private final DataSource eventStoreDataSource = new FrameworkTestDataSourceFactory().createEventStoreDataSource(); @InjectMocks - LinkedEventJdbcRepository linkedEventJdbcRepository; + private PublishedEventJdbcRepository publishedEventJdbcRepository; @Before public void initDatabase() throws Exception { @@ -36,9 +37,9 @@ public void initDatabase() throws Exception { } @Test - public void shouldInsertALinkedEvent() throws Exception { + public void shouldInsertPublishedEvent() throws Exception { - final LinkedEvent linkedEvent = new LinkedEvent( + final PublishedEvent publishedEvent = new PublishedEvent( randomUUID(), randomUUID(), 982347L, @@ -51,24 +52,24 @@ public void shouldInsertALinkedEvent() throws Exception { ); try (final Connection connection = eventStoreDataSource.getConnection()) { - linkedEventJdbcRepository.insertLinkedEvent(linkedEvent, connection); + publishedEventJdbcRepository.insertPublishedEvent(publishedEvent, connection); } try (final Connection connection = eventStoreDataSource.getConnection(); - final PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM linked_event"); + final PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM published_event"); final ResultSet resultSet = preparedStatement.executeQuery()) { if (resultSet.next()) { - assertThat(resultSet.getObject(1), is(linkedEvent.getId())); - assertThat(resultSet.getObject(2), is(linkedEvent.getStreamId())); - assertThat(resultSet.getObject(3), is(linkedEvent.getSequenceId())); - assertThat(resultSet.getString(4), is(linkedEvent.getName())); - assertThat(resultSet.getString(5), is(linkedEvent.getPayload())); - assertThat(resultSet.getString(6), is(linkedEvent.getMetadata())); - assertThat(fromSqlTimestamp(resultSet.getTimestamp(7)), is(linkedEvent.getCreatedAt())); - assertThat(resultSet.getLong(8), is(linkedEvent.getEventNumber().get())); - assertThat(resultSet.getObject(9), is(linkedEvent.getPreviousEventNumber())); + assertThat(resultSet.getObject(1), is(publishedEvent.getId())); + assertThat(resultSet.getObject(2), is(publishedEvent.getStreamId())); + assertThat(resultSet.getObject(3), is(publishedEvent.getSequenceId())); + assertThat(resultSet.getString(4), is(publishedEvent.getName())); + assertThat(resultSet.getString(5), is(publishedEvent.getPayload())); + assertThat(resultSet.getString(6), is(publishedEvent.getMetadata())); + assertThat(fromSqlTimestamp(resultSet.getTimestamp(7)), is(publishedEvent.getCreatedAt())); + assertThat(resultSet.getLong(8), is(publishedEvent.getEventNumber().get())); + assertThat(resultSet.getObject(9), is(publishedEvent.getPreviousEventNumber())); } else { fail(); } @@ -76,9 +77,9 @@ public void shouldInsertALinkedEvent() throws Exception { } @Test - public void shouldTrucateLinkedEventTable() throws Exception { + public void shouldTrucatePublishedEventTable() throws Exception { - final LinkedEvent linkedEvent = new LinkedEvent( + final PublishedEvent publishedEvent = new PublishedEvent( randomUUID(), randomUUID(), 982347L, @@ -91,14 +92,14 @@ public void shouldTrucateLinkedEventTable() throws Exception { ); try (final Connection connection = eventStoreDataSource.getConnection()) { - linkedEventJdbcRepository.insertLinkedEvent(linkedEvent, connection); + publishedEventJdbcRepository.insertPublishedEvent(publishedEvent, connection); } try (final Connection connection = eventStoreDataSource.getConnection()) { - linkedEventJdbcRepository.truncate(connection); + publishedEventJdbcRepository.truncate(connection); } try (final Connection connection = eventStoreDataSource.getConnection(); - final PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM linked_event"); + final PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM published_event"); final ResultSet resultSet = preparedStatement.executeQuery()) { if (resultSet.next()) { fail(); diff --git a/event-sourcing/event-repository/event-repository-liquibase/src/main/resources/liquibase/event-store-db-changesets/018-create-linkeded-event-table.xml b/event-sourcing/event-repository/event-repository-liquibase/src/main/resources/liquibase/event-store-db-changesets/018-create-linkeded-event-table.xml index 7b228cc17..fd8405449 100644 --- a/event-sourcing/event-repository/event-repository-liquibase/src/main/resources/liquibase/event-store-db-changesets/018-create-linkeded-event-table.xml +++ b/event-sourcing/event-repository/event-repository-liquibase/src/main/resources/liquibase/event-store-db-changesets/018-create-linkeded-event-table.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.3.xsd"> - diff --git a/event-sourcing/event-repository/event-repository-liquibase/src/main/resources/liquibase/event-store-db-changesets/019-rename-linkeded-event-table-to-published-event.xml b/event-sourcing/event-repository/event-repository-liquibase/src/main/resources/liquibase/event-store-db-changesets/019-rename-linkeded-event-table-to-published-event.xml new file mode 100644 index 000000000..426042c5a --- /dev/null +++ b/event-sourcing/event-repository/event-repository-liquibase/src/main/resources/liquibase/event-store-db-changesets/019-rename-linkeded-event-table-to-published-event.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + diff --git a/event-sourcing/event-source-api-integration-test/src/test/java/uk/gov/justice/services/eventsourcing/source/api/EventStreamPageIT.java b/event-sourcing/event-source-api-integration-test/src/test/java/uk/gov/justice/services/eventsourcing/source/api/EventStreamPageIT.java index 4e223113e..307ec753e 100644 --- a/event-sourcing/event-source-api-integration-test/src/test/java/uk/gov/justice/services/eventsourcing/source/api/EventStreamPageIT.java +++ b/event-sourcing/event-source-api-integration-test/src/test/java/uk/gov/justice/services/eventsourcing/source/api/EventStreamPageIT.java @@ -39,7 +39,7 @@ import uk.gov.justice.services.eventsourcing.repository.jdbc.PostgresSQLEventLogInsertionStrategy; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepositoryFactory; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventFinder; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventFinder; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepositoryFactory; import uk.gov.justice.services.eventsourcing.source.api.resource.EventSourceApiApplication; @@ -227,7 +227,7 @@ public EventInsertionStrategy eventLogInsertionStrategy() { DefaultEventSourceDefinitionFactory.class, SubscriptionHelper.class, - LinkedEventFinder.class + PublishedEventFinder.class }) public WebApp war() { diff --git a/event-sourcing/event-source-api-integration-test/src/test/java/uk/gov/justice/services/eventsourcing/source/api/EventsPageIT.java b/event-sourcing/event-source-api-integration-test/src/test/java/uk/gov/justice/services/eventsourcing/source/api/EventsPageIT.java index fee679a92..f81c57909 100644 --- a/event-sourcing/event-source-api-integration-test/src/test/java/uk/gov/justice/services/eventsourcing/source/api/EventsPageIT.java +++ b/event-sourcing/event-source-api-integration-test/src/test/java/uk/gov/justice/services/eventsourcing/source/api/EventsPageIT.java @@ -42,7 +42,7 @@ import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepositoryFactory; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventFinder; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventFinder; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepositoryFactory; import uk.gov.justice.services.eventsourcing.repository.jdbc.exception.InvalidPositionException; import uk.gov.justice.services.eventsourcing.source.api.resource.EventPageResource; @@ -233,7 +233,7 @@ public EventInsertionStrategy eventLogInsertionStrategy() { DefaultEventSourceDefinitionFactory.class, SubscriptionHelper.class, - LinkedEventFinder.class + PublishedEventFinder.class }) public WebApp war() { return new WebApp() diff --git a/event-sourcing/event-source/src/main/java/uk/gov/justice/services/eventsourcing/source/core/DefaultLinkedEventSourceTransformation.java b/event-sourcing/event-source/src/main/java/uk/gov/justice/services/eventsourcing/source/core/DefaultPublishedEventSourceTransformation.java similarity index 51% rename from event-sourcing/event-source/src/main/java/uk/gov/justice/services/eventsourcing/source/core/DefaultLinkedEventSourceTransformation.java rename to event-sourcing/event-source/src/main/java/uk/gov/justice/services/eventsourcing/source/core/DefaultPublishedEventSourceTransformation.java index 749a22cda..a7fd566dd 100644 --- a/event-sourcing/event-source/src/main/java/uk/gov/justice/services/eventsourcing/source/core/DefaultLinkedEventSourceTransformation.java +++ b/event-sourcing/event-source/src/main/java/uk/gov/justice/services/eventsourcing/source/core/DefaultPublishedEventSourceTransformation.java @@ -1,7 +1,7 @@ package uk.gov.justice.services.eventsourcing.source.core; -import uk.gov.justice.services.eventsourcing.linkedevent.ActiveStreamsProcessor; -import uk.gov.justice.services.eventsourcing.linkedevent.LinkedEventsProcessor; +import uk.gov.justice.services.eventsourcing.publishedevent.ActiveStreamsProcessor; +import uk.gov.justice.services.eventsourcing.publishedevent.PublishedEventsProcessor; import uk.gov.justice.services.eventsourcing.source.core.exception.LinkedEventException; import javax.inject.Inject; @@ -9,22 +9,22 @@ /** * Implementation of {@link EventSourceTransformation} */ -public class DefaultLinkedEventSourceTransformation implements LinkedEventSourceTransformation { +public class DefaultPublishedEventSourceTransformation implements LinkedEventSourceTransformation { @Inject private ActiveStreamsProcessor activeStreamsProcessor; @Inject - private LinkedEventsProcessor linkedEventsProcessor; + private PublishedEventsProcessor publishedEventsProcessor; @Override public void truncate() throws LinkedEventException { - linkedEventsProcessor.truncateLinkedEvents(); + publishedEventsProcessor.truncatePublishedEvents(); } @Override public void populate() throws LinkedEventException { - activeStreamsProcessor.populateLinkedEvents(); + activeStreamsProcessor.populatePublishedEvents(); } } diff --git a/event-sourcing/event-source/src/main/java/uk/gov/justice/services/eventsourcing/source/core/EventSourceTransformationProducer.java b/event-sourcing/event-source/src/main/java/uk/gov/justice/services/eventsourcing/source/core/EventSourceTransformationProducer.java index 84e25e5f6..774501906 100644 --- a/event-sourcing/event-source/src/main/java/uk/gov/justice/services/eventsourcing/source/core/EventSourceTransformationProducer.java +++ b/event-sourcing/event-source/src/main/java/uk/gov/justice/services/eventsourcing/source/core/EventSourceTransformationProducer.java @@ -4,7 +4,7 @@ import uk.gov.justice.services.eventsourcing.repository.jdbc.EventRepositoryFactory; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepositoryFactory; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventFinder; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventFinder; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepositoryFactory; import uk.gov.justice.subscription.domain.eventsource.EventSourceDefinition; @@ -33,7 +33,7 @@ public class EventSourceTransformationProducer { private EventSourceDefinitionRegistry eventSourceDefinitionRegistry; @Inject - private LinkedEventFinder linkedEventFinder; + private PublishedEventFinder publishedEventFinder; @Produces public EventSourceTransformation eventSourceTransformation() { @@ -47,7 +47,7 @@ public EventSourceTransformation eventSourceTransformation() { final EventRepository eventRepository = eventRepositoryFactory.eventRepository( eventJdbcRepository, eventStreamJdbcRepository, - linkedEventFinder); + publishedEventFinder); final EventStreamManager eventStreamManager = eventStreamManagerFactory.eventStreamManager(eventRepository, defaultEventSourceDefinition.getName()); diff --git a/event-sourcing/event-source/src/main/java/uk/gov/justice/services/eventsourcing/source/core/JdbcEventSourceFactory.java b/event-sourcing/event-source/src/main/java/uk/gov/justice/services/eventsourcing/source/core/JdbcEventSourceFactory.java index abe1f9cda..47ff29e8b 100644 --- a/event-sourcing/event-source/src/main/java/uk/gov/justice/services/eventsourcing/source/core/JdbcEventSourceFactory.java +++ b/event-sourcing/event-source/src/main/java/uk/gov/justice/services/eventsourcing/source/core/JdbcEventSourceFactory.java @@ -5,7 +5,7 @@ import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepositoryFactory; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventFinder; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventFinder; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepositoryFactory; @@ -31,7 +31,7 @@ public class JdbcEventSourceFactory { EventConverter eventConverter; @Inject - private LinkedEventFinder linkedEventFinder; + private PublishedEventFinder publishedEventFinder; public JdbcBasedEventSource create(final String jndiDatasource, String eventSourceName) { @@ -41,7 +41,7 @@ public JdbcBasedEventSource create(final String jndiDatasource, String eventSour final EventRepository eventRepository = eventRepositoryFactory.eventRepository( eventJdbcRepository, eventStreamJdbcRepository, - linkedEventFinder); + publishedEventFinder); final EventStreamManager eventStreamManager = eventStreamManagerFactory.eventStreamManager(eventRepository, eventSourceName); diff --git a/event-sourcing/event-source/src/test/java/uk/gov/justice/services/eventsourcing/source/core/DefaultPublishedEventSourceTransformationTest.java b/event-sourcing/event-source/src/test/java/uk/gov/justice/services/eventsourcing/source/core/DefaultPublishedEventSourceTransformationTest.java new file mode 100644 index 000000000..42260f767 --- /dev/null +++ b/event-sourcing/event-source/src/test/java/uk/gov/justice/services/eventsourcing/source/core/DefaultPublishedEventSourceTransformationTest.java @@ -0,0 +1,41 @@ +package uk.gov.justice.services.eventsourcing.source.core; + +import static org.mockito.Mockito.verify; + +import uk.gov.justice.services.eventsourcing.publishedevent.ActiveStreamsProcessor; +import uk.gov.justice.services.eventsourcing.publishedevent.PublishedEventsProcessor; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; + +@RunWith(MockitoJUnitRunner.class) +public class DefaultPublishedEventSourceTransformationTest { + + @Mock + private ActiveStreamsProcessor activeStreamsProcessor; + + @Mock + private PublishedEventsProcessor publishedEventsProcessor; + + @InjectMocks + private DefaultPublishedEventSourceTransformation defaultPublishedEventSourceTransformation; + + @Test + public void shouldTruncatePublishedEvents() throws Exception { + + defaultPublishedEventSourceTransformation.truncate(); + + verify(publishedEventsProcessor).truncatePublishedEvents(); + } + + @Test + public void shouldPopulatePublishedEvents() throws Exception { + + defaultPublishedEventSourceTransformation.populate(); + + verify(activeStreamsProcessor).populatePublishedEvents(); + } +} diff --git a/event-sourcing/event-source/src/test/java/uk/gov/justice/services/eventsourcing/source/core/EventSourceTransformationProducerTest.java b/event-sourcing/event-source/src/test/java/uk/gov/justice/services/eventsourcing/source/core/EventSourceTransformationProducerTest.java index d979588ec..6de7afeba 100644 --- a/event-sourcing/event-source/src/test/java/uk/gov/justice/services/eventsourcing/source/core/EventSourceTransformationProducerTest.java +++ b/event-sourcing/event-source/src/test/java/uk/gov/justice/services/eventsourcing/source/core/EventSourceTransformationProducerTest.java @@ -15,7 +15,7 @@ import uk.gov.justice.services.eventsourcing.repository.jdbc.EventRepositoryFactory; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepositoryFactory; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventFinder; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventFinder; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepositoryFactory; import uk.gov.justice.subscription.domain.eventsource.EventSourceDefinition; @@ -46,7 +46,7 @@ public class EventSourceTransformationProducerTest { private EventSourceDefinitionRegistry eventSourceDefinitionRegistry; @Mock - private LinkedEventFinder linkedEventFinder; + private PublishedEventFinder publishedEventFinder; @InjectMocks private EventSourceTransformationProducer eventSourceTransformationProducer; @@ -64,7 +64,7 @@ public void shouldCreateEventSourceTransformation() throws Exception { .withDataSource("jndi:datasource") .build()) .build(); - when(eventRepositoryFactory.eventRepository(any(EventJdbcRepository.class), any(EventStreamJdbcRepository.class), eq(linkedEventFinder))).thenReturn(eventRepository); + when(eventRepositoryFactory.eventRepository(any(EventJdbcRepository.class), any(EventStreamJdbcRepository.class), eq(publishedEventFinder))).thenReturn(eventRepository); when(eventStreamManagerFactory.eventStreamManager(eventRepository, eventSourceDefinition.getName())).thenReturn(eventStreamManager); when(eventSourceDefinitionRegistry.getDefaultEventSourceDefinition()).thenReturn(eventSourceDefinition); final EventSourceTransformation eventSourceTransformation = eventSourceTransformationProducer.eventSourceTransformation(); diff --git a/event-sourcing/event-source/src/test/java/uk/gov/justice/services/eventsourcing/source/core/JdbcBasedEventSourceTest.java b/event-sourcing/event-source/src/test/java/uk/gov/justice/services/eventsourcing/source/core/JdbcBasedEventSourceTest.java index 61a5bfcde..c86999cab 100644 --- a/event-sourcing/event-source/src/test/java/uk/gov/justice/services/eventsourcing/source/core/JdbcBasedEventSourceTest.java +++ b/event-sourcing/event-source/src/test/java/uk/gov/justice/services/eventsourcing/source/core/JdbcBasedEventSourceTest.java @@ -14,7 +14,7 @@ import uk.gov.justice.services.eventsourcing.repository.jdbc.EventRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.EventStreamMetadata; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEvent; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEvent; import uk.gov.justice.services.messaging.JsonEnvelope; import uk.gov.justice.services.test.utils.core.reflection.ReflectionUtil; @@ -116,11 +116,11 @@ public void shouldFindEventsByEventNumber() throws Exception { final long eventNumber = 972834L; - final LinkedEvent linkedEvent = mock(LinkedEvent.class); + final PublishedEvent publishedEvent = mock(PublishedEvent.class); final JsonEnvelope jsonEnvelope = mock(JsonEnvelope.class); - when(eventRepository.findEventsSince(eventNumber)).thenReturn(Stream.of(linkedEvent)); - when(eventConverter.envelopeOf(linkedEvent)).thenReturn(jsonEnvelope); + when(eventRepository.findEventsSince(eventNumber)).thenReturn(Stream.of(publishedEvent)); + when(eventConverter.envelopeOf(publishedEvent)).thenReturn(jsonEnvelope); final List envelopes = jdbcBasedEventSource.findEventsSince(eventNumber).collect(toList()); diff --git a/event-sourcing/event-source/src/test/java/uk/gov/justice/services/eventsourcing/source/core/JdbcEventSourceFactoryTest.java b/event-sourcing/event-source/src/test/java/uk/gov/justice/services/eventsourcing/source/core/JdbcEventSourceFactoryTest.java index 636253ffb..e445906f4 100644 --- a/event-sourcing/event-source/src/test/java/uk/gov/justice/services/eventsourcing/source/core/JdbcEventSourceFactoryTest.java +++ b/event-sourcing/event-source/src/test/java/uk/gov/justice/services/eventsourcing/source/core/JdbcEventSourceFactoryTest.java @@ -11,7 +11,7 @@ import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventConverter; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.event.EventJdbcRepositoryFactory; -import uk.gov.justice.services.eventsourcing.repository.jdbc.event.LinkedEventFinder; +import uk.gov.justice.services.eventsourcing.repository.jdbc.event.PublishedEventFinder; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepository; import uk.gov.justice.services.eventsourcing.repository.jdbc.eventstream.EventStreamJdbcRepositoryFactory; @@ -40,7 +40,7 @@ public class JdbcEventSourceFactoryTest { private EventConverter eventConverter; @Mock - private LinkedEventFinder linkedEventFinder; + private PublishedEventFinder publishedEventFinder; @InjectMocks private JdbcEventSourceFactory jdbcEventSourceFactory; @@ -62,7 +62,7 @@ public void shouldCreateJdbcBasedEventSource() throws Exception { when(eventRepositoryFactory.eventRepository( eventJdbcRepository, eventStreamJdbcRepository, - linkedEventFinder)).thenReturn(eventRepository); + publishedEventFinder)).thenReturn(eventRepository); when(eventStreamManagerFactory.eventStreamManager(eventRepository, eventSourceName)).thenReturn(eventStreamManager); diff --git a/event-sourcing/subscription-manager/src/test/java/uk/gov/justice/services/event/sourcing/subscription/startup/task/EventQueueConsumerTest.java b/event-sourcing/subscription-manager/src/test/java/uk/gov/justice/services/event/sourcing/subscription/startup/task/EventQueueConsumerTest.java index a56d41c2f..38e093f1b 100644 --- a/event-sourcing/subscription-manager/src/test/java/uk/gov/justice/services/event/sourcing/subscription/startup/task/EventQueueConsumerTest.java +++ b/event-sourcing/subscription-manager/src/test/java/uk/gov/justice/services/event/sourcing/subscription/startup/task/EventQueueConsumerTest.java @@ -1,30 +1,12 @@ package uk.gov.justice.services.event.sourcing.subscription.startup.task; import static java.util.UUID.fromString; -import static java.util.UUID.randomUUID; import static javax.json.Json.createObjectBuilder; -import static org.junit.Assert.*; - -import org.junit.runner.RunWith; -import org.mockito.InOrder; -import org.mockito.runners.MockitoJUnitRunner; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.sameInstance; -import static org.junit.Assert.assertThat; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.inOrder; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; -import org.slf4j.Logger; - -import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; -import static org.mockito.Mockito.*; import static uk.gov.justice.services.messaging.JsonEnvelope.envelopeFrom; import static uk.gov.justice.services.messaging.JsonEnvelope.metadataBuilder; @@ -37,7 +19,13 @@ import java.util.UUID; import java.util.concurrent.ConcurrentLinkedQueue; -import javax.json.Json; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InOrder; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; +import org.slf4j.Logger; @RunWith(MockitoJUnitRunner.class) public class EventQueueConsumerTest { diff --git a/test-utils-event-store/test-utils-persistence/src/main/java/uk/gov/justice/services/test/utils/persistence/DatabaseCleaner.java b/test-utils-event-store/test-utils-persistence/src/main/java/uk/gov/justice/services/test/utils/persistence/DatabaseCleaner.java index 1c74fd596..8dd7f48c1 100644 --- a/test-utils-event-store/test-utils-persistence/src/main/java/uk/gov/justice/services/test/utils/persistence/DatabaseCleaner.java +++ b/test-utils-event-store/test-utils-persistence/src/main/java/uk/gov/justice/services/test/utils/persistence/DatabaseCleaner.java @@ -78,7 +78,7 @@ public void cleanEventStoreTables(final String contextName) { cleanTable("event_log", connection); cleanTable("event_stream", connection); cleanTable("pre_publish_queue", connection); - cleanTable("linked_event", connection); + cleanTable("published_event", connection); } catch (SQLException e) { throw new DataAccessException("Failed to commit or close database connection", e); diff --git a/test-utils-event-store/test-utils-persistence/src/test/java/uk/gov/justice/services/test/utils/persistence/DatabaseCleanerTest.java b/test-utils-event-store/test-utils-persistence/src/test/java/uk/gov/justice/services/test/utils/persistence/DatabaseCleanerTest.java index 193a50083..2724925db 100644 --- a/test-utils-event-store/test-utils-persistence/src/test/java/uk/gov/justice/services/test/utils/persistence/DatabaseCleanerTest.java +++ b/test-utils-event-store/test-utils-persistence/src/test/java/uk/gov/justice/services/test/utils/persistence/DatabaseCleanerTest.java @@ -61,7 +61,7 @@ public void shouldCleanTheEventTable() throws Exception { when(connection.prepareStatement("DELETE FROM " + "event_log")).thenReturn(preparedStatement); when(connection.prepareStatement("DELETE FROM " + "event_stream")).thenReturn(preparedStatement); when(connection.prepareStatement("DELETE FROM " + "pre_publish_queue")).thenReturn(preparedStatement); - when(connection.prepareStatement("DELETE FROM " + "linked_event")).thenReturn(preparedStatement); + when(connection.prepareStatement("DELETE FROM " + "published_event")).thenReturn(preparedStatement); databaseCleaner.cleanEventStoreTables(contextName);