Commit 0056283d authored by M. A. Rased's avatar M. A. Rased

Merge branch 'feature/remove-stomp' into 'master'

remove stomp queues and policies separately

See merge request !4
parents 6e356bf1 4fe8c6eb
...@@ -19,9 +19,15 @@ or ...@@ -19,9 +19,15 @@ or
run-remove.bat** run-remove.bat**
- reads all dead letter queue that starts with 'dl-' - reads all dead letter queue that starts with 'dl-'
- removes letter exchange DLX - removes dead letter exchange DLX
- removes dead letter policies - removes dead letter policies
**java -jar .\build\libs\dead-letter-0.0.1-SNAPSHOT.jar remove-stomp
or
run-remove-stomp.bat**
- reads all dead letter queue that starts with 'dl-stomp'
- removes dead letter policies that starts with 'dlx-stomp'
**java -jar .\build\libs\dead-letter-0.0.1-SNAPSHOT.jar <queue_name>** **java -jar .\build\libs\dead-letter-0.0.1-SNAPSHOT.jar <queue_name>**
......
java -jar .\build\libs\dead-letter-0.0.1-SNAPSHOT.jar remove-stomp
\ No newline at end of file
...@@ -10,10 +10,8 @@ import org.springframework.stereotype.Service; ...@@ -10,10 +10,8 @@ import org.springframework.stereotype.Service;
import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import java.util.ArrayList; import java.util.*;
import java.util.Base64; import java.util.stream.Collectors;
import java.util.List;
import java.util.Scanner;
@Service @Service
public class DeadLetterQueueService { public class DeadLetterQueueService {
...@@ -36,18 +34,33 @@ public class DeadLetterQueueService { ...@@ -36,18 +34,33 @@ public class DeadLetterQueueService {
private final RestTemplate restTemplate = new RestTemplate(); private final RestTemplate restTemplate = new RestTemplate();
public void setup(String[] args) { public void setup(String[] args) {
// create dl queues, policies for all queues
if (args.length == 0) { if (args.length == 0) {
args = getAllQueue(); args = getAllQueue();
} }
// remove dl queues, policies
if (args.length == 1 && args[0].equals("remove")) { if (args.length == 1 && args[0].equals("remove")) {
removeDeadLetterExchange(); removeDL();
removeDeadLetterQueue();
removeDeadLetterPolicies();
return; return;
} }
// remove stomp dl queues
if(args.length == 1 && args[0].equals("remove-stomp")){
removeStompDL();
return;
}
// create dl queues, policies for specific queues if provided in args
String deadLetterExchange = "DLX"; String deadLetterExchange = "DLX";
createDeadLetterExchange(deadLetterExchange); createDeadLetterExchange(deadLetterExchange);
System.out.println("\n\nDEAD LETTER QUEUES TO CREATE \n" + Arrays.toString(args));
System.out.println("\npress y to create");
Scanner scanner = new Scanner(System.in);
String input = scanner.next();
if (!input.equalsIgnoreCase("y"))
return;
for (String queue : args) { for (String queue : args) {
System.out.println("\n\nQUEUE NAME : " + queue); System.out.println("\n\nQUEUE NAME : " + queue);
...@@ -58,13 +71,28 @@ public class DeadLetterQueueService { ...@@ -58,13 +71,28 @@ public class DeadLetterQueueService {
createDeadLetterQueue(queue, deadLetterExchange); createDeadLetterQueue(queue, deadLetterExchange);
setDLXPolicy(queue, deadLetterExchange); setDLXPolicy(queue, deadLetterExchange);
} }
}
private void removeStompDL(){
removeDeadLetterQueue(true);
removeDeadLetterPolicies(true);
}
private void removeDL(){
removeDeadLetterExchange();
removeDeadLetterQueue(false);
removeDeadLetterPolicies(false);
} }
private void removeDeadLetterPolicies() { private void removeDeadLetterPolicies(boolean removeOnlyStomp) {
List<String> policyList = getAllPolicies(); List<String> policyList = getAllPolicies();
if (policyList.isEmpty()) if (policyList.isEmpty())
return; return;
if(removeOnlyStomp){
policyList = policyList.stream().filter(p->p.startsWith("dlx-stomp")).toList();
}
System.out.println("\n\n\nPOLICIES TO DELETE \n" + policyList); System.out.println("\n\n\nPOLICIES TO DELETE \n" + policyList);
System.out.println("\npress y to delete"); System.out.println("\npress y to delete");
Scanner scanner = new Scanner(System.in); Scanner scanner = new Scanner(System.in);
...@@ -119,11 +147,17 @@ public class DeadLetterQueueService { ...@@ -119,11 +147,17 @@ public class DeadLetterQueueService {
} }
} }
private void removeDeadLetterQueue() { private void removeDeadLetterQueue(boolean removeOnlyStomp) {
List<String> deadLetterQueueList = getDeadLetterQueue(); List<String> deadLetterQueueList = getDeadLetterQueue();
if (deadLetterQueueList.isEmpty()) if (deadLetterQueueList.isEmpty())
return; return;
if(removeOnlyStomp){
deadLetterQueueList= deadLetterQueueList.stream()
.filter(queue -> queue.startsWith("dl-stomp"))
.toList();
}
System.out.println("\n\nDEAD LETTER QUEUES TO DELETE \n" + deadLetterQueueList); System.out.println("\n\nDEAD LETTER QUEUES TO DELETE \n" + deadLetterQueueList);
System.out.println("\npress y to delete"); System.out.println("\npress y to delete");
Scanner scanner = new Scanner(System.in); Scanner scanner = new Scanner(System.in);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment