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
run-remove.bat**
- reads all dead letter queue that starts with 'dl-'
- removes letter exchange DLX
- removes dead letter exchange DLX
- 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 remove-stomp
\ No newline at end of file
......@@ -10,10 +10,8 @@ import org.springframework.stereotype.Service;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.RestTemplate;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
import java.util.Scanner;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class DeadLetterQueueService {
......@@ -36,18 +34,33 @@ public class DeadLetterQueueService {
private final RestTemplate restTemplate = new RestTemplate();
public void setup(String[] args) {
// create dl queues, policies for all queues
if (args.length == 0) {
args = getAllQueue();
}
// remove dl queues, policies
if (args.length == 1 && args[0].equals("remove")) {
removeDeadLetterExchange();
removeDeadLetterQueue();
removeDeadLetterPolicies();
removeDL();
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";
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) {
System.out.println("\n\nQUEUE NAME : " + queue);
......@@ -58,13 +71,28 @@ public class DeadLetterQueueService {
createDeadLetterQueue(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();
if (policyList.isEmpty())
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("\npress y to delete");
Scanner scanner = new Scanner(System.in);
......@@ -119,11 +147,17 @@ public class DeadLetterQueueService {
}
}
private void removeDeadLetterQueue() {
private void removeDeadLetterQueue(boolean removeOnlyStomp) {
List<String> deadLetterQueueList = getDeadLetterQueue();
if (deadLetterQueueList.isEmpty())
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("\npress y to delete");
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