@Before public void setUp() throws Exception { this.delegate = new FlatFileItemWriter<>(); this.delegate.setLineAggregator(new PassThroughLineAggregator<>()); this.file = File.createTempFile(MultiResourceItemWriterFlatFileTests.class.getSimpleName(), null); this.writer = null; }
@Before public void setUp() throws Exception { super.createFile(); delegate = new FlatFileItemWriter<>(); delegate.setLineAggregator(new PassThroughLineAggregator<>()); }
writer.setLineAggregator(this.lineAggregator); writer.setLineSeparator(this.lineSeparator); writer.setResource(this.resource);
/** * Regular usage of <code>write(String)</code> method * * @throws Exception */ @Test public void testWriteWithConverterAndString() throws Exception { writer.setLineAggregator(new LineAggregator<String>() { @Override public String aggregate(String item) { return "FOO:" + item; } }); writer.open(executionContext); writer.write(Collections.singletonList(TEST_STRING)); String lineFromFile = readLine(); assertEquals("FOO:" + TEST_STRING, lineFromFile); }
/** * Create temporary output file, define mock behaviour, set dependencies and initialize the object under test */ @Before public void setUp() throws Exception { outputFile = File.createTempFile("flatfile-test-output-", ".tmp"); writer.setResource(new FileSystemResource(outputFile)); writer.setLineSeparator("\n"); writer.setLineAggregator(new PassThroughLineAggregator<>()); writer.afterPropertiesSet(); writer.setSaveState(true); writer.setEncoding("UTF-8"); executionContext = new ExecutionContext(); }
/** * Regular usage of <code>write(String)</code> method * * @throws Exception */ @Test public void testWriteWithConverter() throws Exception { writer.setLineAggregator(new LineAggregator<String>() { @Override public String aggregate(String item) { return "FOO:" + item; } }); String data = "string"; writer.open(executionContext); writer.write(Collections.singletonList(data)); String lineFromFile = readLine(); // converter not used if input is String assertEquals("FOO:" + data, lineFromFile); }
@Test public void testOpenWithNonWritableFile() throws Exception { writer = new FlatFileItemWriter<>(); writer.setLineAggregator(new PassThroughLineAggregator<>()); FileSystemResource file = new FileSystemResource("build/no-such-file.foo"); writer.setResource(file); new File(file.getFile().getParent()).mkdirs(); file.getFile().createNewFile(); assertTrue("Test file must exist: " + file, file.exists()); assertTrue("Test file set to read-only: " + file, file.getFile().setReadOnly()); assertFalse("Should be readonly file: " + file, file.getFile().canWrite()); writer.afterPropertiesSet(); try { writer.open(executionContext); fail("Expected IllegalStateException"); } catch (IllegalStateException e) { String message = e.getMessage(); assertTrue("Message does not contain 'writable': " + message, message.indexOf("writable") >= 0); } }
@Test public void testDefaultStreamContext() throws Exception { writer = new FlatFileItemWriter<>(); writer.setResource(new FileSystemResource(outputFile)); writer.setLineAggregator(new PassThroughLineAggregator<>()); writer.afterPropertiesSet(); writer.setSaveState(true); writer.open(executionContext); writer.update(executionContext); assertNotNull(executionContext); assertEquals(2, executionContext.entrySet().size()); assertEquals(0, executionContext.getLong(ClassUtils.getShortName(FlatFileItemWriter.class) + ".current.count")); }
writer.setLineAggregator(new LineAggregator<String>() {
@Bean public FlatFileItemWriter<Customer> jsonItemWriter() throws Exception { FlatFileItemWriter<Customer> itemWriter = new FlatFileItemWriter<>(); itemWriter.setLineAggregator(new CustomerLineAggregator()); String customerOutputPath = File.createTempFile("customerOutput", ".out").getAbsolutePath(); System.out.println(">> Output Path: " + customerOutputPath); itemWriter.setResource(new FileSystemResource(customerOutputPath)); itemWriter.afterPropertiesSet(); return itemWriter; }
@Bean public FlatFileItemWriter<Customer> customerItemWriter() throws Exception { FlatFileItemWriter<Customer> itemWriter = new FlatFileItemWriter<>(); itemWriter.setLineAggregator(new CustomerLineAggregator()); String customerOutputPath = File.createTempFile("customerOutput", ".out").getAbsolutePath(); System.out.println(">> Output Path: " + customerOutputPath); itemWriter.setResource(new FileSystemResource(customerOutputPath)); itemWriter.afterPropertiesSet(); return itemWriter; }
@Bean public FlatFileItemWriter<Customer> customerItemWriter() throws Exception { FlatFileItemWriter<Customer> itemWriter = new FlatFileItemWriter<>(); itemWriter.setLineAggregator(new CustomerLineAggregator()); String customerOutputPath = File.createTempFile("customerOutput", ".out").getAbsolutePath(); System.out.println(">> Output Path: " + customerOutputPath); itemWriter.setResource(new FileSystemResource(customerOutputPath)); itemWriter.afterPropertiesSet(); return itemWriter; }
@Bean public FlatFileItemWriter<Customer> customerItemWriter() throws Exception { FlatFileItemWriter<Customer> itemWriter = new FlatFileItemWriter<>(); itemWriter.setLineAggregator(new CustomerLineAggregator()); String customerOutputPath = File.createTempFile("customerOutput", ".out").getAbsolutePath(); System.out.println(">> Output Path: " + customerOutputPath); itemWriter.setResource(new FileSystemResource(customerOutputPath)); itemWriter.afterPropertiesSet(); return itemWriter; }
@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.setLineAggregator(lineAggregator(null)); itemWriter.setEncoding("UTF-8"); itemWriter.setSaveState(true);
@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); }
writer.setLineAggregator(this.lineAggregator); writer.setLineSeparator(this.lineSeparator); writer.setResource(this.resource);