Skip to content

Commit df6edd6

Browse files
authored
Merge pull request #49616 from gsmet/3.26.0-backports-1
[3.26] 3.26.0 backports 1
2 parents d69563b + 5fbf4e7 commit df6edd6

File tree

115 files changed

+1582
-435
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+1582
-435
lines changed

bom/application/pom.xml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
<angus-activation.version>2.0.2</angus-activation.version>
1818
<angus-mail.version>2.0.4</angus-mail.version> <!-- keep in sync with angus-activation (mail depends on activation) -->
1919
<bouncycastle.version>1.81</bouncycastle.version>
20-
<bouncycastle.fips.version>1.0.2.5</bouncycastle.fips.version>
21-
<bouncycastle.tls.fips.version>1.0.19</bouncycastle.tls.fips.version>
20+
<bouncycastle.fips.version>2.1.1</bouncycastle.fips.version>
21+
<bouncycastle.tls.fips.version>2.1.20</bouncycastle.tls.fips.version>
2222
<cyclonedx.version>9.0.5</cyclonedx.version>
2323
<expressly.version>6.0.0</expressly.version>
2424
<findbugs.version>3.0.2</findbugs.version>
@@ -89,7 +89,7 @@
8989
<!-- GraalVM sdk 23.1.2 has a minimum JDK requirement of 17+ at runtime -->
9090
<graal-sdk.version>23.1.2</graal-sdk.version>
9191
<gizmo.version>1.9.0</gizmo.version>
92-
<gizmo2.version>2.0.0.Beta5</gizmo2.version>
92+
<gizmo2.version>2.0.0.Beta6</gizmo2.version>
9393
<jackson-bom.version>2.19.2</jackson-bom.version>
9494
<commons-logging-jboss-logging.version>1.0.0.Final</commons-logging-jboss-logging.version>
9595
<commons-lang3.version>3.18.0</commons-lang3.version>
@@ -98,10 +98,10 @@
9898
<!-- See root POM for hibernate-orm.version, hibernate-reactive.version, hibernate-validator.version,
9999
hibernate-search.version, antlr.version, bytebuddy.version -->
100100
<narayana.version>7.2.2.Final</narayana.version>
101-
<narayana-lra.version>1.0.1.Final</narayana-lra.version>
102-
<agroal.version>2.7.1</agroal.version>
101+
<narayana-lra.version>1.0.2.Final</narayana-lra.version>
102+
<agroal.version>2.8</agroal.version>
103103
<jboss-transaction-spi.version>8.0.0.Final</jboss-transaction-spi.version>
104-
<elasticsearch-opensource-components.version>9.1.0</elasticsearch-opensource-components.version>
104+
<elasticsearch-opensource-components.version>9.1.2</elasticsearch-opensource-components.version>
105105
<rxjava.version>2.2.21</rxjava.version>
106106
<wildfly.openssl-java.version>2.2.5.Final</wildfly.openssl-java.version>
107107
<wildfly.openssl-linux.version>2.2.2.SP01</wildfly.openssl-linux.version>
@@ -112,7 +112,7 @@
112112
<wildfly-elytron.version>2.6.4.Final</wildfly-elytron.version>
113113
<jboss-marshalling.version>2.2.3.Final</jboss-marshalling.version>
114114
<jboss-threads.version>3.9.1</jboss-threads.version>
115-
<vertx.version>4.5.16</vertx.version>
115+
<vertx.version>4.5.18</vertx.version>
116116
<httpclient.version>4.5.14</httpclient.version>
117117
<httpcore.version>4.4.16</httpcore.version>
118118
<httpasync.version>4.1.5</httpasync.version>
@@ -123,18 +123,18 @@
123123
<postgresql-jdbc.version>42.7.7</postgresql-jdbc.version>
124124
<mariadb-jdbc.version>3.5.5</mariadb-jdbc.version>
125125
<mysql-jdbc.version>8.3.0</mysql-jdbc.version>
126-
<mssql-jdbc.version>12.10.0.jre11</mssql-jdbc.version>
126+
<mssql-jdbc.version>13.2.0.jre11</mssql-jdbc.version>
127127
<adal4j.version>1.6.7</adal4j.version>
128128
<oracle-jdbc.version>23.6.0.24.10</oracle-jdbc.version>
129129
<derby-jdbc.version>10.16.1.1</derby-jdbc.version>
130130
<db2-jdbc.version>12.1.0.0</db2-jdbc.version>
131131
<shrinkwrap.version>1.2.6</shrinkwrap.version>
132132
<hamcrest.version>2.2</hamcrest.version><!-- The version needs to be compatible with both REST Assured and Awaitility -->
133133
<junit.jupiter.version>5.13.4</junit.jupiter.version>
134-
<infinispan.version>15.0.18.Final</infinispan.version>
134+
<infinispan.version>15.0.19.Final</infinispan.version>
135135
<infinispan.protostream.version>5.0.13.Final</infinispan.protostream.version>
136136
<caffeine.version>3.2.2</caffeine.version>
137-
<netty.version>4.1.121.Final</netty.version>
137+
<netty.version>4.1.124.Final</netty.version>
138138
<brotli4j.version>1.16.0</brotli4j.version>
139139
<reactive-streams.version>1.0.4</reactive-streams.version>
140140
<jboss-logging.version>3.6.1.Final</jboss-logging.version>
@@ -152,15 +152,15 @@
152152
<cloudevents-api.version>3.0.0</cloudevents-api.version>
153153
<azure-functions-java-library.version>3.1.0</azure-functions-java-library.version>
154154
<azure-functions-java-spi.version>1.1.0</azure-functions-java-spi.version>
155-
<kotlin.version>2.2.0</kotlin.version>
155+
<kotlin.version>2.2.10</kotlin.version>
156156
<kotlin.coroutine.version>1.10.2</kotlin.coroutine.version>
157157
<kotlin-serialization.version>1.9.0</kotlin-serialization.version>
158158
<azure.toolkit-lib.version>0.53.0</azure.toolkit-lib.version>
159159
<dekorate.version>4.1.5</dekorate.version> <!-- Please check with Java Operator SDK team before updating -->
160160
<maven-invoker.version>3.2.0</maven-invoker.version>
161161
<awaitility.version>4.3.0</awaitility.version>
162162
<jboss-logmanager.version>3.1.2.Final</jboss-logmanager.version>
163-
<flyway.version>11.11.0</flyway.version>
163+
<flyway.version>11.11.1</flyway.version>
164164
<yasson.version>3.0.4</yasson.version>
165165
<!-- liquibase-mongodb is not released everytime with liquibase anymore, but the two versions need to be compatible -->
166166
<liquibase.version>4.33.0</liquibase.version>
@@ -207,7 +207,7 @@
207207
<jansi.version>2.4.0</jansi.version> <!-- Keep in sync with aesh-readline and dekorate -->
208208
<!-- these two artifacts needs to be compatible together -->
209209
<strimzi-oauth.version>0.16.1</strimzi-oauth.version>
210-
<strimzi-oauth.nimbus.version>10.4.1</strimzi-oauth.nimbus.version>
210+
<strimzi-oauth.nimbus.version>10.4.2</strimzi-oauth.nimbus.version>
211211
<jose4j.version>0.9.6</jose4j.version>
212212
<java-buildpack-client.version>0.0.14</java-buildpack-client.version>
213213
<crac.version>1.5.0</crac.version>

