@Test public void testWriteHeaderAndDeleteOnExit() throws Exception { writer.setHeaderCallback(new FlatFileHeaderCallback() { @Override public void writeHeader(Writer writer) throws IOException { writer.write("a\nb"); } }); writer.setShouldDeleteIfEmpty(true); writer.open(executionContext); assertTrue(outputFile.exists()); writer.close(); assertFalse(outputFile.exists()); }
writer.setFooterCallback(this.footerCallback); writer.setForceSync(this.forceSync); writer.setHeaderCallback(this.headerCallback); if (this.lineAggregator == null) { Assert.state(this.delimitedBuilder == null || this.formattedBuilder == null,
@Test public void testWriteHeaderAndDeleteOnExitReopen() throws Exception { writer.setHeaderCallback(new FlatFileHeaderCallback() { @Override public void writeHeader(Writer writer) throws IOException { writer.write("a\nb"); } }); writer.setShouldDeleteIfEmpty(true); writer.open(executionContext); writer.update(executionContext); assertTrue(outputFile.exists()); writer.close(); assertFalse(outputFile.exists()); writer.open(executionContext); writer.write(Collections.singletonList("test2")); assertEquals("a", readLine()); assertEquals("b", readLine()); assertEquals("test2", readLine()); }
@Test public void testWriteHeader() throws Exception { writer.setHeaderCallback(new FlatFileHeaderCallback() { @Override public void writeHeader(Writer writer) throws IOException { writer.write("a\nb"); } }); writer.open(executionContext); writer.write(Collections.singletonList(TEST_STRING)); writer.close(); String lineFromFile = readLine(); assertEquals("a", lineFromFile); lineFromFile = readLine(); assertEquals("b", lineFromFile); lineFromFile = readLine(); assertEquals(TEST_STRING, lineFromFile); }
@Test public void testWriteHeaderAfterRestartOnFirstChunk() throws Exception { writer.setHeaderCallback(new FlatFileHeaderCallback() { @Override public void writeHeader(Writer writer) throws IOException { writer.write("a\nb"); } }); writer.open(executionContext); writer.write(Collections.singletonList(TEST_STRING)); writer.close(); writer.open(executionContext); writer.write(Collections.singletonList(TEST_STRING)); writer.close(); String lineFromFile = readLine(); assertEquals("a", lineFromFile); lineFromFile = readLine(); assertEquals("b", lineFromFile); lineFromFile = readLine(); assertEquals(TEST_STRING, lineFromFile); lineFromFile = readLine(); assertEquals(null, lineFromFile); }
@Test public void testWriteWithAppendAfterHeaders() throws Exception { writer.setHeaderCallback(new FlatFileHeaderCallback() { @Override public void writeHeader(Writer writer) throws IOException { writer.write("a\nb"); } }); writer.setAppendAllowed(true); writer.open(executionContext); writer.write(Collections.singletonList("test1")); writer.close(); assertEquals("a", readLine()); assertEquals("b", readLine()); assertEquals("test1", readLine()); closeReader(); writer.open(executionContext); writer.write(Collections.singletonList("test2")); assertEquals("a", readLine()); assertEquals("b", readLine()); assertEquals("test1", readLine()); assertEquals("test2", readLine()); }
@Test public void testWriteHeaderAfterRestartOnSecondChunk() throws Exception { writer.setHeaderCallback(new FlatFileHeaderCallback() {
@Bean ItemWriter<StudentDTO> databaseCsvItemWriter(Environment environment) { FlatFileItemWriter<StudentDTO> csvFileWriter = new FlatFileItemWriter<>(); String exportFileHeader = environment.getRequiredProperty(PROPERTY_CSV_EXPORT_FILE_HEADER); StringHeaderWriter headerWriter = new StringHeaderWriter(exportFileHeader); csvFileWriter.setHeaderCallback(headerWriter); String exportFilePath = environment.getRequiredProperty(PROPERTY_CSV_EXPORT_FILE_PATH); csvFileWriter.setResource(new FileSystemResource(exportFilePath)); LineAggregator<StudentDTO> lineAggregator = createStudentLineAggregator(); csvFileWriter.setLineAggregator(lineAggregator); return csvFileWriter; }
@Bean ItemWriter<StudentDTO> databaseCsvItemWriter(Environment environment) { FlatFileItemWriter<StudentDTO> csvFileWriter = new FlatFileItemWriter<>(); String exportFileHeader = environment.getRequiredProperty(PROPERTY_CSV_EXPORT_FILE_HEADER); StringHeaderWriter headerWriter = new StringHeaderWriter(exportFileHeader); csvFileWriter.setHeaderCallback(headerWriter); String exportFilePath = environment.getRequiredProperty(PROPERTY_CSV_EXPORT_FILE_PATH); csvFileWriter.setResource(new FileSystemResource(exportFilePath)); LineAggregator<StudentDTO> lineAggregator = createStudentLineAggregator(); csvFileWriter.setLineAggregator(lineAggregator); return csvFileWriter; }
itemWriter.setHeaderCallback(new FlatFileHeaderCallback() {
writer.setFooterCallback(this.footerCallback); writer.setForceSync(this.forceSync); writer.setHeaderCallback(this.headerCallback); if (this.lineAggregator == null) { Assert.state(this.delimitedBuilder == null || this.formattedBuilder == null,
@Override public void open(ExecutionContext executionContext){ RawItemFlatFileHeaderCallback headerCallBack = new RawItemFlatFileHeaderCallback(); String[] columnNames = (String[])executionContext.get("COLUMNS_NAMES_KEY"); headerCallBack.setColumnNames(columnNames); headerCallBack.setDelimiter(delimiter); super.setHeaderCallback(headerCallBack); RawItemLineAggregator aggregator = new RawItemLineAggregator(); aggregator.setColumnNames(columnNames); aggregator.setDelimiter(delimiter); super.setLineAggregator((LineAggregator<RawItem>)aggregator); super.open(executionContext); }