Search in sources :

Example 6 with DiscoveryService

use of com.hazelcast.spi.discovery.integration.DiscoveryService in project hazelcast by hazelcast.

the class HazelcastClientInstanceImpl method initDiscoveryService.

private DiscoveryService initDiscoveryService(ClientConfig config) {
    // and strategies are resolved but the AddressProvider is never registered
    if (!properties.getBoolean(ClientProperty.DISCOVERY_SPI_ENABLED)) {
        return null;
    }
    ILogger logger = loggingService.getLogger(DiscoveryService.class);
    ClientNetworkConfig networkConfig = config.getNetworkConfig();
    DiscoveryConfig discoveryConfig = networkConfig.getDiscoveryConfig().getAsReadOnly();
    DiscoveryServiceProvider factory = discoveryConfig.getDiscoveryServiceProvider();
    if (factory == null) {
        factory = new DefaultDiscoveryServiceProvider();
    }
    DiscoveryServiceSettings settings = new DiscoveryServiceSettings().setConfigClassLoader(config.getClassLoader()).setLogger(logger).setDiscoveryMode(DiscoveryMode.Client).setDiscoveryConfig(discoveryConfig);
    DiscoveryService discoveryService = factory.newDiscoveryService(settings);
    discoveryService.start();
    return discoveryService;
}
Also used : DefaultDiscoveryServiceProvider(com.hazelcast.spi.discovery.impl.DefaultDiscoveryServiceProvider) DiscoveryServiceProvider(com.hazelcast.spi.discovery.integration.DiscoveryServiceProvider) DefaultDiscoveryServiceProvider(com.hazelcast.spi.discovery.impl.DefaultDiscoveryServiceProvider) ILogger(com.hazelcast.logging.ILogger) DiscoveryConfig(com.hazelcast.config.DiscoveryConfig) DiscoveryService(com.hazelcast.spi.discovery.integration.DiscoveryService) DiscoveryServiceSettings(com.hazelcast.spi.discovery.integration.DiscoveryServiceSettings) ClientNetworkConfig(com.hazelcast.client.config.ClientNetworkConfig)

Example 7 with DiscoveryService

use of com.hazelcast.spi.discovery.integration.DiscoveryService in project hazelcast by hazelcast.

the class ClientDiscoverySpiTest method test_discovery_address_translator.

@Test
public void test_discovery_address_translator() throws Exception {
    String xmlFileName = "hazelcast-client-discovery-spi-test.xml";
    InputStream xmlResource = ClientDiscoverySpiTest.class.getClassLoader().getResourceAsStream(xmlFileName);
    ClientConfig clientConfig = new XmlClientConfigBuilder(xmlResource).build();
    ClientNetworkConfig networkConfig = clientConfig.getNetworkConfig();
    DiscoveryConfig discoveryConfig = networkConfig.getDiscoveryConfig();
    DiscoveryServiceProvider provider = new DefaultDiscoveryServiceProvider();
    DiscoveryService discoveryService = provider.newDiscoveryService(buildDiscoveryServiceSettings(discoveryConfig));
    AddressTranslator translator = new DiscoveryAddressTranslator(discoveryService, false);
    Address address = new Address("127.0.0.1", 50001);
    assertNull(translator.translate(null));
    assertEquals(address, translator.translate(address));
    // Enforce refresh of the internal mapping
    assertEquals(address, translator.translate(address));
}
Also used : Address(com.hazelcast.nio.Address) InputStream(java.io.InputStream) DiscoveryServiceProvider(com.hazelcast.spi.discovery.integration.DiscoveryServiceProvider) DefaultDiscoveryServiceProvider(com.hazelcast.spi.discovery.impl.DefaultDiscoveryServiceProvider) AddressTranslator(com.hazelcast.client.connection.AddressTranslator) DefaultDiscoveryServiceProvider(com.hazelcast.spi.discovery.impl.DefaultDiscoveryServiceProvider) XmlClientConfigBuilder(com.hazelcast.client.config.XmlClientConfigBuilder) ClientConfig(com.hazelcast.client.config.ClientConfig) DiscoveryConfig(com.hazelcast.config.DiscoveryConfig) DiscoveryService(com.hazelcast.spi.discovery.integration.DiscoveryService) DefaultDiscoveryService(com.hazelcast.spi.discovery.impl.DefaultDiscoveryService) ClientNetworkConfig(com.hazelcast.client.config.ClientNetworkConfig) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 8 with DiscoveryService

use of com.hazelcast.spi.discovery.integration.DiscoveryService in project hazelcast by hazelcast.

the class ClientDiscoverySpiTest method test_CustomDiscoveryService_whenDiscoveredNodes_isEmpty.

