Improved example execution in README.sh
[demos/kafka/outbox] / README.sh
1 #!/bin/bash
2
3 if [ "$1" = "cleanup" ]
4 then
5   docker-compose down -v
6   mvn clean
7   docker image rm juplo/jdbc:outbox
8   docker image rm juplo/outbox:polling
9   exit
10 fi
11
12 if [[
13   $(docker image ls -q juplo/jdbc:outbox) == "" ||
14   $(docker image ls -q juplo/outbox:polling) == "" ||
15   "$1" = "build"
16 ]]
17 then
18   mvn package || exit
19 else
20   echo "Using image existing images:"
21   docker image ls juplo/jdbc:outbox
22   docker image ls juplo/outbox:polling
23 fi
24
25 trap 'kill $(jobs -p)' EXIT
26
27 docker-compose up -d zookeeper kafka
28
29 while ! [[ $(docker-compose exec kafka zookeeper-shell zookeeper:2181 ls /brokers/ids 2> /dev/null) =~ 1001 ]];
30 do
31   echo "Waiting for kafka...";
32   sleep 1;
33 done
34
35 docker-compose exec kafka kafka-topics --zookeeper zookeeper:2181 --create --if-not-exists --replication-factor 1 --partitions 3 --topic outbox
36
37
38 docker-compose up -d jdbc outbox kafkacat
39
40 while ! [[ $(http :8080/actuator/health 2>/dev/null | jq -r .status) == "UP" ]];
41 do
42   echo "Waiting for User-Service...";
43   sleep 1;
44 done
45
46
47 docker-compose logs -f kafkacat &
48
49 echo peter | http :8080/users
50 echo franz | http :8080/users
51 echo beate | http :8080/users
52 http :8080/users
53 http DELETE :8080/users/franz
54 http :8080/users