@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; }
@Test public void testAfterPropertiesSetChecksMandatory() throws Exception { writer = new FlatFileItemWriter<>(); try { writer.afterPropertiesSet(); fail("Expected IllegalArgumentException"); } catch (IllegalArgumentException e) { // expected } }
@Before public void setUp() throws Exception { super.createFile(); delegate = new FlatFileItemWriter<>(); delegate.setLineAggregator(new PassThroughLineAggregator<>()); }
FlatFileItemWriter<T> writer = new FlatFileItemWriter<>();
@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")); }
@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> 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 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; }
@Value("#{jobParameters[targetResource]}") String targetResource) FlatFileItemWriter<Binding> itemWriter = new FlatFileItemWriter<Binding>();
FlatFileItemWriter<T> writer = new FlatFileItemWriter<>();