Merge branch '1.1.x'

This commit is contained in:
Marcin Grzejszczak
2017-06-28 12:08:28 +02:00

View File

@@ -15,52 +15,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.handler.annotation.Headers;
import org.springframework.stereotype.Component;
@Component
public class RabbitManager {
public static final Logger LOG = LoggerFactory.getLogger(RabbitManager.class);
private BookService service;
private RabbitTemplate rabbitTemplate;
@Autowired
public RabbitManager(BookService service, RabbitTemplate rabbitTemplate) {
this.service = service;
this.rabbitTemplate = rabbitTemplate;
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(),
exchange = @Exchange(
value = "input",
durable="true",
autoDelete="false",
type="topic"),
key = "event"
))
public void newBook(Book book, @Headers Map<String, String> headers) {
LOG.info("Received new book with bookname = " + book.getName());
LOG.info("Headers = " + headers);
service.sendBook(book, headers.get("amqp_replyTo"));
}
@RabbitListener(bindings = @QueueBinding(
value = @Queue(),
exchange = @Exchange(
value = "input",
durable="true",
autoDelete="false",
type="topic"),
key = "event2"
))
public void newBook2(Book book, @Headers Map<String, String> headers) {
LOG.info("newBook2 Received new book with bookname = " + book.getName());
LOG.info("newBook2 Headers = " + headers);
service.sendBook(book, headers.get("amqp_replyTo"));
}
}
interface BookService {
void sendBook(Book book, String replyTo);
@@ -74,6 +28,40 @@ interface BookService {
}
@Component
public class RabbitManager {
public static final Logger LOG = LoggerFactory.getLogger(RabbitManager.class);
private BookService service;
private RabbitTemplate rabbitTemplate;
@Autowired public RabbitManager(BookService service, RabbitTemplate rabbitTemplate) {
this.service = service;
this.rabbitTemplate = rabbitTemplate;
}
@RabbitListener(bindings = @QueueBinding(value = @Queue(),
exchange = @Exchange(value = "input", durable = "true",
autoDelete = "false", type = "topic"), key = "event"))
public void newBook(
Book book, @Headers Map<String, String> headers) {
LOG.info("Received new book with bookname = " + book.getName());
LOG.info("Headers = " + headers);
this.service.sendBook(book, headers.get("amqp_replyTo"));
}
@RabbitListener(bindings = @QueueBinding(value = @Queue(),
exchange = @Exchange(value = "input", durable = "true",
autoDelete = "false", type = "topic"), key = "event2"))
public void newBook2(
Book book, @Headers Map<String, String> headers) {
LOG.info("newBook2 Received new book with bookname = " + book.getName());
LOG.info("newBook2 Headers = " + headers);
this.service.sendBook(book, headers.get("amqp_replyTo"));
}
}
@Component
class BookServiceImpl implements BookService {
public static final Logger LOG = LoggerFactory.getLogger(BookServiceImpl.class);
@@ -81,36 +69,30 @@ class BookServiceImpl implements BookService {
private List<Book> books;
private RabbitTemplate rabbitTemplate;
@Autowired
public BookServiceImpl(RabbitTemplate rabbitTemplate) {
books = new LinkedList<>();
@Autowired public BookServiceImpl(RabbitTemplate rabbitTemplate) {
this.books = new LinkedList<>();
this.rabbitTemplate = rabbitTemplate;
}
@Override
public void sendBook(Book book, String replyTo) {
@Override public void sendBook(Book book, String replyTo) {
LOG.info("Received new book with bookname = " + book.getName());
newBook(book);
rabbitTemplate.convertAndSend("", replyTo, book);
this.rabbitTemplate.convertAndSend("", replyTo, book);
}
@Override
public void newBook(Book book) {
books.add(book);
@Override public void newBook(Book book) {
this.books.add(book);
}
@Override
public Book getBook(int index) {
return books.get(index);
@Override public Book getBook(int index) {
return this.books.get(index);
}
@Override
public int noOfBooks() {
return books.size();
@Override public int noOfBooks() {
return this.books.size();
}
@Override
public List<Book> getBooks() {
return books;
@Override public List<Book> getBooks() {
return this.books;
}
}