This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch camel-main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit de21ddeefbb669ce440ceb1817b759a9a5e55bcf Author: James Netherton <[email protected]> AuthorDate: Thu May 13 08:24:09 2021 +0100 More fixes for resolution of system properties and classpath resources --- .../common/it/AbstractDebeziumResource.java | 14 +++++--- .../common/it/DebeziumMongodbResource.java | 10 ++++-- .../debezium/common/it/DebeziumMysqlResource.java | 8 ++++- .../common/it/DebeziumSqlserverResource.java | 8 ++++- .../src/main/resources/application.properties | 3 +- .../common/it/mongodb/DebeziumMongodbTest.java | 11 +++++-- .../common/it/mysql/DebeziumMysqlTest.java | 10 ++++-- .../common/it/postgres/DebeziumPostgresTest.java | 6 ++-- .../common/it/sqlserver/DebeziumSqlserverTest.java | 10 ++++-- .../src/main/resources/application.properties | 2 +- .../google/storage/it/GoogleStorageResource.java | 3 +- .../jslt/src/main/resources/application.properties | 1 + .../quarkus/component/mllp/it/MllpResource.java | 12 +++++++ .../camel/quarkus/component/mllp/it/MllpTest.java | 2 -- .../component/mllp/it/MllpTestResource.java | 37 ---------------------- .../src/main/resources/application.properties | 1 + 16 files changed, 76 insertions(+), 62 deletions(-) diff --git a/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/AbstractDebeziumResource.java b/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/AbstractDebeziumResource.java index 4fc86cb..ff49301 100644 --- a/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/AbstractDebeziumResource.java +++ b/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/AbstractDebeziumResource.java @@ -21,6 +21,7 @@ import javax.inject.Inject; import org.apache.camel.ConsumerTemplate; import org.apache.camel.Exchange; import org.apache.camel.component.debezium.DebeziumConstants; +import org.eclipse.microprofile.config.Config; import org.eclipse.microprofile.config.inject.ConfigProperty; /** @@ -37,6 +38,9 @@ public abstract class AbstractDebeziumResource { @Inject ConsumerTemplate consumerTemplate; + @Inject + Config config; + public AbstractDebeziumResource(Type type) { this.type = type; } @@ -87,12 +91,12 @@ public abstract class AbstractDebeziumResource { private Exchange receiveAsExchange() { String endpoint = getEndpoinUrl( - System.getProperty(type.getPropertyHostname()), - System.getProperty(type.getPropertyPort()), - System.getProperty(type.getPropertyUsername()), - System.getProperty(type.getPropertyPassword()), + config.getValue(type.getPropertyHostname(), String.class), + config.getValue(type.getPropertyPort(), String.class), + config.getValue(type.getPropertyUsername(), String.class), + config.getValue(type.getPropertyPassword(), String.class), "qa", - System.getProperty(type.getPropertyOffsetFileName())); + config.getValue(type.getPropertyOffsetFileName(), String.class)); return consumerTemplate.receive(endpoint, TIMEOUT); } } diff --git a/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/DebeziumMongodbResource.java b/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/DebeziumMongodbResource.java index 336374b..4549c30 100644 --- a/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/DebeziumMongodbResource.java +++ b/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/DebeziumMongodbResource.java @@ -17,15 +17,21 @@ package org.apache.camel.quarkus.component.debezium.common.it; import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; +import org.eclipse.microprofile.config.Config; + @Path("/debezium-mongodb") @ApplicationScoped public class DebeziumMongodbResource extends AbstractDebeziumResource { + @Inject + Config config; + public DebeziumMongodbResource() { super(Type.mongodb); } @@ -61,8 +67,8 @@ public class DebeziumMongodbResource extends AbstractDebeziumResource { String offsetStorageFileName) { return Type.mongodb.getComponent() + ":localhost?" + "offsetStorageFileName=" + offsetStorageFileName - + "&mongodbUser=" + System.getProperty(Type.mongodb.getPropertyUsername()) - + "&mongodbPassword=" + System.getProperty(Type.mongodb.getPropertyPassword()) + + "&mongodbUser=" + config.getValue(Type.mongodb.getPropertyUsername(), String.class) + + "&mongodbPassword=" + config.getValue(Type.mongodb.getPropertyPassword(), String.class) + "&mongodbName=docker-rs" + "&mongodbHosts=" + hostname + ":" + port; } diff --git a/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/DebeziumMysqlResource.java b/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/DebeziumMysqlResource.java index e4af62d..4b60864 100644 --- a/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/DebeziumMysqlResource.java +++ b/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/DebeziumMysqlResource.java @@ -17,11 +17,14 @@ package org.apache.camel.quarkus.component.debezium.common.it; import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; +import org.eclipse.microprofile.config.Config; + @Path("/debezium-mysql") @ApplicationScoped public class DebeziumMysqlResource extends AbstractDebeziumResource { @@ -32,6 +35,9 @@ public class DebeziumMysqlResource extends AbstractDebeziumResource { //debezium on mysql needs more privileges, therefore it will use root user public static final String DB_ROOT_USERNAME = "root"; + @Inject + Config config; + public DebeziumMysqlResource() { super(Type.mysql); } @@ -58,6 +64,6 @@ public class DebeziumMysqlResource extends AbstractDebeziumResource { return super.getEndpoinUrl(hostname, port, DB_ROOT_USERNAME, password, databaseServerName, offsetStorageFileName) //and add specific parameters + "&databaseServerId=223344" - + "&databaseHistoryFileFilename=" + System.getProperty(PROPERTY_DB_HISTORY_FILE); + + "&databaseHistoryFileFilename=" + config.getValue(PROPERTY_DB_HISTORY_FILE, String.class); } } diff --git a/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/DebeziumSqlserverResource.java b/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/DebeziumSqlserverResource.java index bd4cce1..1809e24 100644 --- a/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/DebeziumSqlserverResource.java +++ b/integration-tests/debezium/src/main/java/org/apache/camel/quarkus/component/debezium/common/it/DebeziumSqlserverResource.java @@ -17,11 +17,14 @@ package org.apache.camel.quarkus.component.debezium.common.it; import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; +import org.eclipse.microprofile.config.Config; + @Path("/debezium-sqlserver") @ApplicationScoped public class DebeziumSqlserverResource extends AbstractDebeziumResource { @@ -31,6 +34,9 @@ public class DebeziumSqlserverResource extends AbstractDebeziumResource { public static final String DB_NAME = "testDB"; + @Inject + Config config; + public DebeziumSqlserverResource() { super(Type.sqlserver); } @@ -59,6 +65,6 @@ public class DebeziumSqlserverResource extends AbstractDebeziumResource { String offsetStorageFileName) { return super.getEndpoinUrl(hostname, port, username, password, databaseServerName, offsetStorageFileName) + "&databaseDbname=" + DB_NAME - + "&databaseHistoryFileFilename=" + System.getProperty(PROPERTY_DB_HISTORY_FILE); + + "&databaseHistoryFileFilename=" + config.getValue(PROPERTY_DB_HISTORY_FILE, String.class); } } diff --git a/integration-tests/debezium/src/main/resources/application.properties b/integration-tests/debezium/src/main/resources/application.properties index 8abc835..25fd961 100644 --- a/integration-tests/debezium/src/main/resources/application.properties +++ b/integration-tests/debezium/src/main/resources/application.properties @@ -16,4 +16,5 @@ ## --------------------------------------------------------------------------- #sql docker container's security is enabled -quarkus.ssl.native=true \ No newline at end of file +quarkus.ssl.native=true +quarkus.test.flat-class-path=true diff --git a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbTest.java b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbTest.java index dc7c161..75be837 100644 --- a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbTest.java +++ b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mongodb/DebeziumMongodbTest.java @@ -18,6 +18,7 @@ package org.apache.camel.quarkus.component.debezium.common.it.mongodb; import java.sql.Connection; import java.sql.SQLException; +import java.util.Optional; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; @@ -29,6 +30,8 @@ import io.quarkus.test.junit.QuarkusTest; import org.apache.camel.quarkus.component.debezium.common.it.AbstractDebeziumTest; import org.apache.camel.quarkus.component.debezium.common.it.Type; import org.bson.Document; +import org.eclipse.microprofile.config.Config; +import org.eclipse.microprofile.config.ConfigProvider; import org.jboss.logging.Logger; import org.junit.Assert; import org.junit.Before; @@ -62,10 +65,12 @@ class DebeziumMongodbTest extends AbstractDebeziumTest { @BeforeAll public static void setUp() throws SQLException { - final String mongoUrl = System.getProperty(Type.mongodb.getPropertyJdbc()); + Config config = ConfigProvider.getConfig(); - if (mongoUrl != null) { - mongoClient = MongoClients.create(mongoUrl); + final Optional<String> mongoUrl = config.getOptionalValue(Type.mongodb.getPropertyJdbc(), String.class); + + if (mongoUrl.isPresent()) { + mongoClient = MongoClients.create(mongoUrl.get()); } else { LOG.warn("Container is not running. Connection is not created."); } diff --git a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mysql/DebeziumMysqlTest.java b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mysql/DebeziumMysqlTest.java index d8dffe7..734ecc2 100644 --- a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mysql/DebeziumMysqlTest.java +++ b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/mysql/DebeziumMysqlTest.java @@ -19,11 +19,14 @@ package org.apache.camel.quarkus.component.debezium.common.it.mysql; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; +import java.util.Optional; import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.QuarkusTest; import org.apache.camel.quarkus.component.debezium.common.it.AbstractDebeziumTest; import org.apache.camel.quarkus.component.debezium.common.it.Type; +import org.eclipse.microprofile.config.Config; +import org.eclipse.microprofile.config.ConfigProvider; import org.jboss.logging.Logger; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; @@ -49,10 +52,11 @@ class DebeziumMysqlTest extends AbstractDebeziumTest { @BeforeAll public static void setUp() throws SQLException { - final String jdbcUrl = System.getProperty(PROPERTY_JDBC); + Config config = ConfigProvider.getConfig(); + Optional<String> jdbcUrl = config.getOptionalValue(PROPERTY_JDBC, String.class); - if (jdbcUrl != null) { - connection = DriverManager.getConnection(jdbcUrl); + if (jdbcUrl.isPresent()) { + connection = DriverManager.getConnection(jdbcUrl.get()); } else { LOG.warn("Container is not running. Connection is not created."); } diff --git a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTest.java b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTest.java index 0fb2d68..c610735 100644 --- a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTest.java +++ b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/postgres/DebeziumPostgresTest.java @@ -24,6 +24,8 @@ import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.QuarkusTest; import org.apache.camel.quarkus.component.debezium.common.it.AbstractDebeziumTest; import org.apache.camel.quarkus.component.debezium.common.it.Type; +import org.eclipse.microprofile.config.Config; +import org.eclipse.microprofile.config.ConfigProvider; import org.jboss.logging.Logger; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; @@ -44,8 +46,8 @@ class DebeziumPostgresTest extends AbstractDebeziumTest { @BeforeAll public static void setUp() throws SQLException { - final String jdbcUrl = System.getProperty(Type.postgres.getPropertyJdbc()); - + Config config = ConfigProvider.getConfig(); + final String jdbcUrl = config.getValue(Type.postgres.getPropertyJdbc(), String.class); connection = DriverManager.getConnection(jdbcUrl); } diff --git a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/sqlserver/DebeziumSqlserverTest.java b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/sqlserver/DebeziumSqlserverTest.java index d0c0587..241f997 100644 --- a/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/sqlserver/DebeziumSqlserverTest.java +++ b/integration-tests/debezium/src/test/java/org/apache/camel/quarkus/component/debezium/common/it/sqlserver/DebeziumSqlserverTest.java @@ -19,6 +19,7 @@ package org.apache.camel.quarkus.component.debezium.common.it.sqlserver; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; +import java.util.Optional; import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.QuarkusTest; @@ -26,6 +27,8 @@ import io.restassured.response.Response; import org.apache.camel.quarkus.component.debezium.common.it.AbstractDebeziumTest; import org.apache.camel.quarkus.component.debezium.common.it.Record; import org.apache.camel.quarkus.component.debezium.common.it.Type; +import org.eclipse.microprofile.config.Config; +import org.eclipse.microprofile.config.ConfigProvider; import org.jboss.logging.Logger; import org.junit.Assert; import org.junit.Before; @@ -54,10 +57,11 @@ class DebeziumSqlserverTest extends AbstractDebeziumTest { @BeforeAll public static void setUp() throws SQLException { - final String jdbcUrl = System.getProperty(Type.sqlserver.getPropertyJdbc()); + Config config = ConfigProvider.getConfig(); + final Optional<String> jdbcUrl = config.getOptionalValue(Type.sqlserver.getPropertyJdbc(), String.class); - if (jdbcUrl != null) { - connection = DriverManager.getConnection(jdbcUrl); + if (jdbcUrl.isPresent()) { + connection = DriverManager.getConnection(jdbcUrl.get()); } else { LOG.warn("Container is not running. Connection is not created."); } diff --git a/integration-tests/xmlsecurity/src/main/resources/application.properties b/integration-tests/ftp/src/main/resources/application.properties similarity index 95% copy from integration-tests/xmlsecurity/src/main/resources/application.properties copy to integration-tests/ftp/src/main/resources/application.properties index 29514b0..eaabb9f 100644 --- a/integration-tests/xmlsecurity/src/main/resources/application.properties +++ b/integration-tests/ftp/src/main/resources/application.properties @@ -14,4 +14,4 @@ ## See the License for the specific language governing permissions and ## limitations under the License. ## --------------------------------------------------------------------------- -quarkus.native.resources.includes=*.xsl +quarkus.test.flat-class-path=true \ No newline at end of file diff --git a/integration-tests/google-storage/src/main/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageResource.java b/integration-tests/google-storage/src/main/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageResource.java index a18425b..90552b3 100644 --- a/integration-tests/google-storage/src/main/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageResource.java +++ b/integration-tests/google-storage/src/main/java/org/apache/camel/quarkus/component/google/storage/it/GoogleStorageResource.java @@ -48,6 +48,7 @@ import org.apache.camel.ProducerTemplate; import org.apache.camel.component.google.storage.GoogleCloudStorageComponent; import org.apache.camel.component.google.storage.GoogleCloudStorageConstants; import org.apache.camel.component.google.storage.GoogleCloudStorageOperations; +import org.eclipse.microprofile.config.ConfigProvider; @Path("/google-storage") @ApplicationScoped @@ -90,7 +91,7 @@ public class GoogleStorageResource { GoogleCloudStorageComponent produceComponent() throws IOException { GoogleCloudStorageComponent gsc = new GoogleCloudStorageComponent(); if (GoogleStorageHelper.usingMockBackend()) { - String port = System.getProperty(GoogleStorageResource.PARAM_PORT); + String port = ConfigProvider.getConfig().getValue(GoogleStorageResource.PARAM_PORT, String.class); client = StorageOptions.newBuilder() .setHost("http://localhost:" + port) .setProjectId("dummy-project-for-testing") diff --git a/integration-tests/jslt/src/main/resources/application.properties b/integration-tests/jslt/src/main/resources/application.properties index b8f2b9b..39a8841 100644 --- a/integration-tests/jslt/src/main/resources/application.properties +++ b/integration-tests/jslt/src/main/resources/application.properties @@ -16,3 +16,4 @@ ## --------------------------------------------------------------------------- quarkus.camel.native.resources.include-patterns = demoPlayground/*.json,objectFilter/*.json,withVariables/*.json +quarkus.test.flat-class-path=true \ No newline at end of file diff --git a/integration-tests/mllp/src/main/java/org/apache/camel/quarkus/component/mllp/it/MllpResource.java b/integration-tests/mllp/src/main/java/org/apache/camel/quarkus/component/mllp/it/MllpResource.java index f3ac2b8..720014d 100644 --- a/integration-tests/mllp/src/main/java/org/apache/camel/quarkus/component/mllp/it/MllpResource.java +++ b/integration-tests/mllp/src/main/java/org/apache/camel/quarkus/component/mllp/it/MllpResource.java @@ -16,6 +16,8 @@ */ package org.apache.camel.quarkus.component.mllp.it; +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; import javax.ws.rs.GET; @@ -41,6 +43,16 @@ public class MllpResource { @Inject CamelContext context; + @PostConstruct + public void init() { + System.setProperty(MllpComponent.MLLP_DEFAULT_CHARSET_PROPERTY, "UTF-8"); + } + + @PreDestroy + public void preDestroy() { + System.clearProperty(MllpComponent.MLLP_DEFAULT_CHARSET_PROPERTY); + } + @Path("/send") @POST @Produces(MediaType.TEXT_PLAIN) diff --git a/integration-tests/mllp/src/test/java/org/apache/camel/quarkus/component/mllp/it/MllpTest.java b/integration-tests/mllp/src/test/java/org/apache/camel/quarkus/component/mllp/it/MllpTest.java index 687a3e0..edf37d9 100644 --- a/integration-tests/mllp/src/test/java/org/apache/camel/quarkus/component/mllp/it/MllpTest.java +++ b/integration-tests/mllp/src/test/java/org/apache/camel/quarkus/component/mllp/it/MllpTest.java @@ -16,7 +16,6 @@ */ package org.apache.camel.quarkus.component.mllp.it; -import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.DisabledOnNativeImage; import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; @@ -26,7 +25,6 @@ import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.is; @QuarkusTest -@QuarkusTestResource(MllpTestResource.class) class MllpTest { private static final String HL7_MESSAGE = "MSH|^~\\&|REQUESTING|ICE|INHOUSE|RTH00|20210331095020||ORM^O01|1|D|2.3|||AL|NE||\r" diff --git a/integration-tests/mllp/src/test/java/org/apache/camel/quarkus/component/mllp/it/MllpTestResource.java b/integration-tests/mllp/src/test/java/org/apache/camel/quarkus/component/mllp/it/MllpTestResource.java deleted file mode 100644 index 8236228..0000000 --- a/integration-tests/mllp/src/test/java/org/apache/camel/quarkus/component/mllp/it/MllpTestResource.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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. - */ -package org.apache.camel.quarkus.component.mllp.it; - -import java.util.Collections; -import java.util.Map; - -import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; -import org.apache.camel.component.mllp.MllpComponent; - -public class MllpTestResource implements QuarkusTestResourceLifecycleManager { - - @Override - public Map<String, String> start() { - // Simulate setting default charset via system properties - return Collections.singletonMap(MllpComponent.MLLP_DEFAULT_CHARSET_PROPERTY, "UTF-8"); - } - - @Override - public void stop() { - // Noop - } -} diff --git a/integration-tests/xmlsecurity/src/main/resources/application.properties b/integration-tests/xmlsecurity/src/main/resources/application.properties index 29514b0..2117679 100644 --- a/integration-tests/xmlsecurity/src/main/resources/application.properties +++ b/integration-tests/xmlsecurity/src/main/resources/application.properties @@ -15,3 +15,4 @@ ## limitations under the License. ## --------------------------------------------------------------------------- quarkus.native.resources.includes=*.xsl +quarkus.test.flat-class-path=true
