private void parseAndBuildConfig(Config config) throws Exception { Document doc = parse(in); Element root = doc.getDocumentElement(); checkRootElement(root); try { root.getTextContent(); } catch (Throwable e) { domLevel3 = false; } process(root); if (shouldValidateTheSchema()) { schemaValidation(root.getOwnerDocument()); } new MemberDomConfigProcessor(domLevel3, config).buildConfig(root); }
private void handleViaReflection(Node node, Object parent, Object child) throws Exception { NamedNodeMap attributes = node.getAttributes(); if (attributes != null) { for (int a = 0; a < attributes.getLength(); a++) { Node att = attributes.item(a); invokeSetter(child, att, att.getNodeValue()); } } for (Node n : childElements(node)) { if (n instanceof Element) { invokeSetter(child, n, getTextContent(n).trim()); } } attachChildConfig(parent, child); }
private void handleScheduledExecutor(Node node) { ScheduledExecutorConfig scheduledExecutorConfig = new ScheduledExecutorConfig(); scheduledExecutorConfig.setName(getTextContent(node.getAttributes().getNamedItem("name"))); for (Node child : childElements(node)) { String nodeName = cleanNodeName(child); if ("merge-policy".equals(nodeName)) { scheduledExecutorConfig.setMergePolicyConfig(createMergePolicyConfig(child)); } else if ("capacity".equals(nodeName)) { scheduledExecutorConfig.setCapacity(parseInt(getTextContent(child))); } else if ("durability".equals(nodeName)) { scheduledExecutorConfig.setDurability(parseInt(getTextContent(child))); } else if ("pool-size".equals(nodeName)) { scheduledExecutorConfig.setPoolSize(parseInt(getTextContent(child))); } else if ("quorum-ref".equals(nodeName)) { scheduledExecutorConfig.setQuorumName(getTextContent(child)); } } config.addScheduledExecutorConfig(scheduledExecutorConfig); }
@SuppressWarnings("deprecation") private void handleMap(Node parentNode) { String name = getAttribute(parentNode, "name"); MapConfig mapConfig = new MapConfig(); mapConfig.setName(name); for (Node node : childElements(parentNode)) { String nodeName = cleanNodeName(node); String value = getTextContent(node).trim(); if ("backup-count".equals(nodeName)) { mapConfig.setBackupCount(getIntegerValue("backup-count", value)); if (maxSizePolicy != null) { msc.setMaxSizePolicy(MaxSizeConfig.MaxSizePolicy.valueOf( upperCaseInternal(getTextContent(maxSizePolicy)))); )); } else if ("map-store".equals(nodeName)) { MapStoreConfig mapStoreConfig = createMapStoreConfig(node); mapConfig.setMapStoreConfig(mapStoreConfig); } else if ("near-cache".equals(nodeName)) { mapConfig.setNearCacheConfig(handleNearCacheConfig(node)); } else if ("merge-policy".equals(nodeName)) { MergePolicyConfig mergePolicyConfig = createMergePolicyConfig(node); mapConfig.setMergePolicyConfig(mergePolicyConfig); } else if ("hot-restart".equals(nodeName)) { mapConfig.setHotRestartConfig(createHotRestartConfig(node)); } else if ("read-backup-data".equals(nodeName)) { mapConfig.setReadBackupData(getBooleanValue(value)); mapConfig.setCacheDeserializedValues(cacheDeserializedValues);
private void handleCache(Node node) { String name = getAttribute(node, "name"); CacheSimpleConfig cacheConfig = new CacheSimpleConfig(); cacheConfig.setName(name); for (Node n : childElements(node)) { String nodeName = cleanNodeName(n); String value = getTextContent(n).trim(); if ("key-type".equals(nodeName)) { cacheConfig.setKeyType(getAttribute(n, "class-name")); } else if ("value-type".equals(nodeName)) { cacheConfig.setValueType(getAttribute(n, "class-name")); } else if ("statistics-enabled".equals(nodeName)) { cacheConfig.setStatisticsEnabled(getBooleanValue(value)); cacheConfig.setWriteThrough(getBooleanValue(value)); } else if ("cache-loader-factory".equals(nodeName)) { cacheConfig.setCacheLoaderFactory(getAttribute(n, "class-name")); } else if ("cache-loader".equals(nodeName)) { cacheConfig.setCacheLoader(getAttribute(n, "class-name")); } else if ("cache-writer-factory".equals(nodeName)) { cacheConfig.setCacheWriterFactory(getAttribute(n, "class-name")); } else if ("cache-writer".equals(nodeName)) { cacheConfig.setCacheWriter(getAttribute(n, "class-name")); } else if ("expiry-policy-factory".equals(nodeName)) { cacheConfig.setExpiryPolicyFactoryConfig(getExpiryPolicyFactoryConfig(n)); } else if ("cache-entry-listeners".equals(nodeName)) { cacheListenerHandle(n, cacheConfig); } else if ("in-memory-format".equals(nodeName)) { cacheConfig.setInMemoryFormat(InMemoryFormat.valueOf(upperCaseInternal(value)));
private void handleQueue(Node node) { Node attName = node.getAttributes().getNamedItem("name"); String name = getTextContent(attName); QueueConfig qConfig = new QueueConfig(); qConfig.setName(name); for (Node n : childElements(node)) { String nodeName = cleanNodeName(n); String value = getTextContent(n).trim(); if ("max-size".equals(nodeName)) { qConfig.setMaxSize(getIntegerValue("max-size", value)); if ("item-listener".equals(cleanNodeName(listenerNode))) { NamedNodeMap attrs = listenerNode.getAttributes(); boolean incValue = getBooleanValue(getTextContent(attrs.getNamedItem("include-value"))); String listenerClass = getTextContent(listenerNode); qConfig.addItemListenerConfig(new ItemListenerConfig(listenerClass, incValue)); qConfig.setStatisticsEnabled(getBooleanValue(value)); } else if ("queue-store".equals(nodeName)) { QueueStoreConfig queueStoreConfig = createQueueStoreConfig(n); qConfig.setQueueStoreConfig(queueStoreConfig); } else if ("quorum-ref".equals(nodeName)) { qConfig.setEmptyQueueTtl(getIntegerValue("empty-queue-ttl", value)); } else if ("merge-policy".equals(nodeName)) { MergePolicyConfig mergePolicyConfig = createMergePolicyConfig(n); qConfig.setMergePolicyConfig(mergePolicyConfig);
private void handleRingbuffer(Node node) { Node attName = node.getAttributes().getNamedItem("name"); String name = getTextContent(attName); RingbufferConfig rbConfig = new RingbufferConfig(name); for (Node n : childElements(node)) { String nodeName = cleanNodeName(n); String value = getTextContent(n).trim(); if ("capacity".equals(nodeName)) { int capacity = getIntegerValue("capacity", value); rbConfig.setInMemoryFormat(inMemoryFormat); } else if ("ringbuffer-store".equals(nodeName)) { RingbufferStoreConfig ringbufferStoreConfig = createRingbufferStoreConfig(n); rbConfig.setRingbufferStoreConfig(ringbufferStoreConfig); } else if ("quorum-ref".equals(nodeName)) { rbConfig.setQuorumName(value); } else if ("merge-policy".equals(nodeName)) { MergePolicyConfig mergePolicyConfig = createMergePolicyConfig(n); rbConfig.setMergePolicyConfig(mergePolicyConfig);
private void handleAtomicReference(Node node) { Node attName = node.getAttributes().getNamedItem("name"); String name = getTextContent(attName); AtomicReferenceConfig atomicReferenceConfig = new AtomicReferenceConfig(name); for (Node n : childElements(node)) { String nodeName = cleanNodeName(n); String value = getTextContent(n).trim(); if ("merge-policy".equals(nodeName)) { MergePolicyConfig mergePolicyConfig = createMergePolicyConfig(n); atomicReferenceConfig.setMergePolicyConfig(mergePolicyConfig); } else if ("quorum-ref".equals(nodeName)) { atomicReferenceConfig.setQuorumName(value); } } config.addAtomicReferenceConfig(atomicReferenceConfig); }
private void handleCardinalityEstimator(Node node) { CardinalityEstimatorConfig cardinalityEstimatorConfig = new CardinalityEstimatorConfig(); cardinalityEstimatorConfig.setName(getTextContent(node.getAttributes().getNamedItem("name"))); for (Node child : childElements(node)) { String nodeName = cleanNodeName(child); if ("merge-policy".equals(nodeName)) { MergePolicyConfig mergePolicyConfig = createMergePolicyConfig(child); cardinalityEstimatorConfig.setMergePolicyConfig(mergePolicyConfig); } else if ("backup-count".equals(nodeName)) { cardinalityEstimatorConfig.setBackupCount(parseInt(getTextContent(child))); } else if ("async-backup-count".equals(nodeName)) { cardinalityEstimatorConfig.setAsyncBackupCount(parseInt(getTextContent(child))); } else if ("quorum-ref".equals(nodeName)) { cardinalityEstimatorConfig.setQuorumName(getTextContent(child)); } } config.addCardinalityEstimatorConfig(cardinalityEstimatorConfig); }
private void handleAtomicLong(Node node) { Node attName = node.getAttributes().getNamedItem("name"); String name = getTextContent(attName); AtomicLongConfig atomicLongConfig = new AtomicLongConfig(name); for (Node n : childElements(node)) { String nodeName = cleanNodeName(n); String value = getTextContent(n).trim(); if ("merge-policy".equals(nodeName)) { MergePolicyConfig mergePolicyConfig = createMergePolicyConfig(n); atomicLongConfig.setMergePolicyConfig(mergePolicyConfig); } else if ("quorum-ref".equals(nodeName)) { atomicLongConfig.setQuorumName(value); } } config.addAtomicLongConfig(atomicLongConfig); }
private void handleList(Node node) { Node attName = node.getAttributes().getNamedItem("name"); String name = getTextContent(attName); ListConfig lConfig = new ListConfig(); lConfig.setName(name); for (Node n : childElements(node)) { String nodeName = cleanNodeName(n); String value = getTextContent(n).trim(); if ("max-size".equals(nodeName)) { lConfig.setMaxSize(getIntegerValue("max-size", value)); if ("item-listener".equals(cleanNodeName(listenerNode))) { NamedNodeMap attrs = listenerNode.getAttributes(); boolean incValue = getBooleanValue(getTextContent(attrs.getNamedItem("include-value"))); String listenerClass = getTextContent(listenerNode); lConfig.addItemListenerConfig(new ItemListenerConfig(listenerClass, incValue)); lConfig.setQuorumName(value); } else if ("merge-policy".equals(nodeName)) { MergePolicyConfig mergePolicyConfig = createMergePolicyConfig(n); lConfig.setMergePolicyConfig(mergePolicyConfig);
private void handleMultiMap(Node node) { Node attName = node.getAttributes().getNamedItem("name"); String name = getTextContent(attName); MultiMapConfig multiMapConfig = new MultiMapConfig(); multiMapConfig.setName(name); for (Node n : childElements(node)) { String nodeName = cleanNodeName(n); String value = getTextContent(n).trim(); if ("value-collection-type".equals(nodeName)) { multiMapConfig.setValueCollectionType(value); if ("entry-listener".equals(cleanNodeName(listenerNode))) { NamedNodeMap attrs = listenerNode.getAttributes(); boolean incValue = getBooleanValue(getTextContent(attrs.getNamedItem("include-value"))); boolean local = getBooleanValue(getTextContent(attrs.getNamedItem("local"))); String listenerClass = getTextContent(listenerNode); multiMapConfig.addEntryListenerConfig(new EntryListenerConfig(listenerClass, local, incValue)); multiMapConfig.setQuorumName(value); } else if ("merge-policy".equals(nodeName)) { MergePolicyConfig mergePolicyConfig = createMergePolicyConfig(n); multiMapConfig.setMergePolicyConfig(mergePolicyConfig);
private void handleSet(Node node) { Node attName = node.getAttributes().getNamedItem("name"); String name = getTextContent(attName); SetConfig sConfig = new SetConfig(); sConfig.setName(name); for (Node n : childElements(node)) { String nodeName = cleanNodeName(n); String value = getTextContent(n).trim(); if ("max-size".equals(nodeName)) { sConfig.setMaxSize(getIntegerValue("max-size", value)); if ("item-listener".equals(cleanNodeName(listenerNode))) { NamedNodeMap attrs = listenerNode.getAttributes(); boolean incValue = getBooleanValue(getTextContent(attrs.getNamedItem("include-value"))); String listenerClass = getTextContent(listenerNode); sConfig.addItemListenerConfig(new ItemListenerConfig(listenerClass, incValue)); sConfig.setQuorumName(value); } else if ("merge-policy".equals(nodeName)) { MergePolicyConfig mergePolicyConfig = createMergePolicyConfig(n); sConfig.setMergePolicyConfig(mergePolicyConfig);
@SuppressWarnings("deprecation") private void handleReplicatedMap(Node node) { Node attName = node.getAttributes().getNamedItem("name"); String name = getTextContent(attName); ReplicatedMapConfig replicatedMapConfig = new ReplicatedMapConfig(); replicatedMapConfig.setName(name); for (Node n : childElements(node)) { String nodeName = cleanNodeName(n); String value = getTextContent(n).trim(); if ("concurrency-level".equals(nodeName)) { replicatedMapConfig.setConcurrencyLevel(getIntegerValue("concurrency-level", value)); if ("entry-listener".equals(cleanNodeName(listenerNode))) { NamedNodeMap attrs = listenerNode.getAttributes(); boolean incValue = getBooleanValue(getTextContent(attrs.getNamedItem("include-value"))); boolean local = getBooleanValue(getTextContent(attrs.getNamedItem("local"))); String listenerClass = getTextContent(listenerNode); replicatedMapConfig.addEntryListenerConfig(new EntryListenerConfig(listenerClass, local, incValue)); MergePolicyConfig mergePolicyConfig = createMergePolicyConfig(n); replicatedMapConfig.setMergePolicyConfig(mergePolicyConfig); } else if ("quorum-ref".equals(nodeName)) {