Skip to content

Commit

Permalink
Merge pull request #5 from madansp/enable-jetstream
Browse files Browse the repository at this point in the history
Enable jetstream, added option for configuration file and updated versions
  • Loading branch information
madansp authored Jul 12, 2022
2 parents 326bf78 + e222d5d commit 7904224
Show file tree
Hide file tree
Showing 6 changed files with 332 additions and 20 deletions.
37 changes: 33 additions & 4 deletions README.MD
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,26 @@ For Maven:
<dependency>
<groupId>np.com.madanpokharel.embed</groupId>
<artifactId>nats-embedded</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
<scope>test</scope>
</dependency>
```
For Gradle:
For Gradle(Groovy Style):
``` groovy
testCompile group: 'np.com.madanpokharel.embed', name: 'nats-embedded', version: '1.1.0'
testCompile group: 'np.com.madanpokharel.embed', name: 'nats-embedded', version: '2.1.0'
```

For Gradle
```kotlin
implementation("np.com.madanpokharel.embed:nats-embedded:2.1.0")
```
For Bazel
```
maven_jar(
name = "nats-embedded",
artifact = "np.com.madanpokharel.embed:nats-embedded:2.1.0",
sha1 = "0235584434668a4dfbb9b7a0211cf3c9642e99bd",
)
```

#### Example
Expand All @@ -31,7 +44,7 @@ Start nats server with defined port 7656.
EmbeddedNatsConfig config = new EmbeddedNatsConfig.Builder()
.withNatsServerConfig(
new NatsServerConfig.Builder()
.withServerType(ServerType.NATS)
.withServerType(ServerType.NATS) //Can be omitted, default is Nats
.withPort(7656)
.withNatsVersion(NatsVersion.LATEST)
.build()
Expand Down Expand Up @@ -133,5 +146,21 @@ EmbeddedNatsConfig config = new EmbeddedNatsConfig.Builder()
.build();

```
Using custom nats configuration file
```java
new NatsServerConfig.Builder()
.withConfigurationFile("custom-config-file.conf")
.build()
```
Enabling JetStream
```java
new NatsServerConfig.Builder()
.withEnableJetStream() //without store location
.build()

new NatsServerConfig.Builder()
.withEnableJetStream("target") //with store location
.build()
```
### Dependency
This library using component from [flapdoodle-oss](https://github.com/flapdoodle-oss)
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@

<groupId>np.com.madanpokharel.embed</groupId>
<artifactId>nats-embedded</artifactId>
<version>2.0.0-SNAPSHOT</version>
<version>2.1.0</version>
<packaging>jar</packaging>

<properties>
Expand Down
46 changes: 34 additions & 12 deletions src/main/java/np/com/madanpokharel/embed/nats/NatsServerConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
* <p>NatsServerConfig class.</p>
*
* @author Madan Pokharel
*
*/
public final class NatsServerConfig implements ExecutableProcessConfig {

Expand All @@ -51,8 +50,12 @@ public final class NatsServerConfig implements ExecutableProcessConfig {
* @param serverType a {@link np.com.madanpokharel.embed.nats.ServerType} object.
* @param configParams a {@link java.util.Map} object.
*/
public NatsServerConfig(Version version, int port, String host,
String clusterId, ServerType serverType, Map<String, String> configParams) {
public NatsServerConfig(Version version,
int port,
String host,
String clusterId,
ServerType serverType,
Map<String, String> configParams) {
this.version = version;
this.port = port;
this.host = host;
Expand Down Expand Up @@ -84,9 +87,9 @@ public Version version() {
@Override
public SupportConfig supportConfig() {
return SupportConfig.builder().name("nats-streaming-server")
.supportUrl("https://github.com/madansp/nats-embedded")
.messageOnException((clazz, e) -> e.getMessage())
.build();
.supportUrl("https://github.com/madansp/nats-embedded")
.messageOnException((clazz, e) -> e.getMessage())
.build();
}

@Override
Expand All @@ -113,12 +116,12 @@ List<String> getConfigList() {
configMap.add(clusterId);
}

if (!configMap.isEmpty()) {
params.forEach((k, v) -> {
configMap.add(k);
params.forEach((k, v) -> {
configMap.add(k);
if (!v.isEmpty()) {
configMap.add(v);
});
}
}
});

return configMap;
}
Expand Down Expand Up @@ -212,8 +215,27 @@ public Builder withConfigParam(String param, String value) {
return this;
}

public Builder withEnableJetStream(String storeDir) {
configParams.put("-js", "");
configParams.put("-sd", storeDir);
return this;
}

public Builder withEnableJetStream() {
configParams.put("-js", "");
return this;
}

public Builder withConfigurationFile(String filePath) {
configParams.put("-c", filePath);
return this;
}


public NatsServerConfig build() {
Objects.requireNonNull(serverType, "server type cannot be null");
if (serverType == null) {
serverType = ServerType.NATS;
}

if (Objects.isNull(version)) {
if (serverType == ServerType.NATS) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,98 @@ public class NatsStreamingVersion implements Version {
/**
* Constant <code>LATEST</code>
*/
public static final NatsStreamingVersion LATEST = new NatsStreamingVersion("v0.17.0");
public static final NatsStreamingVersion LATEST = new NatsStreamingVersion("v0.24.6");

/**
* Constant <code>V0_24_6</code>
*/
public static final NatsStreamingVersion V0_24_6 = new NatsStreamingVersion("v0.24.6");

/**
* Constant <code>V0_24_5</code>
*/
public static final NatsStreamingVersion V0_24_5 = new NatsStreamingVersion("v0.24.5");

/**
* Constant <code>V0_24_4</code>
*/
public static final NatsStreamingVersion V0_24_4 = new NatsStreamingVersion("v0.24.4");

/**
* Constant <code>V0_24_3</code>
*/
public static final NatsStreamingVersion V0_24_3 = new NatsStreamingVersion("v0.24.3");

/**
* Constant <code>V0_24_2</code>
*/
public static final NatsStreamingVersion V0_24_2 = new NatsStreamingVersion("v0.24.2");

/**
* Constant <code>V0_24_1</code>
*/
public static final NatsStreamingVersion V0_24_1 = new NatsStreamingVersion("v0.24.1");

/**
* Constant <code>V0_24_0</code>
*/
public static final NatsStreamingVersion V0_24_0 = new NatsStreamingVersion("v0.24.0");

/**
* Constant <code>V0_23_2</code>
*/
public static final NatsStreamingVersion V0_23_2 = new NatsStreamingVersion("v0.23.2");

/**
* Constant <code>V0_23_1</code>
*/
public static final NatsStreamingVersion V0_23_1 = new NatsStreamingVersion("v0.23.1");

/**
* Constant <code>V0_23_0</code>
*/
public static final NatsStreamingVersion V0_23_0 = new NatsStreamingVersion("v0.23.0");

/**
* Constant <code>V0_22_1</code>
*/
public static final NatsStreamingVersion V0_22_1 = new NatsStreamingVersion("v0.21.1");

/**
* Constant <code>V0_22_0</code>
*/
public static final NatsStreamingVersion V0_22_0 = new NatsStreamingVersion("v0.22.0");

/**
* Constant <code>V0_21_2</code>
*/
public static final NatsStreamingVersion V0_21_2 = new NatsStreamingVersion("v0.21.2");

/**
* Constant <code>V0_21_1</code>
*/
public static final NatsStreamingVersion V0_21_1 = new NatsStreamingVersion("v0.21.1");

/**
* Constant <code>V0_21_0</code>
*/
public static final NatsStreamingVersion V0_21_0 = new NatsStreamingVersion("v0.21.0");

/**
* Constant <code>V0_20_0</code>
*/
public static final NatsStreamingVersion V0_20_0 = new NatsStreamingVersion("v0.20.0");

/**
* Constant <code>V0_19_0</code>
*/
public static final NatsStreamingVersion V0_19_0 = new NatsStreamingVersion("v0.19.0");

/**
* Constant <code>V0_18_0</code>
*/
public static final NatsStreamingVersion V0_18_0 = new NatsStreamingVersion("v0.18.0");


/**
* Constant <code>V0_17_0</code>
Expand Down
Loading

0 comments on commit 7904224

Please sign in to comment.