This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit cc6009b050133eb053862feb35d433636224a506 Author: Max Fortun <max.for...@wsj.com> AuthorDate: Tue May 22 17:19:39 2018 -0400 Allow exceptions to be thrown so that route control could be configured on application level. --- .../org/apache/camel/component/dns/policy/DnsActivation.java | 6 ++++-- .../apache/camel/component/dns/policy/DnsActivationPolicy.java | 10 +++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/components/camel-dns/src/main/java/org/apache/camel/component/dns/policy/DnsActivation.java b/components/camel-dns/src/main/java/org/apache/camel/component/dns/policy/DnsActivation.java index 7d7e886..cc9de5b 100644 --- a/components/camel-dns/src/main/java/org/apache/camel/component/dns/policy/DnsActivation.java +++ b/components/camel-dns/src/main/java/org/apache/camel/component/dns/policy/DnsActivation.java @@ -62,13 +62,13 @@ public class DnsActivation { this.resolvesTo.add(resolvesTo); } - public boolean isActive() { + public boolean isActive() throws Exception { if (resolvesTo.isEmpty()) { try { resolvesTo.addAll(getLocalIps()); } catch (Exception e) { LOG.warn("Failed to get local ips and resolvesTo not specified. Identifying as inactive.", e); - return false; + throw e; } } @@ -101,6 +101,7 @@ public class DnsActivation { } } catch (Exception e) { LOG.warn(hostname, e); + throw e; } finally { if (attributeEnumeration != null) { try { @@ -112,6 +113,7 @@ public class DnsActivation { } } } + return false; } diff --git a/components/camel-dns/src/main/java/org/apache/camel/component/dns/policy/DnsActivationPolicy.java b/components/camel-dns/src/main/java/org/apache/camel/component/dns/policy/DnsActivationPolicy.java index 4833136..d89c612 100644 --- a/components/camel-dns/src/main/java/org/apache/camel/component/dns/policy/DnsActivationPolicy.java +++ b/components/camel-dns/src/main/java/org/apache/camel/component/dns/policy/DnsActivationPolicy.java @@ -37,6 +37,7 @@ public class DnsActivationPolicy extends RoutePolicySupport { private ExceptionHandler exceptionHandler; private DnsActivation dnsActivation; private long ttl; + private boolean stopRoutesOnException; private Map<String, Route> routes = new ConcurrentHashMap<>(); private Timer timer; @@ -128,10 +129,14 @@ public class DnsActivationPolicy extends RoutePolicySupport { dnsActivation.setResolvesTo(resolvesTo); } - public void setTtl(String ttl) { + public void setTtl(String ttl) throws Exception { this.ttl = Long.parseLong(ttl); } + public void setStopRoutesOnException(String stopRoutesOnException) throws Exception { + this.stopRoutesOnException = Boolean.parseBoolean(stopRoutesOnException); + } + private void startRouteImpl(Route route) throws Exception { ServiceStatus routeStatus = route.getRouteContext().getCamelContext().getRouteStatus(route.getId()); @@ -189,6 +194,9 @@ public class DnsActivationPolicy extends RoutePolicySupport { } } catch (Exception e) { LOG.warn("DnsActivation TimerTask failed", e); + if (stopRoutesOnException) { + stopRoutes(); + } } } } -- To stop receiving notification emails like this one, please contact acosent...@apache.org.