/** * Transforms given items to client-specific model and adds them to provided {@link BatchEmitter} * * @param log batch item source */ @Override public void add(String indexName, String log) { this.batchEmitter.add(batchOperations.createBatchItem(indexName, log)); }
public BulkEmitter(int atSize, int intervalInMillis, BatchOperations<BATCH_TYPE> batchOperations) { this.maxSize = atSize; this.interval = intervalInMillis; this.batchOperations = batchOperations; this.builder = new AtomicReference<>(batchOperations.createBatchBuilder()); this.scheduler.scheduleAtFixedRate(createNotificationTask(), 0, interval); }
/** * Transforms given items to client-specific model and adds them to provided {@link BatchEmitter} * * @param log batch item source */ @Override public void add(String indexName, String log) { this.batchEmitter.add(batchOperations.createBatchItem(indexName, log)); }
public BulkEmitter(int atSize, int intervalInMillis, BatchOperations<BATCH_TYPE> batchOperations) { this.maxSize = atSize; this.interval = intervalInMillis; this.batchOperations = batchOperations; this.builder = new AtomicReference<>(batchOperations.createBatchBuilder()); this.scheduler.scheduleAtFixedRate(createNotificationTask(), 0, interval); }
@Override public void add(String indexName, ItemSource source) { this.batchEmitter.add(batchOperations.createBatchItem(indexName, source)); }
/** * Delivers current batch to the listener if at least one item is waiting for delivery, no-op otherwise. */ public final void notifyListener() { synchronized (listenerLock) { if (size.get() == 0) { return; } this.size.set(0); listener.apply(builder.getAndSet(batchOperations.createBatchBuilder()).build()); } }
@Override public void add(String indexName, ItemSource source) { this.batchEmitter.add(batchOperations.createBatchItem(indexName, source)); }
/** * Delivers current batch to the listener if at least one item is waiting for delivery, no-op otherwise. */ public final void notifyListener() { synchronized (listenerLock) { if (size.get() == 0) { return; } this.size.set(0); listener.apply(builder.getAndSet(batchOperations.createBatchBuilder()).build()); } }
@Test public void batchDeliveryAddItemSourceDelegatesToProvidedBatchOperationsItemSourceApi() { // given Builder batchDeliveryBuilder = createTestBatchDeliveryBuilder(); ClientObjectFactory clientObjectFactory = spy(createTestObjectFactoryBuilder().build()); BatchOperations batchOperations = spy(clientObjectFactory.createBatchOperations()); when(clientObjectFactory.createBatchOperations()).thenReturn(batchOperations); batchDeliveryBuilder.withClientObjectFactory(clientObjectFactory); BatchDelivery batchDelivery = batchDeliveryBuilder.build(); String indexName = UUID.randomUUID().toString(); ItemSource itemSource = mock(ItemSource.class); // when batchDelivery.add(indexName, itemSource); // then verify(batchOperations).createBatchItem(eq(indexName), eq(itemSource)); }
@Test public void batchDeliveryAddObjectDelegatesToProvidedBatchOperationsObjectApi() { // given Builder batchDeliveryBuilder = createTestBatchDeliveryBuilder(); ClientObjectFactory clientObjectFactory = spy(createTestObjectFactoryBuilder().build()); BatchOperations batchOperations = spy(clientObjectFactory.createBatchOperations()); when(clientObjectFactory.createBatchOperations()).thenReturn(batchOperations); batchDeliveryBuilder.withClientObjectFactory(clientObjectFactory); BatchDelivery batchDelivery = batchDeliveryBuilder.build(); String indexName = UUID.randomUUID().toString(); String logObject = UUID.randomUUID().toString(); // when batchDelivery.add(indexName, logObject); // then verify(batchOperations).createBatchItem(eq(indexName), eq(logObject)); }