Author: cmueller Date: Thu Feb 10 22:38:15 2011 New Revision: 1069596 URL: http://svn.apache.org/viewvc?rev=1069596&view=rev Log: CAMEL-3652: Fix the Sonar Critical issue: Performance - Inefficient use of keySet iterator instead of entrySet iterator
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ContextScanRouteBuilderFinder.java camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfUtils.java camel/trunk/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/EventAdminProducer.java camel/trunk/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackDataFormat.java camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneIndexer.java camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/ContextScanRouteBuilderFinder.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java?rev=1069596&r1=1069595&r2=1069596&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java Thu Feb 10 22:38:15 2011 @@ -21,6 +21,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; @@ -230,8 +231,8 @@ public class XStreamDataFormat extends D @Override public ImplicitCollectionList marshal(Map<String, String[]> v) throws Exception { List<ImplicitCollectionEntry> list = new ArrayList<ImplicitCollectionEntry>(); - for (String clsName : v.keySet()) { - ImplicitCollectionEntry entry = new ImplicitCollectionEntry(clsName, v.get(clsName)); + for (Entry<String, String[]> e : v.entrySet()) { + ImplicitCollectionEntry entry = new ImplicitCollectionEntry(e.getKey(), e.getValue()); list.add(entry); } @@ -392,8 +393,8 @@ public class XStreamDataFormat extends D @Override public OmitFieldList marshal(Map<String, String[]> v) throws Exception { List<OmitFieldEntry> list = new ArrayList<OmitFieldEntry>(); - for (String clsName : v.keySet()) { - OmitFieldEntry entry = new OmitFieldEntry(clsName, v.get(clsName)); + for (Entry<String, String[]> e : v.entrySet()) { + OmitFieldEntry entry = new OmitFieldEntry(e.getKey(), e.getValue()); list.add(entry); } Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java?rev=1069596&r1=1069595&r2=1069596&view=diff ============================================================================== --- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java (original) +++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java Thu Feb 10 22:38:15 2011 @@ -24,6 +24,7 @@ import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.TreeMap; import org.apache.camel.dataformat.bindy.annotation.CsvRecord; @@ -269,10 +270,10 @@ public class BindyCsvFactory extends Bin TreeMap<Integer, List> sortValues = new TreeMap<Integer, List>(results); List<String> temp = new ArrayList<String>(); - for (Integer key : sortValues.keySet()) { + for (Entry<Integer, List> entry : sortValues.entrySet()) { // Get list of values - List<String> val = sortValues.get(key); + List<String> val = entry.getValue(); // For one to one relation // There is only one item in the list Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java?rev=1069596&r1=1069595&r2=1069596&view=diff ============================================================================== --- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java (original) +++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java Thu Feb 10 22:38:15 2011 @@ -25,6 +25,7 @@ import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.TreeMap; import org.apache.camel.dataformat.bindy.annotation.DataField; @@ -278,10 +279,10 @@ public class BindyFixedLengthFactory ext // Convert Map<Integer, List> into List<List> TreeMap<Integer, List> sortValues = new TreeMap<Integer, List>(results); - for (Integer key : sortValues.keySet()) { + for (Entry<Integer, List> entry : sortValues.entrySet()) { // Get list of values - List<String> val = sortValues.get(key); + List<String> val = entry.getValue(); String value = val.get(0); buffer.append(value); Modified: camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ContextScanRouteBuilderFinder.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ContextScanRouteBuilderFinder.java?rev=1069596&r1=1069595&r2=1069596&view=diff ============================================================================== --- camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ContextScanRouteBuilderFinder.java (original) +++ camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ContextScanRouteBuilderFinder.java Thu Feb 10 22:38:15 2011 @@ -18,6 +18,7 @@ package org.apache.camel.blueprint; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import org.apache.camel.RoutesBuilder; import org.apache.camel.spi.PackageScanFilter; @@ -47,8 +48,9 @@ public class ContextScanRouteBuilderFind public void appendBuilders(List<RoutesBuilder> list) { Map<String, RoutesBuilder> beans = BlueprintContainerRegistry.lookupByType(blueprintContainer, RoutesBuilder.class); - for (Object key : beans.keySet()) { - Object bean = beans.get(key); + for (Entry<String, RoutesBuilder> entry : beans.entrySet()) { + String key = entry.getKey(); + Object bean = entry.getValue(); if (LOG.isTraceEnabled()) { LOG.trace("Found RouteBuilder with id: " + key + " -> " + bean); Modified: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java?rev=1069596&r1=1069595&r2=1069596&view=diff ============================================================================== --- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java (original) +++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java Thu Feb 10 22:38:15 2011 @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; @@ -222,11 +223,11 @@ public abstract class AbstractCamelConte // set the event notifier strategies if defined Map<String, EventNotifier> eventNotifiers = getContext().getRegistry().lookupByType(EventNotifier.class); if (eventNotifiers != null && !eventNotifiers.isEmpty()) { - for (String id : eventNotifiers.keySet()) { - EventNotifier notifier = eventNotifiers.get(id); + for (Entry<String, EventNotifier> entry : eventNotifiers.entrySet()) { + EventNotifier notifier = entry.getValue(); // do not add if already added, for instance a tracer that is also an InterceptStrategy class if (!getContext().getManagementStrategy().getEventNotifiers().contains(notifier)) { - LOG.info("Using custom EventNotifier with id: " + id + " and implementation: " + notifier); + LOG.info("Using custom EventNotifier with id: " + entry.getKey() + " and implementation: " + notifier); getContext().getManagementStrategy().addEventNotifier(notifier); } } @@ -234,9 +235,9 @@ public abstract class AbstractCamelConte // set endpoint strategies if defined Map<String, EndpointStrategy> endpointStrategies = getContext().getRegistry().lookupByType(EndpointStrategy.class); if (endpointStrategies != null && !endpointStrategies.isEmpty()) { - for (String id : endpointStrategies.keySet()) { - EndpointStrategy strategy = endpointStrategies.get(id); - LOG.info("Using custom EndpointStrategy with id: " + id + " and implementation: " + strategy); + for (Entry<String, EndpointStrategy> entry : endpointStrategies.entrySet()) { + EndpointStrategy strategy = entry.getValue(); + LOG.info("Using custom EndpointStrategy with id: " + entry.getKey() + " and implementation: " + strategy); getContext().addRegisterEndpointCallback(strategy); } } @@ -249,11 +250,11 @@ public abstract class AbstractCamelConte // add global interceptors Map<String, InterceptStrategy> interceptStrategies = getContext().getRegistry().lookupByType(InterceptStrategy.class); if (interceptStrategies != null && !interceptStrategies.isEmpty()) { - for (String id : interceptStrategies.keySet()) { - InterceptStrategy strategy = interceptStrategies.get(id); + for (Entry<String, InterceptStrategy> entry : interceptStrategies.entrySet()) { + InterceptStrategy strategy = entry.getValue(); // do not add if already added, for instance a tracer that is also an InterceptStrategy class if (!getContext().getInterceptStrategies().contains(strategy)) { - LOG.info("Using custom InterceptStrategy with id: " + id + " and implementation: " + strategy); + LOG.info("Using custom InterceptStrategy with id: " + entry.getKey() + " and implementation: " + strategy); getContext().addInterceptStrategy(strategy); } } @@ -261,11 +262,11 @@ public abstract class AbstractCamelConte // set the lifecycle strategy if defined Map<String, LifecycleStrategy> lifecycleStrategies = getContext().getRegistry().lookupByType(LifecycleStrategy.class); if (lifecycleStrategies != null && !lifecycleStrategies.isEmpty()) { - for (String id : lifecycleStrategies.keySet()) { - LifecycleStrategy strategy = lifecycleStrategies.get(id); + for (Entry<String, LifecycleStrategy> entry : lifecycleStrategies.entrySet()) { + LifecycleStrategy strategy = entry.getValue(); // do not add if already added, for instance a tracer that is also an InterceptStrategy class if (!getContext().getLifecycleStrategies().contains(strategy)) { - LOG.info("Using custom LifecycleStrategy with id: " + id + " and implementation: " + strategy); + LOG.info("Using custom LifecycleStrategy with id: " + entry.getKey() + " and implementation: " + strategy); getContext().addLifecycleStrategy(strategy); } } @@ -514,13 +515,13 @@ public abstract class AbstractCamelConte // lookup and use custom profiles from the registry Map<String, ThreadPoolProfile> profiles = context.getRegistry().lookupByType(ThreadPoolProfile.class); if (profiles != null && !profiles.isEmpty()) { - for (String id : profiles.keySet()) { - ThreadPoolProfile profile = profiles.get(id); + for (Entry<String, ThreadPoolProfile> entry : profiles.entrySet()) { + ThreadPoolProfile profile = entry.getValue(); // do not add if already added, for instance a tracer that is also an InterceptStrategy class if (profile.isDefaultProfile()) { - LOG.info("Using custom default ThreadPoolProfile with id: " + id + " and implementation: " + profile); + LOG.info("Using custom default ThreadPoolProfile with id: " + entry.getKey() + " and implementation: " + profile); context.getExecutorServiceStrategy().setDefaultThreadPoolProfile(profile); - defaultIds.add(id); + defaultIds.add(entry.getKey()); } else { context.getExecutorServiceStrategy().registerThreadPoolProfile(profile); } Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfUtils.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfUtils.java?rev=1069596&r1=1069595&r2=1069596&view=diff ============================================================================== --- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfUtils.java (original) +++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfUtils.java Thu Feb 10 22:38:15 2011 @@ -19,6 +19,7 @@ package org.apache.camel.component.cxf.u import java.io.InputStream; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; @@ -139,9 +140,9 @@ public final class CxfUtils { } if (namespaces != null && namespaces.size() > 0) { - for (String key : namespaces.keySet()) { - String namespaceURI = namespaces.get(key); - writer.writeNamespace(key, namespaceURI); + for (Entry<String, String> entry : namespaces.entrySet()) { + String namespaceURI = entry.getValue(); + writer.writeNamespace(entry.getKey(), namespaceURI); } } Modified: camel/trunk/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/EventAdminProducer.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/EventAdminProducer.java?rev=1069596&r1=1069595&r2=1069596&view=diff ============================================================================== --- camel/trunk/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/EventAdminProducer.java (original) +++ camel/trunk/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/EventAdminProducer.java Thu Feb 10 22:38:15 2011 @@ -19,6 +19,7 @@ package org.apache.camel.component.event import java.util.Dictionary; import java.util.Hashtable; import java.util.Map; +import java.util.Map.Entry; import org.apache.camel.CamelContext; import org.apache.camel.CamelExchangeException; @@ -99,10 +100,11 @@ public class EventAdminProducer extends CamelContext context = endpoint.getCamelContext(); Map map = context.getTypeConverter().convertTo(Map.class, exchange, in.getBody()); Dictionary dict = new Hashtable(); - for (Object key : map.keySet()) { - String keyString = CamelContextHelper.convertTo(context, String.class, key); + for (Object object : map.entrySet()) { + Entry entry = (Entry) object; + String keyString = CamelContextHelper.convertTo(context, String.class, entry.getKey()); if (keyString != null) { - Object val = map.get(key); + Object val = entry.getValue(); // TODO: convert to acceptable value dict.put(keyString, val); } Modified: camel/trunk/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackDataFormat.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackDataFormat.java?rev=1069596&r1=1069595&r2=1069596&view=diff ============================================================================== --- camel/trunk/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackDataFormat.java (original) +++ camel/trunk/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackDataFormat.java Thu Feb 10 22:38:15 2011 @@ -24,6 +24,7 @@ import java.io.OutputStreamWriter; import java.io.Reader; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import net.sf.flatpack.DataSet; import net.sf.flatpack.DefaultParserFactory; @@ -83,8 +84,8 @@ public class FlatpackDataFormat implemen first = false; continue; } - for (String key : row.keySet()) { - writer.addRecordEntry(key, row.get(key)); + for (Entry<String, Object> entry : row.entrySet()) { + writer.addRecordEntry(entry.getKey(), entry.getValue()); } writer.nextRecord(); } Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java?rev=1069596&r1=1069595&r2=1069596&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java (original) +++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsBinding.java Thu Feb 10 22:38:15 2011 @@ -25,6 +25,7 @@ import java.util.Date; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import javax.jms.BytesMessage; @@ -550,10 +551,10 @@ public class JmsBinding { */ protected void populateMapMessage(MapMessage message, Map<?, ?> map, CamelContext context) throws JMSException { - for (Object key : map.keySet()) { - String keyString = CamelContextHelper.convertTo(context, String.class, key); + for (Entry<?, ?> entry : map.entrySet()) { + String keyString = CamelContextHelper.convertTo(context, String.class, entry.getKey()); if (keyString != null) { - message.setObject(keyString, map.get(key)); + message.setObject(keyString, entry.getValue()); } } } Modified: camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java?rev=1069596&r1=1069595&r2=1069596&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java (original) +++ camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java Thu Feb 10 22:38:15 2011 @@ -19,6 +19,8 @@ package org.apache.camel.component.jms; import java.util.Enumeration; import java.util.LinkedHashMap; import java.util.Map; +import java.util.Map.Entry; + import javax.jms.JMSException; import javax.jms.Message; @@ -71,8 +73,8 @@ public final class JmsMessageHelper { // redo the properties to keep jmsMessage.clearProperties(); - for (String key : map.keySet()) { - jmsMessage.setObjectProperty(key, map.get(key)); + for (Entry<String, Object> entry : map.entrySet()) { + jmsMessage.setObjectProperty(entry.getKey(), entry.getValue()); } return answer; Modified: camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneIndexer.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneIndexer.java?rev=1069596&r1=1069595&r2=1069596&view=diff ============================================================================== --- camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneIndexer.java (original) +++ camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneIndexer.java Thu Feb 10 22:38:15 2011 @@ -20,6 +20,7 @@ import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.Map; +import java.util.Map.Entry; import org.apache.camel.Exchange; import org.apache.camel.converter.IOConverter; @@ -66,12 +67,12 @@ public class LuceneIndexer { openIndexWriter(); Map<String, Object> headers = exchange.getIn().getHeaders(); add("exchangeId", exchange.getExchangeId(), true); - Iterator<String> iterator = headers.keySet().iterator(); - while (iterator.hasNext()) { - String field = iterator.next(); - String value = (String) headers.get(field); + for (Entry<String, Object> entry : headers.entrySet()) { + String field = entry.getKey(); + String value = (String) entry.getValue(); add(field, value, true); } + add("contents", exchange.getIn().getMandatoryBody(String.class), true); closeIndexWriter(); } Modified: camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java?rev=1069596&r1=1069595&r2=1069596&view=diff ============================================================================== --- camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java (original) +++ camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java Thu Feb 10 22:38:15 2011 @@ -19,6 +19,7 @@ package org.apache.camel.component.mail; import java.net.URI; import java.util.HashSet; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import org.apache.camel.CamelContext; @@ -79,10 +80,11 @@ public class MailComponent extends Defau // we cannot remove while iterating, as we will get a modification exception Set toRemove = new HashSet(); - for (Object key : parameters.keySet()) { - if (key.toString().startsWith("mail.")) { - config.getAdditionalJavaMailProperties().put(key, parameters.get(key)); - toRemove.add(key); + for (Object object : parameters.entrySet()) { + Entry entry = (Entry) object; + if (entry.getKey().toString().startsWith("mail.")) { + config.getAdditionalJavaMailProperties().put(entry.getKey(), entry.getValue()); + toRemove.add(entry.getKey()); } } Modified: camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/ContextScanRouteBuilderFinder.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/ContextScanRouteBuilderFinder.java?rev=1069596&r1=1069595&r2=1069596&view=diff ============================================================================== --- camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/ContextScanRouteBuilderFinder.java (original) +++ camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/ContextScanRouteBuilderFinder.java Thu Feb 10 22:38:15 2011 @@ -18,6 +18,7 @@ package org.apache.camel.spring; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import org.apache.camel.RoutesBuilder; import org.apache.camel.spi.PackageScanFilter; @@ -47,8 +48,10 @@ public class ContextScanRouteBuilderFind public void appendBuilders(List<RoutesBuilder> list) { Map beans = applicationContext.getBeansOfType(RoutesBuilder.class, true, true); - for (Object key : beans.keySet()) { - Object bean = beans.get(key); + for (Object object : beans.entrySet()) { + Entry entry = (Entry) object; + Object bean = entry.getValue(); + Object key = entry.getKey(); if (LOG.isTraceEnabled()) { LOG.trace("Found RouteBuilder with id: " + key + " -> " + bean);