From a797d8f7db87fb6d6c2931406f6e4f07c96aad3d Mon Sep 17 00:00:00 2001 From: Johan Nordlund Date: Tue, 26 Jan 2021 14:39:35 +0100 Subject: [PATCH 1/4] Bumped to amqp-client v5.10.0 --- .classpath | 44 +++++++++++++++++++ .project | 34 ++++++++++++++ .settings/org.eclipse.jdt.apt.core.prefs | 2 + .settings/org.eclipse.jdt.core.prefs | 9 ++++ .settings/org.eclipse.m2e.core.prefs | 4 ++ dependency-reduced-pom.xml | 56 ++++++++++++++++++++++++ pom.xml | 40 ++++++++++++++--- src/main/java/WorkerProcess.java | 13 +++--- 8 files changed, 189 insertions(+), 13 deletions(-) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.jdt.apt.core.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 dependency-reduced-pom.xml 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/dependency-reduced-pom.xml b/dependency-reduced-pom.xml new file mode 100644 index 0000000..f311aa6 --- /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 + + + + + + + + 14 + + diff --git a/pom.xml b/pom.xml index e3b287c..310ca72 100644 --- a/pom.xml +++ b/pom.xml @@ -5,23 +5,53 @@ cloudamqp.example amqpexample 1.0-SNAPSHOT + jar + + + 14 + 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 -> { }); } } From 095f06eb86dbe3ec7d0a846a36a62b2d3c41dfd8 Mon Sep 17 00:00:00 2001 From: Johan Nordlund Date: Tue, 26 Jan 2021 15:01:32 +0100 Subject: [PATCH 2/4] Compiling for Java v8 with Maven --- dependency-reduced-pom.xml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml index f311aa6..18a2082 100644 --- a/dependency-reduced-pom.xml +++ b/dependency-reduced-pom.xml @@ -51,6 +51,6 @@ - 14 + 8 diff --git a/pom.xml b/pom.xml index 310ca72..6ec2dcb 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ jar - 14 + 8 From 4ad262e0b34e8cb2d0c9539bbe73cbc8e42b298d Mon Sep 17 00:00:00 2001 From: Johan Nordlund Date: Tue, 26 Jan 2021 15:08:39 +0100 Subject: [PATCH 3/4] Updated Readme --- README.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a6bccc7..830ed0a 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,24 @@ # 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: [![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy) @@ -30,4 +41,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 - From 2f6a79b8189f034bbd36e664a56b232c98aece17 Mon Sep 17 00:00:00 2001 From: Patrik Ragnarsson Date: Tue, 26 Jan 2021 15:39:03 +0100 Subject: [PATCH 4/4] Markdown formatting of commands --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 830ed0a..c35bbac 100644 --- a/README.md +++ b/README.md @@ -12,10 +12,12 @@ 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 + + java -cp target/amqpexample-1.0-SNAPSHOT.jar WorkerProcess In the other, execute: -java -cp target/amqpexample-1.0-SNAPSHOT.jar OneOffProcess + + java -cp target/amqpexample-1.0-SNAPSHOT.jar OneOffProcess in order to publish messages to the Worker.