Author: davsclaus
Date: Tue Jul 14 12:24:37 2009
New Revision: 793883

URL: http://svn.apache.org/viewvc?rev=793883&view=rev
Log:
Merged revisions 793862 via svnmerge from 
https://svn.apache.org/repos/asf/camel/trunk

........
  r793862 | davsclaus | 2009-07-14 13:39:09 +0200 (Tue, 14 Jul 2009) | 1 line
  
  MR-216: Performance optimization for recipientList and type converter to 
String from numeric values.
........

Added:
    
camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/RecipeientListWithSimpleExpressionTest.java
      - copied, changed from r793862, 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RecipeientListWithSimpleExpressionTest.java
Modified:
    camel/branches/camel-1.x/   (props changed)
    
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java
    
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java

Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jul 14 12:24:37 2009
@@ -1 +1 @@
-/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704,748392,748436,748821,749563-749564,749574,749628-749629,749936,749956,750017,750334,750396,750761,750796,752068,752117,752418,752751-752755,752764-752773,752956,753087,753101,753175,755136,755487,756313,756348,756870,756939,757636,757693,757743,757865,758539,758563,758600,758617,758692,758990,759362,759453,759887,759931,760003,760890,760909,760937,761194,761536,761583,761607,762047,762633,762650,762935,763095,763484,763551,765154,765686,765729,765743,765824,766016,766289,766584,766588,766590,766602,766673,767403,767824,768342,769239,769346,769368,769434,770172,770906,771303,773193,773446,773781,774192,774383,774658-774659,776198,776289,776504,776975,778102,778689-778701,779121,779143,779489,781314-781349,781775,781
 
923,781974,781993,782557,782594,782681,782886,782918-782923,783204,783248,783363,783639,783704,785564,785584,785599,787206,787581,787598,787605,787928,788393,789121,789703,790560,790936,791379,791476,791767,792038,792381,792398,792899,793359,793518,793547-793555
+/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704,748392,748436,748821,749563-749564,749574,749628-749629,749936,749956,750017,750334,750396,750761,750796,752068,752117,752418,752751-752755,752764-752773,752956,753087,753101,753175,755136,755487,756313,756348,756870,756939,757636,757693,757743,757865,758539,758563,758600,758617,758692,758990,759362,759453,759887,759931,760003,760890,760909,760937,761194,761536,761583,761607,762047,762633,762650,762935,763095,763484,763551,765154,765686,765729,765743,765824,766016,766289,766584,766588,766590,766602,766673,767403,767824,768342,769239,769346,769368,769434,770172,770906,771303,773193,773446,773781,774192,774383,774658-774659,776198,776289,776504,776975,778102,778689-778701,779121,779143,779489,781314-781349,781775,781
 
923,781974,781993,782557,782594,782681,782886,782918-782923,783204,783248,783363,783639,783704,785564,785584,785599,787206,787581,787598,787605,787928,788393,789121,789703,790560,790936,791379,791476,791767,792038,792381,792398,792899,793359,793518,793547-793555,793862

Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: 
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java?rev=793883&r1=793882&r2=793883&view=diff
==============================================================================
--- 
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java
 (original)
+++ 
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java
 Tue Jul 14 12:24:37 2009
@@ -207,6 +207,19 @@
         }
     }
 
+    @Converter
+    public static String toString(Integer value) {
+        return value.toString();
+    }
+
+    @Converter
+    public static String toString(Long value) {
+        return value.toString();
+    }
 
+    @Converter
+    public static String toString(Boolean value) {
+        return value.toString();
+    }
 
 }

Modified: 
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java?rev=793883&r1=793882&r2=793883&view=diff
==============================================================================
--- 
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
 (original)
+++ 
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
 Tue Jul 14 12:24:37 2009
@@ -321,10 +321,33 @@
                 }
             };
         } else if (value instanceof String) {
-            Scanner scanner = new Scanner((String)value);
-            // use comma as delimiter for String values
-            scanner.useDelimiter(",");
-            return scanner;
+            final String s = (String) value;
+
+            // this code is optimized to only use a Scanner if needed, eg 
there is a delimiter
+
+            if (s.contains(",")) {
+                // use a scanner if it contains the delimtor
+                Scanner scanner = new Scanner((String)value);
+                scanner.useDelimiter(",");
+                return scanner;
+            } else {
+                // use a plain iterator that returns the value as is as there 
are only a single value
+                return new Iterator<String>() {
+                    int idx = -1;
+
+                    public boolean hasNext() {
+                        return ++idx == 0;
+                    }
+
+                    public String next() {
+                        return s;
+                    }
+
+                    public void remove() {
+                        throw new UnsupportedOperationException();
+                    }
+                };
+            }
         } else {
             return Collections.singletonList(value).iterator();
         }

Copied: 
camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/RecipeientListWithSimpleExpressionTest.java
 (from r793862, 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RecipeientListWithSimpleExpressionTest.java)
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/RecipeientListWithSimpleExpressionTest.java?p2=camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/RecipeientListWithSimpleExpressionTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RecipeientListWithSimpleExpressionTest.java&r1=793862&r2=793883&rev=793883&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RecipeientListWithSimpleExpressionTest.java
 (original)
+++ 
camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/RecipeientListWithSimpleExpressionTest.java
 Tue Jul 14 12:24:37 2009
@@ -72,7 +72,7 @@
     public static class MyBeanRouter {
 
         @org.apache.camel.RecipientList
-        public String route(@Header("queue") String queue) {
+        public String route(@Header(name = "queue") String queue) {
             return "mock:"+ queue;
         }
     }


Reply via email to