/** * @param throttleLimit the throttle limit for the result queue */ public ResultQueueInternalState(int throttleLimit) { super(); this.results = new ResultHolderResultQueue(throttleLimit); }
@Override protected RepeatInternalState createInternalState(RepeatContext context) { // Queue of pending results: return new ResultQueueInternalState(throttleLimit); }
/** * Create an internal state object that is used to store data needed * internally in the scope of an iteration. Used by subclasses to manage the * queueing and retrieval of asynchronous results. The default just provides * an accumulation of Throwable instances for processing at the end of the * batch. * * @param context the current {@link RepeatContext} * @return a {@link RepeatInternalState} instance. * * @see RepeatTemplate#waitForResults(RepeatInternalState) */ protected RepeatInternalState createInternalState(RepeatContext context) { return new RepeatInternalStateSupport(); }
public void testClear() { RepeatSynchronizationManager.register(context); assertEquals(context, RepeatSynchronizationManager.getContext()); RepeatSynchronizationManager.clear(); assertEquals(null, RepeatSynchronizationManager.getContext()); }
public void testSetSessionCompleteOnly() { assertNull(RepeatSynchronizationManager.getContext()); RepeatSynchronizationManager.register(context); assertFalse(RepeatSynchronizationManager.getContext().isCompleteOnly()); RepeatSynchronizationManager.setCompleteOnly(); assertTrue(RepeatSynchronizationManager.getContext().isCompleteOnly()); }
public void testSetSessionCompleteOnlyWithParent() { assertNull(RepeatSynchronizationManager.getContext()); RepeatContext child = new RepeatContextSupport(context); RepeatSynchronizationManager.register(child); assertFalse(child.isCompleteOnly()); RepeatSynchronizationManager.setAncestorsCompleteOnly(); assertTrue(child.isCompleteOnly()); assertTrue(context.isCompleteOnly()); }
public void testGetContext() { RepeatSynchronizationManager.register(context); assertEquals(context, RepeatSynchronizationManager.getContext()); }
@Test public void testOrdering() throws Exception { queue.expect(); queue.expect(); queue.put(new TestResultHolder(RepeatStatus.FINISHED)); queue.put(new TestResultHolder(RepeatStatus.CONTINUABLE)); assertFalse(queue.isEmpty()); assertTrue(queue.take().getResult().isContinuable()); assertFalse(queue.take().getResult().isContinuable()); }
@Override public RepeatTemplate getRepeatTemplate() { return new TaskExecutorRepeatTemplate(); }
@Override protected void setUp() throws Exception { RepeatSynchronizationManager.clear(); }
@Override protected void setUp() throws Exception { RepeatSynchronizationManager.register(context); }
@Test public void testExecute() throws Exception { template.iterate(new ItemReaderRepeatCallback<>(provider, processor)); assertEquals(NUMBER_OF_ITEMS, processor.count); }
@Override public RepeatStatus doInIteration(RepeatContext context) throws Exception { stepTemplate.iterate(stepCallback); return RepeatStatus.FINISHED; } };
@Override public RepeatStatus doInIteration(RepeatContext context) throws Exception { RepeatStatus result = super.doInIteration(context); if (!result.isContinuable() && chunker.first()) { chunker.set(); } chunker.increment(); return result; }
protected TradeItemReader(Resource resource) throws Exception { super(); setResource(resource); DefaultLineMapper<Trade> mapper = new DefaultLineMapper<>(); mapper.setLineTokenizer(new DelimitedLineTokenizer()); mapper.setFieldSetMapper(new TradeMapper()); setLineMapper(mapper); afterPropertiesSet(); }
@Override public Trade mapFieldSet(FieldSet fs) { return new Trade(fs); } }
@Override public Trade read() throws Exception { if (count++ < 2) return provider.read(); return null; } };
@Test public void testPutTake() throws Exception { queue.expect(); assertTrue(queue.isExpecting()); assertTrue(queue.isEmpty()); queue.put(new TestResultHolder(RepeatStatus.CONTINUABLE)); assertFalse(queue.isEmpty()); assertTrue(queue.take().getResult().isContinuable()); assertFalse(queue.isExpecting()); }
@Override protected void tearDown() throws Exception { RepeatSynchronizationManager.clear(); }
@Override protected void tearDown() throws Exception { RepeatSynchronizationManager.clear(); }