Fixed warehouse data flow integration

This commit is contained in:
Kenny Bastani
2017-01-12 05:05:14 -08:00
parent 121a56ea95
commit c950f1b649
13 changed files with 210 additions and 105 deletions

View File

@@ -4,7 +4,6 @@ import demo.domain.Aggregate;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.stream.messaging.Source;
import org.springframework.data.domain.PageRequest;
import org.springframework.hateoas.Link;
import org.springframework.hateoas.MediaTypes;
@@ -37,13 +36,13 @@ public class BasicEventService<T extends Event, ID extends Serializable> impleme
private String eventsWorker;
private final EventRepository<T, ID> eventRepository;
private final Source eventStream;
private final EventSource eventSource;
private final RestTemplate restTemplate;
public BasicEventService(EventRepository<T, ID> eventRepository, Source eventStream, @LoadBalanced RestTemplate
public BasicEventService(EventRepository<T, ID> eventRepository, EventSource eventSource, @LoadBalanced RestTemplate
restTemplate) {
this.eventRepository = eventRepository;
this.eventStream = eventStream;
this.eventSource = eventSource;
this.restTemplate = restTemplate;
}
@@ -69,7 +68,7 @@ public class BasicEventService<T extends Event, ID extends Serializable> impleme
}
public <S extends T> Boolean sendAsync(S event, Link... links) {
return eventStream.output()
return eventSource.getChannel()
.send(MessageBuilder.withPayload(event)
.setHeader("contentType", MediaType.APPLICATION_JSON_UTF8_VALUE)
.build());

View File

@@ -20,18 +20,21 @@ import org.springframework.web.client.RestTemplate;
public class EventAutoConfig {
private EventRepository eventRepository;
private Source source;
private RestTemplate restTemplate;
public EventAutoConfig(EventRepository eventRepository, Source source, RestTemplate restTemplate) {
public EventAutoConfig(EventRepository eventRepository, RestTemplate restTemplate) {
this.eventRepository = eventRepository;
this.source = source;
this.restTemplate = restTemplate;
}
@SuppressWarnings("unchecked")
@Bean
public EventService eventService() {
return new BasicEventService(eventRepository, source, restTemplate);
public EventService eventService(EventSource eventSource) {
return new BasicEventService(eventRepository, eventSource, restTemplate);
}
@Bean
public EventSource eventSource(Source source) {
return new EventSource(source.output());
}
}

View File

@@ -0,0 +1,16 @@
package demo.event;
import org.springframework.messaging.MessageChannel;
public class EventSource {
private MessageChannel channel;
public EventSource(MessageChannel channel) {
this.channel = channel;
}
public MessageChannel getChannel() {
return channel;
}
}