This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/main by this push:
     new 349083cb8f Upgrade Quarkus to 3.38.0
349083cb8f is described below

commit 349083cb8f6807719092fb0d4473c8ff00907973
Author: James Netherton <[email protected]>
AuthorDate: Thu Jul 23 13:54:58 2026 +0100

    Upgrade Quarkus to 3.38.0
    
    Co-authored-by: Claude Opus 4.6 <[email protected]>
---
 docs/antora.yml                                    |  2 +-
 .../codegen/CamelQuarkusGrpcCodegenProvider.java   | 73 +++++++++++++---------
 .../kamelet/deployment/KameletProcessor.java       |  6 +-
 integration-tests/aws2/pom.xml                     | 30 +--------
 .../camel/quarkus/component/aws2/CamelRoute.java   | 15 ++---
 pom.xml                                            |  2 +-
 6 files changed, 57 insertions(+), 71 deletions(-)

diff --git a/docs/antora.yml b/docs/antora.yml
index dd7b0e2604..469110a228 100644
--- a/docs/antora.yml
+++ b/docs/antora.yml
@@ -31,7 +31,7 @@ asciidoc:
     camel-version: 4.21.0 # replace ${camel.version}
     camel-docs-version: next
     camel-quarkus-version: 3.38.0 # replace ${camel-quarkus.version}
-    quarkus-version: 3.38.0.CR1 # replace ${quarkus.version}
+    quarkus-version: 3.38.0 # replace ${quarkus.version}
     graalvm-version: 23.1.2 # replace ${graalvm.version}
     graalvm-docs-version: jdk21 # replace ${graalvm-docs.version}
     langchain4j-version: 1.17.2 # replace ${langchain4j.version}
diff --git 
a/extensions/grpc/codegen/src/main/java/org/apache/camel/quarkus/grpc/codegen/CamelQuarkusGrpcCodegenProvider.java
 
b/extensions/grpc/codegen/src/main/java/org/apache/camel/quarkus/grpc/codegen/CamelQuarkusGrpcCodegenProvider.java
index df300539ae..b7c89ea8eb 100644
--- 
a/extensions/grpc/codegen/src/main/java/org/apache/camel/quarkus/grpc/codegen/CamelQuarkusGrpcCodegenProvider.java
+++ 
b/extensions/grpc/codegen/src/main/java/org/apache/camel/quarkus/grpc/codegen/CamelQuarkusGrpcCodegenProvider.java
@@ -281,42 +281,31 @@ public class CamelQuarkusGrpcCodegenProvider implements 
CodeGenProvider {
             Set<String> protoDirectories, ResolvedDependency artifact, 
Collection<String> filesToInclude,
             Collection<String> filesToExclude, boolean isDependency) throws 
