Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quarkus LTS Upgrade to 3.8.4 #3477

Merged
merged 7 commits into from
May 2, 2024
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
1 change: 0 additions & 1 deletion api/kogito-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<scope>provided</scope>
<version>4.0.1</version>
</dependency>

<dependency>
Expand Down
52 changes: 0 additions & 52 deletions kogito-build/kogito-build-no-bom-parent/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -699,58 +699,6 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
<plugin>
<!-- Remove comments from META-INF/quarkus-javadoc.properties -->
<!-- This is needed because the file generated by quarkus contains a timestamp in a comment that makes the build not reproducible -->
<!-- This workaround can be removed when drools will be migrated to quarkus release containing this fix https://github.com/quarkusio/quarkus/pull/38365 -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-util</artifactId>
<version>${version.drools.util}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>Remove comments from generated files</id>
<phase>prepare-package</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<includeProjectDependencies>false</includeProjectDependencies>
<includePluginDependencies>true</includePluginDependencies>
<executableDependency>
<groupId>org.drools</groupId>
<artifactId>drools-util</artifactId>
</executableDependency>
<mainClass>org.drools.util.RemoveCommentsMain</mainClass>
<arguments>
<argument>true</argument>
<argument>${project.basedir}/target/classes/META-INF/quarkus-javadoc.properties</argument>
<argument>${project.basedir}/target/classes/META-INF/quarkus-extension.properties</argument>
<argument>${project.basedir}/target/generated-sources/annotations/org/kie/kogito/addons/quarkus/knative/eventing/deployment/EventingConfiguration.jdp</argument>
<argument>${project.basedir}/target/generated-sources/annotations/org/kie/kogito/addons/quarkus/knative/eventing/deployment/SinkConfiguration.jdp</argument>
<argument>${project.basedir}/target/generated-sources/annotations/org/kie/kogito/events/config/EventsRuntimeConfig.jdp</argument>
<argument>${project.basedir}/target/generated-sources/annotations/org/kie/kogito/quarkus/config/KogitoBuildTimeConfig.jdp</argument>
<argument>${project.basedir}/target/generated-sources/annotations/org/kie/kogito/quarkus/config/KogitoEventingRuntimeConfig.jdp</argument>
<argument>${project.basedir}/target/generated-sources/annotations/org/kie/kogito/quarkus/config/KogitoRuntimeConfig.jdp</argument>
<argument>${project.basedir}/target/generated-sources/annotations/org/kie/kogito/quarkus/serverless/workflow/config/KogitoBuildTimeConfig.jdp</argument>
<argument>${project.basedir}/target/generated-sources/annotations/org/kie/kogito/quarkus/serverless/workflow/config/KogitoRPCRuntimeConfig.jdp</argument>
<argument>${project.basedir}/target/generated-sources/annotations/org/kie/kogito/quarkus/serverless/workflow/config/KogitoServerlessWorkflowBuildTimeConfig.jdp</argument>
<argument>${project.basedir}/target/generated-sources/annotations/org/kie/kogito/quarkus/serverless/workflow/config/KogitoServerlessWorkflowRuntimeConfig.jdp</argument>
<argument>${project.basedir}/target/generated-sources/annotations/org/kie/kogito/quarkus/serverless/workflow/config/KogitoBuildTimeConfig.jdp</argument>
<argument>${project.basedir}/target/generated-sources/annotations/org/kie/kogito/quarkus/workflow/deployment/config/KogitoWorkflowBuildTimeConfig.jdp</argument>
<argument>${project.basedir}/target/generated-sources/annotations/org/kie/kogito/quarkus/workflow/deployment/config/KogitoDevServicesBuildTimeConfig.jdp</argument>
<argument>${project.basedir}/target/generated-sources/annotations/org/kie/kogito/tracing/decision/quarkus/deployment/KogitoBuildTimeConfig.jdp</argument>
<argument>${project.basedir}/target/generated-sources/annotations/org/kie/kogito/tracing/decision/quarkus/deployment/KogitoDevServicesBuildTimeConfig.jdp</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

