Add the rabbitmq module
This commit is contained in:
28
rabbitmq/scripts/broker.sh
Executable file
28
rabbitmq/scripts/broker.sh
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env bash
|
||||
# Start a real RabbitMQ broker with no Docker and no root.
|
||||
#
|
||||
# RabbitMQ is an Erlang application, so it needs an Erlang runtime and epmd on the path - that
|
||||
# is the whole dependency. Point ERL_ROOT at an Erlang installation and RABBITMQ_HOME at an
|
||||
# unpacked rabbitmq-server-generic-unix tarball, and it starts in about fifteen seconds.
|
||||
#
|
||||
# If you have Docker, use Testcontainers instead: see src/test/java/.../TestcontainersConfiguration.java
|
||||
set -eu
|
||||
: "${ERL_ROOT:?set ERL_ROOT to an Erlang installation directory}"
|
||||
: "${RABBITMQ_HOME:?set RABBITMQ_HOME to an unpacked rabbitmq-server-generic-unix directory}"
|
||||
|
||||
export PATH="$ERL_ROOT/bin:$ERL_ROOT/erts-"*/bin":$PATH"
|
||||
export RABBITMQ_MNESIA_BASE="${RABBITMQ_MNESIA_BASE:-/tmp/rmq/data}"
|
||||
export RABBITMQ_LOG_BASE="${RABBITMQ_LOG_BASE:-/tmp/rmq/log}"
|
||||
export RABBITMQ_NODENAME="${RABBITMQ_NODENAME:-rabbit@localhost}"
|
||||
export HOME="${HOME:-/tmp/rmq}"
|
||||
mkdir -p "$RABBITMQ_MNESIA_BASE" "$RABBITMQ_LOG_BASE"
|
||||
|
||||
epmd -daemon 2>/dev/null || true
|
||||
sleep 1
|
||||
setsid nohup "$RABBITMQ_HOME/sbin/rabbitmq-server" > /tmp/rmq/boot.log 2>&1 < /dev/null &
|
||||
for _ in $(seq 1 60); do
|
||||
if (echo > /dev/tcp/127.0.0.1/5672) 2>/dev/null; then echo "broker ready on 5672"; exit 0; fi
|
||||
sleep 1
|
||||
done
|
||||
echo "broker did not start; see /tmp/rmq/boot.log" >&2
|
||||
exit 1
|
||||
19
rabbitmq/scripts/run-all.sh
Executable file
19
rabbitmq/scripts/run-all.sh
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
# Regenerate every file under docs/output/.
|
||||
#
|
||||
# Starts a real RabbitMQ broker first. Set ERL_ROOT and RABBITMQ_HOME (see scripts/broker.sh),
|
||||
# or point spring.rabbitmq.host at a broker you already have and skip the first line.
|
||||
set -eu
|
||||
cd "$(dirname "$0")/.."
|
||||
./scripts/broker.sh
|
||||
mvn -B test 2>&1 | tee /tmp/rabbit-test.log > /dev/null
|
||||
|
||||
sed -n '/=== topic exchange ===/,/^order\.high/p' /tmp/rabbit-test.log > docs/output/topic-wildcards.txt
|
||||
sed -n '/=== x-death after basicNack/,/^ queue/p' /tmp/rabbit-test.log > docs/output/dead-letter.txt
|
||||
sed -n '/=== x-death after x-message-ttl/,/^ queue/p' /tmp/rabbit-test.log >> docs/output/dead-letter.txt
|
||||
sed -n '/=== x-death after x-max-length/,/^ body/p' /tmp/rabbit-test.log >> docs/output/dead-letter.txt
|
||||
sed -n '/=== basicNack(requeue=true)/,/still on queue/p' /tmp/rabbit-test.log > docs/output/requeue-loop.txt
|
||||
sed -n '/=== returned message ===/,/routingKey/p' /tmp/rabbit-test.log > docs/output/unroutable.txt
|
||||
sed -n '/=== redeclaring orders.ttl/,+1p' /tmp/rabbit-test.log > docs/output/precondition-failed.txt
|
||||
grep -E 'Tests run:.*in com\.ankurm' /tmp/rabbit-test.log | sed 's/^\[INFO\] //' > docs/output/tests.txt
|
||||
echo "regenerated:"; ls -1 docs/output/
|
||||
Reference in New Issue
Block a user