private boolean tryReserveFirstEventSizeAndLock(byte[] event) { return compareAndSetState(0, emitter.batchingStrategy.batchStartLength() + event.length + PARTY); }
@Override public void emit(Event event) { emitter.emit(event); }
@Override public int writeBatchStart(byte[] buffer) { // Write nothing return batchStartLength(); }
private HttpPostEmitter timeBasedEmitter(long timeInMillis) { HttpEmitterConfig config = new HttpEmitterConfig.Builder(TARGET_URL) .setFlushMillis(timeInMillis) .setFlushCount(Integer.MAX_VALUE) .build(); HttpPostEmitter emitter = new HttpPostEmitter( config, httpClient, jsonMapper ); emitter.start(); return emitter; }
@Override public String toString() { long state = getState(); return "Batch{" + "batchNumber=" + batchNumber + ", bufferWatermark=" + bufferWatermark(state) + ", parties=" + parties(state) + ", isSealed=" + isSealed(state) + "}"; }
private static UriExtractor makeUriExtractor(ParametrizedUriEmitterConfig config) { final String baseUri = config.getRecipientBaseUrlPattern(); final ParametrizedUriExtractor parametrizedUriExtractor = new ParametrizedUriExtractor(baseUri); UriExtractor uriExtractor = parametrizedUriExtractor; if (ONLY_FEED_PARAM.equals(parametrizedUriExtractor.getParams())) { uriExtractor = new FeedUriExtractor(StringUtils.replace(baseUri, "{feed}", "%s")); } return uriExtractor; }
private void closeAndExpectFlush(Emitter emitter) throws IOException { httpClient.setGoHandler(GoHandlers.passingHandler(okResponse()).times(1)); emitter.close(); }
@Override public void emit(Event event) { emitAndReturnBatch(event); }
@Override public void flush() throws IOException { emitter.flush(); }
@Override public int writeMessageSeparator(byte[] buffer, int bufferOffset) { buffer[bufferOffset] = '\n'; return bufferOffset + separatorLength(); }
@Override public int writeMessageSeparator(byte[] buffer, int bufferOffset) { buffer[bufferOffset] = ','; return bufferOffset + separatorLength(); }
@Override public int writeBatchEnd(byte[] buffer, int bufferOffset) { buffer[bufferOffset] = ']'; buffer[bufferOffset + 1] = '\n'; return bufferOffset + batchEndLength(); } },
@Override public String toString() { return "HttpEmitterConfig{" + toStringBase() + ", recipientBaseUrl=\'" + recipientBaseUrl + '\'' + '}'; }
@Override public int writeBatchEnd(byte[] buffer, int bufferOffset) { return writeMessageSeparator(buffer, bufferOffset); } },
@Override public String toString() { return "BaseHttpEmittingConfig{" + toStringBase() + '}'; }
@Override protected ListenableFuture<Response> go(Request request) { return GoHandlers.immediateFuture(okResponse()); } }.times(2)
@Override public ListenableFuture<Response> executeRequest(Request request) { return goHandler.run(request); } }
private HttpPostEmitter sizeBasedEmitter(int size) { HttpEmitterConfig config = new HttpEmitterConfig.Builder(TARGET_URL) .setFlushMillis(Long.MAX_VALUE) .setFlushCount(size) .build(); HttpPostEmitter emitter = new HttpPostEmitter( config, httpClient, jsonMapper ); emitter.start(); return emitter; }
@Override public void emit(Event event) { for (Emitter e : emitters) { e.emit(event); } }
private HttpPostEmitter sizeBasedEmitterWithContentEncoding(int size, ContentEncoding encoding) { HttpEmitterConfig config = new HttpEmitterConfig.Builder(TARGET_URL) .setFlushMillis(Long.MAX_VALUE) .setFlushCount(size) .setContentEncoding(encoding) .build(); HttpPostEmitter emitter = new HttpPostEmitter( config, httpClient, jsonMapper ); emitter.start(); return emitter; }