Skip to content

Commit 3adaf24

Browse files
authored
Merge branch 'main' into derby-update
2 parents 0798549 + faffd0f commit 3adaf24

File tree

184 files changed

+4220
-595
lines changed

Some content is hidden

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

184 files changed

+4220
-595
lines changed

bom/application/pom.xml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@
2222
<cyclonedx.version>9.0.5</cyclonedx.version>
2323
<expressly.version>6.0.0</expressly.version>
2424
<findbugs.version>3.0.2</findbugs.version>
25-
<jandex.version>3.5.0</jandex.version>
25+
<jandex.version>3.5.1</jandex.version>
2626
<javax.annotation-api.version>1.3.2</javax.annotation-api.version>
2727
<javax.inject.version>1</javax.inject.version>
2828
<parsson.version>1.1.7</parsson.version>
2929
<resteasy-microprofile.version>3.0.1.Final</resteasy-microprofile.version>
3030
<resteasy-spring-web.version>3.2.0.Final</resteasy-spring-web.version>
3131
<resteasy.version>6.2.12.Final</resteasy.version>
32-
<opentelemetry-instrumentation.version>2.12.0-alpha</opentelemetry-instrumentation.version>
33-
<opentelemetry-semconv.version>1.29.0-alpha</opentelemetry-semconv.version>
32+
<opentelemetry-instrumentation.version>2.15.0-alpha</opentelemetry-instrumentation.version> <!-- OTel SDk 1.49.0-->
33+
<opentelemetry-semconv.version>1.32.0-alpha</opentelemetry-semconv.version>
3434
<quarkus-http.version>5.3.5</quarkus-http.version>
3535
<micrometer.version>1.14.7</micrometer.version><!-- keep in sync with hdrhistogram: https://central.sonatype.com/artifact/io.micrometer/micrometer-core -->
3636
<hdrhistogram.version>2.2.2</hdrhistogram.version><!-- keep in sync with micrometer -->
@@ -58,7 +58,7 @@
5858
<smallrye-reactive-streams-operators.version>1.0.13</smallrye-reactive-streams-operators.version>
5959
<smallrye-reactive-types-converter.version>3.0.3</smallrye-reactive-types-converter.version>
6060
<smallrye-mutiny-vertx-binding.version>3.20.0</smallrye-mutiny-vertx-binding.version>
61-
<smallrye-reactive-messaging.version>4.29.0</smallrye-reactive-messaging.version>
61+
<smallrye-reactive-messaging.version>4.30.0</smallrye-reactive-messaging.version>
6262
<smallrye-stork.version>2.7.3</smallrye-stork.version>
6363
<jakarta.activation.version>2.1.4</jakarta.activation.version>
6464
<jakarta.annotation-api.version>3.0.0</jakarta.annotation-api.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.Beta6</gizmo2.version>
92+
<gizmo2.version>2.0.0.Beta8</gizmo2.version>
9393
<jackson-bom.version>2.20.0</jackson-bom.version>
9494
<commons-logging-jboss-logging.version>1.0.0.Final</commons-logging-jboss-logging.version>
9595
<commons-lang3.version>3.19.0</commons-lang3.version>
@@ -143,7 +143,7 @@
143143
<kafka3.version>4.0.0</kafka3.version>
144144
<lz4.version>1.8.0</lz4.version> <!-- dependency of the kafka-clients that could be overridden by other imported BOMs in the platform -->
145145
<snappy.version>1.1.10.5</snappy.version>
146-
<strimzi-test-container.version>0.112.0</strimzi-test-container.version>
146+
<strimzi-test-container.version>0.113.0</strimzi-test-container.version>
147147
<!-- Scala is used by Kafka so we need to choose a compatible version -->
148148
<scala.version>2.13.16</scala.version>
149149
<aws-lambda-java.version>1.4.0</aws-lambda-java.version>
@@ -160,7 +160,7 @@
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.14.1</flyway.version>
163+
<flyway.version>11.15.0</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>
@@ -182,7 +182,7 @@
182182
<keycloak-client.version>26.0.7</keycloak-client.version>
183183
<logstash-gelf.version>1.15.1</logstash-gelf.version>
184184
<checker-qual.version>3.51.1</checker-qual.version>
185-
<error-prone-annotations.version>2.42.0</error-prone-annotations.version>
185+
<error-prone-annotations.version>2.43.0</error-prone-annotations.version>
186186
<jib-core.version>0.27.3</jib-core.version>
187187
<google-http-client.version>1.47.1</google-http-client.version>
188188
<scram-client.version>2.1</scram-client.version>

bom/test/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<jaxb-api.version>2.3.1</jaxb-api.version>
2121

