Part 5: Run & Verify
5.1 Generate certificates
Run the certificate generation script from the project root. This must be done before starting the infrastructure:
./certs/generate.sh
The script creates all certificates in certs/. On first run, mkcert -install adds the local CA to your system trust store — this may prompt for your system password.
5.2 Start the infrastructure
podman compose up -d
Wait until all containers are healthy. To check:
podman compose ps
| Service | Expected status |
|---|---|
ffice-provider-artemis | healthy |
ffice-provider-postgres | healthy |
ffice-provider-kafka | running |
ffice-keycloak | running |
ffice-provider-validator | running |
ffice-provider-validator-db | healthy |
Artemis builds its image on first up. The initial startup can take up to 60 seconds. Wait for the healthy status before proceeding.
5.3 Start the provider
In a separate terminal from the project root:
./mvnw quarkus:dev -Dquarkus.profile=dev # Linux / macOS
mvnw.cmd quarkus:dev -Dquarkus.profile=dev # Windows
The provider starts on http://localhost:8080 and https://localhost:8443. Once you see Listening on: https://0.0.0.0:8443, it is ready.
5.4 Inject a test event
Open the AKHQ Kafka UI at http://localhost:9090, navigate to the ffice-events-all-topic topic, and publish an FF-ICE XML message using the produce function.
Alternatively, use the Kafka CLI:
podman exec -it ffice-provider-kafka \
/opt/kafka/bin/kafka-console-producer.sh \
--bootstrap-server localhost:9092 \
--topic ffice-events-all-topic
Paste a valid FF-ICE message XML (example in src/test/resources/events/filed-flight-plan.xml) and press Ctrl+D.
5.5 Observe the provider logs
When a valid message is published to Kafka, you will see in the provider terminal:
INFO [c.g.s.f.p.i.i.a.IngressMessageHandler] Event persisted and dispatched - MessageId: ..., GUFI: ..., Type: FILED_FLIGHT_PLAN
5.6 Open the validator UI
Navigate to http://localhost:8085. Log in with Keycloak credentials (admin/password) to:
- Create a subscription to receive FF-ICE events
- Activate the subscription (status changes from
PAUSEDtoACTIVE) - View events arriving in the Messages tab in real time
- Run conformance tests from the Conformance Tests tab
5.7 Stop the infrastructure
podman compose down
To also remove volumes (database data, Artemis data):
podman compose down -v