Advertisement
Guest User

Untitled

a guest
Aug 4th, 2015
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. public class DataChunk {
  2. private int pageNumber;
  3. private byte[] data;
  4. }
  5.  
  6. public class FooWriter implements ItemWriter<DataChunk> {
  7.  
  8. private DataChunkAggregator dataChunkAggregator;
  9.  
  10. public void write(List<? extends DataChunk> dataChunks) throws Exception {
  11. dataChunks.stream().forEach(chunk -> dataChunkAggregator.addChunk(chunk.getPageNumber(), chunk.getData()));
  12. }
  13. }
  14.  
  15. public class FooAggregator {
  16. private Map<int, byte> pagedData; // Key sorted implementation
  17.  
  18. public void addChunk(int pageNumber, byte[] data) {
  19. pagedData.put(pageNumber, data)
  20. }
  21.  
  22. public byte[] aggregate() {
  23. ByteArrayOutputStream baos = new ByteArrayOutputStream();
  24. pagedData.values.stream().forEach(data -> baos.write(data));
  25. return baos.toByteArray();
  26. }
  27. }
  28.  
  29. public class ReportWritingTasklet implements TaskLet {
  30.  
  31. private ReportRepository reportRepository;
  32. private FooAggregator fooAggregator;
  33.  
  34. public RepeatStatus execute(StepContribution contribution, ChunkContext context) {
  35. byte[] data = fooAggregator.aggregate();
  36. reportRepository.getOne(reportId).setDataBytes(data);
  37. }
  38. }
  39.  
  40. <?xml version="1.0" encoding="UTF-8"?>
  41. <beans>
  42. <bean id=fooWriter class="FooWriter" scope="step"
  43. p:fooAggregator-ref="fooAggregator"/>
  44.  
  45. <bean id="fooAggregator" class="FooAggregator"/>
  46.  
  47. <bean id="reportWritingTasklet" class="ReportWritingTasklet" scope="step"
  48. p:fooAggregator-ref="fooAggregator"/>
  49.  
  50. <batch:job id="fooJob">
  51. <batch:step id="generateReport" next="assembleReport">
  52. <batch:chunk reader="fooReader" processor="fooProcessor" writer="fooWriter"/>
  53. </batch:step>
  54. <batch:step id="assembleReport">
  55. <batch:tasklet class="ReportWritingTasklet"/>
  56. </batch:step>
  57. </batch:job>
  58. </beans>
  59.  
  60. 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