Expand Down
97 changes: 43 additions & 54 deletions kogito-build/kogito-dependencies-bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,81 +16,78 @@

<properties>
<!-- this version property is used in plugins but also in dependencies too -->
<version.io.quarkus>3.2.10.Final</version.io.quarkus>
<version.io.quarkus>3.8.4</version.io.quarkus>
<version.io.quarkus.quarkus-test>${version.io.quarkus}</version.io.quarkus.quarkus-test>
<version.org.springframework.boot>3.2.4</version.org.springframework.boot>
<version.org.apache.kafka>3.4.0</version.org.apache.kafka>
<version.org.apache.kafka>3.6.1</version.org.apache.kafka>

<!-- dependencies versions -->
<version.com.networknt>1.0.86</version.com.networknt>
<version.com.fasterxml.jackson>2.15.2</version.com.fasterxml.jackson>
<version.com.fasterxml.jackson.databind>2.15.2</version.com.fasterxml.jackson.databind>
<version.com.fasterxml.jackson>2.16.1</version.com.fasterxml.jackson>
<version.com.fasterxml.jackson.databind>2.16.1</version.com.fasterxml.jackson.databind>
<version.com.jayway.jsonpath>2.9.0</version.com.jayway.jsonpath>
<version.net.minidev.jsonsmart>2.4.10</version.net.minidev.jsonsmart>
<version.net.thisptr.jackson-jq>1.0.0-preview.20220705</version.net.thisptr.jackson-jq>
<version.net.thisptr.jackson-jq>1.0.0-preview.20240207</version.net.thisptr.jackson-jq>
<version.io.quarkiverse.jackson-jq>2.0.1</version.io.quarkiverse.jackson-jq>
<version.io.quarkiverse.openapi.generator>2.3.0</version.io.quarkiverse.openapi.generator>
<version.io.quarkiverse.asyncapi>0.2.0</version.io.quarkiverse.asyncapi>
<version.io.quarkiverse.reactivemessaging.http>2.1.0</version.io.quarkiverse.reactivemessaging.http>
<version.io.quarkiverse.embedded.postgresql>0.1.3</version.io.quarkiverse.embedded.postgresql>
<version.io.quarkiverse.openapi.generator>2.4.1</version.io.quarkiverse.openapi.generator>
<version.io.quarkiverse.asyncapi>0.3.0</version.io.quarkiverse.asyncapi>
<version.io.quarkiverse.reactivemessaging.http>2.2.0</version.io.quarkiverse.reactivemessaging.http>
<version.io.quarkiverse.embedded.postgresql>0.2.1</version.io.quarkiverse.embedded.postgresql>
<version.com.github.haifengl.smile>1.5.2</version.com.github.haifengl.smile>
<version.com.github.javaparser>3.25.1</version.com.github.javaparser>
<version.com.fasterxml.jackson.datatype>2.15.2</version.com.fasterxml.jackson.datatype>
<version.com.github.victools>4.18.0</version.com.github.victools>
<version.com.github.javaparser>3.25.8</version.com.github.javaparser>
<version.com.fasterxml.jackson.datatype>2.16.1</version.com.fasterxml.jackson.datatype>
<version.com.github.victools>4.31.0</version.com.github.victools>
<version.com.github.tomakehurst.wiremock>2.35.1</version.com.github.tomakehurst.wiremock>
<version.com.google.protobuf>3.22.0</version.com.google.protobuf>
<version.com.google.protobuf>3.25.0</version.com.google.protobuf>
<!-- We don't use gson directly. This is just to align versions of transitive dependencies -->
<version.com.google.gson>2.10.1</version.com.google.gson>
<!-- currently required for integration test only -->
<version.com.oracle.database.jdbc>21.5.0.0</version.com.oracle.database.jdbc>
<version.com.sun.xml.bind.core>2.3.0.1</version.com.sun.xml.bind.core>
<version.com.sun.xml.bind.impl>2.3.5</version.com.sun.xml.bind.impl>
<version.com.sun.xml.bind.core>4.0.4</version.com.sun.xml.bind.core>
<version.com.sun.activation>2.0.1</version.com.sun.activation>
<version.javax.annotation>1.3.2</version.javax.annotation>
<version.javax.annotation-api>1.3.2</version.javax.annotation-api>
<version.javax.inject>2.0.1</version.javax.inject>
<version.javax.validation>2.0.1.Final</version.javax.validation>
<version.javax.xml.bind>2.3.1</version.javax.xml.bind>
<version.org.eclipse.microprofile.openapi>3.1.1</version.org.eclipse.microprofile.openapi>
<version.ch.qos.logback>1.4.12</version.ch.qos.logback>
<version.jakarta.annotation-api>2.1.1</version.jakarta.annotation-api>
<version.jakarta.validation-api>3.0.2</version.jakarta.validation-api>
<version.jakarta.xml.bind-api>4.0.1</version.jakarta.xml.bind-api>

