Skip to content

Commit 33c97e6

Browse files
authored
Merge pull request #3 from nexylan/1-add-the-possibility-to-define-if-it-s-a-permanent-queue-or-not
Add durability management
2 parents 255bc79 + ed34542 commit 33c97e6

File tree

4 files changed

+20
-8
lines changed

4 files changed

+20
-8
lines changed
Binary file not shown.

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<modelVersion>4.0.0</modelVersion>
66
<groupId>net.nexylan.graylog.plugins</groupId>
77
<artifactId>graylog-rabbitmq</artifactId>
8-
<version>1.2.1</version>
8+
<version>1.3.0</version>
99
<packaging>jar</packaging>
1010

1111
<name>${project.artifactId}</name>

src/main/java/net/nexylan/graylog/rabbitmq/RabbitMq.java

+15-5
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
import org.graylog2.plugin.Message;
44
import org.graylog2.plugin.configuration.Configuration;
55
import org.graylog2.plugin.configuration.ConfigurationRequest;
6-
import org.graylog2.plugin.configuration.fields.ConfigurationField;
7-
import org.graylog2.plugin.configuration.fields.DropdownField;
8-
import org.graylog2.plugin.configuration.fields.NumberField;
9-
import org.graylog2.plugin.configuration.fields.TextField;
6+
import org.graylog2.plugin.configuration.fields.*;
107
import org.graylog2.plugin.inputs.annotations.ConfigClass;
118
import org.graylog2.plugin.inputs.annotations.FactoryClass;
129
import org.graylog2.plugin.outputs.MessageOutput;
@@ -32,6 +29,7 @@ public class RabbitMq implements MessageOutput{
3229
private static final String RABBIT_USER = "rabbit_user";
3330
private static final String RABBIT_PASSWORD = "rabbit_password";
3431
private static final String RABBIT_TTL = "rabbit_ttl";
32+
private static final String RABBIT_DURABLE = "rabbit_durable";
3533

3634
private boolean running;
3735

@@ -46,7 +44,13 @@ public RabbitMq(@Assisted Configuration configuration) throws MessageOutputConfi
4644

4745
// Set up sender
4846
sender = new RabbitMQSender(
49-
configuration.getString(RABBIT_HOST), configuration.getInt(RABBIT_PORT), configuration.getString(RABBIT_QUEUE), configuration.getString(RABBIT_USER), configuration.getString(RABBIT_PASSWORD), configuration.getInt(RABBIT_TTL)
47+
configuration.getString(RABBIT_HOST),
48+
configuration.getInt(RABBIT_PORT),
49+
configuration.getString(RABBIT_QUEUE),
50+
configuration.getString(RABBIT_USER),
51+
configuration.getString(RABBIT_PASSWORD),
52+
configuration.getInt(RABBIT_TTL),
53+
configuration.getBoolean(RABBIT_DURABLE)
5054
);
5155

5256
running = true;
@@ -145,6 +149,12 @@ public ConfigurationRequest getRequestedConfiguration() {
145149
ConfigurationField.Optional.NOT_OPTIONAL)
146150
);
147151

152+
configurationRequest.addField(new BooleanField(RABBIT_DURABLE,
153+
"RabbitMQ Durable",
154+
true,
155+
"May this queue must be durable ?"
156+
));
157+
148158
return configurationRequest;
149159
}
150160
}

src/main/java/net/nexylan/graylog/rabbitmq/senders/RabbitMQSender.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public class RabbitMQSender implements Sender {
2121
private String user;
2222
private String password;
2323
private int ttl;
24+
private boolean durable;
2425

2526

2627
//RabbitMQ objects
@@ -34,14 +35,15 @@ public class RabbitMQSender implements Sender {
3435

3536
private boolean is_initialized = false;
3637

37-
public RabbitMQSender(String host, int port, String queue, String user, String password, int ttl)
38+
public RabbitMQSender(String host, int port, String queue, String user, String password, int ttl, boolean durable)
3839
{
3940
this.host = host;
4041
this.port = port;
4142
this.queue = queue;
4243
this.user = user;
4344
this.password = password;
4445
this.ttl = ttl;
46+
this.durable = durable;
4547
initialize();
4648
}
4749

@@ -79,7 +81,7 @@ public void initialize()
7981
}
8082

8183
try {
82-
this.channel.queueDeclare(this.queue, false, false, false, null);
84+
this.channel.queueDeclare(this.queue, false, this.durable, false, null);
8385
LOG.info("[RabbitMQ] The queue have been successfully created.");
8486
} catch (IOException e) {
8587
LOG.error("[RabbitMQ] Impossible to declare the queue.");

0 commit comments

Comments
 (0)