List of usage examples for org.springframework.batch.item.file.mapping PassThroughFieldSetMapper PassThroughFieldSetMapper
PassThroughFieldSetMapper
From source file:de.langmi.spring.batch.examples.readers.file.csv.CsvFlatFileItemReaderTest.java
/** * Test should read succesfully.//w w w .j a va2 s.c o m * * @throws Exception */ @Test public void testSuccessfulReading() throws Exception { // init linetokenizer DelimitedLineTokenizer lineTokenizer = new DelimitedLineTokenizer(); lineTokenizer.setNames(new String[] { "id", "value" }); // init linemapper DefaultLineMapper<FieldSet> lineMapper = new DefaultLineMapper<FieldSet>(); lineMapper.setLineTokenizer(lineTokenizer); lineMapper.setFieldSetMapper(new PassThroughFieldSetMapper()); // init reader reader.setLineMapper(lineMapper); reader.setResource(new FileSystemResource(INPUT_FILE)); // open, provide "mock" ExecutionContext reader.open(MetaDataInstanceFactory.createStepExecution().getExecutionContext()); // read try { int count = 0; FieldSet line; while ((line = reader.read()) != null) { // really test for the fieldSet names and values assertEquals("id", line.getNames()[0]); assertEquals(String.valueOf(count), line.getValues()[0]); assertEquals("value", line.getNames()[1]); // csv contains entry like '0,foo0' assertEquals("foo" + String.valueOf(count), line.getValues()[1]); count++; } assertEquals(EXPECTED_COUNT, count); } catch (Exception e) { throw e; } finally { reader.close(); } }
From source file:com.springsource.html5expense.config.BatchConfig.java
@Bean @Scope("step")// w w w .j a v a2 s. co m public FlatFileItemReader reader(@Value("#{jobParameters[file]}") String resource) { File f = new File(this.batchFileDirectory, resource + ".csv"); DelimitedLineTokenizer del = new DelimitedLineTokenizer(); del.setNames("date,amount,category,merchant".split(",")); del.setDelimiter(DelimitedLineTokenizer.DELIMITER_COMMA); DefaultLineMapper<FieldSet> defaultLineMapper = new DefaultLineMapper<FieldSet>(); defaultLineMapper.setLineTokenizer(del); defaultLineMapper.setFieldSetMapper(new PassThroughFieldSetMapper()); defaultLineMapper.afterPropertiesSet(); FlatFileItemReader<FieldSet> fileItemReader = new FlatFileItemReader<FieldSet>(); fileItemReader.setLineMapper(defaultLineMapper); fileItemReader.setResource(new FileSystemResource(f)); return fileItemReader; }
From source file:org.springframework.batch.admin.sample.LeadRandomizer.java
@Test public void testLeads() throws Exception { FlatFileItemReader<FieldSet> reader = new FlatFileItemReader<FieldSet>(); reader.setResource(new ClassPathResource("/data/test.txt")); DefaultLineMapper<FieldSet> lineMapper = new DefaultLineMapper<FieldSet>(); lineMapper.setLineTokenizer(new DelimitedLineTokenizer()); lineMapper.setFieldSetMapper(new PassThroughFieldSetMapper()); reader.setLinesToSkip(1);//from w w w . j a va 2s. c o m final List<String> headers = new ArrayList<String>(); reader.setSkippedLinesCallback(new LineCallbackHandler() { public void handleLine(String line) { headers.add(line); } }); reader.setLineMapper(lineMapper); reader.open(new ExecutionContext()); List<FieldSet> list = new ArrayList<FieldSet>(); FieldSet item = reader.read(); while (item != null) { list.add(item); item = reader.read(); } assertEquals(7, list.size()); FlatFileItemWriter<FieldSet> writer = new FlatFileItemWriter<FieldSet>(); FileSystemResource resource = new FileSystemResource("target/output/output.txt"); FileUtils.deleteQuietly(resource.getFile()); writer.setResource(resource); writer.setHeaderCallback(new FlatFileHeaderCallback() { public void writeHeader(Writer writer) throws IOException { for (String header : headers) { writer.write(header); } } }); writer.setLineAggregator(new DelimitedLineAggregator<FieldSet>()); writer.open(new ExecutionContext()); String[] names = getFields(list, 1); String[] country = getFields(list, 2); String[] products = getFields(list, 3); double[] amounts = getMinMax(list, 4); NumberFormat formatter = new DecimalFormat("#.##"); int count = 20; for (int i = 0; i < 100; i++) { List<FieldSet> items = new ArrayList<FieldSet>(); for (FieldSet fieldSet : list) { String[] values = fieldSet.getValues(); values[0] = "" + (count++); values[1] = choose(names); values[2] = choose(country); values[3] = choose(products); values[4] = formatter.format(random(amounts)); items.add(new DefaultFieldSet(values)); } writer.write(items); } writer.close(); }