Hi Guys, I'm a bit new to the pull request contributions - was the request accepted and I should close now, or is there something else to happen first?
On 28 September 2014 07:19, Willem Jiang <[email protected]> wrote: > Hi Claus, > > Thanks for pointing that out, I just committed a quick fix for it. > > Regards, > > -- > Willem Jiang > > Red Hat, Inc. > Web: http://www.redhat.com > Blog: http://willemjiang.blogspot.com (English) > http://jnn.iteye.com (Chinese) > Twitter: willemjiang > Weibo: 姜宁willem > > > > On September 28, 2014 at 1:28:22 PM, Claus Ibsen ([email protected]) > wrote: > > Hi > > > > Please use the unicode number of the non Ascii chars in the source > > code, eg \uNNNN instead of those A characters. > > > > On Sun, Sep 28, 2014 at 5:30 AM, wrote: > > > Repository: camel > > > Updated Branches: > > > refs/heads/master bd06a4a5f -> c9e1bc87e > > > > > > > > > CAMEL-7876 ensure GroupIterator uses the exchange's CHARSET_NAME > property > > > > > > > > > Project: http://git-wip-us.apache.org/repos/asf/camel/repo > > > Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/80518e29 > > > Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/80518e29 > > > Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/80518e29 > > > > > > Branch: refs/heads/master > > > Commit: 80518e29d93745bcad341e5c02bef8a0e31ece61 > > > Parents: bd06a4a > > > Author: Tom Ellis > > > Authored: Sat Sep 27 17:27:33 2014 +0100 > > > Committer: Willem Jiang > > > Committed: Sun Sep 28 11:17:55 2014 +0800 > > > > > > ---------------------------------------------------------------------- > > > .../apache/camel/builder/ExpressionBuilder.java | 2 +- > > > .../org/apache/camel/util/GroupIterator.java | 14 ++++---- > > > .../apache/camel/util/GroupIteratorTest.java | 35 +++++++++++++++++++- > > > 3 files changed, 42 insertions(+), 9 deletions(-) > > > ---------------------------------------------------------------------- > > > > > > > > > > http://git-wip-us.apache.org/repos/asf/camel/blob/80518e29/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java > > > ---------------------------------------------------------------------- > > > diff --git > a/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java > > > b/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java > > > index 4473fe7..20f00b9 100644 > > > --- > a/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java > > > +++ > b/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java > > > @@ -1294,7 +1294,7 @@ public final class ExpressionBuilder { > > > // evaluate expression as iterator > > > Iterator it = expression.evaluate(exchange, Iterator.class); > > > ObjectHelper.notNull(it, "expression: " + expression + " evaluated on > " + exchange > > + " must return an java.util.Iterator"); > > > - return new GroupIterator(exchange.getContext(), it, token, group); > > > + return new GroupIterator(exchange, it, token, group); > > > } > > > > > > @Override > > > > > > > http://git-wip-us.apache.org/repos/asf/camel/blob/80518e29/camel-core/src/main/java/org/apache/camel/util/GroupIterator.java > > > ---------------------------------------------------------------------- > > > diff --git > a/camel-core/src/main/java/org/apache/camel/util/GroupIterator.java > > b/camel-core/src/main/java/org/apache/camel/util/GroupIterator.java > > > index 158dbed..4b6f9ad 100644 > > > --- a/camel-core/src/main/java/org/apache/camel/util/GroupIterator.java > > > +++ b/camel-core/src/main/java/org/apache/camel/util/GroupIterator.java > > > @@ -23,7 +23,7 @@ import java.io.InputStream; > > > import java.util.Iterator; > > > import java.util.Scanner; > > > > > > -import org.apache.camel.CamelContext; > > > +import org.apache.camel.Exchange; > > > import org.apache.camel.NoTypeConversionAvailableException; > > > > > > /** > > > @@ -37,7 +37,7 @@ import > org.apache.camel.NoTypeConversionAvailableException; > > > */ > > > public final class GroupIterator implements Iterator, Closeable { > > > > > > - private final CamelContext camelContext; > > > + private final Exchange exchange; > > > private final Iterator it; > > > private final String token; > > > private final int group; > > > @@ -53,8 +53,8 @@ public final class GroupIterator implements Iterator, > > Closeable { > > > * @param group number of parts to group together > > > * @throws IllegalArgumentException is thrown if group is not a > positive number > > > */ > > > - public GroupIterator(CamelContext camelContext, Iterator it, String > token, > > int group) { > > > - this.camelContext = camelContext; > > > + public GroupIterator(Exchange exchange, Iterator it, String token, > int group) > > { > > > + this.exchange = exchange; > > > this.it = it; > > > this.token = token; > > > this.group = group; > > > @@ -130,15 +130,15 @@ public final class GroupIterator implements > Iterator, > > Closeable { > > > bos.write(bytes); > > > } else if (data != null) { > > > // convert to input stream > > > - InputStream is = > camelContext.getTypeConverter().mandatoryConvertTo(InputStream.class, > > data); > > > + InputStream is = > exchange.getContext().getTypeConverter().mandatoryConvertTo(InputStream.class, > > data); > > > IOHelper.copy(is, bos); > > > } > > > > > > count++; > > > } > > > > > > - // prepare and return answer as String > > > - String answer = bos.toString(); > > > + // prepare and return answer as String using exchange's charset > > > + String answer = bos.toString(IOHelper.getCharsetName(exchange)); > > > bos.reset(); > > > return answer; > > > } > > > > > > > http://git-wip-us.apache.org/repos/asf/camel/blob/80518e29/camel-core/src/test/java/org/apache/camel/util/GroupIteratorTest.java > > > ---------------------------------------------------------------------- > > > diff --git > a/camel-core/src/test/java/org/apache/camel/util/GroupIteratorTest.java > > b/camel-core/src/test/java/org/apache/camel/util/GroupIteratorTest.java > > > index 4dbbac5..c5c3e33 100644 > > > --- > a/camel-core/src/test/java/org/apache/camel/util/GroupIteratorTest.java > > > +++ > b/camel-core/src/test/java/org/apache/camel/util/GroupIteratorTest.java > > > @@ -16,11 +16,17 @@ > > > */ > > > package org.apache.camel.util; > > > > > > +import java.io.ByteArrayInputStream; > > > +import java.nio.charset.Charset; > > > +import java.nio.charset.StandardCharsets; > > > +import java.util.Arrays; > > > import java.util.Scanner; > > > > > > import org.apache.camel.CamelContext; > > > +import org.apache.camel.Exchange; > > > import org.apache.camel.TestSupport; > > > import org.apache.camel.impl.DefaultCamelContext; > > > +import org.apache.camel.impl.DefaultExchange; > > > > > > /** > > > * > > > @@ -28,12 +34,15 @@ import org.apache.camel.impl.DefaultCamelContext; > > > public class GroupIteratorTest extends TestSupport { > > > > > > private CamelContext context; > > > + private Exchange exchange; > > > > > > @Override > > > public void setUp() throws Exception { > > > super.setUp(); > > > context = new DefaultCamelContext(); > > > context.start(); > > > + exchange = new DefaultExchange(context); > > > + > > > } > > > > > > @Override > > > @@ -47,7 +56,7 @@ public class GroupIteratorTest extends TestSupport { > > > Scanner scanner = new Scanner(s); > > > scanner.useDelimiter("\n"); > > > > > > - GroupIterator gi = new GroupIterator(context, scanner, "\n", 3); > > > + GroupIterator gi = new GroupIterator(exchange, scanner, "\n", 3); > > > > > > assertTrue(gi.hasNext()); > > > assertEquals("ABC\nDEF\nGHI", gi.next()); > > > @@ -58,4 +67,28 @@ public class GroupIteratorTest extends TestSupport { > > > IOHelper.close(gi); > > > } > > > > > > + public void testGroupIteratorWithDifferentEncodingFromDefault() > throws Exception > > { > > > + if (Charset.defaultCharset() == StandardCharsets.UTF_8) { > > > + // can't think of test case where having default charset set to > UTF-8 is affected > > > + return; > > > + } > > > + > > > + byte[] buf = "£1\n£2\n".getBytes(StandardCharsets.UTF_8); > > > + > > > + ByteArrayInputStream in = new ByteArrayInputStream(buf); > > > + > > > + Scanner scanner = new Scanner(in, > StandardCharsets.UTF_8.displayName()); > > > + scanner.useDelimiter("\n"); > > > + > > > + exchange.setProperty(Exchange.CHARSET_NAME, > StandardCharsets.UTF_8.displayName()); > > > + GroupIterator gi = new GroupIterator(exchange, scanner, "\n", 1); > > > + > > > + assertTrue(gi.hasNext()); > > > + assertEquals("£1", gi.next()); > > > + assertEquals("£2", gi.next()); > > > + assertFalse(gi.hasNext()); > > > + > > > + IOHelper.close(gi); > > > + } > > > + > > > } > > > > > > > > > > > -- > > Claus Ibsen > > ----------------- > > Red Hat, Inc. > > Email: [email protected] > > Twitter: davsclaus > > Blog: http://davsclaus.com > > Author of Camel in Action: http://www.manning.com/ibsen > > hawtio: http://hawt.io/ > > fabric8: http://fabric8.io/ > > > >
