• Java Code Examples for io.netty.util.concurrent.GlobalEventExecutor


    Example 1
    Project: lettuce   File: FuturesTest.java View source code 6 votes vote down vote up
    @Test
    public void regularUse() throws Exception {
        final DefaultPromise<Boolean> target = new DefaultPromise<Boolean>(GlobalEventExecutor.INSTANCE);
        Futures.PromiseAggregator<Boolean, Promise<Boolean>> sut = new Futures.PromiseAggregator<Boolean, Promise<Boolean>>(
                target);
    
        sut.expectMore(1);
        sut.arm();
        DefaultPromise<Boolean> part = new DefaultPromise<Boolean>(GlobalEventExecutor.INSTANCE);
        sut.add(part);
    
        assertThat(target.isDone()).isFalse();
    
        part.setSuccess(true);
    
        WaitFor.waitOrTimeout(new Condition() {
            @Override
            public boolean isSatisfied() {
                return target.isDone();
            }
        }, timeout(seconds(5)));
    
        assertThat(target.isDone()).isTrue();
    }

    Example 2
    Project: usc   File: UscNetconfClientDispatcherImpl.java View source code 6 votes vote down vote up
    private Future<Void> createReconnectingSshClient(final NetconfReconnectingClientConfiguration currentConfiguration) {
        LOG.debug("Creating reconnecting SSH client with configuration: {}", currentConfiguration);
        LOG.warn("UscNetconfClientDispatcherImpl createReconnectingSshClient");
    
        final Bootstrap b = new Bootstrap();
        b.group(group);
        b.channel(LocalChannel.class);
    
        final ReconnectPromise p = new ReconnectPromise(GlobalEventExecutor.INSTANCE, this,
                currentConfiguration.getAddress(), currentConfiguration.getConnectStrategyFactory(), b,
                new PipelineInitializer<NetconfClientSession>() {
                    @Override
                    public void initializeChannel(final Channel ch, final Promise<NetconfClientSession> promise) {
                        new NetconfSshClientChannelInitializer(currentConfiguration.getAuthHandler(),
                                getNegotiatorFactory(currentConfiguration), currentConfiguration.getSessionListener())
                                .initialize(ch, promise);
                    }
                });
    
        p.connect();
        return p;
    }

    Example 3
    Project: netty4.0.27Learn   File: EpollSocketChannel.java View source code 6 votes vote down vote up
    @Override
    protected Executor closeExecutor() {
        if (config().getSoLinger() > 0) {
            return GlobalEventExecutor.INSTANCE;
        }
        return null;
    }

    Example 4
    Project: JgFramework   File: BaseArea.java View source code 6 votes vote down vote up
    public BaseArea(String name, BasePosition entrancePosition, IBaseMap map) {
        this.id = hashCode();
        this.name = name;
        this.map = map;
        this.entrancePosition = entrancePosition;
        this.channelGroup = new DefaultChannelGroup(name, GlobalEventExecutor.INSTANCE);
    }

    Example 5
    Project: glowroot   File: HttpServerHandler.java View source code 6 votes vote down vote up
    HttpServerHandler(LayoutService layoutService, Map<Pattern, HttpService> httpServices,
            HttpSessionManager httpSessionManager, List<Object> jsonServices) {
        this.layoutService = layoutService;
        this.httpServices = ImmutableMap.copyOf(httpServices);
        this.httpSessionManager = httpSessionManager;
        List<JsonServiceMapping> jsonServiceMappings = Lists.newArrayList();
        for (Object jsonService : jsonServices) {
            for (Method method : jsonService.getClass().getDeclaredMethods()) {
                GET annotationGET = method.getAnnotation(GET.class);
                if (annotationGET != null) {
                    jsonServiceMappings.add(ImmutableJsonServiceMapping.builder()
                            .httpMethod(HttpMethod.GET)
                            .path(annotationGET.value())
                            .service(jsonService)
                            .methodName(method.getName())
                            .build());
                }
                POST annotationPOST = method.getAnnotation(POST.class);
                if (annotationPOST != null) {
                    jsonServiceMappings.add(ImmutableJsonServiceMapping.builder()
                            .httpMethod(HttpMethod.POST)
                            .path(annotationPOST.value())
                            .service(jsonService)
                            .methodName(method.getName())
                            .build());
                }
            }
        }
        this.jsonServiceMappings = ImmutableList.copyOf(jsonServiceMappings);
        allChannels = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
    }

    Example 6
    Project: vibe-java-platform   File: NettyServerHttpExchangeTest.java View source code 6 votes vote down vote up
    @Override
    protected void startServer() {
        bossGroup = new NioEventLoopGroup();
        workerGroup = new NioEventLoopGroup();
        channels = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
        ServerBootstrap bootstrap = new ServerBootstrap();
        bootstrap.group(bossGroup, workerGroup)
        .channel(NioServerSocketChannel.class)
        .childHandler(new ChannelInitializer<SocketChannel>() {
            @Override
            public void channelActive(ChannelHandlerContext ctx) throws Exception {
                channels.add(ctx.channel());
            }
    
            @Override
            public void initChannel(SocketChannel ch) throws Exception {
                ChannelPipeline pipeline = ch.pipeline();
                pipeline.addLast(new HttpServerCodec())
                .addLast(new VibeServerCodec() {
                    @Override
                    protected boolean accept(HttpRequest req) {
                        return URI.create(req.getUri()).getPath().equals("/test");
                    }
                }
                .onhttp(performer.serverAction()));
            }
        });
        channels.add(bootstrap.bind(port).channel());
    }

    Example 7
    Project: termd   File: NettyIoAcceptor.java View source code 6 votes vote down vote up
    public NettyIoAcceptor(NettyIoServiceFactory factory, IoHandler handler) {
      this.factory = factory;
      this.handler = handler;
      channelGroup = new DefaultChannelGroup("sshd-acceptor-channels", GlobalEventExecutor.INSTANCE);;
      bootstrap.group(factory.eventLoopGroup)
          .channel(NioServerSocketChannel.class)
          .option(ChannelOption.SO_BACKLOG, 100)
          .handler(new LoggingHandler(LogLevel.INFO))
          .childHandler(new ChannelInitializer<SocketChannel>() {
            @Override
            public void initChannel(SocketChannel ch) throws Exception {
              ChannelPipeline p = ch.pipeline();
              p.addLast(new NettyIoSession(NettyIoAcceptor.this, handler).adapter);
            }
          });
    }

    Example 8
    Project: rest.li   File: HttpNettyClient.java View source code 6 votes vote down vote up
    HttpNettyClient(ChannelPoolFactory factory,
                    ScheduledExecutorService executor,
                    int requestTimeout,
                    int shutdownTimeout,
                    int maxResponseSize)
    {
      _maxResponseSize = maxResponseSize;
      _channelPoolManager = new ChannelPoolManager(factory);
      _scheduler = executor;
      _callbackExecutors = new DefaultEventExecutorGroup(1);
      _requestTimeout = requestTimeout;
      _shutdownTimeout = shutdownTimeout;
      _requestTimeoutMessage = "Exceeded request timeout of " + _requestTimeout + "ms";
      _jmxManager = AbstractJmxManager.NULL_JMX_MANAGER;
      _jmxManager.onProviderCreate(_channelPoolManager);
      _maxHeaderSize = 8192;
      _maxChunkSize = 8192;
      _maxConcurrentConnections = Integer.MAX_VALUE;
      _allChannels = new DefaultChannelGroup("R2 client channels", GlobalEventExecutor.INSTANCE);
    }

    Example 9
    Project: tajo   File: HttpFileServer.java View source code 6 votes vote down vote up
    public HttpFileServer(final InetSocketAddress addr) {
      this.addr = addr;
      this.eventloopGroup = new NioEventLoopGroup(2, Executors.defaultThreadFactory());
    
      // Configure the server.
      this.bootstrap = new ServerBootstrap();
      this.bootstrap.childHandler(new HttpFileServerChannelInitializer())
            .group(eventloopGroup)
            .option(ChannelOption.TCP_NODELAY, true)
            .channel(NioServerSocketChannel.class);
      this.channelGroup = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
    }

    Example 10
    Project: hadoop   File: WebImageViewer.java View source code 6 votes vote down vote up
    public WebImageViewer(InetSocketAddress address) {
      this.address = address;
      this.bossGroup = new NioEventLoopGroup();
      this.workerGroup = new NioEventLoopGroup();
      this.allChannels = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
      this.bootstrap = new ServerBootstrap()
        .group(bossGroup, workerGroup)
        .channel(NioServerSocketChannel.class);
    }

    Example 11
    Project: vert.x   File: HttpServerImpl.java View source code 5 votes vote down vote up
    public synchronized HttpServer listen(int port, String host, Handler<AsyncResult<HttpServer>> listenHandler) {
      if (requestStream.handler() == null && wsStream.handler() == null) {
        throw new IllegalStateException("Set request or websocket handler first");
      }
      if (listening) {
        throw new IllegalStateException("Already listening");
      }
      listenContext = vertx.getOrCreateContext();
      listening = true;
      serverOrigin = (options.isSsl() ? "https" : "http") + "://" + host + ":" + port;
      synchronized (vertx.sharedHttpServers()) {
        id = new ServerID(port, host);
        HttpServerImpl shared = vertx.sharedHttpServers().get(id);
        if (shared == null) {
          serverChannelGroup = new DefaultChannelGroup("vertx-acceptor-channels", GlobalEventExecutor.INSTANCE);
          ServerBootstrap bootstrap = new ServerBootstrap();
          bootstrap.group(vertx.getAcceptorEventLoopGroup(), availableWorkers);
          bootstrap.channelFactory(new VertxNioServerChannelFactory());
          applyConnectionOptions(bootstrap);
          sslHelper.validate(vertx);
          bootstrap.childHandler(new ChannelInitializer<Channel>() {
              @Override
              protected void initChannel(Channel ch) throws Exception {
                if (requestStream.isPaused() || wsStream.isPaused()) {
                  ch.close();
                  return;
                }
                ChannelPipeline pipeline = ch.pipeline();
                if (sslHelper.isSSL()) {
                  pipeline.addLast("ssl", sslHelper.createSslHandler(vertx, false));
                }
                if (USE_FLASH_POLICY_HANDLER) {
                  pipeline.addLast("flashpolicy", new FlashPolicyHandler());
                }
                pipeline.addLast("httpDecoder", new HttpRequestDecoder(4096, 8192, 8192, false));
                pipeline.addLast("httpEncoder", new VertxHttpResponseEncoder());
                if (options.isCompressionSupported()) {
                  pipeline.addLast("deflater", new HttpChunkContentCompressor());
                }
                if (sslHelper.isSSL() || options.isCompressionSupported()) {
                  // only add ChunkedWriteHandler when SSL is enabled otherwise it is not needed as FileRegion is used.
                  pipeline.addLast("chunkedWriter", new ChunkedWriteHandler());       // For large file / sendfile support
                }
                if (options.getIdleTimeout() > 0) {
                  pipeline.addLast("idle", new IdleStateHandler(0, 0, options.getIdleTimeout()));
                }
                pipeline.addLast("handler", new ServerHandler());
              }
          });
    
          addHandlers(this, listenContext);
          try {
            bindFuture = bootstrap.bind(new InetSocketAddress(InetAddress.getByName(host), port));
            Channel serverChannel = bindFuture.channel();
            serverChannelGroup.add(serverChannel);
            bindFuture.addListener(channelFuture -> {
                if (!channelFuture.isSuccess()) {
                  vertx.sharedHttpServers().remove(id);
                } else {
                  metrics = vertx.metricsSPI().createMetrics(this, new SocketAddressImpl(port, host), options);
                }
              });
          } catch (final Throwable t) {
            // Make sure we send the exception back through the handler (if any)
            if (listenHandler != null) {
              vertx.runOnContext(v -> listenHandler.handle(Future.failedFuture(t)));
            } else {
              // No handler - log so user can see failure
              log.error(t);
            }
            listening = false;
            return this;
          }
          vertx.sharedHttpServers().put(id, this);
          actualServer = this;
        } else {
          // Server already exists with that host/port - we will use that
          actualServer = shared;
          addHandlers(actualServer, listenContext);
          metrics = vertx.metricsSPI().createMetrics(this, new SocketAddressImpl(port, host), options);
        }
        actualServer.bindFuture.addListener(future -> {
          if (listenHandler != null) {
            final AsyncResult<HttpServer> res;
            if (future.isSuccess()) {
              res = Future.succeededFuture(HttpServerImpl.this);
            } else {
              res = Future.failedFuture(future.cause());
              listening = false;
            }
            listenContext.runOnContext((v) -> listenHandler.handle(res));
          } else if (!future.isSuccess()) {
            listening  = false;
            // No handler - log so user can see failure
            log.error(future.cause());
          }
        });
      }
      return this;
    }
  • 相关阅读:
    【VS开发】【C++开发】const在函数前与函数后的区别
    【VS开发】【C++开发】正确使用auto_ptr智能指针
    【VS开发】【C++开发】正确使用auto_ptr智能指针
    【数据库开发】Redis数据库设置密码
    【数据库开发】Redis数据库设置密码
    【数据库开发】Redis数据库服务器启动配置
    【数据库开发】Redis数据库服务器启动配置
    【数据库开发】windows下hiredis的编译(主要是包括一些异步编程的错误)
    【数据库开发】windows下hiredis的编译(主要是包括一些异步编程的错误)
    【VS开发】Windows平台下Makefile学习笔记
  • 原文地址:https://www.cnblogs.com/DaTouDaddy/p/6811345.html
Copyright © 2020-2023  润新知