@Override public BulkEmitter createInstance(int batchSize, int deliveryInterval, ClientObjectFactory clientObjectFactory, FailoverPolicy failoverPolicy) { BulkEmitter bulkEmitter = new BulkEmitter(batchSize, deliveryInterval, clientObjectFactory.createBatchOperations()); bulkEmitter.addListener(clientObjectFactory.createBatchListener(failoverPolicy)); return bulkEmitter; }
@Override public void start() { if (indexTemplate != null) { objectFactory.addOperation(() -> objectFactory.execute(indexTemplate)); } batchEmitter.start(); state = State.STARTED; }
@Override public BatchEmitter createInstance(int batchSize, int deliveryInterval, ClientObjectFactory clientObjectFactory, FailoverPolicy failoverPolicy) { Function<BulkRequest, Boolean> failureHandler = clientObjectFactory.createFailureHandler(failoverPolicy); BulkProcessor.Listener listener = new BulkExecutionListener(failureHandler); BulkProcessor.Builder builder = BulkProcessor.builder((Client) clientObjectFactory.createClient(), listener) .setBulkActions(batchSize) .setFlushInterval(TimeValue.timeValueMillis(deliveryInterval)); return new BulkProcessorDelegate(builder.build()); }
public AsyncBatchDelivery(int batchSize, int deliveryInterval, ClientObjectFactory objectFactory, FailoverPolicy failoverPolicy, IndexTemplate indexTemplate) { this.batchOperations = objectFactory.createBatchOperations(); this.batchEmitter = createBatchEmitterServiceProvider() .createInstance( batchSize, deliveryInterval, objectFactory, failoverPolicy); this.indexTemplate = indexTemplate; this.objectFactory = objectFactory; }
factory.addOperation(() -> {});
@Override public BatchEmitter createInstance(int batchSize, int deliveryInterval, ClientObjectFactory clientObjectFactory, FailoverPolicy failoverPolicy) { Function<BulkRequest, Boolean> failureHandler = clientObjectFactory.createFailureHandler(failoverPolicy); BulkProcessor.Listener listener = new BulkExecutionListener(failureHandler); BulkProcessor.Builder builder = BulkProcessor.builder((Client) clientObjectFactory.createClient(), listener) .setBulkActions(batchSize) .setFlushInterval(TimeValue.timeValueMillis(deliveryInterval)); return new BulkProcessorDelegate(builder.build()); }
public AsyncBatchDelivery(int batchSize, int deliveryInterval, ClientObjectFactory objectFactory, FailoverPolicy failoverPolicy, IndexTemplate indexTemplate) { this.batchOperations = objectFactory.createBatchOperations(); this.batchEmitter = createBatchEmitterServiceProvider() .createInstance( batchSize, deliveryInterval, objectFactory, failoverPolicy); this.indexTemplate = indexTemplate; this.objectFactory = objectFactory; }
@Override public BatchEmitter createInstance(int batchSize, int deliveryInterval, ClientObjectFactory clientObjectFactory, FailoverPolicy failoverPolicy) { Function<BulkRequest, Boolean> failureHandler = clientObjectFactory.createFailureHandler(failoverPolicy); BulkProcessor.Listener listener = new BulkExecutionListener(failureHandler); BulkProcessor.Builder builder = BulkProcessor.builder((Client) clientObjectFactory.createClient(), listener) .setBulkActions(batchSize) .setFlushInterval(TimeValue.timeValueMillis(deliveryInterval)); return new BulkProcessorDelegate(builder.build()); }
@Override public BatchEmitter createInstance(int batchSize, int deliveryInterval, ClientObjectFactory clientObjectFactory, FailoverPolicy failoverPolicy) { if (spiedEmitter == null) { BulkEmitter emitter = new BulkEmitter(batchSize, deliveryInterval, clientObjectFactory.createBatchOperations()); emitter.addListener(clientObjectFactory.createBatchListener(failoverPolicy)); spiedEmitter = Mockito.spy(emitter); } return spiedEmitter; } }
@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)); }
@Override public void start() { if (indexTemplate != null) { objectFactory.addOperation(() -> objectFactory.execute(indexTemplate)); } batchEmitter.start(); state = State.STARTED; }
@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)); }