diff --git a/spring-boot-samples/pom.xml b/spring-boot-samples/pom.xml index 8b39de18a4..904a17db7b 100644 --- a/spring-boot-samples/pom.xml +++ b/spring-boot-samples/pom.xml @@ -16,6 +16,7 @@ spring-boot-sample-actuator spring-boot-sample-actuator-ui + spring-boot-sample-amqp spring-boot-sample-aop spring-boot-sample-batch spring-boot-sample-data-jpa diff --git a/spring-boot-samples/spring-boot-sample-amqp/pom.xml b/spring-boot-samples/spring-boot-sample-amqp/pom.xml new file mode 100644 index 0000000000..818fefaafc --- /dev/null +++ b/spring-boot-samples/spring-boot-sample-amqp/pom.xml @@ -0,0 +1,31 @@ + + + 4.0.0 + + + org.springframework.boot + spring-boot-samples + 0.5.0.BUILD-SNAPSHOT + + spring-boot-sample-amqp + jar + + ${basedir}/../.. + + + + ${project.groupId} + spring-boot-starter-amqp + ${spring-boot.version} + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/spring-boot-samples/spring-boot-sample-amqp/src/main/java/org/springframework/boot/sample/amqp/SampleAmqpSimpleApplication.java b/spring-boot-samples/spring-boot-sample-amqp/src/main/java/org/springframework/boot/sample/amqp/SampleAmqpSimpleApplication.java new file mode 100644 index 0000000000..be5f281f48 --- /dev/null +++ b/spring-boot-samples/spring-boot-sample-amqp/src/main/java/org/springframework/boot/sample/amqp/SampleAmqpSimpleApplication.java @@ -0,0 +1,70 @@ +/* + * Copyright 2013 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.sample.amqp; + +import org.springframework.amqp.rabbit.connection.ConnectionFactory; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; +import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor; + +@Configuration +@EnableAutoConfiguration +@ComponentScan +public class SampleAmqpSimpleApplication { + + @Autowired + private RabbitTemplate rabbitTemplate; + + @Autowired + private ConnectionFactory connectionFactory; + + @Bean + public ScheduledAnnotationBeanPostProcessor scheduledAnnotationBeanPostProcessor() { + return new ScheduledAnnotationBeanPostProcessor(); + } + + @Bean + public Sender mySender() { + return new Sender(); + } + + @Bean + public SimpleMessageListenerContainer container() { + SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory); + Object listener = new Object() { + public void handleMessage(String foo) { + System.out.println(foo); + } + }; + MessageListenerAdapter adapter = new MessageListenerAdapter(listener); + container.setMessageListener(adapter); + container.setQueueNames("foo"); + return container; + } + + + public static void main(String[] args) throws Exception { + SpringApplication.run(SampleAmqpSimpleApplication.class, args); + } +} diff --git a/spring-boot-samples/spring-boot-sample-amqp/src/main/java/org/springframework/boot/sample/amqp/Sender.java b/spring-boot-samples/spring-boot-sample-amqp/src/main/java/org/springframework/boot/sample/amqp/Sender.java new file mode 100644 index 0000000000..432fd0ddd6 --- /dev/null +++ b/spring-boot-samples/spring-boot-sample-amqp/src/main/java/org/springframework/boot/sample/amqp/Sender.java @@ -0,0 +1,29 @@ +package org.springframework.boot.sample.amqp; + +import javax.annotation.PostConstruct; + +import org.springframework.amqp.core.AmqpAdmin; +import org.springframework.amqp.core.Queue; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; + +public class Sender { + + @Autowired + private RabbitTemplate rabbitTemplate; + + @Autowired + private AmqpAdmin amqpAdmin; + + @PostConstruct + public void setUpQueue() { + amqpAdmin.declareQueue(new Queue("foo")); + } + + @Scheduled(fixedDelay=1000L) + public void send() { + rabbitTemplate.convertAndSend("foo","hello"); + } + +} diff --git a/spring-boot-starters/spring-boot-starter-amqp/.gitignore b/spring-boot-starters/spring-boot-starter-amqp/.gitignore new file mode 100644 index 0000000000..ea8c4bf7f3 --- /dev/null +++ b/spring-boot-starters/spring-boot-starter-amqp/.gitignore @@ -0,0 +1 @@ +/target diff --git a/spring-boot-starters/spring-boot-starter-amqp/pom.xml b/spring-boot-starters/spring-boot-starter-amqp/pom.xml new file mode 100644 index 0000000000..400355578d --- /dev/null +++ b/spring-boot-starters/spring-boot-starter-amqp/pom.xml @@ -0,0 +1,26 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starters + 0.5.0.BUILD-SNAPSHOT + + spring-boot-starter-amqp + jar + + ${basedir}/../.. + + + + ${project.groupId} + spring-boot-starter + ${project.version} + + + org.springframework.amqp + spring-rabbit + + +