Installation

Core dependency (standalone)

To use Pipelite without Spring Boot, add the core module to your pom.xml:

<dependency>
    <groupId>io.pipelite</groupId>
    <artifactId>pipelite-core</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

The pipelite-core module transitively includes pipelite-common, pipelite-spi, pipelite-dsl, pipelite-expression, and the time and slf4j channel adapters.

Aligning versions with the BOM

An application that uses several Pipelite artifacts (the core, a few channel adapters, the test support) can import the bill of materials once, and declare the artifacts without a version:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.pipelite</groupId>
            <artifactId>pipelite-bom</artifactId>
            <version>1.0.0-SNAPSHOT</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>io.pipelite</groupId>
        <artifactId>pipelite-core</artifactId>
    </dependency>
    <dependency>
        <groupId>io.pipelite</groupId>
        <artifactId>kafka-channel-adapter</artifactId>
    </dependency>
</dependencies>

A channel adapter written by a third party can import it too, to depend on pipelite-spi at the version of the framework it is built against.

Spring Boot integration

For Spring Boot applications, use the dedicated starter instead:

<dependency>
    <groupId>io.pipelite</groupId>
    <artifactId>pipelite-spring-starter</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

The starter adds autoconfiguration and automatic lifecycle management for the PipeliteContext.

Optional channel adapters

The HTTP and Kafka adapters must be added explicitly:

<!-- HTTP (Undertow) -->
<dependency>
    <groupId>io.pipelite</groupId>
    <artifactId>http-channel-adapter</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

<!-- Apache Kafka -->
<dependency>
    <groupId>io.pipelite</groupId>
    <artifactId>kafka-channel-adapter</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

The time and slf4j adapters (time-channel-adapter, slf4j-channel-adapter) are already present as transitive dependencies of pipelite-core; queue is built into pipelite-core itself.

Test support

To write BDD-style unit and integration tests for processors and flows, add the test kit in test scope:

<dependency>
    <groupId>io.pipelite</groupId>
    <artifactId>pipelite-test-support</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <scope>test</scope>
</dependency>

See Testing for the full guide.

Distribution

Pipelite is published on Maven Central. No additional repository configuration is required.