/** * Warns user about unsupported features which was configured in OS edition. * * @param cfg Grid configuration. */ private void warnNotSupportedFeaturesForOs(GridConfiguration cfg) { Collection<String> msgs = new ArrayList<>(); if (!F.isEmpty(cfg.getSegmentationResolvers())) msgs.add("Network segmentation detection."); if (cfg.getDrReceiverHubConfiguration() != null || cfg.getDrSenderHubConfiguration() != null) msgs.add("Data center replication."); if (cfg.getSecureSessionSpi() != null && !(cfg.getSecureSessionSpi() instanceof GridNoopSecureSessionSpi)) msgs.add("Secure session SPI."); if (cfg.getAuthenticationSpi() != null && !(cfg.getAuthenticationSpi() instanceof GridNoopAuthenticationSpi)) msgs.add("Authentication SPI."); if (!F.isEmpty(msgs)) { U.quietAndInfo(log, "The following features are not supported in open source edition, " + "related configuration settings will be ignored " + "(consider downloading enterprise edition from http://www.gridgain.com):"); for (String s : msgs) U.quietAndInfo(log, " ^-- " + s); U.quietAndInfo(log, ""); } }
/** * @param cfg Grid configuration. * @return Components provided in configuration which can implement {@link GridLifecycleAware} interface. */ private Iterable<Object> lifecycleAwares(GridConfiguration cfg) { Collection<Object> objs = new ArrayList<>(); if (!F.isEmpty(cfg.getLifecycleBeans())) F.copy(objs, cfg.getLifecycleBeans()); if (!F.isEmpty(cfg.getSegmentationResolvers())) F.copy(objs, cfg.getSegmentationResolvers()); if (cfg.getClientConnectionConfiguration() != null) F.copy(objs, cfg.getClientConnectionConfiguration().getClientMessageInterceptor(), cfg.getClientConnectionConfiguration().getRestTcpSslContextFactory()); F.copy(objs, cfg.getMarshaller(), cfg.getGridLogger(), cfg.getMBeanServer()); return objs; }
/** * @param c Grid configuration. * @return Data transfer object for node segmentation configuration properties. */ public static VisorSegmentationConfig from(GridConfiguration c) { VisorSegmentationConfig cfg = new VisorSegmentationConfig(); cfg.policy(c.getSegmentationPolicy()); cfg.resolvers(compactArray(c.getSegmentationResolvers())); cfg.checkFrequency(c.getSegmentCheckFrequency()); cfg.waitOnStart(c.isWaitForSegmentOnStart()); cfg.passRequired(c.isAllSegmentationResolversPassRequired()); return cfg; }
hasRslvrs = !F.isEmpty(ctx.config().getSegmentationResolvers());
if (!F.isEmpty(cfg.getSegmentationResolvers()) && segPlc == RESTART_JVM && !cfg.isWaitForSegmentOnStart()) { U.warn(log, "Found potential configuration problem (forgot to enable waiting for segment" + "on start?) [segPlc=" + segPlc + ", wait=false]"); myCfg.setSegmentationResolvers(cfg.getSegmentationResolvers()); myCfg.setSegmentationResolveAttempts(cfg.getSegmentationResolveAttempts()); myCfg.setSegmentationPolicy(segPlc);
segPlc = cfg.getSegmentationPolicy(); segResolveAttempts = cfg.getSegmentationResolveAttempts(); segResolvers = cfg.getSegmentationResolvers(); sndRetryCnt = cfg.getNetworkSendRetryCount(); sndRetryDelay = cfg.getNetworkSendRetryDelay();