public <T> ChunkRequest<T> getRequest(List<? extends T> items) { return new ChunkRequest<>(current.incrementAndGet(), items, getJobId(), createStepContribution()); }
Chunk<S> chunk = new Chunk<>(chunkRequest.getItems()); Throwable failure = null; try {
/** * * @see ChunkHandler#handleChunk(ChunkRequest) */ @ServiceActivator public ChunkResponse handleChunk(ChunkRequest<S> chunkRequest) throws Exception { if (logger.isDebugEnabled()) { logger.debug("Handling chunk: " + chunkRequest); } StepContribution stepContribution = chunkRequest.getStepContribution(); Throwable failure = process(chunkRequest, stepContribution); if (failure != null) { logger.debug("Failed chunk", failure); return new ChunkResponse(false, chunkRequest.getSequence(), chunkRequest.getJobId(), stepContribution, failure.getClass().getName() + ": " + failure.getMessage()); } if (logger.isDebugEnabled()) { logger.debug("Completed chunk handling with " + stepContribution); } return new ChunkResponse(true, chunkRequest.getSequence(), chunkRequest.getJobId(), stepContribution); }
@Test public void testSerializable() throws Exception { @SuppressWarnings("unchecked") ChunkRequest<String> result = (ChunkRequest<String>) SerializationUtils.deserialize(SerializationUtils .serialize(request)); assertNotNull(result.getStepContribution()); assertEquals(111L, result.getJobId()); assertEquals(2, result.getItems().size()); }
@Test public void testGetJobId() { assertEquals(111L, request.getJobId()); }
@Test public void testGetStepContribution() { assertNotNull(request.getStepContribution()); }
@Test public void testToString() { System.err.println(request.toString()); }
@SuppressWarnings({"unchecked", "rawtypes"}) private GenericMessage<ChunkRequest> getSimpleMessage(String string, Long jobId) { StepContribution stepContribution = new JobExecution(new JobInstance(0L, "job"), new JobParameters()) .createStepExecution("step").createStepContribution(); ChunkRequest chunk = new ChunkRequest(0, StringUtils.commaDelimitedListToSet(string), jobId, stepContribution); GenericMessage<ChunkRequest> message = new GenericMessage<>(chunk); return message; }
@Test public void testGetItems() { assertEquals(2, request.getItems().size()); }
@Test public void testVanillaHandleChunk() throws Exception { handler.setChunkProcessor(new ChunkProcessor<Object>() { public void process(StepContribution contribution, Chunk<Object> chunk) throws Exception { count += chunk.size(); } }); StepContribution stepContribution = MetaDataInstanceFactory.createStepExecution().createStepContribution(); ChunkResponse response = handler.handleChunk(new ChunkRequest<>(0, StringUtils .commaDelimitedListToSet("foo,bar"), 12L, stepContribution)); assertEquals(stepContribution, response.getStepContribution()); assertEquals(12, response.getJobId().longValue()); assertTrue(response.isSuccessful()); assertEquals(2, count); }