This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main-profile in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main-profile by this push: new da4b2a07ae9 CAMEL-18090: camel-main - Loading properties with profiles for prod/dev/test da4b2a07ae9 is described below commit da4b2a07ae987794a73e338cccdd11441be9c701 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Wed Mar 13 17:39:45 2024 +0100 CAMEL-18090: camel-main - Loading properties with profiles for prod/dev/test --- .../component/properties/PropertiesComponent.java | 4 +--- .../src/test/java/org/apache/camel/main/MainTest.java | 15 +++++++++++++++ .../src/test/resources/application-prod.properties | 19 +++++++++++++++++++ 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/core/camel-base/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java b/core/camel-base/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java index d7acf6218b9..bf708f58a22 100644 --- a/core/camel-base/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java +++ b/core/camel-base/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java @@ -353,7 +353,7 @@ public class PropertiesComponent extends ServiceSupport // we need to re-create the property sources which may have already been created from locations this.sources.removeIf(s -> s instanceof LocationPropertiesSource); - // ensure order we want as given in the locations + // ensure the locations are in the same order as here, and therefore we provide the order number int order = 100; for (PropertiesLocation loc : locations) { addPropertiesLocationsAsPropertiesSource(loc, order++); @@ -388,8 +388,6 @@ public class PropertiesComponent extends ServiceSupport public void addLocation(String location) { if (location != null) { List<PropertiesLocation> newLocations = new ArrayList<>(); - // add in reverse order as - for (String loc : location.split(",")) { newLocations.add(new PropertiesLocation(loc)); } diff --git a/core/camel-main/src/test/java/org/apache/camel/main/MainTest.java b/core/camel-main/src/test/java/org/apache/camel/main/MainTest.java index fb9935da4eb..3b4d5de4578 100644 --- a/core/camel-main/src/test/java/org/apache/camel/main/MainTest.java +++ b/core/camel-main/src/test/java/org/apache/camel/main/MainTest.java @@ -140,6 +140,21 @@ public class MainTest { main.stop(); } + @Test + public void testProfile() throws Exception { + // lets make a simple route + Main main = new Main(); + main.configure().addRoutesBuilder(new MyRouteBuilder()); + main.configure().withProfile("prod"); + main.start(); + + CamelContext camelContext = main.getCamelContext(); + // should load application-prod.properties from classpath + assertEquals("Production World", camelContext.resolvePropertyPlaceholders("{{hello}}")); + + main.stop(); + } + @Test public void testDisableTracing() throws Exception { Main main = new Main(); diff --git a/core/camel-main/src/test/resources/application-prod.properties b/core/camel-main/src/test/resources/application-prod.properties new file mode 100644 index 00000000000..7be4cfa5d50 --- /dev/null +++ b/core/camel-main/src/test/resources/application-prod.properties @@ -0,0 +1,19 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +# this should override the value from application.properties +hello=Production World