Step 1 of 8

Building an FF-ICE Consumer with SWIM Developer

This tutorial walks through creating a complete SWIM consumer service for FF-ICE (Flight and Flow Information for a Collaborative Environment) messages, from the data model to a running application with automated tests.

By the end, you will have four artifacts:

  1. swim-fixm-ffice-model - JAXB data model generated from FIXM 4.3 + FF-ICE 1.1 XSD schemas
  2. swim-outbox-kafka-ffice - EP3 outbox extension that classifies and routes FF-ICE events to domain-specific Kafka topics
  3. swim-ffice-consumer - Quarkus consumer service that receives, validates, persists, and routes FF-ICE messages
  4. swim-ffice-consumer-validator - Mock Subscription Manager + event generator for local development and testing

Prerequisites

Tool Version Purpose
JDK 21+ Runtime and compilation
Maven 3.9+ Build system
Git 2.40+ Source control
Podman Desktop Latest Container runtime (includes Podman engine + GUI, available for Linux, macOS, and Windows)
mkcert Latest Local TLS certificate generation

All commands in this tutorial are shown for Linux/macOS. Windows equivalents are provided where they differ (primarily mvnw.cmd instead of ./mvnw). On Windows, Git Bash or WSL can be used to run shell scripts (e.g., certs/generate.sh).

Setup: Install Dependencies

Each SWIM Developer component lives in its own Git repository. Clone and install only what you need.

Parent POM

git clone https://github.com/swim-developer/swim-developer
cd swim-developer
./mvnw clean install -DskipTests        # Linux / macOS
mvnw.cmd clean install -DskipTests      # Windows

Framework

git clone https://github.com/swim-developer/swim-developer-framework
cd swim-developer-framework
./mvnw clean install -DskipTests        # Linux / macOS
mvnw.cmd clean install -DskipTests      # Windows

Extensions

git clone https://github.com/swim-developer/swim-developer-extensions
cd swim-developer-extensions
./mvnw clean install -DskipTests        # Linux / macOS
mvnw.cmd clean install -DskipTests      # Windows

Validators

git clone https://github.com/swim-developer/swim-developer-validators
cd swim-developer-validators
./mvnw clean install -DskipTests        # Linux / macOS
mvnw.cmd clean install -DskipTests      # Windows

Model Archetype

git clone https://github.com/swim-developer/swim-model-archetype
cd swim-model-archetype
mvn clean install

Consumer Archetype

git clone https://github.com/swim-developer/swim-consumer-archetype
cd swim-consumer-archetype
mvn clean install

After this setup, all artifacts are in your local Maven repository (~/.m2/repository). You can work from any directory going forward.