2222
<rxjava1.version>1.3.8</rxjava1.version>
23-
<strimzi-test-container.version>0.112.0</strimzi-test-container.version>
23+
<strimzi-test-container.version>0.113.0</strimzi-test-container.version>
2424

2525
<opentelemetry-proto.version>1.5.0-alpha</opentelemetry-proto.version>
2626
</properties>

build-parent/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<jboss-bridger-plugin.version>1.6.Final</jboss-bridger-plugin.version>
3131

3232
<!-- Jandex versions -->
33-
<jandex.version>3.5.0</jandex.version>
33+
<jandex.version>3.5.1</jandex.version>
3434
<jandex-gradle-plugin.version>1.0.0</jandex-gradle-plugin.version>
3535

3636
<asciidoctorj.version>2.5.13</asciidoctorj.version>

core/deployment/src/main/java/io/quarkus/deployment/logging/LoggingResourceProcessor.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -583,7 +583,9 @@ private static boolean allRootMinLevelOrHigher(
583583
private static void generateMinLevelCompute(Map<String, CategoryBuildTimeConfig> categories,
584584
Map<String, InheritableLevel> categoryMinLevelDefaults, Level rootMinLevel,
585585
ClassOutput output) {
586-
Gizmo g = Gizmo.create(output);
586+
Gizmo g = Gizmo.create(output)
587+
.withDebugInfo(false)
588+
.withParameters(false);
587589
g.class_(MIN_LEVEL_COMPUTE_CLASS_NAME, cc -> {
588590
cc.final_();
589591
cc.staticMethod("isMinLevelEnabled", mc -> {
@@ -611,7 +613,9 @@ private static void generateMinLevelCompute(Map<String, CategoryBuildTimeConfig>
611613
}
612614

613615
private static void generateDefaultLoggerNode(ClassOutput output) {
614-
Gizmo g = Gizmo.create(output);
616+
Gizmo g = Gizmo.create(output)
617+
.withDebugInfo(false)
618+
.withParameters(false);
615619
g.class_(LOGGER_NODE_CLASS_NAME, cc -> {
616620
cc.final_();
617621
cc.addAnnotation(TargetClass.class, ac -> ac.add(TargetClass::className, "org.jboss.logmanager.LoggerNode"));
@@ -630,7 +634,10 @@ interface MinLevelEnabledFunction {
630634

631635
private static void generateLogManagerLogger(ClassOutput output,
632636
MinLevelEnabledFunction isMinLevelEnabledFunction) {
633-
Gizmo.create(output).class_(LOGMANAGER_LOGGER_CLASS_NAME, cc -> {
637+
Gizmo gizmo = Gizmo.create(output)
638+
.withDebugInfo(false)
639+
.withParameters(false);
640+
gizmo.class_(LOGMANAGER_LOGGER_CLASS_NAME, cc -> {
634641
cc.final_();
635642
This this_ = cc.this_();
636643
cc.addAnnotation(TargetClass.class, ac -> ac.add(TargetClass::value, org.jboss.logmanager.Logger.class));
@@ -668,7 +675,9 @@ private static Expr getLogManagerLevelIntValue(String levelName, BlockCreator b0
668675
}
669676

670677
private static void generateDefaultLoggingLogger(Level minLevel, ClassOutput output) {
671-
Gizmo gizmo = Gizmo.create(output);
678+
Gizmo gizmo = Gizmo.create(output)
679+
.withDebugInfo(false)
680+
.withParameters(false);
672681
gizmo.class_(LOGGING_LOGGER_CLASS_NAME, cc -> {
673682
cc.final_();
674683
cc.addAnnotation(TargetClass.class, ac -> ac.add(TargetClass::className, "org.jboss.logging.Logger"));

core/deployment/src/main/java/io/quarkus/deployment/recording/AnnotationProxyProvider.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,10 @@ public Object invoke(Object proxy, Method method, Object[] args) throws Throwabl
232232

233233
public A build(io.quarkus.gizmo2.ClassOutput classOutput) {
234234
generatedLiterals.computeIfAbsent(annotationLiteral, generatedName -> {
235-
Gizmo.create(classOutput).class_(generatedName, cc -> {
235+
Gizmo gizmo = Gizmo.create(classOutput)
236+
.withDebugInfo(false)
237+
.withParameters(false);
238+
gizmo.class_(generatedName, cc -> {
236239
ClassDesc annotationClassDesc = classDescOf(annotationInstance.name());
237240
cc.extends_(GenericType.ofClass(AnnotationLiteral.class, TypeArgument.of(annotationClassDesc)));
238241
cc.implements_(annotationClassDesc);

core/deployment/src/main/java/io/quarkus/runner/bootstrap/ForkJoinClassLoading.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,18 @@ public class ForkJoinClassLoading {
1313
/**
1414
* A yucky hack, basically attempt to make sure every thread in the common pool has
1515
* the correct CL.
16-
*
16+
* <p>
1717
* It's not perfect, but as this only affects test and dev mode and not production it is better
1818
* than nothing.
19-
*
19+
* <p>
2020
* Really we should just not use the common pool at all.
21+
* <p>
22+
* TODO: This no longer works in Java 25 because the `ForkJoinPool` now does
23+
* <a href=
24+
* "https://github.com/openjdk/jdk/blob/jdk-25%2B36/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java#L2085">
25+
* this</a>, which ends up calling <a href=
26+
* "https://github.com/openjdk/jdk/blob/jdk-25%2B36/src/java.base/share/classes/java/util/concurrent/ForkJoinWorkerThread.java#L280">this</a>.
27+
* We need to figure out how to deal with this
2128
*/
2229
public static void setForkJoinClassLoader(ClassLoader classLoader) {
2330
CountDownLatch allDone = new CountDownLatch(ForkJoinPool.getCommonPoolParallelism());

devtools/cli-common/pom.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,8 @@
1010
</parent>
1111
<modelVersion>4.0.0</modelVersion>
1212

13-
<properties>
14-
<quarkus.package.jar.type>uber-jar</quarkus.package.jar.type>
15-
</properties>
16-
1713
<artifactId>quarkus-cli-common</artifactId>
18-
<name>Quarkus - Command Line Common Uitility Classes</name>
14+
<name>Quarkus - Command Line Interface - Common Utility Classes</name>
1915
<description>Quarkus command line common utility classes</description>
2016

2117
<dependencies>
@@ -35,6 +31,10 @@
3531
<groupId>io.quarkus</groupId>
3632
<artifactId>quarkus-devtools-registry-client</artifactId>
3733
</dependency>
34+
<dependency>
35+
<groupId>io.quarkus</groupId>
36+
<artifactId>quarkus-project-core-extension-codestarts</artifactId>
37+
</dependency>
3838
<dependency>
3939
<groupId>org.junit.jupiter</groupId>
4040
<artifactId>junit-jupiter</artifactId>
Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package io.quarkus.cli.common;
22

3-
import java.io.InputStream;
3+
import java.io.BufferedReader;
4+
import java.io.IOException;
45
import java.net.URL;
56
import java.nio.file.Files;
6-
import java.nio.file.Paths;
77
import java.util.Properties;
88

9+
import io.quarkus.runtime.util.ClassPathUtils;
10+
911
/**
1012
* Helper class to get client version without circular dependencies
1113
*/
@@ -20,24 +22,31 @@ public static String clientVersion() {
2022
final Properties props = new Properties();
2123
final URL quarkusPropertiesUrl = Thread.currentThread().getContextClassLoader().getResource("quarkus.properties");
2224
if (quarkusPropertiesUrl == null) {
23-
return "999-SNAPSHOT"; // fallback version
25+
throw new RuntimeException("Failed to locate quarkus.properties on the classpath");
2426
}
2527

26-
try {
27-
// Handle file and jar URLs differently to avoid file locks on Windows
28-
if (quarkusPropertiesUrl.getProtocol().equals("file")) {
29-
try (InputStream is = Files.newInputStream(Paths.get(quarkusPropertiesUrl.toURI()))) {
30-
props.load(is);
31-
}
32-
} else {
33-
try (InputStream is = quarkusPropertiesUrl.openStream()) {
34-
props.load(is);
28+
// we have a special case for file and jar as using getResourceAsStream() on Windows might cause file locks
29+
if ("file".equals(quarkusPropertiesUrl.getProtocol()) || "jar".equals(quarkusPropertiesUrl.getProtocol())) {
30+
ClassPathUtils.consumeAsPath(quarkusPropertiesUrl, p -> {
31+
try (BufferedReader reader = Files.newBufferedReader(p)) {
32+
props.load(reader);
33+
} catch (IOException e) {
34+
throw new RuntimeException("Failed to load quarkus.properties", e);
3535
}
36+
});
37+
} else {
38+
try {
39+
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("quarkus.properties"));
40+
} catch (IOException e) {
41+
throw new IllegalStateException("Failed to load quarkus.properties", e);
3642
}
37-
version = props.getProperty("quarkus.version", "999-SNAPSHOT");
38-
} catch (Exception e) {
39-
version = "999-SNAPSHOT"; // fallback version
4043
}
44+
45+
version = props.getProperty("quarkus-core-version");
46+
if (version == null) {
47+
throw new RuntimeException("Failed to locate quarkus-core-version property in the bundled quarkus.properties");
48+
}
49+
4150
return version;
4251
}
4352
}

devtools/cli/src/test/java/io/quarkus/cli/CliVersionTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public void testCommandVersion() throws Exception {
1818
"Version output for command aliases should be the same.");
1919

2020
CliDriver.Result result2 = CliDriver.execute(workspaceRoot, "--version");
21+
result2.echoSystemOut();
2122
Assertions.assertEquals(result.stdout, result2.stdout, "Version output for command aliases should be the same.");
2223
}
2324
}

devtools/gradle/gradle-model/src/main/java/io/quarkus/gradle/dependency/ApplicationDeploymentClasspathBuilder.java

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.gradle.api.internal.tasks.TaskDependencyFactory;
3030
import org.gradle.api.plugins.JavaPlugin;
3131
import org.gradle.api.provider.ListProperty;
32+
import org.gradle.api.provider.Property;
3233

3334
import io.quarkus.bootstrap.BootstrapConstants;
3435
import io.quarkus.bootstrap.model.PlatformImports;
@@ -38,6 +39,7 @@
3839
import io.quarkus.gradle.tooling.dependency.DependencyUtils;
3940
import io.quarkus.gradle.tooling.dependency.ExtensionDependency;
4041
import io.quarkus.maven.dependency.ArtifactCoords;
42+
import io.quarkus.maven.dependency.ArtifactKey;
4143
import io.quarkus.runtime.LaunchMode;
4244

4345
public class ApplicationDeploymentClasspathBuilder {
@@ -93,13 +95,14 @@ public static void initConfigurations(Project project) {
9395
final ConfigurationContainer configContainer = project.getConfigurations();
9496

9597
// Custom configuration for dev mode
96-
configContainer.register(ToolingUtils.DEV_MODE_CONFIGURATION_NAME, config -> {
97-
config.extendsFrom(configContainer.getByName(JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME));
98-
config.setCanBeConsumed(false);
99-
if (!isDisableComponentVariants(project)) {
100-
QuarkusComponentVariants.setConditionalAttributes(config, project, LaunchMode.DEVELOPMENT);
101-
}
102-
});
98+
configContainer
99+
.register(ToolingUtils.DEV_MODE_CONFIGURATION_NAME, config -> {
100+
config.extendsFrom(configContainer.getByName(JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME));
101+
config.setCanBeConsumed(false);
102+
if (!isDisableComponentVariants(project)) {
103+
QuarkusComponentVariants.setConditionalAttributes(config, project, LaunchMode.DEVELOPMENT);
104+
}
105+
});
103106

104107
// Base runtime configurations for every launch mode
105108
configContainer
@@ -178,6 +181,7 @@ private static Configuration[] getOriginalRuntimeClasspaths(Project project, Lau
178181
private final String platformImportName;
179182

180183
private final List<Dependency> platformDataDeps = new ArrayList<>();
184+
private final Map<ArtifactKey, PlatformSpec.Constraint> platformConstraints = new HashMap<>();
181185

182186
public ApplicationDeploymentClasspathBuilder(Project project, LaunchMode mode,
183187
TaskDependencyFactory taskDependencyFactory) {
@@ -239,6 +243,13 @@ private void setUpPlatformConfiguration() {
239243
break;
240244
}
241245
}
246+
} else {
247+
ArtifactKey artifactKey = ArtifactKey.ga(d.getTarget().getGroup(), name);
248+
platformConstraints.computeIfAbsent(artifactKey,
249+
k -> new PlatformSpec.Constraint(
250+
d.getTarget().getGroup(),
251+
name,
252+
d.getTarget().getVersion()));
242253
}
243254
});
244255
});
@@ -276,14 +287,22 @@ private List<Dependency> resolvePlatformDependencies() {
276287
return platformDataDeps;
277288
}
278289

290+
private PlatformSpec resolvePlatformSpec() {
291+
getPlatformConfiguration().resolve();
292+
return new PlatformSpec(platformConstraints, getPlatformConfiguration().getExcludeRules());
293+
}
294+
279295
private void setUpRuntimeConfiguration() {
280296
if (!project.getConfigurations().getNames().contains(this.runtimeConfigurationName)) {
281297
final String baseConfig;
282298
final boolean disableComponentVariants = isDisableComponentVariants(project);
283299
if (disableComponentVariants) {
284300
baseConfig = ApplicationDeploymentClasspathBuilder.getBaseRuntimeConfigName(mode);
285301
} else {
286-
QuarkusComponentVariants.addVariants(project, mode);
302+
Property<PlatformSpec> platformSpecProperty = project.getObjects()
303+
.property(PlatformSpec.class);
304+
QuarkusComponentVariants.addVariants(project, mode,
305+
platformSpecProperty.value(project.provider(this::resolvePlatformSpec)));
287306
baseConfig = QuarkusComponentVariants.getConditionalConfigurationName(mode);
288307
}
289308
project.getConfigurations().register(this.runtimeConfigurationName, configuration -> {

0 commit comments

Comments
 (0)