You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2019/07/04 11:05:34 UTC
[camel] 28/30: CAMEL-13708: Properties component should have API to
make it easier to lookup a property on-demand or from all pre-loaded
properties.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch properties
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 171ec389e3cff54e04e25cedbf87712be92c72b0
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Jul 4 11:33:08 2019 +0200
CAMEL-13708: Properties component should have API to make it easier to lookup a property on-demand or from all pre-loaded properties.
---
.../AbstractLocationPropertiesSource.java | 6 ++--
.../properties/DefaultPropertiesLookup.java | 7 -----
.../properties/LocationPropertiesSource.java | 3 --
.../component/properties/PropertiesComponent.java | 32 ++++------------------
.../component/properties/RefPropertiesSource.java | 1 -
5 files changed, 9 insertions(+), 40 deletions(-)
diff --git a/components/camel-properties/src/main/java/org/apache/camel/component/properties/AbstractLocationPropertiesSource.java b/components/camel-properties/src/main/java/org/apache/camel/component/properties/AbstractLocationPropertiesSource.java
index 94a10c4c..abb08df 100644
--- a/components/camel-properties/src/main/java/org/apache/camel/component/properties/AbstractLocationPropertiesSource.java
+++ b/components/camel-properties/src/main/java/org/apache/camel/component/properties/AbstractLocationPropertiesSource.java
@@ -57,8 +57,10 @@ public abstract class AbstractLocationPropertiesSource extends ServiceSupport im
super.doInit();
Properties prop = loadPropertiesFromLocation(propertiesComponent, location);
- prop = prepareLoadedProperties(prop);
- properties.putAll(prop);
+ if (prop != null) {
+ prop = prepareLoadedProperties(prop);
+ properties.putAll(prop);
+ }
}
@Override
diff --git a/components/camel-properties/src/main/java/org/apache/camel/component/properties/DefaultPropertiesLookup.java b/components/camel-properties/src/main/java/org/apache/camel/component/properties/DefaultPropertiesLookup.java
index 1d9a065..45737fb 100644
--- a/components/camel-properties/src/main/java/org/apache/camel/component/properties/DefaultPropertiesLookup.java
+++ b/components/camel-properties/src/main/java/org/apache/camel/component/properties/DefaultPropertiesLookup.java
@@ -44,13 +44,6 @@ public class DefaultPropertiesLookup implements PropertiesLookup {
answer = it2.next().getProperty(name);
}
}
- if (answer == null) {
- // then try till first found location source
- Iterator<LocationPropertiesSource> it = component.getLocationSources().iterator();
- while (answer == null && it.hasNext()) {
- answer = it.next().getProperty(name);
- }
- }
// initial properties are last
if (answer == null && component.getInitialProperties() != null) {
answer = component.getInitialProperties().getProperty(name);
diff --git a/components/camel-properties/src/main/java/org/apache/camel/component/properties/LocationPropertiesSource.java b/components/camel-properties/src/main/java/org/apache/camel/component/properties/LocationPropertiesSource.java
index 7ec3f89..bcfddb0 100644
--- a/components/camel-properties/src/main/java/org/apache/camel/component/properties/LocationPropertiesSource.java
+++ b/components/camel-properties/src/main/java/org/apache/camel/component/properties/LocationPropertiesSource.java
@@ -21,9 +21,6 @@ package org.apache.camel.component.properties;
*/
public interface LocationPropertiesSource extends PropertiesSource {
- // TODO: We can make some special for this and remove this interface
- // as this is an implementation details only internally
-
/**
* Gets the location of the properties
*/
diff --git a/components/camel-properties/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java b/components/camel-properties/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java
index 8695c6f..be22fc8 100644
--- a/components/camel-properties/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java
+++ b/components/camel-properties/src/main/java/org/apache/camel/component/properties/PropertiesComponent.java
@@ -52,7 +52,6 @@ import org.slf4j.LoggerFactory;
public class PropertiesComponent extends DefaultComponent implements org.apache.camel.spi.PropertiesComponent, StaticService {
// TODO: PropertySource / LoadablePropertySource to camel-api
- // TODO: Remove LocationPropertiesSource
// TODO: API on PropertiesComponent in SPI to Optional<String> lookupProperty(String name);
// TODO: Add docs about `PropertiesSource`
@@ -106,7 +105,6 @@ public class PropertiesComponent extends DefaultComponent implements org.apache.
private PropertiesParser propertiesParser = new DefaultPropertiesParser(this);
private final PropertiesLookup propertiesLookup = new DefaultPropertiesLookup(this);
private final List<PropertiesSource> sources = new ArrayList<>();
- private final List<LocationPropertiesSource> locationSources = new ArrayList<>();
private List<PropertiesLocation> locations = Collections.emptyList();
@@ -181,15 +179,6 @@ public class PropertiesComponent extends DefaultComponent implements org.apache.
prop.putAll(initialProperties);
}
- if (!locationSources.isEmpty()) {
- for (PropertiesSource ps : locationSources) {
- if (ps instanceof LoadablePropertiesSource) {
- LoadablePropertiesSource lps = (LoadablePropertiesSource) ps;
- Properties p = lps.loadProperties();
- prop.putAll(p);
- }
- }
- }
if (!sources.isEmpty()) {
for (PropertiesSource ps : sources) {
if (ps instanceof LoadablePropertiesSource) {
@@ -241,8 +230,8 @@ public class PropertiesComponent extends DefaultComponent implements org.apache.
locations = parseLocations(locations);
this.locations = Collections.unmodifiableList(locations);
- // we need to reset them as sources as well
- this.locationSources.clear();
+ // we need to re-create the property sources which may have already been created from locations
+ this.sources.removeIf(s -> s instanceof LocationPropertiesSource);
for (PropertiesLocation loc : locations) {
addPropertiesLocationsAsPropertiesSource(loc);
}
@@ -475,11 +464,7 @@ public class PropertiesComponent extends DefaultComponent implements org.apache.
if (propertiesSource instanceof CamelContextAware) {
((CamelContextAware) propertiesSource).setCamelContext(getCamelContext());
}
- if (propertiesSource instanceof LocationPropertiesSource) {
- locationSources.add((LocationPropertiesSource) propertiesSource);
- } else {
- sources.add(propertiesSource);
- }
+ sources.add(propertiesSource);
if (isInit()) {
// if we are already initialized we need to init the properties source also
ServiceHelper.initService(propertiesSource);
@@ -490,10 +475,6 @@ public class PropertiesComponent extends DefaultComponent implements org.apache.
return sources;
}
- public List<LocationPropertiesSource> getLocationSources() {
- return locationSources;
- }
-
@Override
protected void doInit() throws Exception {
super.doInit();
@@ -518,16 +499,13 @@ public class PropertiesComponent extends DefaultComponent implements org.apache.
LOG.debug("Error discovering and using custom PropertiesSource due to " + e.getMessage() + ". This exception is ignored", e);
}
- ServiceHelper.initService(locationSources);
ServiceHelper.initService(sources);
}
@Override
protected void doStart() throws Exception {
- // sort the sources
- locationSources.sort(OrderedComparator.get());
sources.sort(OrderedComparator.get());
- ServiceHelper.startService(locationSources, sources);
+ ServiceHelper.startService(sources);
if (systemPropertiesMode != SYSTEM_PROPERTIES_MODE_NEVER
&& systemPropertiesMode != SYSTEM_PROPERTIES_MODE_FALLBACK
@@ -548,7 +526,7 @@ public class PropertiesComponent extends DefaultComponent implements org.apache.
@Override
protected void doStop() throws Exception {
- ServiceHelper.stopAndShutdownServices(locationSources, sources);
+ ServiceHelper.stopAndShutdownServices(sources);
}
private void addPropertiesLocationsAsPropertiesSource(PropertiesLocation location) {
diff --git a/components/camel-properties/src/main/java/org/apache/camel/component/properties/RefPropertiesSource.java b/components/camel-properties/src/main/java/org/apache/camel/component/properties/RefPropertiesSource.java
index fb4155c..e2c5a68 100644
--- a/components/camel-properties/src/main/java/org/apache/camel/component/properties/RefPropertiesSource.java
+++ b/components/camel-properties/src/main/java/org/apache/camel/component/properties/RefPropertiesSource.java
@@ -38,7 +38,6 @@ public class RefPropertiesSource implements LocationPropertiesSource {
return "RefPropertiesSource[" + getLocation().getPath() + "]";
}
- @Override
public PropertiesLocation getLocation() {
return location;
}