Skip to content

Commit b5e0305

Browse files
authored
Merge pull request #7 from looorent/quarkus-3.30
[3.0.4] Compatibility with Quarkus 3.30.x
2 parents 862974d + 16224cf commit b5e0305

File tree

15 files changed

+134
-172
lines changed

15 files changed

+134
-172
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [3.0.4] - 2025-12-10
9+
10+
* Support for Quarkus `3.30.x`
11+
812
## [3.0.3] - 2025-05-09
913

1014
* Release with JReleaser

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ This project is decoupled in a set of JAR you can pick up depending on your own
1616

1717
All librairies are available on Maven Central. For example, `jflu-subscriber-rabbitmq` can be included in your dependencies like this (Gradle example):
1818
```groovy
19-
implementation "be.looorent:jflu-subscriber-rabbitmq:3.0.3"
19+
implementation "be.looorent:jflu-subscriber-rabbitmq:3.0.4"
2020
```
2121

2222
## `jflu-core`

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def moduleProjects = [
2828
]
2929

3030
group = "be.looorent"
31-
version "3.0.3"
31+
version "3.0.4"
3232

3333
subprojects {
3434
group "net.commuty"
@@ -42,7 +42,7 @@ subprojects {
4242
targetCompatibility = JavaVersion.VERSION_21
4343

4444
group = "be.looorent"
45-
version "3.0.3"
45+
version "3.0.4"
4646

4747
repositories {
4848
mavenCentral()

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ rabbitmqVersion=5.22.0
1010
groovyVersion=3.0.24
1111
spockVersion=2.4-M6-groovy-3.0
1212
systemRulesVersion=1.19.0
13-
quarkusVersion=3.22.0
13+
quarkusVersion=3.30.2
1414
cglibVersion=3.3.0
1515
objenesisVersion=3.4
1616
hibernateVersion=5.2.4.Final

jflu-producer-rabbitmq-quarkus-deployment/src/main/java/be/looorent/jflu/publisher/rabbitmq/quarkus/deployment/JFluProducerProcessor.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package be.looorent.jflu.publisher.rabbitmq.quarkus.deployment;
22

3-
import be.looorent.jflu.EventSerializer;
43
import be.looorent.jflu.*;
4+
import be.looorent.jflu.EventSerializer;
55
import be.looorent.jflu.EventSerializer.EventDataDeserializer;
66
import be.looorent.jflu.EventSerializer.TimestampDeserializer;
77
import be.looorent.jflu.entity.*;
@@ -13,7 +13,6 @@
1313
import be.looorent.jflu.publisher.rabbitmq.RabbitMQPropertyName;
1414
import be.looorent.jflu.publisher.rabbitmq.quarkus.ProducerBuildConfiguration;
1515
import be.looorent.jflu.publisher.rabbitmq.quarkus.ProducerRecorder;
16-
import be.looorent.jflu.publisher.rabbitmq.quarkus.ProducerRuntimeConfiguration;
1716
import be.looorent.jflu.request.RequestEventFactory;
1817
import be.looorent.jflu.subscriber.*;
1918
import io.quarkus.arc.deployment.BeanContainerBuildItem;
@@ -38,21 +37,16 @@ FeatureBuildItem feature() {
3837

3938
@Record(ExecutionTime.STATIC_INIT)
4039
@BuildStep(onlyIf = IsEnabled.class)
41-
public void configureBuild(ProducerRecorder recorder,
42-
ProducerBuildConfiguration buildConfiguration,
43-
BeanContainerBuildItem beanContainer) {
44-
LOGGER.infof("Configure Build of JFlu - RabbitMQ producer: %s", buildConfiguration);
45-
recorder.configureBuild(buildConfiguration, beanContainer.getValue());
40+
public void configureBuild(ProducerRecorder recorder, BeanContainerBuildItem beanContainer) {
41+
LOGGER.infof("Configure Build of JFlu - RabbitMQ producer");
42+
recorder.configureBuild(beanContainer.getValue());
4643
}
4744

4845
@Record(ExecutionTime.RUNTIME_INIT)
4946
@BuildStep(onlyIf = IsEnabled.class)
50-
public void configureProducer(ProducerRecorder recorder,
51-
ProducerRuntimeConfiguration runtimeConfiguration,
52-
ProducerBuildConfiguration buildConfiguration,
53-
BeanContainerBuildItem beanContainer) {
54-
LOGGER.infof("Configure Runtime of JFlu - RabbitMQ producer: %s", runtimeConfiguration);
55-
recorder.configureRuntime(runtimeConfiguration, buildConfiguration, beanContainer.getValue());
47+
public void configureProducer(ProducerRecorder recorder, BeanContainerBuildItem beanContainer) {
48+
LOGGER.infof("Configure Runtime of JFlu - RabbitMQ producer");
49+
recorder.configureRuntime(beanContainer.getValue());
5650
}
5751

5852
@BuildStep(onlyIf = IsEnabled.class)
@@ -98,7 +92,7 @@ static class IsEnabled implements BooleanSupplier {
9892
ProducerBuildConfiguration configuration;
9993

10094
public boolean getAsBoolean() {
101-
return configuration.enabled;
95+
return configuration.enabled();
10296
}
10397
}
10498
}

jflu-producer-rabbitmq-quarkus/src/main/java/be/looorent/jflu/publisher/rabbitmq/quarkus/EventFactoryProducer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class EventFactoryProducer {
1717
@Produces
1818
@Dependent
1919
public ManualEventFactory produceManualEventFactory() {
20-
String emitter = isEnabled() ? runtimeConfiguration.emitter : "[JFluDisabled]";
20+
String emitter = isEnabled() ? runtimeConfiguration.emitter() : "[JFluDisabled]";
2121
LOGGER.infof("Instanciate manual event factory for emitter='%s'", emitter);
2222
return new ManualEventFactory(emitter);
2323
}
@@ -28,6 +28,6 @@ public void init(ProducerRuntimeConfiguration runtimeConfiguration, ProducerBuil
2828
}
2929

3030
private boolean isEnabled() {
31-
return buildConfiguration != null && buildConfiguration.enabled;
31+
return buildConfiguration != null && buildConfiguration.enabled();
3232
}
3333
}

jflu-producer-rabbitmq-quarkus/src/main/java/be/looorent/jflu/publisher/rabbitmq/quarkus/EventPublisherProducer.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ public EventPublisher producePublisher() {
2525
if (isEnabled()) {
2626
LOGGER.info("Instanciate singleton EventPublisher of type RabbitMQEventTopicPublisher");
2727
Properties properties = new Properties();
28-
USERNAME.writeTo(properties, runtimeConfiguration.username.orElse(""));
29-
PASSWORD.writeTo(properties, runtimeConfiguration.password.orElse(""));
30-
HOST.writeTo(properties, runtimeConfiguration.host);
31-
PORT.writeTo(properties, runtimeConfiguration.port.orElse(0));
32-
VIRTUAL_HOST.writeTo(properties, runtimeConfiguration.virtualHost.orElse(""));
33-
EXCHANGE_NAME.writeTo(properties, runtimeConfiguration.exchangeName);
34-
EXCHANGE_DURABLE.writeTo(properties, runtimeConfiguration.exchangeDurable);
35-
WAIT_FOR_CONNECTION.writeTo(properties, runtimeConfiguration.waitForConnection);
36-
USE_SSL.writeTo(properties, runtimeConfiguration.useSsl);
28+
USERNAME.writeTo(properties, runtimeConfiguration.username().orElse(""));
29+
PASSWORD.writeTo(properties, runtimeConfiguration.password().orElse(""));
30+
HOST.writeTo(properties, runtimeConfiguration.host());
31+
PORT.writeTo(properties, runtimeConfiguration.port().orElse(0));
32+
VIRTUAL_HOST.writeTo(properties, runtimeConfiguration.virtualHost().orElse(""));
33+
EXCHANGE_NAME.writeTo(properties, runtimeConfiguration.exchangeName());
34+
EXCHANGE_DURABLE.writeTo(properties, runtimeConfiguration.exchangeDurable());
35+
WAIT_FOR_CONNECTION.writeTo(properties, runtimeConfiguration.waitForConnection());
36+
USE_SSL.writeTo(properties, runtimeConfiguration.useSsl());
3737
return new RabbitMQEventTopicPublisher(properties);
3838
} else {
3939
LOGGER.info("JFlu-producer is disabled. EventPublisher will not publish anywhere.");
@@ -47,6 +47,6 @@ public void init(ProducerRuntimeConfiguration runtimeConfiguration, ProducerBuil
4747
}
4848

4949
private boolean isEnabled() {
50-
return buildConfiguration != null && buildConfiguration.enabled;
50+
return buildConfiguration != null && buildConfiguration.enabled();
5151
}
5252
}
Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,18 @@
11
package be.looorent.jflu.publisher.rabbitmq.quarkus;
22

3-
import io.quarkus.runtime.annotations.ConfigItem;
43
import io.quarkus.runtime.annotations.ConfigRoot;
4+
import io.smallrye.config.ConfigMapping;
5+
import io.smallrye.config.WithDefault;
56

67
import static io.quarkus.runtime.annotations.ConfigPhase.BUILD_AND_RUN_TIME_FIXED;
78

8-
@ConfigRoot(name = "jflu.producer.rabbitmq", phase = BUILD_AND_RUN_TIME_FIXED)
9-
public class ProducerBuildConfiguration {
9+
@ConfigMapping(prefix = "quarkus.jflu.producer.rabbitmq")
10+
@ConfigRoot(phase = BUILD_AND_RUN_TIME_FIXED)
11+
public interface ProducerBuildConfiguration {
1012

1113
/**
1214
* Produces event or not
1315
*/
14-
@ConfigItem(defaultValue = "false")
15-
public boolean enabled;
16-
17-
@Override
18-
public String toString() {
19-
return "ProducerBuildConfiguration{" +
20-
"enabled=" + enabled +
21-
'}';
22-
}
16+
@WithDefault("false")
17+
boolean enabled();
2318
}
Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,29 @@
11
package be.looorent.jflu.publisher.rabbitmq.quarkus;
22

33
import io.quarkus.arc.runtime.BeanContainer;
4+
import io.quarkus.runtime.RuntimeValue;
45
import io.quarkus.runtime.annotations.Recorder;
56
import org.jboss.logging.Logger;
67

78
@Recorder
89
public class ProducerRecorder {
910
private static final Logger LOGGER = Logger.getLogger(ProducerRecorder.class);
10-
public void configureBuild(ProducerBuildConfiguration buildConfig, BeanContainer container) {
11-
LOGGER.infof("JFLU Producer enabled? -> %b", buildConfig.enabled);
11+
12+
private final RuntimeValue<ProducerRuntimeConfiguration> runtimeConfig;
13+
private final ProducerBuildConfiguration buildConfig;
14+
15+
public ProducerRecorder(RuntimeValue<ProducerRuntimeConfiguration> runtimeConfig,
16+
ProducerBuildConfiguration buildConfig) {
17+
this.runtimeConfig = runtimeConfig;
18+
this.buildConfig = buildConfig;
19+
}
20+
21+
public void configureBuild(BeanContainer container) {
22+
LOGGER.infof("JFLU Producer enabled? -> %b", buildConfig.enabled());
1223
}
1324

14-
public void configureRuntime(ProducerRuntimeConfiguration runtimeConfig,
15-
ProducerBuildConfiguration buildConfig,
16-
BeanContainer container) {
17-
container.beanInstance(EventPublisherProducer.class).init(runtimeConfig, buildConfig);
18-
container.beanInstance(EventFactoryProducer.class).init(runtimeConfig, buildConfig);
25+
public void configureRuntime(BeanContainer container) {
26+
container.beanInstance(EventPublisherProducer.class).init(runtimeConfig.getValue(), buildConfig);
27+
container.beanInstance(EventFactoryProducer.class).init(runtimeConfig.getValue(), buildConfig);
1928
}
2029
}
Lines changed: 19 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,67 @@
11
package be.looorent.jflu.publisher.rabbitmq.quarkus;
22

3-
import io.quarkus.runtime.annotations.ConfigItem;
43
import io.quarkus.runtime.annotations.ConfigRoot;
4+
import io.smallrye.config.ConfigMapping;
5+
import io.smallrye.config.WithDefault;
56

67
import java.util.Optional;
78
import java.util.OptionalInt;
89

910
import static io.quarkus.runtime.annotations.ConfigPhase.RUN_TIME;
1011

11-
@ConfigRoot(name = "jflu.producer.rabbitmq", phase = RUN_TIME)
12-
public class ProducerRuntimeConfiguration {
12+
@ConfigMapping(prefix = "quarkus.jflu.producer.rabbitmq")
13+
@ConfigRoot(phase = RUN_TIME)
14+
public interface ProducerRuntimeConfiguration {
1315
/**
1416
* RabbitMQ's username
1517
*/
16-
@ConfigItem
17-
public Optional<String> username;
18+
Optional<String> username();
1819

1920
/**
2021
* RabbitMQ's password
2122
*/
22-
@ConfigItem
23-
public Optional<String> password;
23+
Optional<String> password();
2424

2525
/**
2626
* RabbitMQ's host
2727
*/
28-
@ConfigItem
29-
public String host;
28+
String host();
3029

3130
/**
3231
* RabbitMQ's port
3332
*/
34-
@ConfigItem(defaultValue = "5672")
35-
public OptionalInt port;
33+
@WithDefault("5672")
34+
OptionalInt port();
3635

3736
/**
3837
* RabbitMQ's virtual host
3938
*/
40-
@ConfigItem(defaultValue = "/")
41-
public Optional<String> virtualHost;
39+
@WithDefault("/")
40+
Optional<String> virtualHost();
4241
/**
4342
* RabbitMQ's exchange name
4443
*/
45-
@ConfigItem
46-
public String exchangeName;
44+
String exchangeName();
4745

4846
/**
4947
* Name of emitter for each event
5048
*/
51-
@ConfigItem
52-
public String emitter;
49+
String emitter();
5350

5451
/**
5552
* Whether the event must be flagged with "exchange durable" or not
5653
*/
57-
@ConfigItem
58-
public boolean exchangeDurable;
54+
boolean exchangeDurable();
5955

6056
/**
6157
* Wait for RabbitMQ to be reachable
6258
*/
63-
@ConfigItem(defaultValue = "false")
64-
public boolean waitForConnection;
59+
@WithDefault("false")
60+
boolean waitForConnection();
6561

6662
/**
6763
* Use SSL with the RabbitMQ's management API or not
6864
*/
69-
@ConfigItem(defaultValue = "false")
70-
public boolean useSsl;
71-
72-
@Override
73-
public String toString() {
74-
return "ProducerRuntimeConfiguration{" +
75-
"username=" + username +
76-
", host='" + host + '\'' +
77-
", port=" + port +
78-
", virtualHost=" + virtualHost +
79-
", exchangeName='" + exchangeName + '\'' +
80-
", emitter='" + emitter + '\'' +
81-
", exchangeDurable=" + exchangeDurable +
82-
", waitForConnection=" + waitForConnection +
83-
", useSsl=" + useSsl +
84-
'}';
85-
}
65+
@WithDefault("false")
66+
boolean useSsl();
8667
}

0 commit comments

Comments
 (0)