Step 6 of 7

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
ServiceExpected status
ffice-provider-artemishealthy
ffice-provider-postgreshealthy
ffice-provider-kafkarunning
ffice-keycloakrunning
ffice-provider-validatorrunning
ffice-provider-validator-dbhealthy

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 PAUSED to ACTIVE)
  • 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