CodeGenException {
 
+        Path protoOutputDir = getProtoOutputDir(workDir, artifact);
         try {
             artifact.getContentTree(new PathFilter(filesToInclude, 
filesToExclude)).walk(
                     pathVisit -> {
                         Path path = pathVisit.getPath();
                         if (Files.isRegularFile(path) && 
path.getFileName().toString().endsWith(PROTO)) {
-                            Path root = pathVisit.getRoot();
-                            if (Files.isDirectory(root)) {
-                                protoFiles.add(path);
-                                
protoDirectories.add(path.getParent().normalize().toAbsolutePath().toString());
-                            } else { // archive
-                                Path relativePath = 
path.getRoot().relativize(path);
-                                Path protoUnzipDir = workDir
-                                        
.resolve(HashUtil.sha1(root.normalize().toAbsolutePath().toString()))
-                                        .normalize().toAbsolutePath();
-                                try {
-                                    Files.createDirectories(protoUnzipDir);
-                                    
protoDirectories.add(protoUnzipDir.toString());
-                                } catch (IOException e) {
-                                    throw new GrpcCodeGenException("Failed to 
create directory: " + protoUnzipDir, e);
-                                }
-                                Path outPath = protoUnzipDir;
-                                for (Path part : relativePath) {
-                                    outPath = outPath.resolve(part.toString());
-                                }
-                                try {
-                                    
Files.createDirectories(outPath.getParent());
-                                    if (isDependency) {
-                                        copySanitizedProtoFile(artifact, path, 
outPath);
-                                    } else {
-                                        Files.copy(path, outPath, 
StandardCopyOption.REPLACE_EXISTING);
-                                    }
-                                    protoFiles.add(outPath);
-                                } catch (IOException e) {
-                                    throw new GrpcCodeGenException("Failed to 
extract proto file" + path + " to target: "
-                                            + outPath, e);
+                            String strippedPathStr = 
stripProtoPrefix(pathVisit.getResourceName());
+                            try {
+                                Files.createDirectories(protoOutputDir);
+                                
protoDirectories.add(protoOutputDir.toString());
+                            } catch (IOException e) {
+                                throw new GrpcCodeGenException("Failed to 
create directory: " + protoOutputDir, e);
+                            }
+                            Path outPath = 
protoOutputDir.resolve(strippedPathStr);
+                            try {
+                                Files.createDirectories(outPath.getParent());
+                                if (isDependency) {
+                                    copySanitizedProtoFile(artifact, path, 
outPath);
+                                } else {
+                                    Files.copy(path, outPath, 
StandardCopyOption.REPLACE_EXISTING);
                                 }
+                                protoFiles.add(outPath);
+                            } catch (IOException e) {
+                                throw new GrpcCodeGenException("Failed to 
extract proto file" + path + " to target: "
+                                        + outPath, e);
                             }
                         }
                     });
@@ -325,6 +314,30 @@ public class CamelQuarkusGrpcCodegenProvider implements 
CodeGenProvider {
         }
     }
 
+    private static String stripProtoPrefix(String relativePathStr) {
+        if (relativePathStr.startsWith("src/main/proto/")) {
+            return relativePathStr.substring("src/main/proto/".length());
+        }
+        if (relativePathStr.startsWith("src/test/proto/")) {
+            return relativePathStr.substring("src/test/proto/".length());
+        }
+        if (relativePathStr.startsWith("proto/")) {
+            return relativePathStr.substring("proto/".length());
+        }
+        return relativePathStr;
+    }
+
+    private static Path getProtoOutputDir(Path workDir, ResolvedDependency 
artifact) {
+        String uniqueName = artifact.getGroupId() + ":" + 
artifact.getArtifactId();
+        if (artifact.getVersion() != null) {
+            uniqueName += ":" + artifact.getVersion();
+        }
+        if (artifact.getClassifier() != null) {
+            uniqueName += "-" + artifact.getClassifier();
+        }
+        return 
workDir.resolve(HashUtil.sha1(uniqueName)).normalize().toAbsolutePath();
+    }
+
     private String escapeWhitespace(String path) {
         if (io.smallrye.common.os.OS.current() != OS.WINDOWS) {
             return path.replace(" ", "\\ ");
diff --git 
a/extensions/kamelet/deployment/src/main/java/org/apache/camel/quarkus/component/kamelet/deployment/KameletProcessor.java
 
b/extensions/kamelet/deployment/src/main/java/org/apache/camel/quarkus/component/kamelet/deployment/KameletProcessor.java
index 57b9e99368..452a10f491 100644
--- 
a/extensions/kamelet/deployment/src/main/java/org/apache/camel/quarkus/component/kamelet/deployment/KameletProcessor.java
+++ 
b/extensions/kamelet/deployment/src/main/java/org/apache/camel/quarkus/component/kamelet/deployment/KameletProcessor.java
@@ -128,7 +128,7 @@ class KameletProcessor {
                     .build());
 
             PathFilter pathFilter = 
PathFilter.forIncludes(kameletClasspathPatterns);
-            PathVisitor pathVisitor = visit -> 
kameletResources.add(CLASSPATH_PREFIX + ":" + sanitizePath(visit.getPath()));
+            PathVisitor pathVisitor = visit -> 
kameletResources.add(CLASSPATH_PREFIX + ":" + visit.getResourceName());
 
             // Discover Kamelets in the application artifact
             ApplicationModel applicationModel = 
curateOutcome.getApplicationModel();
@@ -211,8 +211,4 @@ class KameletProcessor {
         return null;
     }
 
-    private String sanitizePath(Path path) {
-        String normalizedPath = FileUtil.normalizePath(path.toString());
-        return FileUtil.stripLeadingSeparator(normalizedPath);
-    }
 }
diff --git a/integration-tests/aws2/pom.xml b/integration-tests/aws2/pom.xml
index 0db0c383b0..a9b9328384 100644
--- a/integration-tests/aws2/pom.xml
+++ b/integration-tests/aws2/pom.xml
@@ -31,14 +31,16 @@
     <description>The camel integration tests</description>
 
     <dependencies>
+        <!-- TODO: Restore these - 
https://github.com/apache/camel-quarkus/issues/8912
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws-bedrock</artifactId>
-        </dependency>
+        </dependency
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws2-athena</artifactId>
         </dependency>
+        -->
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-aws2-cw</artifactId>
@@ -138,32 +140,6 @@
             </activation>
             <dependencies>
                 <!-- The following dependencies guarantee that this module is 
built after them. You can update them by running `mvn process-resources 
-Pformat -N` from the source tree root directory -->
-                <dependency>
-                    <groupId>org.apache.camel.quarkus</groupId>
-                    
<artifactId>camel-quarkus-aws-bedrock-deployment</artifactId>
-                    <version>${project.version}</version>
-                    <type>pom</type>
-                    <scope>test</scope>
-                    <exclusions>
-                        <exclusion>
-                            <groupId>*</groupId>
-                            <artifactId>*</artifactId>
-                        </exclusion>
-                    </exclusions>
-                </dependency>
-                <dependency>
-                    <groupId>org.apache.camel.quarkus</groupId>
-                    
<artifactId>camel-quarkus-aws2-athena-deployment</artifactId>
-                    <version>${project.version}</version>
-                    <type>pom</type>
-                    <scope>test</scope>
-                    <exclusions>
-                        <exclusion>
-                            <groupId>*</groupId>
-                            <artifactId>*</artifactId>
-                        </exclusion>
-                    </exclusions>
-                </dependency>
                 <dependency>
                     <groupId>org.apache.camel.quarkus</groupId>
                     <artifactId>camel-quarkus-aws2-cw-deployment</artifactId>
diff --git 
a/integration-tests/aws2/src/main/java/org/apache/camel/quarkus/component/aws2/CamelRoute.java
 
b/integration-tests/aws2/src/main/java/org/apache/camel/quarkus/component/aws2/CamelRoute.java
index 96298cc8ed..f8eb6a4bbf 100644
--- 
a/integration-tests/aws2/src/main/java/org/apache/camel/quarkus/component/aws2/CamelRoute.java
+++ 
b/integration-tests/aws2/src/main/java/org/apache/camel/quarkus/component/aws2/CamelRoute.java
@@ -25,10 +25,10 @@ public class CamelRoute extends RouteBuilder {
 
     @Override
     public void configure() {
-
-        from("timer:quarkus-athena?repeatCount=1")
-                .to("aws2-athena://cluster?operation=listQueryExecutions")
-                .to("log:sf?showAll=true");
+        // TODO: Restore these - 
https://github.com/apache/camel-quarkus/issues/8912
+        //        from("timer:quarkus-athena?repeatCount=1")
+        //                
.to("aws2-athena://cluster?operation=listQueryExecutions")
+        //                .to("log:sf?showAll=true");
 
         from("timer:quarkus-cw?repeatCount=1")
                 .setBody(constant("Quarkus is great!"))
@@ -75,9 +75,10 @@ public class CamelRoute extends RouteBuilder {
                 .to("aws2-sts://myaccount?operation=getSessionToken")
                 .to("log:sf?showAll=true");
 
-        from("timer:quarkus-bedrock?repeatCount=1")
-                .to("aws-bedrock://myaccount?operation=invokeTextModel")
-                .to("log:sf?showAll=true");
+        // TODO: Restore these - 
https://github.com/apache/camel-quarkus/issues/8912
+        //        from("timer:quarkus-bedrock?repeatCount=1")
+        //                
.to("aws-bedrock://myaccount?operation=invokeTextModel")
+        //                .to("log:sf?showAll=true");
 
         from("timer:quarkus-translate?repeatCount=1")
                 .setHeader(Translate2Constants.SOURCE_LANGUAGE, 
constant(Translate2LanguageEnum.ITALIAN))
diff --git a/pom.xml b/pom.xml
index fadce894fd..6f7e66e7cf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,7 +64,7 @@
         <quarkiverse-minio.version>3.8.6</quarkiverse-minio.version><!-- 
https://repo1.maven.org/maven2/io/quarkiverse/minio/quarkus-minio-parent/ -->
         <quarkiverse-mybatis.version>2.4.2</quarkiverse-mybatis.version><!-- 
https://repo1.maven.org/maven2/io/quarkiverse/mybatis/quarkus-mybatis-parent/ 
-->
         
<quarkiverse-pooled-jms.version>2.12.0</quarkiverse-pooled-jms.version><!-- 
https://repo1.maven.org/maven2/io/quarkiverse/messaginghub/quarkus-pooled-jms-parent/
 -->
-        <quarkus.version>3.38.0.CR1</quarkus.version><!-- 
https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/ -->
+        <quarkus.version>3.38.0</quarkus.version><!-- 
https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/ -->
         
<quarkus-hazelcast-client.version>4.1.0</quarkus-hazelcast-client.version><!-- 
https://repo1.maven.org/maven2/com/hazelcast/quarkus-hazelcast-client-bom/ -->
         <quarkus-qpid-jms.version>2.12.0</quarkus-qpid-jms.version><!-- This 
should be in sync with quarkus-platform 
https://repo1.maven.org/maven2/org/amqphub/quarkus/quarkus-qpid-jms-bom/ -->
 

Reply via email to