public static void writeIgniteConfiguration()

in modules/core/src/main/java/org/apache/ignite/internal/processors/platform/utils/PlatformConfigurationUtils.java [1323:1567]


    public static void writeIgniteConfiguration(BinaryRawWriter w, IgniteConfiguration cfg) {
        assert w != null;
        assert cfg != null;

        w.writeBoolean(true);
        w.writeBoolean(cfg.isClientMode());
        w.writeIntArray(cfg.getIncludeEventTypes());
        w.writeBoolean(true);
        w.writeLong(cfg.getMetricsExpireTime());
        w.writeBoolean(true);
        w.writeInt(cfg.getMetricsHistorySize());
        w.writeBoolean(true);
        w.writeLong(cfg.getMetricsLogFrequency());
        w.writeBoolean(true);
        w.writeLong(cfg.getMetricsUpdateFrequency());
        w.writeBoolean(true);
        w.writeInt(cfg.getNetworkSendRetryCount());
        w.writeBoolean(true);
        w.writeLong(cfg.getNetworkSendRetryDelay());
        w.writeBoolean(true);
        w.writeLong(cfg.getNetworkTimeout());
        w.writeString(cfg.getWorkDirectory());
        w.writeString(cfg.getLocalHost());
        w.writeBoolean(true);
        w.writeLong(cfg.getFailureDetectionTimeout());
        w.writeBoolean(true);
        w.writeLong(cfg.getClientFailureDetectionTimeout());
        w.writeBoolean(true);
        w.writeLong(cfg.getLongQueryWarningTimeout());
        w.writeBoolean(true);
        w.writeBoolean(cfg.isActiveOnStart());
        w.writeBoolean(true);
        w.writeBoolean(cfg.isAuthenticationEnabled());
        if (cfg.getSystemWorkerBlockedTimeout() != null) {
            w.writeBoolean(true);
            w.writeLong(cfg.getSystemWorkerBlockedTimeout());
        }
        else {
            w.writeBoolean(false);
        }
        w.writeBoolean(true);
        w.writeInt(cfg.getSqlQueryHistorySize());
        w.writeBoolean(true);
        w.writeBoolean(cfg.isPeerClassLoadingEnabled());
        w.writeBoolean(true);
        w.writeInt(getAsyncContinuationExecutorMode(cfg.getAsyncContinuationExecutor()));

        if (cfg.getSqlSchemas() == null)
            w.writeInt(0);
        else {
            w.writeInt(cfg.getSqlSchemas().length);

            for (String schema : cfg.getSqlSchemas())
                w.writeString(schema);
        }

        w.writeObject(cfg.getConsistentId());

        // Thread pools.
        w.writeBoolean(true);
        w.writeInt(cfg.getPublicThreadPoolSize());
        w.writeBoolean(true);
        w.writeInt(cfg.getStripedPoolSize());
        w.writeBoolean(true);
        w.writeInt(cfg.getServiceThreadPoolSize());
        w.writeBoolean(true);
        w.writeInt(cfg.getSystemThreadPoolSize());
        w.writeBoolean(true);
        w.writeInt(cfg.getAsyncCallbackPoolSize());
        w.writeBoolean(true);
        w.writeInt(cfg.getManagementThreadPoolSize());
        w.writeBoolean(true);
        w.writeInt(cfg.getDataStreamerThreadPoolSize());
        w.writeBoolean(true);
        w.writeInt(cfg.getUtilityCacheThreadPoolSize());
        w.writeBoolean(true);
        w.writeInt(cfg.getQueryThreadPoolSize());

        CacheConfiguration[] cacheCfg = cfg.getCacheConfiguration();

        if (cacheCfg != null) {
            w.writeInt(cacheCfg.length);

            for (CacheConfiguration ccfg : cacheCfg)
                writeCacheConfiguration(w, ccfg);
        }
        else
            w.writeInt(0);

        writeDiscoveryConfiguration(w, cfg.getDiscoverySpi());
        writeEncryptionConfiguration(w, cfg.getEncryptionSpi());

        CommunicationSpi comm = cfg.getCommunicationSpi();

        if (comm instanceof TcpCommunicationSpi) {
            w.writeBoolean(true);
            TcpCommunicationSpi tcp = (TcpCommunicationSpi)comm;

            w.writeInt(tcp.getAckSendThreshold());
            w.writeInt(tcp.getConnectionsPerNode());
            w.writeLong(tcp.getConnectTimeout());
            w.writeBoolean(tcp.isDirectBuffer());
            w.writeBoolean(tcp.isDirectSendBuffer());
            w.writeBoolean(tcp.isFilterReachableAddresses());
            w.writeLong(tcp.getIdleConnectionTimeout());
            w.writeString(tcp.getLocalAddress());
            w.writeInt(tcp.getLocalPort());
            w.writeInt(tcp.getLocalPortRange());
            w.writeLong(tcp.getMaxConnectTimeout());
            w.writeInt(tcp.getMessageQueueLimit());
            w.writeInt(tcp.getReconnectCount());
            w.writeInt(tcp.getSelectorsCount());
            w.writeLong(tcp.getSelectorSpins());
            w.writeInt(tcp.getSlowClientQueueLimit());
            w.writeInt(tcp.getSocketReceiveBuffer());
            w.writeInt(tcp.getSocketSendBuffer());
            w.writeLong(tcp.getSocketWriteTimeout());
            w.writeBoolean(tcp.isTcpNoDelay());
            w.writeInt(tcp.getUnacknowledgedMessagesBufferSize());
            w.writeBoolean(tcp.isUsePairedConnections());
        }
        else
            w.writeBoolean(false);

        BinaryConfiguration bc = cfg.getBinaryConfiguration();

        if (bc != null) {
            w.writeBoolean(true);  // binary config exists
            w.writeBoolean(true);  // compact footer is set
            w.writeBoolean(bc.isCompactFooter());
            w.writeBoolean(bc.getNameMapper() instanceof BinaryBasicNameMapper &&
                    ((BinaryBasicNameMapper)(bc.getNameMapper())).isSimpleName());
        }
        else
            w.writeBoolean(false);

        Map<String, ?> attrs = cfg.getUserAttributes();

        if (attrs != null) {
            w.writeInt(attrs.size());

            for (Map.Entry<String, ?> e : attrs.entrySet()) {
                w.writeString(e.getKey());
                w.writeObject(e.getValue());
            }
        }
        else
            w.writeInt(0);

        AtomicConfiguration atomic = cfg.getAtomicConfiguration();

        if (atomic != null) {
            w.writeBoolean(true);

            w.writeInt(atomic.getAtomicSequenceReserveSize());
            w.writeInt(atomic.getBackups());
            w.writeInt(ofNullable(atomic.getCacheMode()).orElse(AtomicConfiguration.DFLT_CACHE_MODE).code());
        }
        else
            w.writeBoolean(false);

        TransactionConfiguration tx = cfg.getTransactionConfiguration();

        if (tx != null) {
            w.writeBoolean(true);

            w.writeInt(tx.getPessimisticTxLogSize());
            writeEnumInt(w, tx.getDefaultTxConcurrency(), TransactionConfiguration.DFLT_TX_CONCURRENCY);
            writeEnumInt(w, tx.getDefaultTxIsolation(), TransactionConfiguration.DFLT_TX_ISOLATION);
            w.writeLong(tx.getDefaultTxTimeout());
            w.writeInt(tx.getPessimisticTxLogLinger());
            w.writeLong(tx.getTxTimeoutOnPartitionMapExchange());
        }
        else
            w.writeBoolean(false);

        EventStorageSpi evtStorageSpi = cfg.getEventStorageSpi();

        if (evtStorageSpi == null)
            w.writeByte((byte)0);
        else if (evtStorageSpi instanceof NoopEventStorageSpi)
            w.writeByte((byte)1);
        else if (evtStorageSpi instanceof MemoryEventStorageSpi) {
            w.writeByte((byte)2);

            w.writeLong(((MemoryEventStorageSpi)evtStorageSpi).getExpireCount());
            w.writeLong(((MemoryEventStorageSpi)evtStorageSpi).getExpireAgeMs());
        }

        writeMemoryConfiguration(w, cfg.getMemoryConfiguration());

        writeSqlConnectorConfiguration(w, cfg.getSqlConnectorConfiguration());

        writeClientConnectorConfiguration(w, cfg.getClientConnectorConfiguration());

        w.writeBoolean(cfg.getClientConnectorConfiguration() != null);

        writePersistentStoreConfiguration(w, cfg.getPersistentStoreConfiguration());

        writeDataStorageConfiguration(w, cfg.getDataStorageConfiguration());

        writeSslContextFactory(w, cfg.getSslContextFactory());

        FailureHandler failureHnd = cfg.getFailureHandler();

        if (failureHnd instanceof NoOpFailureHandler) {
            w.writeBoolean(true);

            w.writeByte((byte)0);
        }
        else if (failureHnd instanceof StopNodeFailureHandler) {
            w.writeBoolean(true);

            w.writeByte((byte)1);
        }
        else if (failureHnd instanceof StopNodeOrHaltFailureHandler) {
            w.writeBoolean(true);

            w.writeByte((byte)2);

            w.writeBoolean(((StopNodeOrHaltFailureHandler)failureHnd).tryStop());

            w.writeLong(((StopNodeOrHaltFailureHandler)failureHnd).timeout());
        }
        else
            w.writeBoolean(false);

        ExecutorConfiguration[] execCfgs = cfg.getExecutorConfiguration();

        if (execCfgs != null) {
            w.writeInt(execCfgs.length);

            for (ExecutorConfiguration execCfg : execCfgs) {
                w.writeString(execCfg.getName());
                w.writeInt(execCfg.getSize());
            }
        }
        else
            w.writeInt(0);

        w.writeString(cfg.getIgniteHome());

        w.writeLong(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getInit());
        w.writeLong(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getMax());
    }