<version.io.cloudevents>2.3.0</version.io.cloudevents>
<!--
We add Fabric8 here to use as a basis for Addons/Kubernetes
Don't add as a management dependency because it will break SpringBoot and Quarkus
Kubernetes addons since they use a different version.
-->
<version.io.fabric8.kubernetes-client>6.7.2</version.io.fabric8.kubernetes-client>
<version.io.micrometer>1.11.1</version.io.micrometer>
<version.org.flywaydb>9.16.3</version.org.flywaydb>
<version.org.postgresql>42.6.0</version.org.postgresql>
<version.io.fabric8.kubernetes-client>6.10.0</version.io.fabric8.kubernetes-client>
<version.io.micrometer>1.12.2</version.io.micrometer>
<version.org.flywaydb>9.22.3</version.org.flywaydb>
<version.org.postgresql>42.7.2</version.org.postgresql>
<version.io.serverlessworkflow>4.0.5.Final</version.io.serverlessworkflow>
<!-- Aligned with Quarkus 2.7 (LTS) - see https://issues.redhat.com/browse/KOGITO-7971 -->
<version.io.smallrye-open-api>3.4.0</version.io.smallrye-open-api>
<version.io.smallrye-open-api>3.10.0</version.io.smallrye-open-api>
<version.org.awaitility>4.2.0</version.org.awaitility>

<version.io.smallrye.reactive.mutiny-vertx-web-client>3.7.2</version.io.smallrye.reactive.mutiny-vertx-web-client>
<version.io.smallrye.reactive.mutiny-vertx-web-client>3.10.0</version.io.smallrye.reactive.mutiny-vertx-web-client>

<version.io.vertx>4.4.6</version.io.vertx>
<version.io.grpc>1.56.0</version.io.grpc>
<version.io.vertx>4.5.7</version.io.vertx>
<version.io.grpc>1.59.1</version.io.grpc>

<version.io.quarkus.camel>3.0.0-M1</version.io.quarkus.camel>
<version.io.quarkus.camel>3.9.0</version.io.quarkus.camel>

<version.io.swagger.parser.v3>2.1.19</version.io.swagger.parser.v3>
<version.io.swagger.core.v3>2.2.19</version.io.swagger.core.v3>

<version.org.apache.commons>3.12.0</version.org.apache.commons>
<version.org.apache.commons>3.14.0</version.org.apache.commons>

<version.org.graalvm.nativeimage>23.0.1</version.org.graalvm.nativeimage>
<version.org.graalvm.nativeimage>23.1.2</version.org.graalvm.nativeimage>

