/* * 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.tools; import java.io.File; import io.airlift.airline.Option; import org.apache.activemq.artemis.cli.commands.Configurable; /** * Abstract class for places where you need bindings, journal paging and large messages configuration */ public abstract class DataAbstract extends Configurable { @Option(name = "--bindings", description = "The folder used for bindings (default from broker.xml)") public String binding; @Option(name = "--journal", description = "The folder used for messages journal (default from broker.xml)") public String journal; @Option(name = "--paging", description = "The folder used for paging (default from broker.xml)") public String paging; @Option(name = "--large-messages", description = "The folder used for large-messages (default from broker.xml)") public String largeMessges; public String getLargeMessages() throws Exception { if (largeMessges == null) { largeMessges = getFileConfiguration().getLargeMessagesLocation().getAbsolutePath(); } checkIfDirectoryExists(largeMessges); return largeMessges; } public String getBinding() throws Exception { if (binding == null) { binding = getFileConfiguration().getBindingsLocation().getAbsolutePath(); } checkIfDirectoryExists(binding); return binding; } public String getJournal() throws Exception { if (journal == null) { journal = getFileConfiguration().getJournalLocation().getAbsolutePath(); } checkIfDirectoryExists(journal); return journal; } public String getPaging() throws Exception { if (paging == null) { paging = getFileConfiguration().getPagingLocation().getAbsolutePath(); } checkIfDirectoryExists(paging); return paging; } private void checkIfDirectoryExists(String directory) { File f = new File(directory); if (!f.exists()) { throw new IllegalStateException("Could not find folder: " + directory + ", please pass --bindings, --journal and --paging as arguments"); } } }