/*
* 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.core.config.impl;
import java.io.ByteArrayInputStream;
import java.nio.charset.StandardCharsets;
import org.apache.activemq.artemis.core.deployers.impl.FileConfigurationParser;
import org.apache.activemq.artemis.logs.AssertionLoggerHandler;
import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* When running this test from an IDE add this to the test command line so that the AssertionLoggerHandler works properly:
* -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Dlogging.configuration=file:<path_to_source>/tests/config/logging.properties
*/
public class WrongRoleFileConfigurationParserTest extends ActiveMQTestBase {
@BeforeClass
public static void prepareLogger() {
AssertionLoggerHandler.startCapture();
}
/**
*
*
*
*/
@Test
public void testParsingDefaultServerConfig() throws Exception {
FileConfigurationParser parser = new FileConfigurationParser();
ByteArrayInputStream input = new ByteArrayInputStream(configuration.getBytes(StandardCharsets.UTF_8));
parser.parseMainConfig(input);
// Using the code only because I don't want a test failing just for someone editing Log text
assertTrue(AssertionLoggerHandler.findText("AMQ222177", "create-durable-queue"));
assertTrue(AssertionLoggerHandler.findText("AMQ222177", "delete-durable-queue"));
}
@AfterClass
public static void clearLogger() {
AssertionLoggerHandler.stopCapture();
}
private static final String configuration = "<configuration xmlns=\"urn:activemq\"\n" +
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
"xsi:schemaLocation=\"urn:activemq /schema/artemis-configuration.xsd\">\n" +
"<name>ActiveMQ.main.config</name>" + "\n" +
"<log-delegate-factory-class-name>org.apache.activemq.artemis.integration.logging.Log4jLogDelegateFactory</log-delegate-factory-class-name>" + "\n" +
"<bindings-directory>${jboss.server.data.dir}/activemq/bindings</bindings-directory>" + "\n" +
"<journal-directory>${jboss.server.data.dir}/activemq/journal</journal-directory>" + "\n" +
"<journal-min-files>10</journal-min-files>" + "\n" +
"<large-messages-directory>${jboss.server.data.dir}/activemq/largemessages</large-messages-directory>" + "\n" +
"<paging-directory>${jboss.server.data.dir}/activemq/paging</paging-directory>" + "\n" +
"<connectors>" + "\n" +
"<connector name=\"netty\">tcp://localhost:61616</connector>" + "\n" +
"<connector name=\"netty-throughput\">tcp://localhost:5545</connector>" + "\n" +
"<connector name=\"in-vm\">vm://0</connector>" + "\n" +
"</connectors>" + "\n" +
"<acceptors>" + "\n" +
"<acceptor name=\"netty\">tcp://localhost:5545</acceptor>" + "\n" +
"<acceptor name=\"netty-throughput\">tcp://localhost:5545</acceptor>" + "\n" +
"<acceptor name=\"in-vm\">vm://0</acceptor>" + "\n" +
"</acceptors>" + "\n" +
"<security-settings>" + "\n" +
"<security-setting match=\"#\">" + "\n" +
"<permission type=\"createNonDurableQueue\" roles=\"guest\"/>" + "\n" +
"<permission type=\"deleteNonDurableQueue\" roles=\"guest\"/>" + "\n" +
"<permission type=\"create-durable-queue\" roles=\"guest\"/>" + "\n" +
"<permission type=\"delete-durable-queue\" roles=\"guest\"/>" + "\n" +
"<permission type=\"consume\" roles=\"guest\"/>" + "\n" +
"<permission type=\"send\" roles=\"guest\"/>" + "\n" +
"</security-setting>" + "\n" +
"</security-settings>" + "\n" +
"<address-settings>" + "\n" +
"<address-setting match=\"#\">" + "\n" + "<dead-letter-address>DLQ\n</dead-letter-address>" + "\n" + "<expiry-address>ExpiryQueue\n</expiry-address>" + "\n" + "<redelivery-delay>0\n</redelivery-delay>" + "\n" + "<max-size-bytes>10485760\n</max-size-bytes>" + "\n" + "<message-counter-history-day-limit>10</message-counter-history-day-limit>" + "\n" + "<address-full-policy>BLOCK</address-full-policy>" + "\n" +
"</address-setting>" + "\n" +
"</address-settings>" + "\n" +
"</configuration>";
}