diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..75b806f
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.project b/.project
new file mode 100644
index 0000000..8449d73
--- /dev/null
+++ b/.project
@@ -0,0 +1,34 @@
+
+
+ amqpexample
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
+
+ 1611658320213
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
+
diff --git a/.settings/org.eclipse.jdt.apt.core.prefs b/.settings/org.eclipse.jdt.apt.core.prefs
new file mode 100644
index 0000000..d4313d4
--- /dev/null
+++ b/.settings/org.eclipse.jdt.apt.core.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.apt.aptEnabled=false
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..ac8e750
--- /dev/null
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,9 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
+org.eclipse.jdt.core.compiler.processAnnotations=disabled
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/README.md b/README.md
index a6bccc7..c35bbac 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,26 @@
# Use CloudAMQP in Java from Heroku
-This project illustrates how to use the [Java client AMQP library]() to access [CloudAMQP](http://www.cloudamqp.com) from [Heroku](http://www.heroku.com).
+This project illustrates how to use the [Java client AMQP library]() to access [CloudAMQP](http://www.cloudamqp.com) from [Heroku](http://www.heroku.com).
-It consists of one [worker](https://github.com/cloudamqp/java-amqp-example/blob/master/src/main/java/WorkerProcess.java) which listens to a queue and prints the messages to the console (and thus to the Heroku log), and a ["oneoff" process](https://github.com/cloudamqp/java-amqp-example/blob/master/src/main/java/WorkerProcess.java) which enqeues messages to that queue.
+It consists of one [worker](https://github.com/cloudamqp/java-amqp-example/blob/master/src/main/java/WorkerProcess.java) which listens to a queue and prints the messages to the console (and thus to the Heroku log), and a ["oneoff" process](https://github.com/cloudamqp/java-amqp-example/blob/master/src/main/java/WorkerProcess.java) which enqeues messages to that queue.
-For more information on AMQP and how to use it from Java, see [RabbitMQ's tutorial](http://www.rabbitmq.com/getstarted.html).
+For more information on AMQP and how to use it from Java, see [RabbitMQ's tutorial](http://www.rabbitmq.com/getstarted.html).
## Usage
+The targeted JAVA version is 8 and the project can be packaged with Maven using:
+mvn clean package
+
+In order to run locally, start two terminals and in the first run:
+
+ java -cp target/amqpexample-1.0-SNAPSHOT.jar WorkerProcess
+
+In the other, execute:
+
+ java -cp target/amqpexample-1.0-SNAPSHOT.jar OneOffProcess
+
+in order to publish messages to the Worker.
+
Click this button to deploy the sample code to a new app on Heroku for free:
[](https://heroku.com/deploy)
@@ -30,4 +43,3 @@ Make sure you have the [Heroku Toolbelt](https://toolbelt.heroku.com/) installed
2012-03-28T17:03:07+00:00 app[worker.1]: [x] Received 'Hello CloudAMQP!'
2012-03-28T17:03:08+00:00 heroku[run.1]: Process exited with status 0
2012-03-28T17:03:08+00:00 heroku[run.1]: State changed from up to complete
-
diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml
new file mode 100644
index 0000000..18a2082
--- /dev/null
+++ b/dependency-reduced-pom.xml
@@ -0,0 +1,56 @@
+
+
+ 4.0.0
+ cloudamqp.example
+ amqpexample
+ 1.0-SNAPSHOT
+
+
+
+ maven-compiler-plugin
+ 3.8.1
+
+
+ maven-shade-plugin
+ 3.2.4
+
+
+ package
+
+ shade
+
+
+
+
+
+ org.codehaus.mojo
+ appassembler-maven-plugin
+ 1.1.1
+
+
+ package
+
+ assemble
+
+
+
+
+ target
+
+
+ WorkerProcess
+ worker
+
+
+ OneOffProcess
+ oneoff
+
+
+
+
+
+
+
+ 8
+
+
diff --git a/pom.xml b/pom.xml
index e3b287c..6ec2dcb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,23 +5,53 @@
cloudamqp.example
amqpexample
1.0-SNAPSHOT
+ jar
+
+
+ 8
+
com.rabbitmq
amqp-client
- 3.3.4
+ 5.10.0
+ compile
+
+
+ org.slf4j
+ slf4j-nop
+ 1.7.3
+ compile
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.2.4
+
+
+ package
+
+ shade
+
+
+
+
org.codehaus.mojo
appassembler-maven-plugin
1.1.1
-
- target
+
+ target
WorkerProcess
@@ -39,9 +69,9 @@
assemble
-
+
-
+
diff --git a/src/main/java/WorkerProcess.java b/src/main/java/WorkerProcess.java
index b55cdc0..87b23bb 100644
--- a/src/main/java/WorkerProcess.java
+++ b/src/main/java/WorkerProcess.java
@@ -1,7 +1,7 @@
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;
-import com.rabbitmq.client.QueueingConsumer;
+import com.rabbitmq.client.DeliverCallback;
public class WorkerProcess {
private final static String QUEUE_NAME = "hello";
@@ -19,13 +19,10 @@ public static void main(String[] argv) throws Exception {
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
System.out.println(" [*] Waiting for messages");
- QueueingConsumer consumer = new QueueingConsumer(channel);
- channel.basicConsume(QUEUE_NAME, true, consumer);
-
- while (true) {
- QueueingConsumer.Delivery delivery = consumer.nextDelivery();
- String message = new String(delivery.getBody());
+ DeliverCallback deliverCallback = (consumerTag, delivery) -> {
+ String message = new String(delivery.getBody(), "UTF-8");
System.out.println(" [x] Received '" + message + "'");
- }
+ };
+ channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> { });
}
}