diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 40988ee..4388e16 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -8,6 +8,7 @@ jobs: runs-on: ubuntu-latest env: BUILD_TYPE: "PR" + nats_server_path: nats-server/main steps: - run: echo -e "PR Branch ${{ github.head_ref }}" - name: Set up JDK 8 @@ -15,8 +16,12 @@ jobs: with: java-version: '8' distribution: 'adopt' + - name: Setup GO + uses: actions/setup-go@v2 - name: Check out repository code uses: actions/checkout@v2 + - name: Install Nats Server + run: chmod +x install-nats-server.sh && ./install-nats-server.sh - name: Build and Test run: chmod +x gradlew && ./gradlew test - name: Check Docs diff --git a/.github/workflows/push_or_merge_to_main.yml b/.github/workflows/push_or_merge_to_main.yml index 09927ae..a9dd267 100644 --- a/.github/workflows/push_or_merge_to_main.yml +++ b/.github/workflows/push_or_merge_to_main.yml @@ -11,6 +11,7 @@ jobs: BUILD_TYPE: "MERGE" OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} OSSRH_PASSWORD: ${{ secrets.OSSRH_TOKEN }} + nats_server_path: nats-server/main steps: - run: echo -e "PUSH/MERGE to main" - name: Set up JDK 8 @@ -20,6 +21,12 @@ jobs: distribution: 'adopt' - name: Check out repository code uses: actions/checkout@v2 + - name: Setup GO + uses: actions/setup-go@v2 + - name: Check out repository code + uses: actions/checkout@v2 + - name: Install Nats Server + run: chmod +x install-nats-server.sh && ./install-nats-server.sh - name: Build and Test run: chmod +x gradlew && ./gradlew clean test - name: Publish diff --git a/.github/workflows/release_main.yml b/.github/workflows/release_main.yml index ef428c4..9f272c7 100644 --- a/.github/workflows/release_main.yml +++ b/.github/workflows/release_main.yml @@ -15,6 +15,7 @@ jobs: SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }} SIGNING_KEY: ${{ secrets.SIGNING_KEY }} SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} + nats_server_path: nats-server/main steps: - run: echo -e "RELEASE" - name: Set up JDK 8 @@ -22,8 +23,12 @@ jobs: with: java-version: '8' distribution: 'adopt' + - name: Setup GO + uses: actions/setup-go@v2 - name: Check out repository code uses: actions/checkout@v2 + - name: Install Nats Server + run: chmod +x install-nats-server.sh && ./install-nats-server.sh - name: Build and Test run: chmod +x gradlew && ./gradlew clean test - name: Publish diff --git a/build.gradle b/build.gradle index 4e9f7a8..2d10196 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { id 'signing' } -def jarVersion = "1.0.3" +def jarVersion = "1.0.4 " group = 'io.nats' def isPr = System.getenv("BUILD_TYPE") == "PR" diff --git a/install-nats-server.sh b/install-nats-server.sh new file mode 100644 index 0000000..91e9d37 --- /dev/null +++ b/install-nats-server.sh @@ -0,0 +1,5 @@ +git clone https://github.com/nats-io/nats-server.git +cd nats-server +go build main.go +cd .. +nats-server/main -v% diff --git a/src/main/java/nats/io/NatsServerRunner.java b/src/main/java/nats/io/NatsServerRunner.java index 37f352c..63f2938 100644 --- a/src/main/java/nats/io/NatsServerRunner.java +++ b/src/main/java/nats/io/NatsServerRunner.java @@ -29,7 +29,7 @@ public class NatsServerRunner implements AutoCloseable { private static final Logger LOGGER = Logger.getLogger(NatsServerRunner.class.getName()); - private final int port; + private final int _port; private Process process; private final String cmdLine; @@ -232,7 +232,7 @@ public NatsServerRunner(String[] customArgs, int port, boolean debug) throws IOE * @throws IOException thrown when the server cannot start */ public NatsServerRunner(int port, boolean debug, boolean jetstream, String configFilePath, String[] configInserts, String[] customArgs) throws IOException { - this.port = port <= 0 ? nextPort() : port; + _port = port <= 0 ? nextPort() : port; List cmd = new ArrayList<>(); @@ -260,9 +260,9 @@ public NatsServerRunner(int port, boolean debug, boolean jetstream, String confi portMatcher.reset(line); if (portMatcher.find()) { - line = line.replace(portMatcher.group(1), String.valueOf(port)); + line = line.replace(portMatcher.group(1), String.valueOf(_port)); cmd.add("--port"); - cmd.add(String.valueOf(port)); + cmd.add(String.valueOf(_port)); } writer.write(line); @@ -292,7 +292,7 @@ public NatsServerRunner(int port, boolean debug, boolean jetstream, String confi } } else { cmd.add("--port"); - cmd.add(String.valueOf(port)); + cmd.add(String.valueOf(_port)); } if (jetstream) { @@ -318,7 +318,7 @@ public NatsServerRunner(int port, boolean debug, boolean jetstream, String confi process = pb.start(); - NatsOutputLogger.logOutput(LOGGER, process, NATS_SERVER, port); + NatsOutputLogger.logOutput(LOGGER, process, NATS_SERVER, _port); int tries = 10; // wait at least 1x and maybe 10 @@ -331,7 +331,7 @@ public NatsServerRunner(int port, boolean debug, boolean jetstream, String confi tries--; } while (!process.isAlive() && tries > 0); - SocketAddress addr = new InetSocketAddress("localhost", port); + SocketAddress addr = new InetSocketAddress("localhost", _port); SocketChannel socketChannel = SocketChannel.open(); socketChannel.configureBlocking(true); boolean scanning = true; @@ -361,7 +361,7 @@ public NatsServerRunner(int port, boolean debug, boolean jetstream, String confi * @return the port number */ public int getPort() { - return port; + return _port; } /** @@ -370,7 +370,7 @@ public int getPort() { * @return the uri string */ public String getURI() { - return getURIForPort(port); + return getURIForPort(_port); } /** diff --git a/src/test/java/nats/io/NatsServerRunnerTest.java b/src/test/java/nats/io/NatsServerRunnerTest.java index 6b277e4..7fa4157 100644 --- a/src/test/java/nats/io/NatsServerRunnerTest.java +++ b/src/test/java/nats/io/NatsServerRunnerTest.java @@ -4,10 +4,18 @@ package nats.io; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; + +import java.io.IOException; + +import static org.junit.jupiter.api.Assertions.assertTrue; class NatsServerRunnerTest { + @Test - void testSomeLibraryMethod() { + public void testConnection() throws IOException, InterruptedException { + try (NatsServerRunner ts = new NatsServerRunner(false)) { + assertTrue(ts.getPort() > 0); + assertTrue(ts.getURI().startsWith("nats://localhost")); + } } }