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

davsclaus pushed a commit to branch CAMEL-13947
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 83a6a8412687f3b9e8f2be0f047dcfdeb8a554f6
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Sep 25 20:38:35 2019 +0200

    CAMEL-13947: PropertiesComponent should be a static service and resolved 
like other similar features.
---
 .../java/org/apache/camel/component/ahc/BaseAhcTest.java     |  4 ++--
 .../apache/camel/component/amqp/AMQPConnectionDetails.java   |  2 +-
 .../org/apache/camel/blueprint/CamelContextFactoryBean.java  |  2 +-
 .../bonita/integration/BonitaIntegrationTestSupport.java     |  8 +-------
 .../apache/camel/cdi/bean/CustomPropertiesCamelContext.java  |  3 +--
 .../google/bigquery/integration/BigQueryTestSupport.java     |  3 +--
 .../camel/component/google/pubsub/PubsubTestSupport.java     |  4 +---
 .../camel/component/influxdb/AbstractInfluxDbTest.java       |  5 +----
 .../apache/camel/component/jasypt/JasyptPropertiesTest.java  |  2 +-
 .../java/org/apache/camel/component/jetty/BaseJettyTest.java |  3 +--
 .../apache/camel/component/kafka/BaseEmbeddedKafkaTest.java  |  5 ++---
 .../config/CamelMicroProfilePropertiesSourceTest.java        |  4 ++--
 .../camel/component/mongodb/gridfs/AbstractMongoDbTest.java  |  6 ++----
 .../apache/camel/component/mongodb/AbstractMongoDbTest.java  |  5 ++---
 .../org/apache/camel/component/netty/http/BaseNettyTest.java |  5 ++---
 .../java/org/apache/camel/component/netty/BaseNettyTest.java |  3 +--
 .../slot/integration/PgReplicationSlotIntegrationTest.java   |  5 +----
 .../pgevent/integration/AbstractPgEventIntegrationTest.java  |  4 +---
 .../org/apache/camel/spring/boot/CamelAutoConfiguration.java | 12 +++++-------
 .../org/apache/camel/spring/CamelContextFactoryBean.java     |  8 +-------
 .../BlueprintPropertiesLocationElementImplicitTest.java      |  2 +-
 .../BlueprintPropertiesLocationElementOptionalTest.java      |  2 +-
 .../blueprint/BlueprintPropertiesLocationElementTest.java    |  2 +-
 .../camel/test/spring/junit5/CamelAnnotationsHandler.java    |  4 ++--
 .../test/spring/junit5/CamelSpringTestContextLoader.java     |  2 +-
 .../spring/CamelSpringPropertiesLocationElementTest.java     |  2 +-
 .../spring/ContainerAwareSpringTestSupport.java              |  2 +-
 .../camel/test/testcontainers/ContainerAwareTestSupport.java |  2 +-
 .../apache/camel/component/undertow/BaseUndertowTest.java    |  4 ++--
 .../main/java/org/apache/camel/spi/PropertiesComponent.java  |  2 ++
 30 files changed, 43 insertions(+), 74 deletions(-)

diff --git 
a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/BaseAhcTest.java
 
b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/BaseAhcTest.java
index d479fd4..647e716 100644
--- 
a/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/BaseAhcTest.java
+++ 
b/components/camel-ahc/src/test/java/org/apache/camel/component/ahc/BaseAhcTest.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 package org.apache.camel.component.ahc;
+
 import java.util.Properties;
 
 import org.apache.camel.BindToRegistry;
 import org.apache.camel.CamelContext;
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.support.jsse.ClientAuthentication;
 import org.apache.camel.support.jsse.KeyManagersParameters;
 import org.apache.camel.support.jsse.KeyStoreParameters;
@@ -44,7 +44,7 @@ public abstract class BaseAhcTest extends CamelTestSupport {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
-        context.addComponent("properties", new 
PropertiesComponent("ref:prop"));
+        context.getPropertiesComponent().setLocation("ref:prop");
         return context;
     }
     
diff --git 
a/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPConnectionDetails.java
 
