Skip to content

Commit

Permalink
Fix issues after upgrading to micronaut 4.0.0-SNAPSHOT
Browse files Browse the repository at this point in the history
  • Loading branch information
grimmjo committed Nov 29, 2022
1 parent 9eb628f commit 7bb1845
Show file tree
Hide file tree
Showing 11 changed files with 419 additions and 260 deletions.
80 changes: 80 additions & 0 deletions config/accepted-api-changes.json
Original file line number Diff line number Diff line change
Expand Up @@ -216,5 +216,85 @@
"type": "io.micronaut.nats.connect.$ClusterNatsConnectionFactoryConfig$Definition$Reference",
"member": "Constructor io.micronaut.nats.connect.$ClusterNatsConnectionFactoryConfig$Definition$Reference()",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$ClusterNatsConnectionFactoryConfig$DefaultTlsConfiguration$Definition$Reference",
"member": "Implemented interface io.micronaut.core.annotation.AnnotationSource",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$ClusterNatsConnectionFactoryConfig$DefaultTlsConfiguration$Definition$Reference",
"member": "Implemented interface io.micronaut.inject.BeanContextConditional",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$ClusterNatsConnectionFactoryConfig$DefaultTlsConfiguration$Definition$Reference",
"member": "Implemented interface io.micronaut.core.annotation.AnnotationMetadataProvider",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$ClusterNatsConnectionFactoryConfig$DefaultTlsConfiguration$Definition$Reference",
"member": "Implemented interface io.micronaut.inject.BeanType",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$ClusterNatsConnectionFactoryConfig$DefaultTlsConfiguration$Definition$Reference",
"member": "Implemented interface io.micronaut.inject.BeanDefinitionReference",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$ClusterNatsConnectionFactoryConfig$Definition$Reference",
"member": "Implemented interface io.micronaut.core.annotation.AnnotationSource",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$ClusterNatsConnectionFactoryConfig$Definition$Reference",
"member": "Implemented interface io.micronaut.inject.BeanContextConditional",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$ClusterNatsConnectionFactoryConfig$Definition$Reference",
"member": "Implemented interface io.micronaut.core.annotation.AnnotationMetadataProvider",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$ClusterNatsConnectionFactoryConfig$Definition$Reference",
"member": "Implemented interface io.micronaut.inject.BeanType",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$ClusterNatsConnectionFactoryConfig$Definition$Reference",
"member": "Implemented interface io.micronaut.inject.BeanDefinitionReference",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$SingleNatsConnectionFactoryConfig$DefaultTlsConfiguration$Definition$Reference",
"member": "Implemented interface io.micronaut.core.annotation.AnnotationSource",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$SingleNatsConnectionFactoryConfig$DefaultTlsConfiguration$Definition$Reference",
"member": "Implemented interface io.micronaut.inject.BeanContextConditional",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$SingleNatsConnectionFactoryConfig$DefaultTlsConfiguration$Definition$Reference",
"member": "Implemented interface io.micronaut.core.annotation.AnnotationMetadataProvider",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$SingleNatsConnectionFactoryConfig$DefaultTlsConfiguration$Definition$Reference",
"member": "Implemented interface io.micronaut.inject.BeanType",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$SingleNatsConnectionFactoryConfig$DefaultTlsConfiguration$Definition$Reference",
"member": "Implemented interface io.micronaut.inject.BeanDefinitionReference",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$SingleNatsConnectionFactoryConfig$Definition$Reference",
"member": "Implemented interface io.micronaut.core.annotation.AnnotationSource",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$SingleNatsConnectionFactoryConfig$Definition$Reference",
"member": "Implemented interface io.micronaut.inject.BeanContextConditional",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$SingleNatsConnectionFactoryConfig$Definition$Reference",
"member": "Implemented interface io.micronaut.core.annotation.AnnotationMetadataProvider",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$SingleNatsConnectionFactoryConfig$Definition$Reference",
"member": "Implemented interface io.micronaut.inject.BeanType",
"reason": "Provide nats configurations in a generic way"
},{
"type": "io.micronaut.nats.connect.$SingleNatsConnectionFactoryConfig$Definition$Reference",
"member": "Implemented interface io.micronaut.inject.BeanDefinitionReference",
"reason": "Provide nats configurations in a generic way"
}
]
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@ abstract class AbstractNatsTest extends Specification {

protected Map<String, Object> getConfiguration() {
["nats.default.addresses": "nats://localhost:" + natsContainer.getMappedPort(4222),
"spec.name" : getClass().simpleName] as Map
"spec.name" : getClass().simpleName,
"nats.default.jetstream.streams.events.storage-type": "Memory",
"nats.default.jetstream.streams.events.subjects": ["events.>"]] as Map
}

