Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 22 additions & 4 deletions .github/workflows/build-main.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
name: Build Main

permissions:
contents: read
on:
push:
branches:
- main

jobs:
build:
strategy:
matrix:
tc: [ 8, 17, 21, 25 ]
runs-on: ubuntu-latest
env:
BUILD_EVENT: ${{ github.event_name }}
TARGET_COMPATIBILITY: ${{ matrix.tc }}
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
Expand All @@ -19,12 +24,12 @@ jobs:
- name: Setup JDK
uses: actions/setup-java@v5
with:
java-version: '21'
java-version: 25
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v5
with:
gradle-version: '8.14' # Quotes required to prevent YAML converting to number
gradle-version: current
- name: Setup GO
uses: actions/setup-go@v5
with:
Expand All @@ -48,8 +53,21 @@ jobs:
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.COVERALLS_REPO_TOKEN }}
parallel: true
flag-name: tc${{ matrix.tc }}
- name: Publish Snapshot
run: ./gradlew -i publishToSonatype
- name: Clean up
if: always()
run: pkill -9 nats-server 2>/dev/null || true

coveralls-finish:
needs: build
runs-on: ubuntu-latest
steps:
- name: Coveralls Finish
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true
carryforward: "tc8"
26 changes: 22 additions & 4 deletions .github/workflows/build-pr.yml
Original file line number Diff line number Diff line change
@@ -1,25 +1,30 @@
name: Build Pull Request

permissions:
contents: read
on:
pull_request:
types: [opened, synchronize, edited, reopened]

jobs:
build:
strategy:
matrix:
tc: [ 8, 17, 21, 25 ]
runs-on: ubuntu-latest
env:
BUILD_EVENT: ${{ github.event_name }}
TARGET_COMPATIBILITY: ${{ matrix.tc }}
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
steps:
- name: Setup JDK
uses: actions/setup-java@v5
with:
java-version: '21'
java-version: 25
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v5
with:
gradle-version: '8.14' # Quotes required to prevent YAML converting to number
gradle-version: current
- name: Setup GO
uses: actions/setup-go@v5
with:
Expand All @@ -43,6 +48,19 @@ jobs:
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.COVERALLS_REPO_TOKEN }}
parallel: true
flag-name: tc${{ matrix.tc }}
- name: Clean up
if: always()
run: pkill -9 nats-server 2>/dev/null || true

coveralls-finish:
needs: build
runs-on: ubuntu-latest
steps:
- name: Coveralls Finish
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true
carryforward: "tc8"
21 changes: 13 additions & 8 deletions .github/workflows/build-release.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
name: Build Release

permissions:
contents: read
on:
release:
branches:
Expand All @@ -8,9 +9,13 @@ on:

jobs:
build:
strategy:
matrix:
tc: [ 8, 17, 21, 25 ]
runs-on: ubuntu-latest
env:
BUILD_EVENT: ${{ github.event_name }}
TARGET_COMPATIBILITY: ${{ matrix.tc }}
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
Expand All @@ -20,12 +25,12 @@ jobs:
- name: Setup JDK
uses: actions/setup-java@v5
with:
java-version: '21'
java-version: 25
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v5
with:
gradle-version: '8.14' # Quotes required to prevent YAML converting to number
gradle-version: current
- name: Setup GO
uses: actions/setup-go@v5
with:
Expand All @@ -41,10 +46,10 @@ jobs:
nats-server -v
- name: Check out code
uses: actions/checkout@v4
- name: Build and Test
run: chmod +x gradlew && ./gradlew clean test
- name: Verify, Sign and Publish Release
run: ./gradlew -i publishToSonatype closeAndReleaseSonatypeStagingRepository
- name: Prepare Gradle Script
run: chmod +x gradlew && ./gradlew
- name: Build, Sign and Publish Release
run: ./gradlew clean compileJava publishToSonatype closeAndReleaseSonatypeStagingRepository
- name: Clean up
if: always()
run: pkill -9 nats-server 2>/dev/null || true
Expand Down
108 changes: 102 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,26 @@

