WIP
[demos/kafka/demos-kafka-payment-system-transfer] / README.sh
1 #!/bin/bash
2
3 if [ "$1" = "cleanup" ]
4 then
5   docker-compose down
6   mvn clean
7   rm -rvf */src/main/java/de/trion/microservices/avro
8   exit
9 fi
10
11 mvn package || exit 1
12 if [ ! -e take-order/target/BUILD ] || [ "$(find take-order/target/classes/ -anewer take-order/target/BUILD | grep take-order/target/classes/de )" != "" ]
13 then
14   docker build -t trion/take-order-service:01 take-order
15   touch take-order/target/BUILD
16 fi
17 if [ "$1" = "build" ]; then exit; fi
18
19 trap 'kill $(jobs -p)' EXIT
20
21 docker container start toolbox
22 docker-compose up -d zookeeper kafka schema-registry
23
24 while ! [[ $(zookeeper-shell zookeeper:2181 ls /brokers/ids 2> /dev/null) =~ 1001 ]]; do echo "Waiting for kafka..."; sleep 1; done
25
26 kafka-topics --zookeeper zookeeper:2181 --if-not-exists --create --replication-factor 1 --partitions 5 --topic orders
27
28 docker-compose up -d take-order
29
30 kafka-avro-console-consumer --bootstrap-server kafka:9092 --topic orders &
31 while ! [[ $(http 0:8091/actuator/health 2> /dev/null) =~ "UP" ]]; do echo "Waiting for take-order..."; sleep 1; done
32
33 http -v post 0:8091/orders Accept:*/* id=1 customerId=2 productId=234 quantity=5
34 http -v post 0:8091/orders Accept:*/* id=1 customerId=2 productId=234 quantity=
35 http -v post 0:8091/orders Accept:*/* id=1 customerId=2 productId=234 quantity=-5
36 http -v post 0:8091/orders Accept:*/* id=1 customerId=2 productId=-234 quantiyt=5
37 http -v post 0:8091/orders Accept:*/* customerId=2 productId=234 quantity=5