b/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPConnectionDetails.java
index 6e351d7..07d1e9d 100644
--- 
a/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPConnectionDetails.java
+++ 
b/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPConnectionDetails.java
@@ -62,7 +62,7 @@ public class AMQPConnectionDetails {
 
     public static AMQPConnectionDetails discoverAMQP(CamelContext 
camelContext) {
         try {
-            PropertiesComponent propertiesComponent = 
camelContext.getComponent("properties", PropertiesComponent.class);
+            PropertiesComponent propertiesComponent = 
camelContext.getPropertiesComponent();
 
             String host = property(propertiesComponent, AMQP_HOST, 
"localhost");
             int port = Integer.parseInt(property(propertiesComponent, 
AMQP_PORT, "5672"));
diff --git 
a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
 
b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
index 553cca0..cc3092c 100644
--- 
a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
+++ 
b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
@@ -269,7 +269,7 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Blu
         // if blueprint property resolver is enabled on CamelContext then 
bridge PropertiesComponent to blueprint
         if (isUseBlueprintPropertyResolver()) {
             // lookup existing configured properties component
-            PropertiesComponent pc = getContext().getComponent("properties", 
PropertiesComponent.class);
+            PropertiesComponent pc = (PropertiesComponent) 
getContext().getPropertiesComponent();
 
             // any extra properties
             ServiceReference<?> ref = 
bundleContext.getServiceReference(PropertiesComponent.OVERRIDE_PROPERTIES);
diff --git 
a/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/integration/BonitaIntegrationTestSupport.java
 
b/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/integration/BonitaIntegrationTestSupport.java
index ed901b6..9dcf623 100644
--- 
a/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/integration/BonitaIntegrationTestSupport.java
+++ 
b/components/camel-bonita/src/test/java/org/apache/camel/component/bonita/integration/BonitaIntegrationTestSupport.java
@@ -17,7 +17,6 @@
 package org.apache.camel.component.bonita.integration;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.test.junit4.CamelTestSupport;
 
 public class BonitaIntegrationTestSupport extends CamelTestSupport {
@@ -25,12 +24,7 @@ public class BonitaIntegrationTestSupport extends 
CamelTestSupport {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         final CamelContext context = super.createCamelContext();
-
-        PropertiesComponent component = new PropertiesComponent();
-        component.setLocation("classpath:test-options.properties");
-
-        context.addComponent("properties", component);
-
+        
context.getPropertiesComponent().setLocation("classpath:test-options.properties");
         return context;
     }
 }
diff --git 
a/components/camel-cdi/src/test/java/org/apache/camel/cdi/bean/CustomPropertiesCamelContext.java
 
b/components/camel-cdi/src/test/java/org/apache/camel/cdi/bean/CustomPropertiesCamelContext.java
index 02a3d11..f904cb4 100644
--- 
a/components/camel-cdi/src/test/java/org/apache/camel/cdi/bean/CustomPropertiesCamelContext.java
+++ 
b/components/camel-cdi/src/test/java/org/apache/camel/cdi/bean/CustomPropertiesCamelContext.java
@@ -19,7 +19,6 @@ package org.apache.camel.cdi.bean;
 import javax.annotation.PostConstruct;
 import javax.enterprise.context.ApplicationScoped;
 
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.impl.DefaultCamelContext;
 
 @ApplicationScoped
@@ -27,6 +26,6 @@ public class CustomPropertiesCamelContext extends 
DefaultCamelContext {
 
     @PostConstruct
     void addPropertiesLocation() {
-        getComponent("properties", 
PropertiesComponent.class).setLocation("classpath:placeholder.properties");
+        
getPropertiesComponent().setLocation("classpath:placeholder.properties");
     }
 }
diff --git 
a/components/camel-google-bigquery/src/test/java/org/apache/camel/component/google/bigquery/integration/BigQueryTestSupport.java
 
b/components/camel-google-bigquery/src/test/java/org/apache/camel/component/google/bigquery/integration/BigQueryTestSupport.java
index 6e0d0f0..1ebd3cd 100644
--- 
a/components/camel-google-bigquery/src/test/java/org/apache/camel/component/google/bigquery/integration/BigQueryTestSupport.java
+++ 
b/components/camel-google-bigquery/src/test/java/org/apache/camel/component/google/bigquery/integration/BigQueryTestSupport.java
@@ -36,7 +36,6 @@ import org.apache.camel.BindToRegistry;
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.google.bigquery.GoogleBigQueryComponent;
 import 
org.apache.camel.component.google.bigquery.GoogleBigQueryConnectionFactory;
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.test.junit4.CamelTestSupport;
 
 public class BigQueryTestSupport extends CamelTestSupport {
@@ -83,7 +82,7 @@ public class BigQueryTestSupport extends CamelTestSupport {
         component.setConnectionFactory(connectionFactory);
 
         context.addComponent("google-bigquery", component);
-        context.addComponent("properties", new 
PropertiesComponent("ref:prop"));
+        context.getPropertiesComponent().setLocation("ref:prop");
     }
 
     @Override
diff --git 
a/components/camel-google-pubsub/src/test/java/org/apache/camel/component/google/pubsub/PubsubTestSupport.java
 
b/components/camel-google-pubsub/src/test/java/org/apache/camel/component/google/pubsub/PubsubTestSupport.java
index dc3ab60..61f7cfe 100644
--- 
a/components/camel-google-pubsub/src/test/java/org/apache/camel/component/google/pubsub/PubsubTestSupport.java
+++ 
b/components/camel-google-pubsub/src/test/java/org/apache/camel/component/google/pubsub/PubsubTestSupport.java
@@ -23,10 +23,8 @@ import 
com.google.api.client.googleapis.json.GoogleJsonResponseException;
 import com.google.api.services.pubsub.Pubsub;
 import com.google.api.services.pubsub.model.Subscription;
 import com.google.api.services.pubsub.model.Topic;
-
 import org.apache.camel.BindToRegistry;
 import org.apache.camel.CamelContext;
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.test.junit4.CamelTestSupport;
 
 public class PubsubTestSupport extends CamelTestSupport {
@@ -68,7 +66,7 @@ public class PubsubTestSupport extends CamelTestSupport {
         component.setConnectionFactory(cf);
 
         context.addComponent("google-pubsub", component);
-        context.addComponent("properties", new 
PropertiesComponent("ref:prop"));
+        context.getPropertiesComponent().setLocation("ref:prop");
     }
 
     @BindToRegistry("prop")
diff --git 
a/components/camel-influxdb/src/test/java/org/apache/camel/component/influxdb/AbstractInfluxDbTest.java
 
b/components/camel-influxdb/src/test/java/org/apache/camel/component/influxdb/AbstractInfluxDbTest.java
index d8ec22f..bf5d4b5 100644
--- 
a/components/camel-influxdb/src/test/java/org/apache/camel/component/influxdb/AbstractInfluxDbTest.java
+++ 
b/components/camel-influxdb/src/test/java/org/apache/camel/component/influxdb/AbstractInfluxDbTest.java
@@ -17,7 +17,6 @@
 package org.apache.camel.component.influxdb;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.spring.SpringCamelContext;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.springframework.context.ApplicationContext;
@@ -31,9 +30,7 @@ public class AbstractInfluxDbTest extends CamelTestSupport {
     protected CamelContext createCamelContext() throws Exception {
         applicationContext = new 
AnnotationConfigApplicationContext(MockedInfluxDbConfiguration.class);
         CamelContext ctx = new SpringCamelContext(applicationContext);
-        ctx.init();
-        PropertiesComponent pc = new 
PropertiesComponent("classpath:influxdb.test.properties");
-        ctx.addComponent("properties", pc);
+        
ctx.getPropertiesComponent().setLocation("classpath:influxdb.test.properties");
         return ctx;
     }
 
diff --git 
a/components/camel-jasypt/src/test/java/org/apache/camel/component/jasypt/JasyptPropertiesTest.java
 
b/components/camel-jasypt/src/test/java/org/apache/camel/component/jasypt/JasyptPropertiesTest.java
index 23109f9..159402e 100644
--- 
a/components/camel-jasypt/src/test/java/org/apache/camel/component/jasypt/JasyptPropertiesTest.java
+++ 
b/components/camel-jasypt/src/test/java/org/apache/camel/component/jasypt/JasyptPropertiesTest.java
@@ -50,7 +50,7 @@ public class JasyptPropertiesTest extends CamelTestSupport {
         pc.setPropertiesParser(jasypt);
 
         // add properties component to camel context
-        context.addComponent("properties", pc);
+        context.setPropertiesComponent(pc);
         // END SNIPPET: e1
 
         return context;
diff --git 
a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/BaseJettyTest.java
 
b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/BaseJettyTest.java
index b75cd0d..5c3df6a 100644
--- 
a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/BaseJettyTest.java
+++ 
b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/BaseJettyTest.java
@@ -21,7 +21,6 @@ import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.camel.BindToRegistry;
 import org.apache.camel.CamelContext;
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.http.common.HttpHeaderFilterStrategy;
 import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.junit4.CamelTestSupport;
@@ -46,7 +45,7 @@ public abstract class BaseJettyTest extends CamelTestSupport {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
-        context.addComponent("properties", new 
PropertiesComponent("ref:prop"));
+        context.getPropertiesComponent().setLocation("ref:prop");
         return context;
     }
 
diff --git 
a/components/camel-kafka/src/test/java/org/apache/camel/component/kafka/BaseEmbeddedKafkaTest.java
 
b/components/camel-kafka/src/test/java/org/apache/camel/component/kafka/BaseEmbeddedKafkaTest.java
index f9e2b48..76d6510 100644
--- 
a/components/camel-kafka/src/test/java/org/apache/camel/component/kafka/BaseEmbeddedKafkaTest.java
+++ 
b/components/camel-kafka/src/test/java/org/apache/camel/component/kafka/BaseEmbeddedKafkaTest.java
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 package org.apache.camel.component.kafka;
+
 import java.util.Properties;
 
 import org.apache.camel.BindToRegistry;
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.kafka.embedded.EmbeddedKafkaBroker;
 import org.apache.camel.component.kafka.embedded.EmbeddedZookeeper;
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.apache.kafka.clients.producer.ProducerConfig;
@@ -30,7 +30,6 @@ import org.junit.ClassRule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-
 public class BaseEmbeddedKafkaTest extends CamelTestSupport {
 
     @ClassRule
@@ -74,7 +73,7 @@ public class BaseEmbeddedKafkaTest extends CamelTestSupport {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
-        context.addComponent("properties", new 
PropertiesComponent("ref:prop"));
+        context.getPropertiesComponent().setLocation("ref:prop");
 
         KafkaComponent kafka = new KafkaComponent(context);
         kafka.setBrokers("localhost:" + getKafkaPort());
diff --git 
a/components/camel-microprofile-config/src/test/java/org/apache/camel/component/microprofile/config/CamelMicroProfilePropertiesSourceTest.java
 
b/components/camel-microprofile-config/src/test/java/org/apache/camel/component/microprofile/config/CamelMicroProfilePropertiesSourceTest.java
index c4f65d3..270eb36 100644
--- 
a/components/camel-microprofile-config/src/test/java/org/apache/camel/component/microprofile/config/CamelMicroProfilePropertiesSourceTest.java
+++ 
b/components/camel-microprofile-config/src/test/java/org/apache/camel/component/microprofile/config/CamelMicroProfilePropertiesSourceTest.java
@@ -71,7 +71,7 @@ public class CamelMicroProfilePropertiesSourceTest extends 
CamelTestSupport {
 
     @Test
     public void testLoadAll() throws Exception {
-        PropertiesComponent pc = context.getComponent("properties", 
PropertiesComponent.class);
+        PropertiesComponent pc = context.getPropertiesComponent();
         Properties properties = pc.loadProperties();
 
         
Assertions.assertThat(properties.get("start")).isEqualTo("direct:start");
@@ -81,7 +81,7 @@ public class CamelMicroProfilePropertiesSourceTest extends 
CamelTestSupport {
 
     @Test
     public void testLoadFiltered() throws Exception {
-        PropertiesComponent pc = context.getComponent("properties", 
PropertiesComponent.class);
+        PropertiesComponent pc = context.getPropertiesComponent();
         Properties properties = pc.loadProperties(k -> k.length() > 2);
 
         Assertions.assertThat(properties).hasSize(2);
diff --git 
a/components/camel-mongodb-gridfs/src/test/java/org/apache/camel/component/mongodb/gridfs/AbstractMongoDbTest.java
 
b/components/camel-mongodb-gridfs/src/test/java/org/apache/camel/component/mongodb/gridfs/AbstractMongoDbTest.java
index 82b3a53..664c757 100644
--- 
a/components/camel-mongodb-gridfs/src/test/java/org/apache/camel/component/mongodb/gridfs/AbstractMongoDbTest.java
+++ 
b/components/camel-mongodb-gridfs/src/test/java/org/apache/camel/component/mongodb/gridfs/AbstractMongoDbTest.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 package org.apache.camel.component.mongodb.gridfs;
+
 import com.mongodb.MongoClient;
 import com.mongodb.gridfs.GridFS;
 import org.apache.camel.CamelContext;
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.spring.SpringCamelContext;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.After;
@@ -54,9 +54,7 @@ public abstract class AbstractMongoDbTest extends 
CamelTestSupport {
     protected CamelContext createCamelContext() throws Exception {
         applicationContext = new 
AnnotationConfigApplicationContext(EmbedMongoConfiguration.class);
         CamelContext ctx = new SpringCamelContext(applicationContext);
-        ctx.init();
-        PropertiesComponent pc = new 
PropertiesComponent("classpath:mongodb.test.properties");
-        ctx.addComponent("properties", pc);
+        
ctx.getPropertiesComponent().setLocation("classpath:mongodb.test.properties");
         return ctx;
     }
 }
\ No newline at end of file
diff --git 
a/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/AbstractMongoDbTest.java
 
b/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/AbstractMongoDbTest.java
index e049fb3..ea35154 100644
--- 
a/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/AbstractMongoDbTest.java
+++ 
b/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/AbstractMongoDbTest.java
@@ -15,6 +15,7 @@
  * limitations under the License.
  */
 package org.apache.camel.component.mongodb;
+
 import java.util.Formatter;
 
 import com.mongodb.MongoClient;
@@ -22,7 +23,6 @@ import com.mongodb.client.MongoCollection;
 import com.mongodb.client.MongoDatabase;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelExecutionException;
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.spring.SpringCamelContext;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.apache.camel.util.IOHelper;
@@ -79,8 +79,7 @@ public abstract class AbstractMongoDbTest extends 
CamelTestSupport {
         applicationContext = new 
AnnotationConfigApplicationContext(EmbedMongoConfiguration.class);
         @SuppressWarnings("deprecation")
         CamelContext ctx = 
SpringCamelContext.springCamelContext(applicationContext, true);
-        PropertiesComponent pc = new 
PropertiesComponent("classpath:mongodb.test.properties");
-        ctx.addComponent("properties", pc);
+        
ctx.getPropertiesComponent().setLocation("classpath:mongodb.test.properties");
         return ctx;
     }
 
diff --git 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/BaseNettyTest.java
 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/BaseNettyTest.java
index ad40817..0f47e70 100644
--- 
a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/BaseNettyTest.java
+++ 
b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/BaseNettyTest.java
@@ -15,15 +15,14 @@
  * limitations under the License.
  */
 package org.apache.camel.component.netty.http;
+
 import java.util.Collection;
 import java.util.Properties;
 
 import io.netty.buffer.ByteBufAllocator;
 import io.netty.util.ResourceLeakDetector;
-
 import org.apache.camel.BindToRegistry;
 import org.apache.camel.CamelContext;
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.apache.logging.log4j.core.LogEvent;
@@ -73,7 +72,7 @@ public class BaseNettyTest extends CamelTestSupport {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
-        context.addComponent("properties", new 
PropertiesComponent("ref:prop"));
+        context.getPropertiesComponent().setLocation("ref:prop");
         return context;
     }
 
diff --git 
a/components/camel-netty/src/test/java/org/apache/camel/component/netty/BaseNettyTest.java
 
b/components/camel-netty/src/test/java/org/apache/camel/component/netty/BaseNettyTest.java
index 3eff1a8..669fcae 100644
--- 
a/components/camel-netty/src/test/java/org/apache/camel/component/netty/BaseNettyTest.java
+++ 
b/components/camel-netty/src/test/java/org/apache/camel/component/netty/BaseNettyTest.java
@@ -24,7 +24,6 @@ import io.netty.util.ResourceLeakDetector;
 
 import org.apache.camel.BindToRegistry;
 import org.apache.camel.CamelContext;
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.apache.logging.log4j.core.LogEvent;
@@ -74,7 +73,7 @@ public class BaseNettyTest extends CamelTestSupport {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
-        context.addComponent("properties", new 
PropertiesComponent("ref:prop"));
+        context.getPropertiesComponent().setLocation("ref:prop");
         return context;
     }
 
diff --git 
a/components/camel-pg-replication-slot/src/test/java/org/apache/camel/component/pg/replication/slot/integration/PgReplicationSlotIntegrationTest.java
 
b/components/camel-pg-replication-slot/src/test/java/org/apache/camel/component/pg/replication/slot/integration/PgReplicationSlotIntegrationTest.java
index 610ebc8..701c9b9 100644
--- 
a/components/camel-pg-replication-slot/src/test/java/org/apache/camel/component/pg/replication/slot/integration/PgReplicationSlotIntegrationTest.java
+++ 
b/components/camel-pg-replication-slot/src/test/java/org/apache/camel/component/pg/replication/slot/integration/PgReplicationSlotIntegrationTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.component.pg.replication.slot.integration;
 
-
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
@@ -30,7 +29,6 @@ import org.apache.camel.PropertyInject;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.After;
 import org.junit.Before;
@@ -93,8 +91,7 @@ public class PgReplicationSlotIntegrationTest extends 
CamelTestSupport {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
-        PropertiesComponent component = new 
PropertiesComponent("classpath:/test-options.properties");
-        camelContext.addComponent("properties", component);
+        
camelContext.getPropertiesComponent().setLocation("classpath:/test-options.properties");
         return camelContext;
     }
 
diff --git 
a/components/camel-pgevent/src/test/java/org/apache/camel/pgevent/integration/AbstractPgEventIntegrationTest.java
 
b/components/camel-pgevent/src/test/java/org/apache/camel/pgevent/integration/AbstractPgEventIntegrationTest.java
index 1fb5cbe..dbede14 100644
--- 
a/components/camel-pgevent/src/test/java/org/apache/camel/pgevent/integration/AbstractPgEventIntegrationTest.java
+++ 
b/components/camel-pgevent/src/test/java/org/apache/camel/pgevent/integration/AbstractPgEventIntegrationTest.java
@@ -17,7 +17,6 @@
 package org.apache.camel.pgevent.integration;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.test.junit4.CamelTestSupport;
 
 public class AbstractPgEventIntegrationTest extends CamelTestSupport {
@@ -27,8 +26,7 @@ public class AbstractPgEventIntegrationTest extends 
CamelTestSupport {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
-        PropertiesComponent component = new 
PropertiesComponent("classpath:/test-options.properties");
-        camelContext.addComponent("properties", component);
+        
camelContext.getPropertiesComponent().setLocation("classpath:/test-options.properties");
         return camelContext;
     }
 }
diff --git 
a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
 
b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
index e9c5ec2..afb6802 100644
--- 
a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
+++ 
b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
@@ -215,14 +215,12 @@ public class CamelAutoConfiguration {
     // (PropertiesComponent extends ServiceSupport) would be used for bean
     // destruction. And we want Camel to handle the lifecycle.
     @Bean(destroyMethod = "")
+    @Lazy
     PropertiesComponent properties(CamelContext camelContext, PropertiesParser 
parser) {
-        if (camelContext.hasComponent("properties") != null) {
-            return camelContext.getComponent("properties", 
PropertiesComponent.class);
-        } else {
-            PropertiesComponent pc = new PropertiesComponent();
-            pc.setPropertiesParser(parser);
-            return pc;
-        }
+        PropertiesComponent pc = new PropertiesComponent();
+        pc.setCamelContext(camelContext);
+        pc.setPropertiesParser(parser);
+        return pc;
     }
 
     /**
diff --git 
a/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
 
b/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
index ff28d3f..c60d541 100644
--- 
a/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
+++ 
b/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
@@ -37,7 +37,6 @@ import org.apache.camel.ShutdownRunningTask;
 import org.apache.camel.TypeConverterExists;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.properties.PropertiesComponent;
-import org.apache.camel.component.properties.PropertiesLocation;
 import org.apache.camel.core.xml.AbstractCamelContextFactoryBean;
 import org.apache.camel.core.xml.AbstractCamelFactoryBean;
 import org.apache.camel.core.xml.CamelJMXAgentDefinition;
@@ -332,12 +331,7 @@ public class CamelContextFactoryBean extends 
AbstractCamelContextFactoryBean<Spr
             LOG.info("Bridging Camel and Spring property placeholder 
configurer with id: {}", id);
 
             // get properties component
-            PropertiesComponent pc = (PropertiesComponent) 
getContext().getComponent("properties", false);
-            if (pc == null) {
-                // do not auto create the component as spring autowrire by 
constructor causes a side effect when using bridge
-                pc = new PropertiesComponent();
-                getContext().addComponent("properties", pc);
-            }
+            PropertiesComponent pc = (PropertiesComponent) 
getContext().getPropertiesComponent();
             // use the spring system properties mode which has a different 
value than Camel may have
             pc.setSystemPropertiesMode(configurer.getSystemPropertiesMode());
 
diff --git 
a/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/BlueprintPropertiesLocationElementImplicitTest.java
 
b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/BlueprintPropertiesLocationElementImplicitTest.java
index 14dff3e..dd4f869 100644
--- 
a/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/BlueprintPropertiesLocationElementImplicitTest.java
+++ 
b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/BlueprintPropertiesLocationElementImplicitTest.java
@@ -35,7 +35,7 @@ public class BlueprintPropertiesLocationElementImplicitTest 
extends CamelBluepri
         mock.expectedHeaderReceived("property-2", "property-value-2");
         mock.expectedHeaderReceived("cm", "cm-value");
 
-        PropertiesComponent pc = context.getComponent("properties", 
PropertiesComponent.class);
+        PropertiesComponent pc = (PropertiesComponent) 
context.getPropertiesComponent();
         assertNotNull("Properties component not defined", pc);
 
         List<String> locations = pc.getLocations();
diff --git 
a/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/BlueprintPropertiesLocationElementOptionalTest.java
 
b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/BlueprintPropertiesLocationElementOptionalTest.java
index d4663a6..55945da 100644
--- 
a/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/BlueprintPropertiesLocationElementOptionalTest.java
+++ 
b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/BlueprintPropertiesLocationElementOptionalTest.java
@@ -35,7 +35,7 @@ public class BlueprintPropertiesLocationElementOptionalTest 
extends CamelBluepri
         mock.expectedHeaderReceived("property-2", "property-value-2");
         mock.expectedHeaderReceived("cm", "cm-value");
 
-        PropertiesComponent pc = context.getComponent("properties", 
PropertiesComponent.class);
+        PropertiesComponent pc = (PropertiesComponent) 
context.getPropertiesComponent();
         assertNotNull("Properties component not defined", pc);
 
         List<String> locations = pc.getLocations();
diff --git 
a/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/BlueprintPropertiesLocationElementTest.java
 
b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/BlueprintPropertiesLocationElementTest.java
index 21ba5ff..437aae5 100644
--- 
a/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/BlueprintPropertiesLocationElementTest.java
+++ 
b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/BlueprintPropertiesLocationElementTest.java
@@ -35,7 +35,7 @@ public class BlueprintPropertiesLocationElementTest extends 
CamelBlueprintTestSu
         mock.expectedHeaderReceived("property-2", "property-value-2");
         mock.expectedHeaderReceived("cm", "cm-value");
 
-        PropertiesComponent pc = context.getComponent("properties", 
PropertiesComponent.class);
+        PropertiesComponent pc = (PropertiesComponent) 
context.getPropertiesComponent();
         assertNotNull("Properties component not defined", pc);
 
         List<String> locations = pc.getLocations();
diff --git 
a/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java
 
b/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java
index 84052ec..a06b946 100644
--- 
a/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java
+++ 
b/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java
@@ -29,12 +29,12 @@ import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.api.management.JmxSystemPropertyKeys;
 import org.apache.camel.api.management.ManagedCamelContext;
 import org.apache.camel.api.management.mbean.ManagedCamelContextMBean;
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.impl.engine.InterceptSendToMockEndpointStrategy;
 import org.apache.camel.processor.interceptor.DefaultDebugger;
 import org.apache.camel.spi.Breakpoint;
 import org.apache.camel.spi.Debugger;
 import org.apache.camel.spi.EventNotifier;
+import org.apache.camel.spi.PropertiesComponent;
 import org.apache.camel.spring.SpringCamelContext;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.camel.util.CollectionStringBuffer;
@@ -315,7 +315,7 @@ public final class CamelAnnotationsHandler {
         if (properties.size() != 0) {
             CamelSpringTestHelper.doToSpringCamelContexts(context, new 
CamelSpringTestHelper.DoToSpringCamelContextsStrategy() {
                 public void execute(String contextName, SpringCamelContext 
camelContext) throws Exception {
-                    PropertiesComponent pc = 
camelContext.getComponent("properties", PropertiesComponent.class);
+                    PropertiesComponent pc = 
camelContext.getPropertiesComponent();
                     Properties extra = new Properties();
                     for (Properties prop : properties) {
                         extra.putAll(prop);
diff --git 
a/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringTestContextLoader.java
 
b/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringTestContextLoader.java
index 50c0be2..32f0644 100644
--- 
a/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringTestContextLoader.java
+++ 
b/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringTestContextLoader.java
@@ -487,7 +487,7 @@ public class CamelSpringTestContextLoader extends 
AbstractContextLoader {
                 public Object postProcessAfterInitialization(Object bean, 
String beanName) {
                     if (bean instanceof CamelContext) {
                         CamelContext camelContext = (CamelContext) bean;
-                        PropertiesComponent pc = 
camelContext.getPropertiesComponent(true);
+                        PropertiesComponent pc = 
camelContext.getPropertiesComponent();
                         LOG.info("Using {} properties to override any existing 
properties on the PropertiesComponent on CamelContext with name [{}].", 
extra.size(), camelContext.getName());
                         pc.setOverrideProperties(extra);
                     }
diff --git 
a/components/camel-test-spring-junit5/src/test/java/org/apache/camel/test/spring/CamelSpringPropertiesLocationElementTest.java
 
b/components/camel-test-spring-junit5/src/test/java/org/apache/camel/test/spring/CamelSpringPropertiesLocationElementTest.java
index 999c5c2..9efd971 100644
--- 
a/components/camel-test-spring-junit5/src/test/java/org/apache/camel/test/spring/CamelSpringPropertiesLocationElementTest.java
+++ 
b/components/camel-test-spring-junit5/src/test/java/org/apache/camel/test/spring/CamelSpringPropertiesLocationElementTest.java
@@ -50,7 +50,7 @@ public class CamelSpringPropertiesLocationElementTest {
         mock.expectedHeaderReceived("property-2", "property-value-2");
         mock.expectedHeaderReceived("property-3", "property-value-3");
 
-        PropertiesComponent pc = context.getComponent("properties", 
PropertiesComponent.class);
+        PropertiesComponent pc = (PropertiesComponent) 
context.getPropertiesComponent();
         assertNotNull(pc, "Properties component not defined");
 
         List<String> locations = pc.getLocations();
diff --git 
a/components/camel-testcontainers-spring/src/main/java/org/apache/camel/test/testcontainers/spring/ContainerAwareSpringTestSupport.java
 
b/components/camel-testcontainers-spring/src/main/java/org/apache/camel/test/testcontainers/spring/ContainerAwareSpringTestSupport.java
index 8522801..28268ea 100644
--- 
a/components/camel-testcontainers-spring/src/main/java/org/apache/camel/test/testcontainers/spring/ContainerAwareSpringTestSupport.java
+++ 
b/components/camel-testcontainers-spring/src/main/java/org/apache/camel/test/testcontainers/spring/ContainerAwareSpringTestSupport.java
@@ -59,7 +59,7 @@ public abstract class ContainerAwareSpringTestSupport extends 
CamelSpringTestSup
     @Override
     protected CamelContext createCamelContext() throws Exception {
         final CamelContext context = super.createCamelContext();
-        final PropertiesComponent pc = context.getComponent("properties", 
PropertiesComponent.class);
+        final PropertiesComponent pc = (PropertiesComponent) 
context.getPropertiesComponent();
 
         pc.addFunction(new ContainerPropertiesFunction(containers));
 
diff --git 
a/components/camel-testcontainers/src/main/java/org/apache/camel/test/testcontainers/ContainerAwareTestSupport.java
 
b/components/camel-testcontainers/src/main/java/org/apache/camel/test/testcontainers/ContainerAwareTestSupport.java
index a2199f1..829915f 100644
--- 
a/components/camel-testcontainers/src/main/java/org/apache/camel/test/testcontainers/ContainerAwareTestSupport.java
+++ 
b/components/camel-testcontainers/src/main/java/org/apache/camel/test/testcontainers/ContainerAwareTestSupport.java
@@ -57,7 +57,7 @@ public class ContainerAwareTestSupport extends 
CamelTestSupport {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         final CamelContext context = super.createCamelContext();
-        final PropertiesComponent pc = context.getComponent("properties", 
PropertiesComponent.class);
+        final PropertiesComponent pc = (PropertiesComponent) 
context.getPropertiesComponent();
 
         pc.addFunction(new ContainerPropertiesFunction(containers));
 
diff --git 
a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/BaseUndertowTest.java
 
b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/BaseUndertowTest.java
index 7d2148a..17c2c63 100644
--- 
a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/BaseUndertowTest.java
+++ 
b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/BaseUndertowTest.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 package org.apache.camel.component.undertow;
+
 import java.util.Properties;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.camel.BindToRegistry;
 import org.apache.camel.CamelContext;
-import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.BeforeClass;
@@ -51,7 +51,7 @@ public class BaseUndertowTest extends CamelTestSupport {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
-        context.addComponent("properties", new 
PropertiesComponent("ref:prop"));
+        context.getPropertiesComponent().setLocation("ref:prop");
         return context;
     }
 
diff --git 
a/core/camel-api/src/main/java/org/apache/camel/spi/PropertiesComponent.java 
b/core/camel-api/src/main/java/org/apache/camel/spi/PropertiesComponent.java
index 7277893..fc937e4 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/PropertiesComponent.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/PropertiesComponent.java
@@ -23,6 +23,8 @@ import java.util.function.Predicate;
 
 import org.apache.camel.StaticService;
 
+// TODO: Rename to PropertiesService
+
 /**
  * Component for property placeholders and loading properties from sources
  * (such as .properties file from classpath or file system)

Reply via email to