Skip to content

Commit

Permalink
Merge pull request #46620 from gsmet/3.19.2-backports-1
Browse files Browse the repository at this point in the history
[3.19] 3.19.2 backports 1
  • Loading branch information
gsmet authored Mar 5, 2025
2 parents 6aa0ac5 + fae69ac commit ca623d0
Show file tree
Hide file tree
Showing 119 changed files with 1,792 additions and 837 deletions.
10 changes: 5 additions & 5 deletions bom/application/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@
<rxjava.version>2.2.21</rxjava.version>
<wildfly.openssl-java.version>2.2.5.Final</wildfly.openssl-java.version>
<wildfly.openssl-linux.version>2.2.2.SP01</wildfly.openssl-linux.version>
<jboss-logging-annotations.version>3.0.3.Final</jboss-logging-annotations.version>
<jboss-logging-annotations.version>3.0.4.Final</jboss-logging-annotations.version>
<slf4j-jboss-logmanager.version>2.0.0.Final</slf4j-jboss-logmanager.version>
<wildfly-common.version>2.0.1</wildfly-common.version>
<wildfly-client-config.version>1.0.1.Final</wildfly-client-config.version>
Expand All @@ -129,7 +129,7 @@
<shrinkwrap.version>1.2.6</shrinkwrap.version>
<hamcrest.version>2.2</hamcrest.version><!-- The version needs to be compatible with both REST Assured and Awaitility -->
<junit.jupiter.version>5.10.5</junit.jupiter.version>
<infinispan.version>15.0.13.Final</infinispan.version>
<infinispan.version>15.0.14.Final</infinispan.version>
<infinispan.protostream.version>5.0.13.Final</infinispan.protostream.version>
<caffeine.version>3.2.0</caffeine.version>
<netty.version>4.1.118.Final</netty.version>
Expand Down Expand Up @@ -158,7 +158,7 @@
<maven-invoker.version>3.2.0</maven-invoker.version>
<awaitility.version>4.2.2</awaitility.version>
<jboss-logmanager.version>3.1.1.Final</jboss-logmanager.version>
<flyway.version>11.3.3</flyway.version>
<flyway.version>11.3.4</flyway.version>
<yasson.version>3.0.4</yasson.version>
<!-- liquibase-mongodb is not released everytime with liquibase anymore, but the two versions need to be compatible -->
<liquibase.version>4.29.1</liquibase.version>
Expand Down Expand Up @@ -195,8 +195,8 @@
<avro.version>1.12.0</avro.version>
<apicurio-registry.version>2.6.8.Final</apicurio-registry.version>
<apicurio-common-rest-client.version>0.1.18.Final</apicurio-common-rest-client.version> <!-- must be the version Apicurio Registry uses -->
<testcontainers.version>1.20.4</testcontainers.version> <!-- Make sure to also update docker-java.version to match its needs -->
<docker-java.version>3.4.0</docker-java.version> <!-- must be the version Testcontainers use: https://central.sonatype.com/artifact/org.testcontainers/testcontainers -->
<testcontainers.version>1.20.5</testcontainers.version> <!-- Make sure to also update docker-java.version to match its needs -->
<docker-java.version>3.4.1</docker-java.version> <!-- must be the version Testcontainers use: https://central.sonatype.com/artifact/org.testcontainers/testcontainers -->
<!-- Check the compatibility matrix (https://github.com/opensearch-project/opensearch-testcontainers) before upgrading: -->
<opensearch-testcontainers.version>2.0.2</opensearch-testcontainers.version>
<com.dajudge.kindcontainer>1.4.8</com.dajudge.kindcontainer>
Expand Down
2 changes: 1 addition & 1 deletion build-parent/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
<!-- These 2 properties are used by CreateProjectMojo to add the Maven Wrapper -->
<proposed-maven-version>3.9.9</proposed-maven-version>
<maven-wrapper.version>3.3.2</maven-wrapper.version>
<gradle-wrapper.version>8.12</gradle-wrapper.version>
<gradle-wrapper.version>8.13</gradle-wrapper.version>
<quarkus-gradle-plugin.version>${project.version}</quarkus-gradle-plugin.version>
<quarkus-maven-plugin.version>${project.version}</quarkus-maven-plugin.version>
<maven-plugin-plugin.version>3.8.1</maven-plugin-plugin.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,19 @@
import java.io.Closeable;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.objectweb.asm.ClassReader;

import io.quarkus.paths.PathCollection;

public interface CompilationProvider extends Closeable {
Expand All @@ -28,7 +32,18 @@ default Set<String> handledSourcePaths() {

void compile(Set<File> files, Context context);

Path getSourcePath(Path classFilePath, PathCollection sourcePaths, String classesPath);
default Path getSourcePath(Path classFilePath, PathCollection sourcePaths, String classesPath) {
Path sourceFilePath;
final RuntimeUpdatesClassVisitor visitor = new RuntimeUpdatesClassVisitor(sourcePaths, classesPath);
try (final InputStream inputStream = Files.newInputStream(classFilePath)) {
final ClassReader reader = new ClassReader(inputStream);
reader.accept(visitor, 0);
sourceFilePath = visitor.getSourceFileForClass(classFilePath);
} catch (IOException e) {
throw new RuntimeException(e);
}
return sourceFilePath;
}

@Override
default void close() throws IOException {
Expand Down Expand Up @@ -159,5 +174,7 @@ public boolean ignoreModuleInfo() {
public File getGeneratedSourcesDirectory() {
return generatedSourcesDirectory;
}

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,7 @@

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.Set;
import java.util.function.BiConsumer;
Expand All @@ -20,14 +16,10 @@
import javax.tools.ToolProvider;

import org.jboss.logging.Logger;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;

import io.quarkus.deployment.dev.filesystem.QuarkusFileManager;
import io.quarkus.deployment.dev.filesystem.ReloadableFileManager;
import io.quarkus.deployment.dev.filesystem.StaticFileManager;
import io.quarkus.gizmo.Gizmo;
import io.quarkus.paths.PathCollection;

public class JavaCompilationProvider implements CompilationProvider {

Expand Down Expand Up @@ -115,20 +107,6 @@ public void compile(Set<File> filesToCompile, CompilationProvider.Context contex
}
}

@Override
public Path getSourcePath(Path classFilePath, PathCollection sourcePaths, String classesPath) {
Path sourceFilePath;
final RuntimeUpdatesClassVisitor visitor = new RuntimeUpdatesClassVisitor(sourcePaths, classesPath);
try (final InputStream inputStream = Files.newInputStream(classFilePath)) {
final ClassReader reader = new ClassReader(inputStream);
reader.accept(visitor, 0);
sourceFilePath = visitor.getSourceFileForClass(classFilePath);
} catch (IOException e) {
throw new RuntimeException(e);
}
return sourceFilePath;
}

@Override
public void close() throws IOException {
if (this.fileManager != null) {
Expand All @@ -154,36 +132,4 @@ private String extractCompilationErrorMessage(final DiagnosticCollector<JavaFile
diagnosticsCollector.getDiagnostics().forEach(diagnostic -> builder.append("\n").append(diagnostic));
return String.format("\u001B[91mCompilation Failed:%s\u001b[0m", builder);
}

private static class RuntimeUpdatesClassVisitor extends ClassVisitor {
private final PathCollection sourcePaths;
private final String classesPath;
private String sourceFile;

public RuntimeUpdatesClassVisitor(PathCollection sourcePaths, String classesPath) {
super(Gizmo.ASM_API_VERSION);
this.sourcePaths = sourcePaths;
this.classesPath = classesPath;
}

@Override
public void visitSource(String source, String debug) {
this.sourceFile = source;
}

public Path getSourceFileForClass(final Path classFilePath) {
for (Path sourcesDir : sourcePaths) {
final Path classesDir = Paths.get(classesPath);
final StringBuilder sourceRelativeDir = new StringBuilder();
sourceRelativeDir.append(classesDir.relativize(classFilePath.getParent()));
sourceRelativeDir.append(File.separator);
sourceRelativeDir.append(sourceFile);
final Path sourceFilePath = sourcesDir.resolve(Path.of(sourceRelativeDir.toString()));
if (Files.exists(sourceFilePath)) {
return sourceFilePath;
}
}
return null;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package io.quarkus.deployment.dev;

import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

import org.objectweb.asm.ClassVisitor;

import io.quarkus.gizmo.Gizmo;
import io.quarkus.paths.PathCollection;

public class RuntimeUpdatesClassVisitor extends ClassVisitor {
private final PathCollection sourcePaths;
private final String classesPath;
private String sourceFile;

public RuntimeUpdatesClassVisitor(PathCollection sourcePaths, String classesPath) {
super(Gizmo.ASM_API_VERSION);
this.sourcePaths = sourcePaths;
this.classesPath = classesPath;
}

@Override
public void visitSource(String source, String debug) {
this.sourceFile = source;
}

public Path getSourceFileForClass(final Path classFilePath) {
for (Path sourcesDir : sourcePaths) {
final Path classesDir = Paths.get(classesPath);
final StringBuilder sourceRelativeDir = new StringBuilder();
sourceRelativeDir.append(classesDir.relativize(classFilePath.getParent()));
sourceRelativeDir.append(File.separator);
sourceRelativeDir.append(sourceFile);
final Path sourceFilePath = sourcesDir.resolve(Path.of(sourceRelativeDir.toString()));
if (Files.exists(sourceFilePath)) {
return sourceFilePath;
}
}
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@
"name": "Artificial Intelligence (AI)",
"id": "ai",
"description": "Help making Artificial Intgelligence (AI)-infused applications using Large Language Models and more"

},
{
"name": "Cloud",
Expand Down Expand Up @@ -146,6 +145,12 @@
"metadata":{
"project": {
"default-codestart": "rest",
"codestart-data": {
"dockerfile.jvm.from-template": "registry.access.redhat.com/ubi9/openjdk-{java.version}:1.21",
"dockerfile.jvm.from": "registry.access.redhat.com/ubi9/openjdk-${recommended-java-version}:1.21",
"dockerfile.native.from": "registry.access.redhat.com/ubi9/ubi-minimal:9.5",
"dockerfile.native-micro": "quay.io/quarkus/ubi9-quarkus-micro-image:2.0"
},
"properties": {
"doc-root": "https://quarkus.io",
"rest-assured-version": "${rest-assured.version}",
Expand Down
9 changes: 3 additions & 6 deletions devtools/cli/src/main/java/io/quarkus/cli/Update.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,20 @@
import picocli.CommandLine;

@CommandLine.Command(name = "update", aliases = { "up",
"upgrade" }, sortOptions = false, showDefaultValues = true, mixinStandardHelpOptions = false, header = "Suggest recommended project updates with the possibility to apply them.", headerHeading = "%n", commandListHeading = "%nCommands:%n", synopsisHeading = "%nUsage: ", parameterListHeading = "%n", optionListHeading = "%nOptions:%n")
"upgrade" }, sortOptions = false, showDefaultValues = true, mixinStandardHelpOptions = false, header = "Suggest project updates and create a recipe with the possibility to apply it.", headerHeading = "%n", commandListHeading = "%nCommands:%n", synopsisHeading = "%nUsage: ", parameterListHeading = "%n", optionListHeading = "%nOptions:%n")
public class Update extends BaseBuildCommand implements Callable<Integer> {

@CommandLine.ArgGroup(order = 0, heading = "%nTarget Quarkus version:%n", multiplicity = "0..1")
TargetQuarkusVersionGroup targetQuarkusVersion = new TargetQuarkusVersionGroup();

@CommandLine.ArgGroup(order = 1, heading = "%nRewrite:%n", exclusive = false)
@CommandLine.ArgGroup(order = 1, heading = "%nRewrite (interactive by default):%n", exclusive = false)
RewriteGroup rewrite = new RewriteGroup();

@CommandLine.Option(order = 2, names = { "--per-module" }, description = "Display information per project module.")
public boolean perModule = false;

@Override
public Integer call() throws Exception {
try {
final BuildSystemRunner runner = getRunner();
return runner.updateProject(targetQuarkusVersion, rewrite, perModule);
return runner.updateProject(targetQuarkusVersion, rewrite);
} catch (Exception e) {
return output.handleCommandException(e, "Unable to run Quarkus project update : " + e.getMessage());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ Integer listExtensions(RunModeOption runMode, ListFormatOptions format, boolean

Integer projectInfo(boolean perModule) throws Exception;

Integer updateProject(TargetQuarkusVersionGroup targetQuarkusVersion, RewriteGroup rewrite, boolean perModule)
Integer updateProject(TargetQuarkusVersionGroup targetQuarkusVersion, RewriteGroup rewrite)
throws Exception;

BuildCommandArgs prepareAction(String action, BuildOptions buildOptions, RunModeOption runMode, List<String> params);
Expand Down
20 changes: 11 additions & 9 deletions devtools/cli/src/main/java/io/quarkus/cli/build/GradleRunner.java
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ public Integer projectInfo(boolean perModule) {
}

@Override
public Integer updateProject(TargetQuarkusVersionGroup targetQuarkusVersion, RewriteGroup rewrite, boolean perModule)
public Integer updateProject(TargetQuarkusVersionGroup targetQuarkusVersion, RewriteGroup rewrite)
throws Exception {
final ExtensionCatalog extensionCatalog = ToolsUtils.resolvePlatformDescriptorDirectly(
ToolsConstants.QUARKUS_CORE_GROUP_ID, null,
Expand Down Expand Up @@ -176,14 +176,16 @@ public Integer updateProject(TargetQuarkusVersionGroup targetQuarkusVersion, Rew
if (rewrite.additionalUpdateRecipes != null) {
args.add("--additionalUpdateRecipes=" + rewrite.additionalUpdateRecipes);
}
if (rewrite.noRewrite) {
args.add("--noRewrite");
}
if (perModule) {
args.add("--perModule");
}
if (rewrite.dryRun) {
args.add("--rewriteDryRun");
if (rewrite.run != null) {
if (rewrite.run.yes) {
args.add("--rewrite");
}
if (rewrite.run.no) {
args.add("--rewrite=false");
}
if (rewrite.run.dryRun) {
args.add("--rewriteDryRun");
}
}
return run(prependExecutable(args));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ public Integer projectInfo(boolean perModule) {
}

@Override
public Integer updateProject(TargetQuarkusVersionGroup targetQuarkusVersion, RewriteGroup rewrite, boolean perModule)
public Integer updateProject(TargetQuarkusVersionGroup targetQuarkusVersion, RewriteGroup rewrite)
throws Exception {
throw new UnsupportedOperationException("Not there yet. ;)");
}
Expand Down
20 changes: 11 additions & 9 deletions devtools/cli/src/main/java/io/quarkus/cli/build/MavenRunner.java
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ public Integer projectInfo(boolean perModule) throws Exception {
}

@Override
public Integer updateProject(TargetQuarkusVersionGroup targetQuarkusVersion, RewriteGroup rewrite, boolean perModule)
public Integer updateProject(TargetQuarkusVersionGroup targetQuarkusVersion, RewriteGroup rewrite)
throws Exception {
ArrayDeque<String> args = new ArrayDeque<>();
setMavenProperties(args, true);
Expand All @@ -167,9 +167,6 @@ public Integer updateProject(TargetQuarkusVersionGroup targetQuarkusVersion, Rew
if (targetQuarkusVersion.streamId != null) {
args.add("-Dstream=" + targetQuarkusVersion.streamId);
}
if (rewrite.noRewrite) {
args.add("-DnoRewrite");
}
if (rewrite.pluginVersion != null) {
args.add("-DrewritePluginVersion=" + rewrite.pluginVersion);
}
Expand All @@ -179,11 +176,16 @@ public Integer updateProject(TargetQuarkusVersionGroup targetQuarkusVersion, Rew
if (rewrite.additionalUpdateRecipes != null) {
args.add("-DadditionalUpdateRecipes=" + rewrite.additionalUpdateRecipes);
}
if (rewrite.dryRun) {
args.add("-DrewriteDryRun");
}
if (perModule) {
args.add("-DperModule");
if (rewrite.run != null) {
if (rewrite.run.yes) {
args.add("-Drewrite");
}
if (rewrite.run.no) {
args.add("-Drewrite=false");
}
if (rewrite.run.dryRun) {
args.add("-DrewriteDryRun");
}
}
args.add("-ntp");
return run(prependExecutable(args));
Expand Down
Loading

0 comments on commit ca623d0

Please sign in to comment.