Merge branch 'DEVELOP_BE' of ssh://172.18.22.160:29418/oK/PlannedGridMeasures/mics-backend into DEVELOP_BE
diff --git a/devlocal.yml b/devlocal.yml
index 2d04435..f062f10 100644
--- a/devlocal.yml
+++ b/devlocal.yml
@@ -10,6 +10,8 @@
password: admin
exchangeName: openk-pgm-exchange
autoSetup: true
+ queueNames : pgm-applied-queue, pgm-forapproval-queue, pgm-canceled-queue, pgm-approved-queue, pgm-rejected-queue, pgm-requested-queue, pgm-released-queue, pgm-finished-queue, pgm-closed-queue
+
dbConn:
driver: org.postgresql.Driver
diff --git a/devserver.yml b/devserver.yml
index 8646ad5..40b6e5c 100644
--- a/devserver.yml
+++ b/devserver.yml
@@ -10,6 +10,7 @@
password: admin
exchangeName: openk-pgm-exchange
autoSetup: true
+ queueNames : pgm-applied-queue, pgm-forapproval-queue, pgm-canceled-queue, pgm-approved-queue, pgm-rejected-queue, pgm-requested-queue, pgm-released-queue, pgm-finished-queue, pgm-closed-queue
dbConn:
driver: org.postgresql.Driver
diff --git a/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
index 96167dc..9225e92 100644
--- a/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
+++ b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
@@ -2017,6 +2017,7 @@
password: admin
exchangeName: openk-pgm-exchange
autoSetup: true
+ queueNames : pgm-applied-queue, pgm-forapproval-queue, pgm-canceled-queue, pgm-approved-queue, pgm-rejected-queue, pgm-requested-queue, pgm-released-queue, pgm-finished-queue, pgm-closed-queue
...
}
@@ -2030,7 +2031,7 @@
Autosetup means the Planned Grid Measure Microservice will create the Exchange according to the name defined one line
above. All needed Queues will be created and bind to the Exchange.
-The automatically created queues and their belonging routing keys are:
+The automatically created queues and their belonging routing keys are, according to the 'queueNames' parameter mentioned above:
[source]
Queuename: pgm-applied-queue | Routing key: applied
diff --git a/src/main/java/org/eclipse/openk/PlannedGridMeasuresConfiguration.java b/src/main/java/org/eclipse/openk/PlannedGridMeasuresConfiguration.java
index 2532742..99220e9 100644
--- a/src/main/java/org/eclipse/openk/PlannedGridMeasuresConfiguration.java
+++ b/src/main/java/org/eclipse/openk/PlannedGridMeasuresConfiguration.java
@@ -13,8 +13,11 @@
import com.fasterxml.jackson.annotation.JsonProperty;
import io.dropwizard.Configuration;
+import org.eclipse.openk.core.controller.MailAddressCache;
import org.hibernate.validator.constraints.NotEmpty;
+import java.util.*;
+
public class PlannedGridMeasuresConfiguration extends Configuration {
public static class RabbitmqConfiguration {
@@ -37,6 +40,11 @@
@JsonProperty
private boolean autoSetup;
+ @JsonProperty
+ private String queueNames;
+
+
+
public String getHost() {
return host;
}
@@ -84,6 +92,29 @@
public void setAutoSetup(boolean autoSetup) {
this.autoSetup = autoSetup;
}
+
+ public String getQueueNames() { return queueNames; }
+
+ public void setQueueNames(String queueNames) { this.queueNames = queueNames; }
+
+ public List<String> getQueueNamesAsList() {
+
+ List<String> singleQueueNameList = new ArrayList<>();
+ Set<String> singleQueueNameUniqueSet = new HashSet<>();
+ List<String> singleQueueNameUniqueList;
+
+ String queueNamesString = getQueueNames();
+ queueNamesString = queueNamesString.replace(";", ",");
+ String[] singleQueueNames = queueNamesString.split(",");
+
+ singleQueueNameList.addAll(Arrays.asList(singleQueueNames));
+ singleQueueNameList.replaceAll(String::trim);
+
+ singleQueueNameUniqueSet.addAll(singleQueueNameList);
+
+ singleQueueNameUniqueList = new ArrayList<>(singleQueueNameUniqueSet);
+ return singleQueueNameUniqueList;
+ }
}
public static class EmailConfiguration {
diff --git a/src/main/java/org/eclipse/openk/common/Globals.java b/src/main/java/org/eclipse/openk/common/Globals.java
index 84aeb40..b1676b0 100644
--- a/src/main/java/org/eclipse/openk/common/Globals.java
+++ b/src/main/java/org/eclipse/openk/common/Globals.java
@@ -27,10 +27,5 @@
public static final String DATE_ZONE_ID_EUROPE = "Europe/Berlin";
- //Sonar complaining about RABBIT_MQ_QUEUE_NAME_LIST beeing muteable althoug Arrays.asList returns a immutable List = False positve
- public static final List<String> RABBIT_MQ_QUEUE_NAME_LIST = Arrays.asList("pgm-applied-queue","pgm-forapproval-queue", "pgm-canceled-queue", //NOSONAR
- "pgm-approved-queue", "pgm-rejected-queue", "pgm-requested-queue", "pgm-released-queue",
- "pgm-finished-queue", "pgm-closed-queue");
-
private Globals() {}
}
diff --git a/src/main/java/org/eclipse/openk/core/controller/InitRabbitMqSetup.java b/src/main/java/org/eclipse/openk/core/controller/InitRabbitMqSetup.java
index 617ed31..0c09619 100644
--- a/src/main/java/org/eclipse/openk/core/controller/InitRabbitMqSetup.java
+++ b/src/main/java/org/eclipse/openk/core/controller/InitRabbitMqSetup.java
@@ -53,7 +53,9 @@
Map<String, Object> args = new HashMap<>();
args.put("x-queue-mode", "lazy");
- for (String queueName : Globals.RABBIT_MQ_QUEUE_NAME_LIST) {
+ List<String> queueNames = rabbitmqConfiguration.getQueueNamesAsList();
+
+ for (String queueName : queueNames) {
channel.queueDeclare(queueName, true, false, false, args);
String routingKey = queueName.split("-")[1];
channel.queueBind(queueName, rabbitmqConfiguration.getExchangeName(), routingKey);