public ServerConnector createConnector( Server server, ListenSocketAddress address, JettyThreadCalculator jettyThreadCalculator, ConnectionFactory... httpFactories ) { int acceptors = jettyThreadCalculator.getAcceptors(); int selectors = jettyThreadCalculator.getSelectors(); ServerConnector connector = new ServerConnector( server, null, null, null, acceptors, selectors, httpFactories ); connector.setName( name ); connector.setConnectionFactories( Arrays.asList( httpFactories ) ); // TCP backlog, per socket, 50 is the default, consider adapting if needed connector.setAcceptQueueSize( 50 ); connector.setHost( address.getHostname() ); connector.setPort( address.getPort() ); return connector; } }
private static SocketTransport newSocketTransport( NetworkConnectionTracker connectionTracker, TransportThrottleGroup throttleGroup ) { return new SocketTransport( "bolt", new ListenSocketAddress( "localhost", 7687 ), null, false, NullLogProvider.getInstance(), throttleGroup, mock( BoltProtocolFactory.class ), connectionTracker ); } }
BoltConnector boltConnector = bootstrapEntry.getKey(); ServerBootstrap serverBootstrap = createServerBootstrap( configurationProvider, protocolInitializer ); ChannelFuture channelFuture = serverBootstrap.bind( protocolInitializer.address().socketAddress() ).sync(); InetSocketAddress localAddress = (InetSocketAddress) channelFuture.channel().localAddress(); connectionRegister.register( boltConnector.key(), localAddress ); String host = protocolInitializer.address().getHostname(); int port = localAddress.getPort(); if ( host.contains( ":" ) )
/** * Textual representation format for a listen socket address. * @param hostname of the address. * @param port of the address. * @return a string representing the address. */ public static String listenAddress( String hostname, int port ) { return new ListenSocketAddress( hostname, port ).toString(); } }
@Test public void shouldPickUpAddressFromConfig() throws Exception { ListenSocketAddress nonDefaultAddress = new ListenSocketAddress( "0.0.0.0", 0 ); server = server().onAddress( nonDefaultAddress ) .usingDataDir( folder.directory( name.getMethodName() ).getAbsolutePath() ) .build(); server.start(); HostnamePort localHttpAddress = getLocalHttpAddress(); assertNotEquals( HttpConnector.Encryption.NONE.defaultPort, localHttpAddress.getPort() ); assertEquals( nonDefaultAddress.getHostname(), localHttpAddress.getHost() ); JaxRsResponse response = new RestRequest( server.baseUri() ).get(); assertThat( response.getStatus(), is( 200 ) ); response.close(); }
@Test void shouldSupportMultipleBoltConnectorsWithCustomNames() { Config config = Config.defaults( stringMap( "dbms.connector.bolt1.type", "BOLT", "dbms.connector.bolt1.enabled", "true", "dbms.connector.bolt1.listen_address", ":8000", "dbms.connector.bolt2.type", "BOLT", "dbms.connector.bolt2.enabled", "true", "dbms.connector.bolt2.listen_address", ":9000" ) ); // when List<ListenSocketAddress> addresses = config.boltConnectors().stream() .map( c -> config.get( c.listen_address ) ) .collect( Collectors.toList() ); // then assertEquals( 2, addresses.size() ); if ( addresses.get( 0 ).getPort() == 8000 ) { assertEquals( new ListenSocketAddress( "127.0.0.1", 8000 ), addresses.get( 0 ) ); assertEquals( new ListenSocketAddress( "127.0.0.1", 9000 ), addresses.get( 1 ) ); } else { assertEquals( new ListenSocketAddress( "127.0.0.1", 8000 ), addresses.get( 1 ) ); assertEquals( new ListenSocketAddress( "127.0.0.1", 9000 ), addresses.get( 0 ) ); } }
NetworkConfig networkConfig = new NetworkConfig(); if ( !hazelcastAddress.isWildcard() ) interfaces.addInterface( hazelcastAddress.getHostname() ); interfaces.setEnabled( true ); networkConfig.setInterfaces( interfaces ); networkConfig.setPort( hazelcastAddress.getPort() ); networkConfig.setJoin( joinConfig ); networkConfig.setPortAutoIncrement( false ); if ( hazelcastAddress.isIPv6() )
@Override public String getDefaultValue() { return default_advertised_address.getDefaultValue() + ":" + LISTEN_SOCKET_ADDRESS.apply( listenAddressSetting.getDefaultValue() ).socketAddress().getPort(); }
@Test void shouldDeriveListenAddressFromDefaultListenAddress() { // given Config config = Config.fromSettings( stringMap( "dbms.connector.https.enabled", "true", "dbms.connector.http.enabled", "true", "dbms.connectors.default_listen_address", "0.0.0.0" ) ).withServerDefaults().build(); // then assertEquals( 2, config.enabledHttpConnectors().size() ); config.enabledHttpConnectors().forEach( c -> assertEquals( "0.0.0.0", config.get( c.listen_address ).getHostname() ) ); }
/** * Textual representation format for a listen socket address. * @param hostname of the address. * @param port of the address. * @return a string representing the address. */ public static String listenAddress( String hostname, int port ) { return new ListenSocketAddress( hostname, port ).toString(); } }
@Override public AdvertisedSocketAddress apply( Function<String, String> config ) { ListenSocketAddress listenSocketAddress = listenAddressSetting.apply( config ); String hostname = default_advertised_address.apply( config ); int port = listenSocketAddress.socketAddress().getPort(); String name = name(); String value = config.apply( name ); return SocketAddressParser.deriveSocketAddress( name, value, hostname, port, AdvertisedSocketAddress::new ); }
.filter( c -> Encryption.NONE.equals( c.encryptionLevel() ) ) .findFirst() .map( connector -> config.get( connector.listen_address ).toString() ) .orElse( serverAddress );
@Test public void shouldCombineDefaultHostnameWithSettingSpecificPortWhenNoValueProvided() { // given Map<String,String> config = stringMap( GraphDatabaseSettings.default_listen_address.name(), "server1.example.com" ); // when ListenSocketAddress listenSocketAddress = listen_address_setting.apply( config::get ); // then assertEquals( "server1.example.com", listenSocketAddress.getHostname() ); assertEquals( 1234, listenSocketAddress.getPort() ); }
@Test void testServerDefaultSettings() { // given Config config = Config.builder().withServerDefaults().build(); // when List<HttpConnector> connectors = config.httpConnectors(); // then assertEquals( 2, connectors.size() ); if ( connectors.get( 0 ).encryptionLevel().equals( TLS ) ) { assertEquals( new ListenSocketAddress( "localhost", 7474 ), config.get( connectors.get( 1 ).listen_address ) ); assertEquals( new ListenSocketAddress( "localhost", 7473 ), config.get( connectors.get( 0 ).listen_address ) ); } else { assertEquals( new ListenSocketAddress( "127.0.0.1", 7474 ), config.get( connectors.get( 0 ).listen_address ) ); assertEquals( new ListenSocketAddress( "127.0.0.1", 7473 ), config.get( connectors.get( 1 ).listen_address ) ); } }
BoltConnector boltConnector = bootstrapEntry.getKey(); ServerBootstrap serverBootstrap = createServerBootstrap( configurationProvider, protocolInitializer ); ChannelFuture channelFuture = serverBootstrap.bind( protocolInitializer.address().socketAddress() ).sync(); InetSocketAddress localAddress = (InetSocketAddress) channelFuture.channel().localAddress(); connectionRegister.register( boltConnector.key(), localAddress ); String host = protocolInitializer.address().getHostname(); int port = localAddress.getPort(); if ( host.contains( ":" ) )
@Override public String getDefaultValue() { return default_advertised_address.getDefaultValue() + ":" + LISTEN_SOCKET_ADDRESS.apply( listenAddressSetting.getDefaultValue() ).socketAddress().getPort(); }
.filter( c -> Encryption.NONE.equals( c.encryptionLevel() ) ) .findFirst() .map( connector -> config.get( connector.listen_address ).toString() ) .orElse( serverAddress );
@Test public void shouldParseExplicitSettingValueWhenProvided() { // given Map<String,String> config = stringMap( GraphDatabaseSettings.default_listen_address.name(), "server1.example.com", listen_address_setting.name(), "server1.internal:4000" ); // when ListenSocketAddress listenSocketAddress = listen_address_setting.apply( config::get ); // then assertEquals( "server1.internal", listenSocketAddress.getHostname() ); assertEquals( 4000, listenSocketAddress.getPort() ); }
@Test void shouldSupportMultipleBoltConnectorsWithDefaultAndCustomName() { Config config = Config.defaults( stringMap( "dbms.connector.bolt.type", "BOLT", "dbms.connector.bolt.enabled", "true", "dbms.connector.bolt.listen_address", ":8000", "dbms.connector.bolt2.type", "BOLT", "dbms.connector.bolt2.enabled", "true", "dbms.connector.bolt2.listen_address", ":9000" ) ); // when BoltConnector boltConnector1 = config.boltConnectors().get( 0 ); BoltConnector boltConnector2 = config.boltConnectors().get( 1 ); // then assertEquals( new ListenSocketAddress( "127.0.0.1", 8000 ), config.get( boltConnector1.listen_address ) ); assertEquals( new ListenSocketAddress( "127.0.0.1", 9000 ), config.get( boltConnector2.listen_address ) ); }