You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2026/03/18 11:06:32 UTC
(camel-quarkus) branch main updated: Avoid mina-sftp tests reading classpath resources directly from the source tree
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 2520dea5ca Avoid mina-sftp tests reading classpath resources directly from the source tree
2520dea5ca is described below
commit 2520dea5ca526a68464b182adeb78e41602ee623
Author: James Netherton <ja...@users.noreply.github.com>
AuthorDate: Wed Mar 18 11:06:26 2026 +0000
Avoid mina-sftp tests reading classpath resources directly from the source tree
---
.../component/mina/sftp/it/MinaSftpResource.java | 76 +++++++++++++---------
.../src/main/resources/application.properties | 17 +++++
.../resources/certs}/generate-certificates.sh | 0
.../resources/certs}/test-key-rsa-cert.pub | 0
.../resources/certs}/test-key-rsa.key | 0
5 files changed, 64 insertions(+), 29 deletions(-)
diff --git a/integration-tests/mina-sftp/src/main/java/org/apache/camel/quarkus/component/mina/sftp/it/MinaSftpResource.java b/integration-tests/mina-sftp/src/main/java/org/apache/camel/quarkus/component/mina/sftp/it/MinaSftpResource.java
index e0f84b8853..3f6963305e 100644
--- a/integration-tests/mina-sftp/src/main/java/org/apache/camel/quarkus/component/mina/sftp/it/MinaSftpResource.java
+++ b/integration-tests/mina-sftp/src/main/java/org/apache/camel/quarkus/component/mina/sftp/it/MinaSftpResource.java
@@ -16,9 +16,8 @@
*/
package org.apache.camel.quarkus.component.mina.sftp.it;
+import java.io.InputStream;
import java.net.URI;
-import java.nio.file.Files;
-import java.nio.file.Paths;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
@@ -217,7 +216,7 @@ public class MinaSftpResource {
public Response createFileWithCertificate(@PathParam("fileName") String fileName, String fileContent)
throws Exception {
producerTemplate.sendBodyAndHeader(
- "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyFile=src/test/resources/test-key-rsa.key&certFile=src/test/resources/test-key-rsa-cert.pub",
+ "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyUri=certs/test-key-rsa.key&certUri=certs/test-key-rsa-cert.pub",
fileContent,
Exchange.FILE_NAME, fileName);
return Response
@@ -230,7 +229,7 @@ public class MinaSftpResource {
@Produces(MediaType.TEXT_PLAIN)
public String getFileWithCertificate(@PathParam("fileName") String fileName) {
return consumerTemplate.receiveBody(
- "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyFile=src/test/resources/test-key-rsa.key&certFile=src/test/resources/test-key-rsa-cert.pub&localWorkDirectory=target&fileName="
+ "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyUri=certs/test-key-rsa.key&certUri=certs/test-key-rsa-cert.pub&localWorkDirectory=target&fileName="
+ fileName,
TIMEOUT_MS,
String.class);
@@ -242,7 +241,7 @@ public class MinaSftpResource {
public Response createFileWithCertificateUri(@PathParam("fileName") String fileName, String fileContent)
throws Exception {
producerTemplate.sendBodyAndHeader(
- "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:src/test/resources/test-key-rsa.key&certUri=file:src/test/resources/test-key-rsa-cert.pub",
+ "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyUri=certs/test-key-rsa.key&certUri=certs/test-key-rsa-cert.pub",
fileContent,
Exchange.FILE_NAME, fileName);
return Response
@@ -255,7 +254,7 @@ public class MinaSftpResource {
@Produces(MediaType.TEXT_PLAIN)
public String getFileWithCertificateUri(@PathParam("fileName") String fileName) {
return consumerTemplate.receiveBody(
- "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyUri=file:src/test/resources/test-key-rsa.key&certUri=file:src/test/resources/test-key-rsa-cert.pub&localWorkDirectory=target&fileName="
+ "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?privateKeyUri=certs/test-key-rsa.key&certUri=certs/test-key-rsa-cert.pub&localWorkDirectory=target&fileName="
+ fileName,
TIMEOUT_MS,
String.class);
@@ -266,36 +265,55 @@ public class MinaSftpResource {
@Consumes(MediaType.TEXT_PLAIN)
public Response createFileWithCertificateBytes(@PathParam("fileName") String fileName, String fileContent)
throws Exception {
- byte[] certBytes = Files.readAllBytes(Paths.get("src/test/resources/test-key-rsa-cert.pub"));
- byte[] keyBytes = Files.readAllBytes(Paths.get("src/test/resources/test-key-rsa.key"));
- String uri = "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp";
- MinaSftpEndpoint endpoint = context.getEndpoint(uri, MinaSftpEndpoint.class);
- MinaSftpConfiguration config = (MinaSftpConfiguration) endpoint.getConfiguration();
- config.setCertBytes(certBytes);
- config.setPrivateKey(keyBytes);
-
- producerTemplate.sendBodyAndHeader(endpoint, fileContent, Exchange.FILE_NAME, fileName);
- return Response
- .created(new URI("https://camel.apache.org/"))
- .build();
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ try (InputStream certStream = classLoader.getResourceAsStream("certs/test-key-rsa-cert.pub");
+ InputStream keyStream = classLoader.getResourceAsStream("certs/test-key-rsa.key")) {
+ if (certStream == null) {
+ throw new RuntimeException("Failed reading cert file");
+ }
+
+ if (keyStream == null) {
+ throw new RuntimeException("Failed reading key file");
+ }
+
+ String uri = "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp";
+ MinaSftpEndpoint endpoint = context.getEndpoint(uri, MinaSftpEndpoint.class);
+ MinaSftpConfiguration config = endpoint.getConfiguration();
+ config.setCertBytes(certStream.readAllBytes());
+ config.setPrivateKey(keyStream.readAllBytes());
+
+ producerTemplate.sendBodyAndHeader(endpoint, fileContent, Exchange.FILE_NAME, fileName);
+ return Response
+ .created(new URI("https://camel.apache.org/"))
+ .build();
+ }
}
@Path("/certificateBytes/get/{fileName}")
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getFileWithCertificateBytes(@PathParam("fileName") String fileName) throws Exception {
- byte[] certBytes = Files.readAllBytes(Paths.get("src/test/resources/test-key-rsa-cert.pub"));
- byte[] keyBytes = Files.readAllBytes(Paths.get("src/test/resources/test-key-rsa.key"));
-
- String uri = "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?localWorkDirectory=target&fileName="
- + fileName;
- MinaSftpEndpoint endpoint = context.getEndpoint(uri, MinaSftpEndpoint.class);
- MinaSftpConfiguration config = (MinaSftpConfiguration) endpoint.getConfiguration();
- config.setCertBytes(certBytes);
- config.setPrivateKey(keyBytes);
-
- return consumerTemplate.receiveBody(endpoint, TIMEOUT_MS, String.class);
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ try (InputStream certStream = classLoader.getResourceAsStream("certs/test-key-rsa-cert.pub");
+ InputStream keyStream = classLoader.getResourceAsStream("certs/test-key-rsa.key")) {
+ if (certStream == null) {
+ throw new RuntimeException("Failed reading cert file");
+ }
+
+ if (keyStream == null) {
+ throw new RuntimeException("Failed reading key file");
+ }
+
+ String uri = "mina-sftp://admin@localhost:{{camel.sftp.test-port}}/sftp?localWorkDirectory=target&fileName="
+ + fileName;
+ MinaSftpEndpoint endpoint = context.getEndpoint(uri, MinaSftpEndpoint.class);
+ MinaSftpConfiguration config = endpoint.getConfiguration();
+ config.setCertBytes(certStream.readAllBytes());
+ config.setPrivateKey(keyStream.readAllBytes());
+
+ return consumerTemplate.receiveBody(endpoint, TIMEOUT_MS, String.class);
+ }
}
@Path("/compression/create/{fileName}")
diff --git a/integration-tests/mina-sftp/src/main/resources/application.properties b/integration-tests/mina-sftp/src/main/resources/application.properties
new file mode 100644
index 0000000000..59099f9fb7
--- /dev/null
+++ b/integration-tests/mina-sftp/src/main/resources/application.properties
@@ -0,0 +1,17 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements. See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+quarkus.native.resources.includes=certs/test-key-rsa.key,certs/test-key-rsa-cert.pub
\ No newline at end of file
diff --git a/integration-tests/mina-sftp/src/test/resources/generate-certificates.sh b/integration-tests/mina-sftp/src/main/resources/certs/generate-certificates.sh
similarity index 100%
rename from integration-tests/mina-sftp/src/test/resources/generate-certificates.sh
rename to integration-tests/mina-sftp/src/main/resources/certs/generate-certificates.sh
diff --git a/integration-tests/mina-sftp/src/test/resources/test-key-rsa-cert.pub b/integration-tests/mina-sftp/src/main/resources/certs/test-key-rsa-cert.pub
similarity index 100%
rename from integration-tests/mina-sftp/src/test/resources/test-key-rsa-cert.pub
rename to integration-tests/mina-sftp/src/main/resources/certs/test-key-rsa-cert.pub
diff --git a/integration-tests/mina-sftp/src/test/resources/test-key-rsa.key b/integration-tests/mina-sftp/src/main/resources/certs/test-key-rsa.key
similarity index 100%
rename from integration-tests/mina-sftp/src/test/resources/test-key-rsa.key
rename to integration-tests/mina-sftp/src/main/resources/certs/test-key-rsa.key