<version.org.infinispan>14.0.7.Final</version.org.infinispan>
<version.org.infinispan.protostream>4.6.2.Final</version.org.infinispan.protostream>
<version.org.infinispan>14.0.25.Final</version.org.infinispan>
<version.org.infinispan.protostream>4.6.5.Final</version.org.infinispan.protostream>

<version.org.rocksdb>7.10.2</version.org.rocksdb>
<!-- consider migrating to 3.x JDK 9: https://jakarta.ee/specifications/restful-ws/ -->
<version.jakarta.ws.rs>3.1.0</version.jakarta.ws.rs>
<version.org.jboss.resteasy>6.2.7.Final</version.org.jboss.resteasy>
<version.org.keycloak>21.0.1</version.org.keycloak>
<version.org.keycloak>23.0.7</version.org.keycloak>
<!-- It seems that the confluent kafka cannot replace wurstmeister/kafka so easily. See FAI-729 -->
<version.wurstmeister.kafka>2.12-2.2.1</version.wurstmeister.kafka>
<version.org.mongo>4.9.1</version.org.mongo>
Expand All @@ -100,21 +97,20 @@
<version.org.postgres>13.4-alpine3.14</version.org.postgres>
<!-- we align to version used by quarkus -->
<version.org.apache.avro>1.11.3</version.org.apache.avro>
<version.org.assertj>3.22.0</version.org.assertj>
<version.org.assertj>3.24.2</version.org.assertj>
<version.org.glassfish.jaxb>4.0.4</version.org.glassfish.jaxb>
<version.org.json-unit-assertj>2.9.0</version.org.json-unit-assertj>
<version.org.hamcrest>1.3</version.org.hamcrest> <!-- else old version coming from Mockito wins and breaks tests -->
<version.org.junit.minor>10.2</version.org.junit.minor> <!-- so that org.junit.platform and org.junit can share the same minor version -->
<version.org.junit>5.${version.org.junit.minor}</version.org.junit>
<version.org.junit>5.10.2</version.org.junit>
<version.org.junit.jupiter>5.10.2</version.org.junit.jupiter>
<version.org.junit.vintage>5.10.2</version.org.junit.vintage>
<version.org.junit.platform>1.10.2</version.org.junit.platform> <!-- otherwise Quarkus brings its own, silently disabling some tests -->
<version.org.junit.pioneer>1.5.0</version.org.junit.pioneer>
<version.org.mockito>4.11.0</version.org.mockito>
<version.org.testcontainers>1.17.6</version.org.testcontainers>
<version.org.mockito>5.2.0</version.org.mockito>
<version.org.testcontainers>1.19.6</version.org.testcontainers>
<version.org.xmlunit-core>2.9.1</version.org.xmlunit-core>
<version.io.rest-assured>5.3.2</version.io.rest-assured>

<version.net.byte-buddy>1.14.7</version.net.byte-buddy>
<version.net.byte-buddy>1.14.11</version.net.byte-buddy>

<version.org.mvel>2.5.0.Final</version.org.mvel>
<version.org.reactivestreams>1.0.4</version.org.reactivestreams>
Expand All @@ -133,8 +129,8 @@
<version.com.github.stephenc.jcip>1.0-1</version.com.github.stephenc.jcip>
<version.black.ninia>4.2.0</version.black.ninia>
<version.com.google.collections>1.0</version.com.google.collections>
<version.com.google.guava>32.0.0-jre</version.com.google.guava>
<version.apache.commons.commons-compress>1.26.0</version.apache.commons.commons-compress>
<version.com.google.guava>32.0.1-jre</version.com.google.guava>
<version.apache.commons.commons-compress>1.26.1</version.apache.commons.commons-compress>
</properties>

