@Autowired
    @RefreshScope
    @Bean
    public IgniteConfiguration igniteConfiguration(@Qualifier("ticketCatalog") final TicketCatalog ticketCatalog) {
        val ignite = casProperties.getTicket().getRegistry().getIgnite();

        val config = new IgniteConfiguration();
        val spi = new TcpDiscoverySpi();

        if (!StringUtils.isEmpty(ignite.getLocalAddress())) {
            spi.setLocalAddress(ignite.getLocalAddress());
        }
        if (ignite.getLocalPort() != -1) {
            spi.setLocalPort(ignite.getLocalPort());
        }
        spi.setJoinTimeout(Beans.newDuration(ignite.getJoinTimeout()).toMillis());
        spi.setAckTimeout(Beans.newDuration(ignite.getAckTimeout()).toMillis());
        spi.setNetworkTimeout(Beans.newDuration(ignite.getNetworkTimeout()).toMillis());
        spi.setSocketTimeout(Beans.newDuration(ignite.getSocketTimeout()).toMillis());
        spi.setThreadPriority(ignite.getThreadPriority());
        spi.setForceServerMode(ignite.isForceServerMode());

        val finder = new TcpDiscoveryVmIpFinder();
        finder.setAddresses(ignite.getIgniteAddress());
        spi.setIpFinder(finder);
        config.setDiscoverySpi(spi);
        val cacheConfigurations = buildIgniteTicketCaches(ignite, ticketCatalog);
        config.setCacheConfiguration(cacheConfigurations.toArray(CacheConfiguration[]::new));
        config.setClientMode(ignite.isClientMode());

        val factory = buildSecureTransportForIgniteConfiguration();
        if (factory != null) {
            config.setSslContextFactory(factory);
        }

        val dataStorageConfiguration = new DataStorageConfiguration();
        val dataRegionConfiguration = new DataRegionConfiguration();
        dataRegionConfiguration.setName("DefaultRegion");
        dataRegionConfiguration.setMaxSize(ignite.getDefaultRegionMaxSize());
        dataRegionConfiguration.setPersistenceEnabled(ignite.isDefaultPersistenceEnabled());
        dataStorageConfiguration.setDefaultDataRegionConfiguration(dataRegionConfiguration);

        dataStorageConfiguration.setSystemRegionMaxSize(ignite.getDefaultRegionMaxSize());
        config.setDataStorageConfiguration(dataStorageConfiguration);

        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("igniteConfiguration.cacheConfiguration=[{}]", (Object[]) config.getCacheConfiguration());
            LOGGER.debug("igniteConfiguration.getDiscoverySpi=[{}]", config.getDiscoverySpi());
            LOGGER.debug("igniteConfiguration.getSslContextFactory=[{}]", config.getSslContextFactory());
        }

        return config;
    }
@ Autowired @ RefreshScope @ Bean public IgniteConfiguration igniteConfiguration ( @ Qualifier ( "ticketCatalog" ) final TicketCatalog ticketCatalog ) { val ignite = casProperties . getTicket ( ) . getRegistry ( ) . getIgnite ( ) ; val config = new IgniteConfiguration ( ) ; val spi = new TcpDiscoverySpi ( ) ; if ( ! StringUtils . isEmpty ( ignite . getLocalAddress ( ) ) ) { spi . setLocalAddress ( ignite . getLocalAddress ( ) ) ; } if ( ignite . getLocalPort ( ) != - 1 ) { spi . setLocalPort ( ignite . getLocalPort ( ) ) ; } spi . setJoinTimeout ( Beans . newDuration ( ignite . getJoinTimeout ( ) ) . toMillis ( ) ) ; spi . setAckTimeout ( Beans . newDuration ( ignite . getAckTimeout ( ) ) . toMillis ( ) ) ; spi . setNetworkTimeout ( Beans . newDuration ( ignite . getNetworkTimeout ( ) ) . toMillis ( ) ) ; spi . setSocketTimeout ( Beans . newDuration ( ignite . getSocketTimeout ( ) ) . toMillis ( ) ) ; spi . setThreadPriority ( ignite . getThreadPriority ( ) ) ; spi . setForceServerMode ( ignite . isForceServerMode ( ) ) ; val finder = new TcpDiscoveryVmIpFinder ( ) ; finder . setAddresses ( ignite . getIgniteAddress ( ) ) ; spi . setIpFinder ( finder ) ; config . setDiscoverySpi ( spi ) ; val cacheConfigurations = buildIgniteTicketCaches ( ignite , ticketCatalog ) ; config . setCacheConfiguration ( cacheConfigurations . toArray ( CacheConfiguration [ ] :: new ) ) ; config . setClientMode ( ignite . isClientMode ( ) ) ; val factory = buildSecureTransportForIgniteConfiguration ( ) ; if ( factory != null ) { config . setSslContextFactory ( factory ) ; } val dataStorageConfiguration = new DataStorageConfiguration ( ) ; val dataRegionConfiguration = new DataRegionConfiguration ( ) ; dataRegionConfiguration . setName ( "DefaultRegion" ) ; dataRegionConfiguration . setMaxSize ( ignite . getDefaultRegionMaxSize ( ) ) ; dataRegionConfiguration . setPersistenceEnabled ( ignite . isDefaultPersistenceEnabled ( ) ) ; dataStorageConfiguration . setDefaultDataRegionConfiguration ( dataRegionConfiguration ) ; dataStorageConfiguration . setSystemRegionMaxSize ( ignite . getDefaultRegionMaxSize ( ) ) ; config . setDataStorageConfiguration ( dataStorageConfiguration ) ; if ( LOGGER . isDebugEnabled ( ) ) { LOGGER . debug ( "igniteConfiguration.cacheConfiguration=[{}]" , ( Object [ ] ) config . getCacheConfiguration ( ) ) ; LOGGER . debug ( "igniteConfiguration.getDiscoverySpi=[{}]" , config . getDiscoverySpi ( ) ) ; LOGGER . debug ( "igniteConfiguration.getSslContextFactory=[{}]" , config . getSslContextFactory ( ) ) ; } return config ; }
Ignite configuration ignite configuration.

@param ticketCatalog the ticket catalog
@return the ignite configuration