Run the [NATS messaging system](https://nats.io) Server from your Java code.

**Current Release**: 3.0.1   **Current Snapshot**: 3.0.2-SNAPSHOT

[![License Apache 2](https://img.shields.io/badge/License-Apache2-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.nats/jnats-server-runner/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.nats/jnats-server-runner)
[![Javadoc](http://javadoc.io/badge/io.nats/jnats-server-runner.svg?branch=main)](http://javadoc.io/doc/io.nats/jnats-server-runner?branch=main)
[![Coverage Status](https://coveralls.io/repos/github/nats-io/java-nats-server-runner/badge.svg?branch=main)](https://coveralls.io/github/nats-io/java-nats-server-runner?branch=main)
![3.0.2](https://img.shields.io/badge/Current_Release-3.0.2-27AAE0?style=for-the-badge)
![3.0.3](https://img.shields.io/badge/Current_Snapshot-3.0.3--SNAPSHOT-27AAE0?style=for-the-badge)

[![Build Main Badge](https://github.com/nats-io/java-nats-server-runner/actions/workflows/build-main.yml/badge.svg?event=push)](https://github.com/nats-io/java-nats-server-runner/actions/workflows/build-main.yml)
[![Release Badge](https://github.com/nats-io/java-nats-server-runner/actions/workflows/build-release.yml/badge.svg?event=release)](https://github.com/nats-io/java-nats-server-runner/actions/workflows/build-release.yml)
[![Coverage Status](https://coveralls.io/repos/github/nats-io/java-nats-server-runner/badge.svg?branch=main)](https://coveralls.io/github/nats-io/java-nats-server-runner?branch=main)
[![Javadoc](http://javadoc.io/badge/io.nats/jnats-server-runner.svg?branch=main)](http://javadoc.io/doc/io.nats/jnats-server-runner?branch=main)
[![License Apache 2](https://img.shields.io/badge/License-Apache2-blue)](https://www.apache.org/licenses/LICENSE-2.0)

### JDK Version

This project uses Java 8 Language Level api, but builds jars compiled with and targeted for Java 8, 17, 21 and 25.
It creates different artifacts for each. All have the same group id `io.nats` and the same version but have different artifact names.

| Java Target Level | Artifact Id | Maven Central |
|:-----------------:|-----------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| 1.8 | `jnats-server-runner` | [![Maven JDK 1_8](https://img.shields.io/maven-central/v/io.nats/jnats-server-runner?label=)](https://mvnrepository.com/artifact/io.nats/jnats-server-runner) |
| 17 | `jnats-server-runner-jdk17` | [![Maven JDK 17](https://img.shields.io/maven-central/v/io.nats/jnats-server-runner-jdk17?label=)](https://mvnrepository.com/artifact/io.nats/jnats-server-runner-jdk17) |
| 21 | `jnats-server-runner-jdk21` | [![Maven JDK 21](https://img.shields.io/maven-central/v/io.nats/jnats-server-runner-jdk21?label=)](https://mvnrepository.com/artifact/io.nats/jnats-server-runner-jdk21) |
| 25 | `jnats-server-runner-jdk25` | [![Maven JDK 25](https://img.shields.io/maven-central/v/io.nats/jnats-server-runner-jdk25?label=)](https://mvnrepository.com/artifact/io.nats/jnats-server-runner-jdk25) |

Useful for running unit or integration tests on the localhost.

Expand Down Expand Up @@ -78,6 +90,90 @@ static {
}
```

### Dependency Management

The JNATS Server Runner is available in the Maven central repository,
and can be imported as a standard dependency in your `build.gradle` or `pom.xml` file,
The examples shown use the Jdk 8 version. To use other versions, change the artifact id.

#### Gradle

```groovy
dependencies {
implementation 'io.nats:jnats-server-runner:3.0.3'
}
```

If you need the latest and greatest before Maven central updates, you can use:

```groovy
repositories {
mavenCentral()
maven {
url "https://repo1.maven.org/maven2/"
}
}
```

If you need a snapshot version, you must add the url for the snapshots and change your dependency.

```groovy
repositories {
mavenCentral()
maven {
url "https://central.sonatype.com/repository/maven-snapshots"
}
}

dependencies {
implementation 'io.nats:jnats-server-runner:3.0.4-SNAPSHOT'
}
```

#### Maven

```xml
<dependency>
<groupId>io.nats</groupId>
<artifactId>jnats-server-runner</artifactId>
<version>3.0.3</version>
</dependency>
```

If you need the absolute latest, before it propagates to maven central, you can use the repository:

```xml
<repositories>
<repository>
<id>sonatype releases</id>
<url>https://repo1.maven.org/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
```

If you need a snapshot version, you must enable snapshots and change your dependency.

```xml
<repositories>
<repository>
<id>sonatype snapshots</id>
<url>https://central.sonatype.com/repository/maven-snapshots</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>

<dependency>
<groupId>io.nats</groupId>
<artifactId>jnats-server-runner</artifactId>
<version>3.0.4-SNAPSHOT</version>
</dependency>
```

## License

Unless otherwise noted, the NATS source files are distributed
Expand Down
Loading
Loading