<dependencyManagement>
Expand Down Expand Up @@ -448,13 +444,6 @@
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.junit-pioneer</groupId>
<artifactId>junit-pioneer</artifactId>
<version>${version.org.junit.pioneer}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
Expand Down Expand Up @@ -600,7 +589,7 @@
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>4.0.0</version>
<version>${version.jakarta.xml.bind-api}</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
Expand All @@ -610,7 +599,7 @@
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>4.0.3</version>
<version>${version.org.glassfish.jaxb}</version>
</dependency>
<dependency>
<groupId>org.eclipse.angus</groupId>
Expand All @@ -620,7 +609,7 @@
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>3.0.2</version>
<version>${version.jakarta.validation-api}</version>
</dependency>
<dependency>
<groupId>jakarta.inject</groupId>
Expand All @@ -630,7 +619,7 @@
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<version>2.1.1</version>
<version>${version.jakarta.annotation-api}</version>
</dependency>
<dependency>
<groupId>org.eclipse.microprofile.openapi</groupId>
Expand Down
9 changes: 7 additions & 2 deletions kogito-test-utils/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,13 @@
<version>${version.org.testcontainers}</version>
<scope>compile</scope>
</dependency>



<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>compile</scope>
Copy link
Contributor

@fjtirado fjtirado Apr 22, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmmm, are we completely sure that kogito-test-utils is only added as test scoped? if not, we might add with junit being added to set of the dependencies accidentally (probably it is all right, since we would have already realized that assert and rest assure were accidentally being added and it does not seem to be the case)

Copy link
Contributor

@fjtirado fjtirado Apr 22, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, why JUnit has to be added to the dependency set? Or the other way around, how this util test was working without this dependency?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't remember what I had to add this, I'll try remove and see how it goes.

</dependency>

<dependency>
<groupId>org.kie.kogito</groupId>
<artifactId>kogito-api</artifactId>
Expand Down
5 changes: 0 additions & 5 deletions quarkus/addons/messaging/common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -96,11 +96,6 @@
<artifactId>quarkus-junit5</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit-pioneer</groupId>
<artifactId>junit-pioneer</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public class QuarkusTopicDiscovery extends AbstractTopicDiscovery {
@Override
protected List<Topic> getTopics() {
final List<Topic> topics = new ArrayList<>();
ConfigProvider.getConfig().getPropertyNames().forEach(n -> {
getPropertyNames().forEach(n -> {
if (n.startsWith(OUTGOING_PREFIX)) {
final String topicName = this.extractChannelName(n, OUTGOING_PREFIX);
if (topics.stream().noneMatch(t -> t.getName().equals(topicName) && t.getType() == ChannelType.OUTGOING)) {
Expand All @@ -68,7 +68,15 @@ private String extractChannelName(String property, String prefix) {
if (channelName.contains(".")) {
channelName = channelName.substring(0, channelName.indexOf("."));
}
final Optional<String> topicName = ConfigProvider.getConfig().getOptionalValue(prefix + channelName + TOPIC_SUFFIX, String.class);
final Optional<String> topicName = getOptionalValue(prefix + channelName + TOPIC_SUFFIX);
return topicName.orElse(channelName);
}

Iterable<String> getPropertyNames() {
Copy link
Contributor

@fjtirado fjtirado Apr 22, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this method and getOptionalValue should be protected rather than package

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why protected and not default?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I forgot to mention why ;).
It is just styling. I prefer to use package for methods that might be called only within the package and protected for methods that might be inherited.
It is true that package is more restrictive (a protected can be inherited outside the original package) and you are only overriding from the unit test within the same package, theferore both are fine.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For example, when I see the change initially, I believe you have missed the private (later I see you are inheriting in the test), if you put protected, it is clear the purpose of change.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as this is in the personal preference realm, I'll leave as is as my personal preference is default scope as it's more restrictive and supposed to be used only by unit test to avoid using environment config

return ConfigProvider.getConfig().getPropertyNames();
}

Optional<String> getOptionalValue(String key) {
return ConfigProvider.getConfig().getOptionalValue(key, String.class);
}
}
Loading
Loading