use of java.io.InputStreamReader in project camel by apache.
the class IOConverterCharsetTest method testToReaderFileWithCharsetLatin1.
public void testToReaderFileWithCharsetLatin1() throws Exception {
File file = new File("src/test/resources/org/apache/camel/converter/german.iso-8859-1.txt");
BufferedReader reader = IOConverter.toReader(file, "ISO-8859-1");
BufferedReader naiveReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "ISO-8859-1"));
try {
String line = reader.readLine();
String naiveLine = naiveReader.readLine();
assertEquals(naiveLine, line);
assertEquals(CONTENT, line);
} finally {
reader.close();
naiveReader.close();
}
}
use of java.io.InputStreamReader in project camel by apache.
the class IOConverterCharsetTest method testToInputStreamFileWithCharsetUTF8.
public void testToInputStreamFileWithCharsetUTF8() throws Exception {
switchToDefaultCharset("UTF-8");
File file = new File("src/test/resources/org/apache/camel/converter/german.utf-8.txt");
InputStream in = IOConverter.toInputStream(file, "UTF-8");
// do read with default charset!
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
BufferedReader naiveReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
try {
String line = reader.readLine();
String naiveLine = naiveReader.readLine();
assertEquals(naiveLine, line);
assertEquals(CONTENT, line);
} finally {
reader.close();
naiveReader.close();
}
}
use of java.io.InputStreamReader in project camel by apache.
the class IOConverterCharsetTest method testToInputStreamFileWithCharsetLatin1.
public void testToInputStreamFileWithCharsetLatin1() throws Exception {
switchToDefaultCharset("UTF-8");
File file = new File("src/test/resources/org/apache/camel/converter/german.iso-8859-1.txt");
InputStream in = IOConverter.toInputStream(file, "ISO-8859-1");
// do read with default charset!
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
BufferedReader naiveReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "ISO-8859-1"));
try {
String line = reader.readLine();
String naiveLine = naiveReader.readLine();
assertEquals(naiveLine, line);
assertEquals(CONTENT, line);
} finally {
reader.close();
naiveReader.close();
}
}
use of java.io.InputStreamReader in project camel by apache.
the class MultiCastParallelAndStreamCachingTest method testReaderCache.
/**
* Tests the ReaderCache.
*
* The sent InputStreamReader is transformed to a ReaderCache before the
* multi-cast processor is called.
*
* @throws Exception
*/
public void testReaderCache() throws Exception {
// sharp-s
String abcScharpS = "ABCĂ";
MockEndpoint mock = getMockEndpoint("mock:resulta");
mock.expectedBodiesReceived(abcScharpS);
mock = getMockEndpoint("mock:resultb");
mock.expectedBodiesReceived(abcScharpS);
InputStreamReader isr = new InputStreamReader(new ByteArrayInputStream(abcScharpS.getBytes("ISO-8859-1")), "ISO-8859-1");
template.sendBody("direct:start", isr);
assertMockEndpointsSatisfied();
}
use of java.io.InputStreamReader in project camel by apache.
the class BindyKeyValuePairDataFormat method unmarshal.
public Object unmarshal(Exchange exchange, InputStream inputStream) throws Exception {
BindyKeyValuePairFactory factory = (BindyKeyValuePairFactory) getFactory();
// List of Pojos
List<Map<String, Object>> models = new ArrayList<Map<String, Object>>();
// Pojos of the model
Map<String, Object> model;
// Map to hold the model @OneToMany classes while binding
Map<String, List<Object>> lists = new HashMap<String, List<Object>>();
InputStreamReader in = new InputStreamReader(inputStream, IOHelper.getCharsetName(exchange));
// Scanner is used to read big file
Scanner scanner = new Scanner(in);
// Retrieve the pair separator defined to split the record
ObjectHelper.notNull(factory.getPairSeparator(), "The pair separator property of the annotation @Message");
String separator = factory.getPairSeparator();
int count = 0;
try {
while (scanner.hasNextLine()) {
// Read the line
String line = scanner.nextLine().trim();
if (ObjectHelper.isEmpty(line)) {
// skip if line is empty
continue;
}
// Increment counter
count++;
// Create POJO
model = factory.factory();
// Split the message according to the pair separator defined in
// annotated class @Message
List<String> result = Arrays.asList(line.split(separator));
if (result.size() == 0 || result.isEmpty()) {
throw new java.lang.IllegalArgumentException("No records have been defined in the KVP");
}
if (result.size() > 0) {
// Bind data from message with model classes
// Counter is used to detect line where error occurs
factory.bind(result, model, count, lists);
// Link objects together
factory.link(model);
// Add objects graph to the list
models.add(model);
LOG.debug("Graph of objects created: {}", model);
}
}
// If this is the case (correspond to an empty stream, ...)
if (models.size() == 0) {
throw new java.lang.IllegalArgumentException("No records have been defined in the CSV");
} else {
return extractUnmarshalResult(models);
}
} finally {
scanner.close();
IOHelper.close(in, "in", LOG);
}
}
Aggregations