void removeInvalidXmlConfigurations(Region<String, Configuration> configRegion) throws IOException, SAXException, ParserConfigurationException, TransformerException { for (Map.Entry<String, Configuration> entry : configRegion.entrySet()) { String group = entry.getKey(); Configuration configuration = entry.getValue(); String configurationXml = configuration.getCacheXmlContent(); if (configurationXml != null && !configurationXml.isEmpty()) { Document document = XmlUtils.createDocumentFromXml(configurationXml); boolean removedInvalidReceivers = removeInvalidGatewayReceivers(document); boolean removedDuplicateReceivers = removeDuplicateGatewayReceivers(document); if (removedInvalidReceivers || removedDuplicateReceivers) { configuration.setCacheXmlContent(XmlUtils.prettyXml(document)); configRegion.put(group, configuration); } } } }
@Test public void removeInvalidGatewayReceiversWithDifferentHostNameForSenders() throws Exception { Document document = XmlUtils.createDocumentFromXml(getDuplicateReceiversWithDifferentHostNameForSendersXml()); System.out.println("Initial document:\n" + XmlUtils.prettyXml(document)); assertThat(document.getElementsByTagName("gateway-receiver").getLength()).isEqualTo(2); service.removeInvalidGatewayReceivers(document); System.out.println("Processed document:\n" + XmlUtils.prettyXml(document)); assertThat(document.getElementsByTagName("gateway-receiver").getLength()).isEqualTo(0); }
@Test public void removeInvalidGatewayReceiversWithDifferentBindAddresses() throws Exception { Document document = XmlUtils.createDocumentFromXml(getDuplicateReceiversWithDifferentBindAddressesXml()); System.out.println("Initial document:\n" + XmlUtils.prettyXml(document)); assertThat(document.getElementsByTagName("gateway-receiver").getLength()).isEqualTo(2); service.removeInvalidGatewayReceivers(document); System.out.println("Processed document:\n" + XmlUtils.prettyXml(document)); assertThat(document.getElementsByTagName("gateway-receiver").getLength()).isEqualTo(0); }
@Test public void keepValidGatewayReceiversWithDefaultBindAddress() throws Exception { Document document = XmlUtils.createDocumentFromXml(getSingleReceiverWithDefaultBindAddressXml()); System.out.println("Initial document:\n" + XmlUtils.prettyXml(document)); assertThat(document.getElementsByTagName("gateway-receiver").getLength()).isEqualTo(1); service.removeInvalidGatewayReceivers(document); System.out.println("Processed document:\n" + XmlUtils.prettyXml(document)); assertThat(document.getElementsByTagName("gateway-receiver").getLength()).isEqualTo(1); }