@Test
public void test_CustomDiscoveryService_whenDiscoveredNodes_isEmpty() {
    ClientConfig config = new ClientConfig();
    config.setProperty(GroupProperty.DISCOVERY_SPI_ENABLED.getName(), "true");
    final DiscoveryService discoveryService = mock(DiscoveryService.class);
    DiscoveryServiceProvider discoveryServiceProvider = new DiscoveryServiceProvider() {

        public DiscoveryService newDiscoveryService(DiscoveryServiceSettings arg0) {
            when(discoveryService.discoverNodes()).thenReturn(Collections.<DiscoveryNode>emptyList());
            return discoveryService;
        }
    };
    ClientNetworkConfig networkConfig = config.getNetworkConfig();
    networkConfig.setConnectionAttemptLimit(1);
    networkConfig.setConnectionAttemptPeriod(1);
    networkConfig.getDiscoveryConfig().setDiscoveryServiceProvider(discoveryServiceProvider);
    try {
        HazelcastClient.newHazelcastClient(config);
    } catch (IllegalStateException expected) {
    // no server available
    }
    verify(discoveryService).discoverNodes();
}
Also used : DiscoveryServiceProvider(com.hazelcast.spi.discovery.integration.DiscoveryServiceProvider) DefaultDiscoveryServiceProvider(com.hazelcast.spi.discovery.impl.DefaultDiscoveryServiceProvider) ClientConfig(com.hazelcast.client.config.ClientConfig) DiscoveryService(com.hazelcast.spi.discovery.integration.DiscoveryService) DefaultDiscoveryService(com.hazelcast.spi.discovery.impl.DefaultDiscoveryService) DiscoveryServiceSettings(com.hazelcast.spi.discovery.integration.DiscoveryServiceSettings) ClientNetworkConfig(com.hazelcast.client.config.ClientNetworkConfig) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 9 with DiscoveryService

use of com.hazelcast.spi.discovery.integration.DiscoveryService in project hazelcast by hazelcast.

the class ClusterDiscoveryServiceBuilder method build.

public ClusterDiscoveryService build() {
    ArrayList<CandidateClusterContext> contexts = new ArrayList<>();
    for (ClientConfig config : configs) {
        ClientNetworkConfig networkConfig = config.getNetworkConfig();
        SocketInterceptor interceptor = initSocketInterceptor(networkConfig.getSocketInterceptorConfig());
        ICredentialsFactory credentialsFactory = initCredentialsFactory(config);
        if (credentialsFactory == null) {
            credentialsFactory = new StaticCredentialsFactory(new UsernamePasswordCredentials(null, null));
        }
        credentialsFactory.configure(new ClientCallbackHandler(config));
        DiscoveryService discoveryService = initDiscoveryService(config);
        AddressProvider provider;
        if (externalAddressProvider != null) {
            provider = externalAddressProvider;
        } else {
            provider = createAddressProvider(config, discoveryService);
        }
        final SSLConfig sslConfig = networkConfig.getSSLConfig();
        final SocketOptions socketOptions = networkConfig.getSocketOptions();
        contexts.add(new CandidateClusterContext(config.getClusterName(), provider, discoveryService, credentialsFactory, interceptor, clientExtension.createChannelInitializer(sslConfig, socketOptions)));
    }
    return new ClusterDiscoveryService(unmodifiableList(contexts), configsTryCount, lifecycleService);
}
Also used : SSLConfig(com.hazelcast.config.SSLConfig) SocketOptions(com.hazelcast.client.config.SocketOptions) ArrayList(java.util.ArrayList) UsernamePasswordCredentials(com.hazelcast.security.UsernamePasswordCredentials) DefaultAddressProvider(com.hazelcast.client.impl.spi.impl.DefaultAddressProvider) AddressProvider(com.hazelcast.client.impl.connection.AddressProvider) RemoteAddressProvider(com.hazelcast.client.impl.spi.impl.discovery.RemoteAddressProvider) ICredentialsFactory(com.hazelcast.security.ICredentialsFactory) SocketInterceptor(com.hazelcast.nio.SocketInterceptor) StaticCredentialsFactory(com.hazelcast.config.security.StaticCredentialsFactory) ClientConfig(com.hazelcast.client.config.ClientConfig) DefaultDiscoveryService(com.hazelcast.spi.discovery.impl.DefaultDiscoveryService) DiscoveryService(com.hazelcast.spi.discovery.integration.DiscoveryService) ClientNetworkConfig(com.hazelcast.client.config.ClientNetworkConfig)

Example 10 with DiscoveryService

