Skip to content

Commit 8f0b37f

Browse files
authored
Merge pull request #49614 from gsmet/3.25.4-backports-1
[3.25] 3.25.4 backports 1
2 parents a95bead + b85aed4 commit 8f0b37f

File tree

35 files changed

+406
-75
lines changed

35 files changed

+406
-75
lines changed

.github/workflows/ci-actions-incremental.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -248,10 +248,9 @@ jobs:
248248
restore-keys: |
249249
${{ needs.configure.outputs.m2-monthly-branch-cache-key }}-
250250
${{ needs.configure.outputs.m2-monthly-cache-key }}-
251-
- name: Populate the cache
252-
if: github.event_name == 'push' && github.repository == 'quarkusio/quarkus' && github.actor != 'dependabot[bot]'
251+
- name: Populate the .m2 repository (for cache and for shipping to follow-up builds)
253252
run: |
254-
./mvnw -T2C $COMMON_MAVEN_ARGS dependency:go-offline
253+
./mvnw -T2C $COMMON_MAVEN_ARGS dependency:go-offline -Dgo-offline
255254
- name: Cache Develocity local cache
256255
uses: actions/cache@v4
257256
if: github.event_name == 'pull_request'

.mvn/rrf/groupId-confluent.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
io.confluent
2+
org.apache.kafka

bom/application/pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
<!-- See root POM for hibernate-orm.version, hibernate-reactive.version, hibernate-validator.version,
9898
hibernate-search.version, antlr.version, bytebuddy.version -->
9999
<narayana.version>7.2.2.Final</narayana.version>
100-
<narayana-lra.version>1.0.1.Final</narayana-lra.version>
100+
<narayana-lra.version>1.0.2.Final</narayana-lra.version>
101101
<agroal.version>2.7.1</agroal.version>
102102
<jboss-transaction-spi.version>8.0.0.Final</jboss-transaction-spi.version>
103103
<elasticsearch-opensource-components.version>9.0.4</elasticsearch-opensource-components.version>
@@ -111,7 +111,7 @@
111111
<wildfly-elytron.version>2.6.4.Final</wildfly-elytron.version>
112112
<jboss-marshalling.version>2.2.3.Final</jboss-marshalling.version>
113113
<jboss-threads.version>3.9.1</jboss-threads.version>
114-
<vertx.version>4.5.16</vertx.version>
114+
<vertx.version>4.5.18</vertx.version>
115115
<httpclient.version>4.5.14</httpclient.version>
116116
<httpcore.version>4.4.16</httpcore.version>
117117
<httpasync.version>4.1.5</httpasync.version>
@@ -130,10 +130,10 @@
130130
<shrinkwrap.version>1.2.6</shrinkwrap.version>
131131
<hamcrest.version>2.2</hamcrest.version><!-- The version needs to be compatible with both REST Assured and Awaitility -->
132132
<junit.jupiter.version>5.13.4</junit.jupiter.version>
133-
<infinispan.version>15.0.18.Final</infinispan.version>
133+
<infinispan.version>15.0.19.Final</infinispan.version>
134134
<infinispan.protostream.version>5.0.13.Final</infinispan.protostream.version>
135135
<caffeine.version>3.2.2</caffeine.version>
136-
<netty.version>4.1.121.Final</netty.version>
136+
<netty.version>4.1.124.Final</netty.version>
137137
<brotli4j.version>1.16.0</brotli4j.version>
138138
<reactive-streams.version>1.0.4</reactive-streams.version>
139139
<jboss-logging.version>3.6.1.Final</jboss-logging.version>

core/deployment/pom.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,4 +277,23 @@
277277
</build>
278278
</profile>
279279
</profiles>
280+
281+
<repositories>
282+
<repository>
283+
<id>central</id>
284+
<name>Maven Central</name>
285+
<url>https://repo.maven.apache.org/maven2</url>
286+
<snapshots>
287+
<enabled>false</enabled>
288+
</snapshots>
289+
</repository>
290+
<repository>
291+
<id>gradle</id>
292+
<name>Gradle releases repository</name>
293+
<url>https://repo.gradle.org/artifactory/libs-releases</url>
294+
<snapshots>
295+
<enabled>false</enabled>
296+
</snapshots>
297+
</repository>
298+
</repositories>
280299
</project>

core/launcher/pom.xml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,4 +100,22 @@
100100
</plugins>
101101
</build>
102102

103+
<repositories>
104+
<repository>
105+
<id>central</id>
106+
<name>Maven Central</name>
107+
<url>https://repo.maven.apache.org/maven2</url>
108+
<snapshots>
109+
<enabled>false</enabled>
110+
</snapshots>
111+
</repository>
112+
<repository>
113+
<id>gradle</id>
114+
<name>Gradle releases repository</name>
115+
<url>https://repo.gradle.org/artifactory/libs-releases</url>
116+
<snapshots>
117+
<enabled>false</enabled>
118+
</snapshots>
119+
</repository>
120+
</repositories>
103121
</project>

devtools/bom-descriptor-json/pom.xml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,32 @@
9393
or further upstream might have been changed, requiring all IT modules to be built! -->
9494

9595
<profiles>
96+
<profile>
97+
<!-- Unfortunately, the go-offline plugin doesn't respect exclusions, see https://github.com/apache/maven-dependency-plugin/issues/1350 -->
98+
<id>go-offline</id>
99+
<activation>
100+
<property>
101+
<name>go-offline</name>
102+
</property>
103+
</activation>
104+
<repositories>
105+
<repository>
106+
<id>central</id>
107+
<name>Maven Central</name>
108+
<url>https://repo.maven.apache.org/maven2</url>
109+
<snapshots>
110+
<enabled>false</enabled>
111+
</snapshots>
112+
</repository>
113+
<repository>
114+
<id>confluent</id>
115+
<url>https://packages.confluent.io/maven/</url>
116+
<snapshots>
117+
<enabled>false</enabled>
118+
</snapshots>
119+
</repository>
120+
</repositories>
121+
</profile>
96122
<profile>
97123
<id>bom-descriptor-json-hollow</id>
98124
<activation>

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
}

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

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@
4242
import io.quarkus.gradle.tooling.ToolingUtils;
4343
import io.quarkus.maven.dependency.ResolvedDependency;
4444
import io.smallrye.common.expression.Expression;
45-
import io.smallrye.config.Expressions;
46-
import io.smallrye.config.SmallRyeConfig;
4745

4846
/**
4947
* Base class for the {@link QuarkusBuildDependencies}, {@link QuarkusBuildCacheableAppParts}, {@link QuarkusBuild} tasks
@@ -261,19 +259,9 @@ void generateBuild() {
261259
});
262260

263261
ApplicationModel appModel = resolveAppModelForBuild();
264-
SmallRyeConfig config = effectiveProvider()
262+
Map<String, String> quarkusProperties = effectiveProvider()
265263
.buildEffectiveConfiguration(appModel, getAdditionalForcedProperties().get().getProperties())
266-
.getConfig();
267-
Map<String, String> quarkusProperties = Expressions.withoutExpansion(() -> {
268-
Map<String, String> values = new HashMap<>();
269-
for (String key : config.getMapKeys("quarkus").values()) {
270-
values.put(key, config.getConfigValue(key).getValue());
271-
}
272-
for (String key : config.getMapKeys("platform.quarkus").values()) {
273-
values.put(key, config.getConfigValue(key).getValue());
274-
}
275-
return values;
276-
});
264+
.getOnlyQuarkusValues();
277265

278266
if (nativeEnabled()) {
279267
if (nativeSourcesOnly()) {

0 commit comments

Comments
 (0)