build-parent/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
<!-- These properties are needed in order for them to be resolvable by the generated projects -->
2222
<compiler-plugin.version>${version.compiler.plugin}</compiler-plugin.version>
23-
<kotlin.version>2.2.0</kotlin.version>
23+
<kotlin.version>2.2.10</kotlin.version>
2424
<dokka.version>2.0.0</dokka.version>
2525
<scala.version>2.13.12</scala.version>
2626
<scala-maven-plugin.version>4.9.5</scala-maven-plugin.version>
@@ -73,7 +73,7 @@
7373
<volume.access.modifier>:Z</volume.access.modifier>
7474

7575
<!-- Defaults for integration tests -->
76-
<elasticsearch-server.version>9.1.0</elasticsearch-server.version>
76+
<elasticsearch-server.version>9.1.2</elasticsearch-server.version>
7777
<elasticsearch.image>docker.io/elastic/elasticsearch:${elasticsearch-server.version}</elasticsearch.image>
7878
<logstash.image>docker.io/elastic/logstash:${elasticsearch-server.version}</logstash.image>
7979
<kibana.image>docker.io/elastic/kibana:${elasticsearch-server.version}</kibana.image>

core/deployment/src/main/java/io/quarkus/deployment/images/ContainerImages.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* <p>
1010
* - {@code x_IMAGE_NAME} - the name of the image without the version (e.g. {@code registry.access.redhat.com/ubi9/ubi-minimal})
1111
* - {@code x_VERSION} - the version of the image (e.g. {@code 9.5})
12-
* - {@code x} - the full image name (e.g. {@code registry.access.redhat.com/ubi9/ubi-minimal:9.5})
12+
* - {@code x} - the full image name (e.g. {@code registry.access.redhat.com/ubi9/ubi-minimal:9.6})
1313
*/
1414
public class ContainerImages {
1515

@@ -23,17 +23,17 @@ public class ContainerImages {
2323
/**
2424
* UBI 9 version
2525
*/
26-
public static final String UBI9_VERSION = "9.5";
26+
public static final String UBI9_VERSION = "9.6";
2727

2828
/**
2929
* Version used for more UBI8 Java images.
3030
*/
31-
public static final String UBI8_JAVA_VERSION = "1.21";
31+
public static final String UBI8_JAVA_VERSION = "1.23";
3232

3333
/**
3434
* Version used for more UBI9 Java images.
3535
*/
36-
public static final String UBI9_JAVA_VERSION = "1.21";
36+
public static final String UBI9_JAVA_VERSION = "1.23";
3737

3838
/**
3939
* Version uses for the native builder image.

devtools/bom-descriptor-json/src/main/resources/catalog-overrides.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,9 @@
146146
"project": {
147147
"default-codestart": "rest",
148148
"codestart-data": {
149-
"tooling-dockerfiles.dockerfile.jvm.from-template": "registry.access.redhat.com/ubi9/openjdk-{java.version}:1.21",
150-
"tooling-dockerfiles.dockerfile.jvm.from": "registry.access.redhat.com/ubi9/openjdk-${recommended-java-version}:1.21",
151-
"tooling-dockerfiles.dockerfile.native.from": "registry.access.redhat.com/ubi9/ubi-minimal:9.5",
149+
"tooling-dockerfiles.dockerfile.jvm.from-template": "registry.access.redhat.com/ubi9/openjdk-{java.version}:1.23",
150+
"tooling-dockerfiles.dockerfile.jvm.from": "registry.access.redhat.com/ubi9/openjdk-${recommended-java-version}:1.23",
151+
"tooling-dockerfiles.dockerfile.native.from": "registry.access.redhat.com/ubi9/ubi-minimal:9.6",
152152
"tooling-dockerfiles.dockerfile.native-micro.from": "quay.io/quarkus/ubi9-quarkus-micro-image:2.0"
153153
},
154154
"properties": {

devtools/cli/src/main/java/io/quarkus/cli/config/Encrypt.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ public Integer call() throws Exception {
5151
encryptionKey = encodeToString(generateEncryptionKey().getEncoded());
5252
generatedKey = true;
5353
} else {
54+
if (encryptionKey.startsWith("\\\"") && encryptionKey.endsWith("\"\\")) {
55+
encryptionKey = encryptionKey.substring(2, encryptionKey.length() - 2);
56+
}
57+
5458
if (encryptionKeyFormat.equals(KeyFormat.base64)) {
5559
encryptionKey = encodeToString(encryptionKey.getBytes());
5660
}

devtools/cli/src/main/java/io/quarkus/cli/config/SetConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,14 @@ public Integer call() throws Exception {
4646
value = findKey(lines, name).getValue();
4747
}
4848
args.add(value);
49-
if (value == null || value.length() == 0) {
49+
if (value == null || value.isEmpty()) {
5050
output.error("Cannot encrypt an empty value");
5151
return -1;
5252
}
5353

5454
ConfigValue encryptionKey = findKey(lines, "smallrye.config.secret-handler.aes-gcm-nopadding.encryption-key");
5555
if (encryptionKey.getValue() != null) {
56-
args.add("--key=" + encryptionKey.getValue());
56+
args.add("--key=\\\"" + encryptionKey.getValue() + "\"\\");
5757
}
5858
ConfigValue encryptionDecode = findKey(lines,
5959
"smallrye.config.secret-handler.aes-gcm-nopadding.encryption-key-decode");

devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/actions/BeforeTestAction.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,14 @@ public void execute(Task t) {
6060
Test task = (Test) t;
6161
final Map<String, Object> props = task.getSystemProperties();
6262

63-
ApplicationModel applicationModel = ToolingUtils
64-
.deserializeAppModel(applicationModelPath.get().getAsFile().toPath());
63+
final Path serializedModel = applicationModelPath.get().getAsFile().toPath();
64+
ApplicationModel applicationModel = ToolingUtils.deserializeAppModel(serializedModel);
6565

6666
SmallRyeConfig config = effectiveProvider().buildEffectiveConfiguration(applicationModel, new HashMap<>())
6767
.getConfig();
6868
config.getOptionalValue(TEST.getProfileKey(), String.class)
6969
.ifPresent(value -> props.put(TEST.getProfileKey(), value));
7070

71-
final Path serializedModel = applicationModelPath.get().getAsFile().toPath();
7271
props.put(BootstrapConstants.SERIALIZED_TEST_APP_MODEL, serializedModel.toString());
7372

7473
StringJoiner outputSourcesDir = new StringJoiner(",");

devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/EffectiveConfig.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import java.util.Map;
1818
import java.util.Set;
1919
import java.util.function.Supplier;
20-
import java.util.stream.Collectors;
2120

2221
import com.google.common.annotations.VisibleForTesting;
2322

@@ -26,6 +25,8 @@
2625
import io.quarkus.deployment.pkg.NativeConfig;
2726
import io.quarkus.deployment.pkg.PackageConfig;
2827
import io.quarkus.runtime.configuration.ConfigUtils;
28+
import io.smallrye.config.ConfigValue;
29+
import io.smallrye.config.DefaultValuesConfigSource;
2930
import io.smallrye.config.Expressions;
3031
import io.smallrye.config.PropertiesConfigSource;
3132
import io.smallrye.config.SmallRyeConfig;
@@ -99,8 +100,22 @@ public Map<String, String> getValues() {
99100
}
100101

101102
public Map<String, String> getOnlyQuarkusValues() {
102-
return values.entrySet().stream().filter(e -> e.getKey().startsWith("quarkus."))
103-
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
103+
return Expressions.withoutExpansion(new Supplier<Map<String, String>>() {
104+
@Override
105+
public Map<String, String> get() {
106+
Map<String, String> properties = new HashMap<>();
107+
for (String propertyName : config.getPropertyNames()) {
108+
if (propertyName.startsWith("quarkus.") || propertyName.startsWith("platform.quarkus.")) {
109+
ConfigValue configValue = config.getConfigValue(propertyName);
110+
if (configValue.getValue() != null
111+
&& !DefaultValuesConfigSource.NAME.equals(configValue.getConfigSourceName())) {
112+
properties.put(propertyName, configValue.getValue());
113+
}
114+
}
115+
}
116+
return unmodifiableMap(properties);
117+
}
118+
});
104119
}
105120

106121
private Map<String, String> asStringMap(Map<String, ?> map) {
@@ -120,9 +135,9 @@ static Map<String, String> generateFullConfigMap(SmallRyeConfig config) {
120135
public Map<String, String> get() {
121136
Map<String, String> properties = new HashMap<>();
122137
for (String propertyName : config.getPropertyNames()) {
123-
String value = config.getRawValue(propertyName);
124-
if (value != null) {
125-
properties.put(propertyName, value);
138+
ConfigValue configValue = config.getConfigValue(propertyName);
139+
if (configValue.getValue() != null) {
140+
properties.put(propertyName, configValue.getValue());
126141
}
127142
}
128143
return unmodifiableMap(properties);

devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusApplicationModelTask.java

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ private ResolvedDependencyBuilder getProjectArtifact(DefaultProjectDescriptor pr
169169
collectDestinationDirs(module.getMainSources().getSourceDirs(), paths);
170170
collectDestinationDirs(module.getMainSources().getResourceDirs(), paths);
171171
appArtifact.setResolvedPaths(paths.build());
172+
appArtifact.setReloadable().setWorkspaceModule();
172173
} else {
173174
appArtifact.setResolvedPaths(PathList.empty());
174175
}
@@ -287,7 +288,8 @@ private static void collectDependencies(
287288
artifact.type);
288289
if (!isDependency(artifact)
289290
|| modelBuilder.getDependency(artifactKey) != null
290-
|| modelBuilder.getApplicationArtifact().getKey().equals(artifactKey)) {
291+
// test fixtures depend on the default jar artifact, which could be the root one
292+
|| isApplicationRoot(modelBuilder, artifactKey)) {
291293
continue;
292294
}
293295

@@ -341,6 +343,10 @@ private static void collectDependencies(
341343
}
342344
}
343345

346+
private static boolean isApplicationRoot(ApplicationModelBuilder modelBuilder, ArtifactKey artifactKey) {
347+
return modelBuilder.getApplicationArtifact().getKey().equals(artifactKey);
348+
}
349+
344350
private static ModuleVersionIdentifier getModuleVersion(ResolvedDependencyResult resolvedDependency) {
345351
return Objects.requireNonNull(resolvedDependency.getSelected().getModuleVersion());
346352
}
@@ -353,10 +359,10 @@ private static boolean isDependency(QuarkusResolvedArtifact a) {
353359

354360
private static void collectExtensionDependencies(QuarkusResolvedClasspath classpath, ApplicationModelBuilder modelBuilder) {
355361
Map<ComponentIdentifier, List<QuarkusResolvedArtifact>> artifacts = classpath.resolvedArtifactsByComponentIdentifier();
356-
Set<ArtifactKey> alreadyVisited = new HashSet<>();
362+
final Set<ModuleVersionIdentifier> processedModules = new HashSet<>();
357363
classpath.getRoot().get().getDependencies().forEach(d -> {
358364
if (d instanceof ResolvedDependencyResult result) {
359-
collectExtensionDependencies(result, modelBuilder, artifacts, alreadyVisited, false);
365+
collectExtensionDependencies(result, modelBuilder, artifacts, processedModules, false);
360366
}
361367
});
362368
}
@@ -365,23 +371,30 @@ private static void collectExtensionDependencies(
365371
ResolvedDependencyResult resolvedDependency,
366372
ApplicationModelBuilder modelBuilder,
367373
Map<ComponentIdentifier, List<QuarkusResolvedArtifact>> resolvedArtifacts,
368-
Set<ArtifactKey> alreadyVisited,
374+
Set<ModuleVersionIdentifier> processedModules,
369375
boolean clearReloadableFlag) {
376+
final ModuleVersionIdentifier moduleId = getModuleVersion(resolvedDependency);
377+
if (!processedModules.add(moduleId)) {
378+
return;
379+
}
370380
List<QuarkusResolvedArtifact> artifacts = getResolvedModuleArtifacts(resolvedArtifacts,
371381
resolvedDependency.getSelected().getId());
372382
if (artifacts.isEmpty()) {
373383
return;
374384
}
375385

376386
final ModuleVersionIdentifier moduleVersionIdentifier = getModuleVersion(resolvedDependency);
387+
boolean clearReloadableFlagChildren = clearReloadableFlag;
377388
for (QuarkusResolvedArtifact artifact : artifacts) {
378389

379390
String classifier = resolveClassifier(moduleVersionIdentifier, artifact.file);
380391
ArtifactKey artifactKey = ArtifactKey.of(moduleVersionIdentifier.getGroup(), moduleVersionIdentifier.getName(),
381392
classifier,
382393
artifact.type);
383-
if (!alreadyVisited.add(artifactKey)) {
384-
return;
394+
if (!isDependency(artifact)
395+
// test fixtures depend on the default jar artifact, which could be the root one
396+
|| isApplicationRoot(modelBuilder, artifactKey)) {
397+
continue;
385398
}
386399

387400
ResolvedDependencyBuilder dep = modelBuilder.getDependency(artifactKey);
@@ -393,13 +406,15 @@ private static void collectExtensionDependencies(
393406
dep.setDeploymentCp();
394407
if (clearReloadableFlag) {
395408
dep.clearFlag(DependencyFlags.RELOADABLE);
409+
} else if (!dep.isReloadable()) {
410+
clearReloadableFlagChildren = true;
396411
}
397-
clearReloadableFlag |= !dep.isReloadable();
398412
}
399413

400414
for (DependencyResult d : resolvedDependency.getSelected().getDependencies()) {
401415
if (d instanceof ResolvedDependencyResult result) {
402-
collectExtensionDependencies(result, modelBuilder, resolvedArtifacts, alreadyVisited, clearReloadableFlag);
416+
collectExtensionDependencies(result, modelBuilder, resolvedArtifacts, processedModules,
417+
clearReloadableFlagChildren);
403418
}
404419
}
405420
}

0 commit comments

Comments
 (0)