[ https://issues.apache.org/jira/browse/ARTEMIS-4160?focusedWorklogId=845854&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-845854 ]
ASF GitHub Bot logged work on ARTEMIS-4160: ------------------------------------------- Author: ASF GitHub Bot Created on: 16/Feb/23 11:34 Start Date: 16/Feb/23 11:34 Worklog Time Spent: 10m Work Description: brusdev commented on code in PR #4362: URL: https://github.com/apache/activemq-artemis/pull/4362#discussion_r1108350934 ########## artemis-cli/src/test/java/org/apache/activemq/artemis/cli/commands/CreateTest.java: ########## @@ -0,0 +1,123 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.activemq.artemis.cli.commands; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedHashMap; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; Review Comment: ```suggestion import org.apache.activemq.artemis.utils.XmlProvider; ``` ########## artemis-cli/src/test/java/org/apache/activemq/artemis/cli/commands/CreateTest.java: ########## @@ -0,0 +1,123 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.activemq.artemis.cli.commands; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedHashMap; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; +import org.w3c.dom.Document; +import org.xml.sax.SAXException; + +@RunWith(Parameterized.class) +public class CreateTest { + + private final String testName; + private final DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + private String httpHost; + private boolean relaxJolokia; + + + public CreateTest(String testName, String httpHost, boolean relaxJolokia) { + this.testName = testName; + this.httpHost = httpHost; + this.relaxJolokia = relaxJolokia; + } + + @Parameters + public static Collection<Object[]> testData() { + return Arrays.asList(new Object[][]{ + {"Happy path + relaxJolokia", "sampledomain.com", true}, + {"Happy path - relaxJolokia", "sampledomain.net", false}, + {"Domain with dash + relaxJolokia", "sample-domain.co", true}, + {"Domain with dash - relaxJolokia", "sample-domain.co.uk", false}, + {"Domain with double dashes + relaxJolokia", "sample--domain.name", true}, + {"Domain with double dashes - relaxJolokia", "sample--domain.biz", false}, + {"Domain with leading dashes + relaxJolokia", "--sampledomain.company", true}, + {"Domain with leading dashes - relaxJolokia", "--sampledomain.email", false}, + {"Domain with trailing dashes + relaxJolokia", "sampledomain--.shop", true}, + {"Domain with trailing dashes - relaxJolokia", "sampledomain--.java", false}, + }); + } + + @Test + public void testWriteJolokiaAccessXmlCreatesValidXml() throws Exception { + Create c = new Create(); + String source = Create.ETC_JOLOKIA_ACCESS_XML; + HashMap<String, String> filters = new LinkedHashMap<>(); + + filters.put("${http.host}", this.httpHost); + + // This is duplicated from Create.java, but it's embedded into the middle of the class. + // TODO: Refactor that code to it's own method. + if (this.relaxJolokia) { + filters.put("${jolokia.options}", + "<! Issue Time Tracking ------------------- Worklog Id: (was: 845854) Time Spent: 2.5h (was: 2h 20m) > jolokia-access.xml getting invalid XML from hostname during instance creation > ----------------------------------------------------------------------------- > > Key: ARTEMIS-4160 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4160 > Project: ActiveMQ Artemis > Issue Type: Bug > Reporter: Justin Bertram > Priority: Major > Time Spent: 2.5h > Remaining Estimate: 0h > -- This message was sent by Atlassian Jira (v8.20.10#820010)