protected void waitFor(Closure<?> conditionEvaluator) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package io.micronaut.nats;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.Callable;

import io.micronaut.context.ApplicationContext;
import org.junit.jupiter.api.AfterEach;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;

import static java.util.concurrent.TimeUnit.SECONDS;
import static org.awaitility.Awaitility.await;

Expand All @@ -34,6 +35,8 @@ protected Map<String, Object> getConfiguration() {
config.put("nats.default.addresses",
"nats://localhost:" + natsContainer.getMappedPort(4222));
config.put("spec.name", getClass().getSimpleName());
config.put("nats.default.jetstream.streams.events.storage-type", "Memory");
config.put("nats.default.jetstream.streams.events.subjects", List.of("events.>"));
return config;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ abstract class AbstractNatsTest(body: BehaviorSpec.() -> Unit) : BehaviorSpec(bo
fun getDefaultConfig(specName: String): MutableMap<String, Any> =
mutableMapOf(
"nats.default.addresses" to "nats://localhost:" + natsContainer.getMappedPort(4222),
"spec.name" to specName
"spec.name" to specName,
"nats.default.jetstream.streams.events.storage-type" to "Memory",
"nats.default.jetstream.streams.events.subjects" to "events.>"
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import io.micronaut.nats.AbstractNatsTest
import io.nats.client.JetStreamManagement
import io.nats.client.PublishOptions
import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds
import kotlin.time.ExperimentalTime

@OptIn(ExperimentalTime::class)
Expand Down Expand Up @@ -44,7 +45,7 @@ class JetstreamSpec : AbstractNatsTest({
// end::producer[]

then("The messages are received with pull consumer") {
eventually(Duration.seconds(10)) {
eventually(10.seconds) {
productListener.messageLengths.size shouldBe 2
jsm.getStreamInfo("events").streamState.msgCount shouldBe 2
}
Expand Down Expand Up @@ -86,7 +87,7 @@ class JetstreamSpec : AbstractNatsTest({


then("The messages are received") {
eventually(Duration.seconds(10)) {
eventually(10.seconds) {
pullConsumerHelper.pullMessages().size shouldBe 2
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,9 @@
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;

import static io.nats.client.Options.Builder;
Expand Down Expand Up @@ -474,9 +473,9 @@ public static class JetStreamConfiguration {

@ConfigurationBuilder(prefixes = "")
private JetStreamOptions.Builder builder =
JetStreamOptions.builder(JetStreamOptions.defaultOptions());
JetStreamOptions.builder(JetStreamOptions.defaultOptions());

private Map<String, StreamConfiguration> streams = new HashMap<>();
private List<StreamConfiguration> streams = new ArrayList<>();

/**
* get the jetstream options builder.
Expand All @@ -501,7 +500,7 @@ public JetStreamOptions toJetStreamOptions() {
*
* @return list of streamConfigurations
*/
public Map<String, StreamConfiguration> getStreams() {
public List<StreamConfiguration> getStreams() {
return streams;
}

Expand All @@ -510,7 +509,7 @@ public Map<String, StreamConfiguration> getStreams() {
*
* @param streams the stream configurations
*/
public void setStreams(Map<String, StreamConfiguration> streams) {
public void setStreams(List<StreamConfiguration> streams) {
this.streams = streams;
}

Expand All @@ -525,8 +524,14 @@ public static class StreamConfiguration {
private io.nats.client.api.StreamConfiguration.Builder builder =
io.nats.client.api.StreamConfiguration.builder();

private final String name;

private List<String> subjects;

public StreamConfiguration(@Parameter String name) {
this.name = name;
}

/**
* get the stream configuration builder.
*
Expand All @@ -540,11 +545,10 @@ public io.nats.client.api.StreamConfiguration.Builder getBuilder() {
* return the configuration as
* {@link io.nats.client.api.StreamConfiguration}.
*
* @param streamName the stream name
* @return nats stream configuration
*/
public io.nats.client.api.StreamConfiguration toStreamConfiguration(String streamName) {
return builder.name(streamName).subjects(subjects).build();
public io.nats.client.api.StreamConfiguration toStreamConfiguration() {
return builder.name(name).subjects(subjects).build();
}

/**
Expand All @@ -555,6 +559,14 @@ public io.nats.client.api.StreamConfiguration toStreamConfiguration(String strea
public List<String> getSubjects() {
return subjects;
}

/**
* set the subjects.
* @param subjects list of subjects
*/
public void setSubjects(List<String> subjects) {
this.subjects = subjects;
}
}
}
}
Loading

0 comments on commit 7bb1845

Please sign in to comment.