Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class DataChunk {
- private int pageNumber;
- private byte[] data;
- }
- public class FooWriter implements ItemWriter<DataChunk> {
- private DataChunkAggregator dataChunkAggregator;
- public void write(List<? extends DataChunk> dataChunks) throws Exception {
- dataChunks.stream().forEach(chunk -> dataChunkAggregator.addChunk(chunk.getPageNumber(), chunk.getData()));
- }
- }
- public class FooAggregator {
- private Map<int, byte> pagedData; // Key sorted implementation
- public void addChunk(int pageNumber, byte[] data) {
- pagedData.put(pageNumber, data)
- }
- public byte[] aggregate() {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- pagedData.values.stream().forEach(data -> baos.write(data));
- return baos.toByteArray();
- }
- }
- public class ReportWritingTasklet implements TaskLet {
- private ReportRepository reportRepository;
- private FooAggregator fooAggregator;
- public RepeatStatus execute(StepContribution contribution, ChunkContext context) {
- byte[] data = fooAggregator.aggregate();
- reportRepository.getOne(reportId).setDataBytes(data);
- }
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <beans>
- <bean id=fooWriter class="FooWriter" scope="step"
- p:fooAggregator-ref="fooAggregator"/>
- <bean id="fooAggregator" class="FooAggregator"/>
- <bean id="reportWritingTasklet" class="ReportWritingTasklet" scope="step"
- p:fooAggregator-ref="fooAggregator"/>
- <batch:job id="fooJob">
- <batch:step id="generateReport" next="assembleReport">
- <batch:chunk reader="fooReader" processor="fooProcessor" writer="fooWriter"/>
- </batch:step>
- <batch:step id="assembleReport">
- <batch:tasklet class="ReportWritingTasklet"/>
- </batch:step>
- </batch:job>
- </beans>
- Caused by: java.lang.IllegalStateException: Cannot convert value of type [com.sun.proxy.$Proxy98 implementing org.springframework.aop.scope.ScopedObject,java.io.Serializable,org.springframework.aop.framework.AopInfrastructureBean,org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised] to required type [FooAggregator] for property 'fooAggregator': no matching editors or conversion strategy found
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement