public synchronized CassandraSession session()

in cassandra/src/main/java/org/apache/ignite/activestore/impl/cassandra/datasource/DataSource.java [439:513]


    public synchronized CassandraSession session(@Nullable IgniteLogger log) {
        if (ses != null) {
            return ses;
        }
        Cluster.Builder builder = Cluster.builder();
        if (user != null) {
            builder = builder.withCredentials(user, pwd);
        }
        if (port != null) {
            builder = builder.withPort(port);
        }
        if (contactPoints != null) {
            builder = builder.addContactPoints(contactPoints);
        }
        if (contactPointsWithPorts != null) {
            builder = builder.addContactPointsWithPorts(contactPointsWithPorts);
        }
        if (maxSchemaAgreementWaitSeconds != null) {
            builder = builder.withMaxSchemaAgreementWaitSeconds(maxSchemaAgreementWaitSeconds);
        }
        if (protoVer != null) {
            builder = builder.withProtocolVersion(ProtocolVersion.fromInt(protoVer));
        }
        if (compression != null) {
            try {
                builder = builder.withCompression(ProtocolOptions.Compression.valueOf(compression.trim().toLowerCase()));
            }
            catch (IllegalArgumentException e) {
                throw new IgniteException("Incorrect compression option '" + compression + "' specified for Cassandra connection", e);
            }
        }
        if (useSSL != null && useSSL) {
            builder = builder.withSSL();
        }
        if (sslOptions != null) {
            builder = builder.withSSL(sslOptions);
        }
        if (collectMetrix != null && !collectMetrix) {
            builder = builder.withoutMetrics();
        }
        if (jmxReporting != null && !jmxReporting) {
            builder = builder.withoutJMXReporting();
        }
        if (creds != null) {
            builder = builder.withCredentials(creds.getUser(), creds.getPassword());
        }
        if (loadBalancingPlc != null) {
            builder = builder.withLoadBalancingPolicy(loadBalancingPlc);
        }
        if (reconnectionPlc != null) {
            builder = builder.withReconnectionPolicy(reconnectionPlc);
        }
        if (retryPlc != null) {
            builder = builder.withRetryPolicy(retryPlc);
        }
        if (addrTranslator != null) {
            builder = builder.withAddressTranslator(addrTranslator);
        }
        if (speculativeExecutionPlc != null) {
            builder = builder.withSpeculativeExecutionPolicy(speculativeExecutionPlc);
        }
        if (authProvider != null) {
            builder = builder.withAuthProvider(authProvider);
        }
        if (poolingOptions != null) {
            builder = builder.withPoolingOptions(poolingOptions);
        }
        if (sockOptions != null) {
            builder = builder.withSocketOptions(sockOptions);
        }
        if (nettyOptions != null) {
            builder = builder.withNettyOptions(nettyOptions);
        }
        return ses = new CassandraSessionImpl(builder, fetchSize, readConsistency, writeConsistency, log);
    }