private static void appendNode(StringBuilder xml, String name, Object contents, Object... attributes) { if (contents != null || attributes.length > 0) { xml.append('<').append(name); appendAttributes(xml, attributes); if (contents != null) { xml.append('>'); escapeXml(contents, xml); xml.append("</").append(name).append('>'); } else { xml.append("/>"); } } }
public XmlGenerator open(String name, Object... attributes) { appendOpenNode(xml, name, attributes); openNodes.addLast(name); return this; }
private void mcMutualAuthConfigXmlGenerator(XmlGenerator gen, ManagementCenterConfig mcConfig) { MCMutualAuthConfig mutualAuthConfig = mcConfig.getMutualAuthConfig(); gen.open("mutual-auth", "enabled", mutualAuthConfig != null && mutualAuthConfig.isEnabled()); if (mutualAuthConfig != null) { Properties props = new Properties(); props.putAll(mutualAuthConfig.getProperties()); if (maskSensitiveFields && props.containsKey("trustStorePassword")) { props.setProperty("trustStorePassword", MASK_FOR_SENSITIVE_DATA); } if (maskSensitiveFields && props.containsKey("keyStorePassword")) { props.setProperty("keyStorePassword", MASK_FOR_SENSITIVE_DATA); } gen.node("factory-class-name", classNameOrImplClass(mutualAuthConfig.getFactoryClassName(), mutualAuthConfig.getFactoryImplementation())) .appendProperties(props); } gen.close(); }
XmlGenerator gen = new XmlGenerator(xml); .append("xsi:schemaLocation=\"http://www.hazelcast.com/schema/config ") .append("http://www.hazelcast.com/schema/config/hazelcast-config-3.11.xsd\">"); gen.open("group") .node("name", config.getGroupConfig().getName()) .node("password", getOrMaskValue(config.getGroupConfig().getPassword())) .close() .node("license-key", getOrMaskValue(config.getLicenseKey())) .node("instance-name", config.getInstanceName()); gen.appendProperties(config.getProperties()); securityXmlGenerator(gen, config); wanReplicationXmlGenerator(gen, config);
XmlGenerator gen = new XmlGenerator(xml); .append("xsi:schemaLocation=\"http://www.hazelcast.com/schema/config ") .append("http://www.hazelcast.com/schema/config/hazelcast-config-3.11.xsd\">"); gen.open("group") .node("name", config.getGroupConfig().getName()) .node("password", getOrMaskValue(config.getGroupConfig().getPassword())) .close() .node("license-key", getOrMaskValue(config.getLicenseKey())) .node("instance-name", config.getInstanceName()); gen.appendProperties(config.getProperties()); securityXmlGenerator(gen, config); wanReplicationXmlGenerator(gen, config);
XmlGenerator gen = new XmlGenerator(xml); gen.open("hazelcast-client", "xmlns", "http://www.hazelcast.com/schema/client-config", "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance", "xsi:schemaLocation", "http://www.hazelcast.com/schema/client-config " gen.node("instance-name", clientConfig.getInstanceName()); gen.appendAttributes(clientConfig.getAttributes()); gen.appendProperties(clientConfig.getProperties()); gen.node("executor-pool-size", clientConfig.getExecutorPoolSize()); gen.node("connection-strategy", null, "async-start", connectionStrategy.isAsyncStart(), "reconnect-mode", connectionStrategy.getReconnectMode()); gen.close();
XmlGenerator gen = new XmlGenerator(xml); gen.open("hazelcast-client", "xmlns", "http://www.hazelcast.com/schema/client-config", "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance", "xsi:schemaLocation", "http://www.hazelcast.com/schema/client-config " gen.node("instance-name", clientConfig.getInstanceName()); gen.appendProperties(clientConfig.getProperties()); gen.node("executor-pool-size", clientConfig.getExecutorPoolSize()); gen.node("connection-strategy", null, "async-start", connectionStrategy.isAsyncStart(), "reconnect-mode", connectionStrategy.getReconnectMode()); gen.close();
gen.open("security", "enabled", c.isEnabled()) .node("client-block-unmapped-actions", c.getClientBlockUnmappedActions()); gen.open("client-permission-policy", "class-name", ppc.getClassName()) .appendProperties(ppc.getProperties()) .close(); gen.open("member-credentials-factory", "class-name", cfc.getClassName()) .appendProperties(cfc.getProperties()) .close(); gen.open("security-interceptors"); for (SecurityInterceptorConfig s : sic) { gen.open("interceptor", "class-name", s.getClassName()) .close(); gen.close(); gen.close();
gen.open("security", "enabled", c.isEnabled()) .node("client-block-unmapped-actions", c.getClientBlockUnmappedActions()); gen.open("client-permission-policy", "class-name", ppc.getClassName()) .appendProperties(ppc.getProperties()) .close(); gen.open("member-credentials-factory", "class-name", cfc.getClassName()) .appendProperties(cfc.getProperties()) .close(); gen.open("security-interceptors"); for (SecurityInterceptorConfig s : sic) { gen.open("interceptor", "class-name", s.getClassName()) .close(); gen.close(); gen.close();
private static void ringbufferXmlGenerator(XmlGenerator gen, Config config) { Collection<RingbufferConfig> configs = config.getRingbufferConfigs().values(); for (RingbufferConfig rbConfig : configs) { gen.open("ringbuffer", "name", rbConfig.getName()) .node("capacity", rbConfig.getCapacity()) .node("time-to-live-seconds", rbConfig.getTimeToLiveSeconds()) .node("backup-count", rbConfig.getBackupCount()) .node("async-backup-count", rbConfig.getAsyncBackupCount()) .node("quorum-ref", rbConfig.getQuorumName()) .node("in-memory-format", rbConfig.getInMemoryFormat()); RingbufferStoreConfig storeConfig = rbConfig.getRingbufferStoreConfig(); if (storeConfig != null) { gen.open("ringbuffer-store", "enabled", storeConfig.isEnabled()) .node("class-name", storeConfig.getClassName()) .node("factory-class-name", storeConfig.getFactoryClassName()) .appendProperties(storeConfig.getProperties()); gen.close(); } MergePolicyConfig mergePolicyConfig = rbConfig.getMergePolicyConfig(); gen.node("merge-policy", mergePolicyConfig.getPolicy(), "batch-size", mergePolicyConfig.getBatchSize()) .close(); } }
private static void queueXmlGenerator(XmlGenerator gen, Config config) { Collection<QueueConfig> qCfgs = config.getQueueConfigs().values(); for (QueueConfig q : qCfgs) { gen.open("queue", "name", q.getName()) .node("statistics-enabled", q.isStatisticsEnabled()) .node("max-size", q.getMaxSize()) .node("backup-count", q.getBackupCount()) .node("async-backup-count", q.getAsyncBackupCount()) .node("empty-queue-ttl", q.getEmptyQueueTtl()); appendItemListenerConfigs(gen, q.getItemListenerConfigs()); QueueStoreConfig storeConfig = q.getQueueStoreConfig(); if (storeConfig != null) { gen.open("queue-store", "enabled", storeConfig.isEnabled()) .node("class-name", storeConfig.getClassName()) .node("factory-class-name", storeConfig.getFactoryClassName()) .appendProperties(storeConfig.getProperties()) .close(); } MergePolicyConfig mergePolicyConfig = q.getMergePolicyConfig(); gen.node("quorum-ref", q.getQuorumName()) .node("merge-policy", mergePolicyConfig.getPolicy(), "batch-size", mergePolicyConfig.getBatchSize()) .close(); } }
private static void queueXmlGenerator(XmlGenerator gen, Config config) { Collection<QueueConfig> qCfgs = config.getQueueConfigs().values(); for (QueueConfig q : qCfgs) { gen.open("queue", "name", q.getName()) .node("statistics-enabled", q.isStatisticsEnabled()) .node("max-size", q.getMaxSize()) .node("backup-count", q.getBackupCount()) .node("async-backup-count", q.getAsyncBackupCount()) .node("empty-queue-ttl", q.getEmptyQueueTtl()); appendItemListenerConfigs(gen, q.getItemListenerConfigs()); QueueStoreConfig storeConfig = q.getQueueStoreConfig(); if (storeConfig != null) { gen.open("queue-store", "enabled", storeConfig.isEnabled()) .node("class-name", storeConfig.getClassName()) .node("factory-class-name", storeConfig.getFactoryClassName()) .appendProperties(storeConfig.getProperties()) .close(); } MergePolicyConfig mergePolicyConfig = q.getMergePolicyConfig(); gen.node("quorum-ref", q.getQuorumName()) .node("merge-policy", mergePolicyConfig.getPolicy(), "batch-size", mergePolicyConfig.getBatchSize()) .close(); } }
private static void discoveryStrategyConfigXmlGenerator(XmlGenerator gen, DiscoveryConfig c) { if (c == null) { return; } gen.open("discovery-strategies"); String nodeFilterClass = classNameOrImplClass(c.getNodeFilterClass(), c.getNodeFilter()); if (nodeFilterClass != null) { gen.node("node-filter", null, "class", nodeFilterClass); } Collection<DiscoveryStrategyConfig> configs = c.getDiscoveryStrategyConfigs(); if (CollectionUtil.isNotEmpty(configs)) { for (DiscoveryStrategyConfig config : configs) { gen.open("discovery-strategy", "class", classNameOrImplClass(config.getClassName(), config.getDiscoveryStrategyFactory()), "enabled", "true") .appendProperties(config.getProperties()) .close(); } } gen.close(); }
private static void ringbufferXmlGenerator(XmlGenerator gen, Config config) { Collection<RingbufferConfig> configs = config.getRingbufferConfigs().values(); for (RingbufferConfig rbConfig : configs) { gen.open("ringbuffer", "name", rbConfig.getName()) .node("capacity", rbConfig.getCapacity()) .node("time-to-live-seconds", rbConfig.getTimeToLiveSeconds()) .node("backup-count", rbConfig.getBackupCount()) .node("async-backup-count", rbConfig.getAsyncBackupCount()) .node("quorum-ref", rbConfig.getQuorumName()) .node("in-memory-format", rbConfig.getInMemoryFormat()); RingbufferStoreConfig storeConfig = rbConfig.getRingbufferStoreConfig(); if (storeConfig != null) { gen.open("ringbuffer-store", "enabled", storeConfig.isEnabled()) .node("class-name", storeConfig.getClassName()) .node("factory-class-name", storeConfig.getFactoryClassName()) .appendProperties(storeConfig.getProperties()); gen.close(); } MergePolicyConfig mergePolicyConfig = rbConfig.getMergePolicyConfig(); gen.node("merge-policy", mergePolicyConfig.getPolicy(), "batch-size", mergePolicyConfig.getBatchSize()) .close(); } }
private static void discoveryStrategyConfigXmlGenerator(XmlGenerator gen, DiscoveryConfig c) { if (c == null) { return; } gen.open("discovery-strategies"); String nodeFilterClass = classNameOrImplClass(c.getNodeFilterClass(), c.getNodeFilter()); if (nodeFilterClass != null) { gen.node("node-filter", null, "class", nodeFilterClass); } Collection<DiscoveryStrategyConfig> configs = c.getDiscoveryStrategyConfigs(); if (CollectionUtil.isNotEmpty(configs)) { for (DiscoveryStrategyConfig config : configs) { gen.open("discovery-strategy", "class", classNameOrImplClass(config.getClassName(), config.getDiscoveryStrategyFactory()), "enabled", "true") .appendProperties(config.getProperties()) .close(); } } gen.close(); }
private void sslConfigXmlGenerator(XmlGenerator gen, NetworkConfig netCfg) { SSLConfig ssl = netCfg.getSSLConfig(); gen.open("ssl", "enabled", ssl != null && ssl.isEnabled()); if (ssl != null) { Properties props = new Properties(); props.putAll(ssl.getProperties()); if (maskSensitiveFields && props.containsKey("trustStorePassword")) { props.setProperty("trustStorePassword", MASK_FOR_SENSITIVE_DATA); } if (maskSensitiveFields && props.containsKey("keyStorePassword")) { props.setProperty("keyStorePassword", MASK_FOR_SENSITIVE_DATA); } gen.node("factory-class-name", classNameOrImplClass(ssl.getFactoryClassName(), ssl.getFactoryImplementation())) .appendProperties(props); } gen.close(); }
private static void mapStoreConfigXmlGenerator(XmlGenerator gen, MapConfig m) { if (m.getMapStoreConfig() != null) { MapStoreConfig s = m.getMapStoreConfig(); String clazz = s.getImplementation() != null ? s.getImplementation().getClass().getName() : s.getClassName(); String factoryClass = s.getFactoryImplementation() != null ? s.getFactoryImplementation().getClass().getName() : s.getFactoryClassName(); MapStoreConfig.InitialLoadMode initialMode = s.getInitialLoadMode(); gen.open("map-store", "enabled", s.isEnabled(), "initial-mode", initialMode.toString()) .node("class-name", clazz) .node("factory-class-name", factoryClass) .node("write-delay-seconds", s.getWriteDelaySeconds()) .node("write-batch-size", s.getWriteBatchSize()) .appendProperties(s.getProperties()) .close(); } }
private static void appendLoginModules(XmlGenerator gen, String tag, List<LoginModuleConfig> loginModuleConfigs) { if (!loginModuleConfigs.isEmpty()) { gen.open(tag); for (LoginModuleConfig lm : loginModuleConfigs) { List<String> attrs = new ArrayList<String>(); attrs.add("class-name"); attrs.add(lm.getClassName()); if (lm.getUsage() != null) { attrs.add("usage"); attrs.add(lm.getUsage().name()); } gen.open("login-module", attrs.toArray()) .appendProperties(lm.getProperties()) .close(); } gen.close(); } }
private static void appendLoginModules(XmlGenerator gen, String tag, List<LoginModuleConfig> loginModuleConfigs) { if (!loginModuleConfigs.isEmpty()) { gen.open(tag); for (LoginModuleConfig lm : loginModuleConfigs) { List<String> attrs = new ArrayList<String>(); attrs.add("class-name"); attrs.add(lm.getClassName()); if (lm.getUsage() != null) { attrs.add("usage"); attrs.add(lm.getUsage().name()); } gen.open("login-module", attrs.toArray()) .appendProperties(lm.getProperties()) .close(); } gen.close(); } }
private void sslConfigXmlGenerator(XmlGenerator gen, NetworkConfig netCfg) { SSLConfig ssl = netCfg.getSSLConfig(); gen.open("ssl", "enabled", ssl != null && ssl.isEnabled()); if (ssl != null) { Properties props = new Properties(); props.putAll(ssl.getProperties()); if (maskSensitiveFields && props.containsKey("trustStorePassword")) { props.setProperty("trustStorePassword", MASK_FOR_SENSITIVE_DATA); } if (maskSensitiveFields && props.containsKey("keyStorePassword")) { props.setProperty("keyStorePassword", MASK_FOR_SENSITIVE_DATA); } gen.node("factory-class-name", classNameOrImplClass(ssl.getFactoryClassName(), ssl.getFactoryImplementation())) .appendProperties(props); } gen.close(); }