Hi Maybe related to this I get this compile error now
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project camel-core: Compilation failure [ERROR] /Users/davsclaus/workspace/camel/camel-core/src/main/java/org/apache/camel/util/GroupIterator.java:[158,33] error: cannot find symbol [ERROR] -> [Help 1] On Sun, Sep 28, 2014 at 7:20 AM, 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, <[email protected]> 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 <[email protected]> >> Authored: Sat Sep 27 17:27:33 2014 +0100 >> Committer: Willem Jiang <[email protected]> >> 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<Object>, 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<Object>, 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<Object>, 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/ -- 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/
