List of usage examples for io.netty.util.concurrent ImmediateExecutor INSTANCE
ImmediateExecutor INSTANCE
To view the source code for io.netty.util.concurrent ImmediateExecutor INSTANCE.
Click Source Link
From source file:com.linecorp.armeria.server.thrift.ThriftServiceTest.java
License:Apache License
private static void invoke(THttpService service, HttpData content, CompletableFuture<HttpData> promise) throws Exception { final ServiceConfig cfg = new ServerBuilder().serviceAt("/", service) .blockingTaskExecutor(ImmediateExecutor.INSTANCE).build().config().serviceConfigs().get(0); final ServiceRequestContext ctx = EasyMock.createMock(ServiceRequestContext.class); final DefaultRequestLog reqLogBuilder = new DefaultRequestLog(); final DefaultResponseLog resLogBuilder = new DefaultResponseLog(reqLogBuilder); expect(ctx.blockingTaskExecutor()).andReturn(ImmediateEventExecutor.INSTANCE).anyTimes(); expect(ctx.requestLogBuilder()).andReturn(reqLogBuilder).anyTimes(); expect(ctx.responseLogBuilder()).andReturn(resLogBuilder).anyTimes(); ctx.invokeOnEnterCallbacks();//from w ww. ja v a2 s . co m expectLastCall().anyTimes(); ctx.invokeOnExitCallbacks(); expectLastCall().anyTimes(); replay(ctx); final DefaultHttpRequest req = new DefaultHttpRequest(HttpHeaders.of(HttpMethod.POST, "/"), false); req.write(content); req.close(); final HttpResponse res = service.serve(ctx, req); res.aggregate().handle(voidFunction((aReq, cause) -> { if (cause == null) { if (aReq.headers().status().code() == 200) { promise.complete(aReq.content()); } else { promise.completeExceptionally(new AssertionError( aReq.headers().status() + ", " + aReq.content().toString(StandardCharsets.UTF_8))); } } else { promise.completeExceptionally(cause); } })).exceptionally(CompletionActions::log); }
From source file:divconq.net.ssl.SslHandler.java
License:Apache License
public SslHandler(SSLEngine engine, boolean startTls) { this(engine, startTls, ImmediateExecutor.INSTANCE); }
From source file:divconq.net.ssl.SslHandler.java
License:Apache License
private void runDelegatedTasks() { if (delegatedTaskExecutor == ImmediateExecutor.INSTANCE) { for (;;) { Runnable task = engine.getDelegatedTask(); if (task == null) { break; }/*from w w w . j a va 2 s. c om*/ task.run(); } } else { final List<Runnable> tasks = new ArrayList<Runnable>(2); for (;;) { final Runnable task = engine.getDelegatedTask(); if (task == null) { break; } tasks.add(task); } if (tasks.isEmpty()) { return; } final CountDownLatch latch = new CountDownLatch(1); delegatedTaskExecutor.execute(new Runnable() { @Override public void run() { try { for (Runnable task : tasks) { task.run(); } } catch (Exception e) { ctx.fireExceptionCaught(e); } finally { latch.countDown(); } } }); boolean interrupted = false; while (latch.getCount() != 0) { try { latch.await(); } catch (InterruptedException e) { // Interrupt later. interrupted = true; } } if (interrupted) { Thread.currentThread().interrupt(); } } }
From source file:org.springframework.data.cassandra.core.cql.AsyncCqlTemplate.java
License:Apache License
@Override public <T> ListenableFuture<T> query(AsyncPreparedStatementCreator preparedStatementCreator, @Nullable PreparedStatementBinder psb, ResultSetExtractor<T> resultSetExtractor) throws DataAccessException { Assert.notNull(preparedStatementCreator, "AsyncPreparedStatementCreator must not be null"); Assert.notNull(resultSetExtractor, "ResultSetExtractor object must not be null"); PersistenceExceptionTranslator exceptionTranslator = ex -> translateExceptionIfPossible("Query", toCql(preparedStatementCreator), ex); try {/*from w w w . j ava 2 s . c om*/ if (logger.isDebugEnabled()) { logger.debug("Preparing statement [{}] using {}", toCql(preparedStatementCreator), preparedStatementCreator); } Session session = getCurrentSession(); ListenableFuture<BoundStatement> statementFuture = new MappingListenableFutureAdapter<>( preparedStatementCreator.createPreparedStatement(session), preparedStatement -> { if (logger.isDebugEnabled()) { logger.debug("Executing prepared statement [{}]", preparedStatement); } return applyStatementSettings( psb != null ? psb.bindValues(preparedStatement) : preparedStatement.bind()); }); SettableListenableFuture<T> settableListenableFuture = new SettableListenableFuture<>(); statementFuture.addCallback(boundStatement -> Futures.addCallback(session.executeAsync(boundStatement), new FutureCallback<ResultSet>() { @Override public void onSuccess(@Nullable ResultSet result) { try { settableListenableFuture .set(result != null ? resultSetExtractor.extractData(result) : null); } catch (DriverException e) { settableListenableFuture.setException(translateException(exceptionTranslator, e)); } } @Override public void onFailure(Throwable ex) { if (ex instanceof DriverException) { settableListenableFuture.setException( translateException(exceptionTranslator, (DriverException) ex)); } else { settableListenableFuture.setException(ex); } } }, ImmediateExecutor.INSTANCE), ex -> { if (ex instanceof DriverException) { settableListenableFuture .setException(translateException(exceptionTranslator, (DriverException) ex)); } else { settableListenableFuture.setException(ex); } }); return settableListenableFuture; } catch (DriverException e) { throw translateException(exceptionTranslator, e); } }
From source file:org.springframework.data.cassandra.core.cql.GuavaListenableFutureAdapter.java
License:Apache License
private static <T> ListenableFuture<T> adaptListenableFuture( com.google.common.util.concurrent.ListenableFuture<T> guavaFuture, PersistenceExceptionTranslator exceptionTranslator) { SettableListenableFuture<T> settableFuture = new SettableListenableFuture<>(); Futures.addCallback(guavaFuture, new FutureCallback<T>() { @Override/*from ww w . j a v a 2 s . co m*/ public void onSuccess(@Nullable T result) { settableFuture.set(result); } @Override public void onFailure(Throwable t) { if (t instanceof RuntimeException) { DataAccessException dataAccessException = exceptionTranslator .translateExceptionIfPossible((RuntimeException) t); if (dataAccessException != null) { settableFuture.setException(dataAccessException); return; } } settableFuture.setException(t); } }, ImmediateExecutor.INSTANCE); return settableFuture; }
From source file:org.springframework.data.cassandra.core.cql.session.DefaultBridgedReactiveSession.java
License:Apache License
@Override public Mono<ReactiveResultSet> execute(Statement statement) { Assert.notNull(statement, "Statement must not be null"); return Mono.create(sink -> { try {/*w ww. j a va 2 s . c om*/ if (logger.isDebugEnabled()) { logger.debug("Executing Statement [{}]", statement); } ListenableFuture<ResultSet> future = this.session.executeAsync(statement); ListenableFuture<ReactiveResultSet> resultSetFuture = Futures.transform(future, DefaultReactiveResultSet::new, ImmediateExecutor.INSTANCE); adaptFuture(resultSetFuture, sink); } catch (Exception cause) { sink.error(cause); } }); }