use of com.hazelcast.spi.discovery.integration.DiscoveryService in project hazelcast by hazelcast.

the class ClusterDiscoveryServiceBuilder method initDiscoveryService.

private DiscoveryService initDiscoveryService(ClientConfig config) {
    // Prevent confusing behavior where the DiscoveryService is started
    // and strategies are resolved but the AddressProvider is never registered
    List<DiscoveryStrategyConfig> aliasedDiscoveryConfigs = ClientAliasedDiscoveryConfigUtils.createDiscoveryStrategyConfigs(config);
    if (!properties.getBoolean(ClientProperty.DISCOVERY_SPI_ENABLED) && aliasedDiscoveryConfigs.isEmpty() && !config.getNetworkConfig().isAutoDetectionEnabled()) {
        return null;
    }
    ILogger logger = loggingService.getLogger(DiscoveryService.class);
    ClientNetworkConfig networkConfig = config.getNetworkConfig();
    DiscoveryConfig discoveryConfig = new DiscoveryConfigReadOnly(networkConfig.getDiscoveryConfig());
    DiscoveryServiceProvider factory = discoveryConfig.getDiscoveryServiceProvider();
    if (factory == null) {
        factory = new DefaultDiscoveryServiceProvider();
    }
    boolean isAutoDetectionEnabled = networkConfig.isAutoDetectionEnabled();
    DiscoveryServiceSettings settings = new DiscoveryServiceSettings().setConfigClassLoader(config.getClassLoader()).setLogger(logger).setDiscoveryMode(DiscoveryMode.Client).setAliasedDiscoveryConfigs(aliasedDiscoveryConfigs).setDiscoveryConfig(discoveryConfig).setAutoDetectionEnabled(isAutoDetectionEnabled);
    DiscoveryService discoveryService = factory.newDiscoveryService(settings);
    if (isAutoDetectionEnabled && isEmptyDiscoveryStrategies(discoveryService)) {
        return null;
    }
    discoveryService.start();
    return discoveryService;
}
Also used : DiscoveryServiceProvider(com.hazelcast.spi.discovery.integration.DiscoveryServiceProvider) DefaultDiscoveryServiceProvider(com.hazelcast.spi.discovery.impl.DefaultDiscoveryServiceProvider) DefaultDiscoveryServiceProvider(com.hazelcast.spi.discovery.impl.DefaultDiscoveryServiceProvider) DiscoveryStrategyConfig(com.hazelcast.config.DiscoveryStrategyConfig) ILogger(com.hazelcast.logging.ILogger) DiscoveryConfig(com.hazelcast.config.DiscoveryConfig) DefaultDiscoveryService(com.hazelcast.spi.discovery.impl.DefaultDiscoveryService) DiscoveryService(com.hazelcast.spi.discovery.integration.DiscoveryService) DiscoveryServiceSettings(com.hazelcast.spi.discovery.integration.DiscoveryServiceSettings) DiscoveryConfigReadOnly(com.hazelcast.internal.config.DiscoveryConfigReadOnly) ClientNetworkConfig(com.hazelcast.client.config.ClientNetworkConfig)

Aggregations

DiscoveryService (com.hazelcast.spi.discovery.integration.DiscoveryService)14 DefaultDiscoveryService (com.hazelcast.spi.discovery.impl.DefaultDiscoveryService)13 DefaultDiscoveryServiceProvider (com.hazelcast.spi.discovery.impl.DefaultDiscoveryServiceProvider)13 DiscoveryServiceProvider (com.hazelcast.spi.discovery.integration.DiscoveryServiceProvider)13 ClientNetworkConfig (com.hazelcast.client.config.ClientNetworkConfig)11 DiscoveryConfig (com.hazelcast.config.DiscoveryConfig)11 QuickTest (com.hazelcast.test.annotation.QuickTest)11 Test (org.junit.Test)11 ClientConfig (com.hazelcast.client.config.ClientConfig)9 DiscoveryServiceSettings (com.hazelcast.spi.discovery.integration.DiscoveryServiceSettings)9 InputStream (java.io.InputStream)7 XmlClientConfigBuilder (com.hazelcast.client.config.XmlClientConfigBuilder)6 DiscoveryStrategyConfig (com.hazelcast.config.DiscoveryStrategyConfig)6 Config (com.hazelcast.config.Config)5 InterfacesConfig (com.hazelcast.config.InterfacesConfig)5 JoinConfig (com.hazelcast.config.JoinConfig)5 Field (java.lang.reflect.Field)5 ILogger (com.hazelcast.logging.ILogger)4 Address (com.hazelcast.cluster.Address)3 HazelcastInstance (com.hazelcast.core.HazelcastInstance)3