/** * This file Copyright (c) 2011-2012 Magnolia International * Ltd. (http://www.magnolia-cms.com). All rights reserved. * * * This file is dual-licensed under both the Magnolia * Network Agreement and the GNU General Public License. * You may elect to use one or the other of these licenses. * * This file is distributed in the hope that it will be * useful, but AS-IS and WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE, TITLE, or NONINFRINGEMENT. * Redistribution, except as permitted by whichever of the GPL * or MNA you select, is prohibited. * * 1. For the GPL license (GPL), you can redistribute and/or * modify this file under the terms of the GNU General * Public License, Version 3, as published by the Free Software * Foundation. You should have received a copy of the GNU * General Public License, Version 3 along with this program; * if not, write to the Free Software Foundation, Inc., 51 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * 2. For the Magnolia Network Agreement (MNA), this file * and the accompanying materials are made available under the * terms of the MNA which accompanies this distribution, and * is available at http://www.magnolia-cms.com/mna.html * * Any modifications to this file must keep this entire header * intact. * */ package info.magnolia.init; /** * MagnoliaConfigurationProperties instances provides access to system-wide configuration properties. They are * essentially a wrapper around all the <tt>magnolia.properties</tt> files that are used in the system, as well as * properties configured in module descriptors, etc. * * <p>Implementations of this interface are responsible for locating relevant {@link PropertySource}, and provide them in a sensible order.</p> * * The following properties are required: * <ul> * <li><b>magnolia.cache.startdir</b>:<br/> * directory used for cached pages</li> * <li><b>magnolia.upload.tmpdir</b>:<br/> * tmp directory for uploaded files</li> * <li><b>magnolia.exchange.history</b>:<br/> * history directory used for activation</li> * <li><b>magnolia.repositories.config</b>:<br/> * repositories configuration</li> * <li><b>log4j.config</b>:<br/> * Name of a log4j config file. Can be a .properties or .xml file. The value can be: * <ul> * <li>a full path</li> * <li>a path relative to the webapp root</li> * <li>a file name which will be loaded from the classpath</li> * </ul> * </li> * <li><b>magnolia.root.sysproperty</b>:<br/> * Name of a system variable which will be set to the webapp root. You can use this property in log4j configuration * files to handle relative paths, such as <code>${magnolia.root}logs/magnolia-debug.log</code>. * <strong>Important</strong>: if you drop multiple magnolia wars in a container which doesn't isolate system properties * (e.g. tomcat) you will need to change the name of the <code>magnolia.root.sysproperty</code> variable in web.xml and * in log4j configuration files.</li> * <li><b>magnolia.bootstrap.dir</b>:<br/> * Directory containing xml files for initialization of a blank magnolia instance. If no content is found in any of * the repository, they are initialized importing xml files found in this folder. If you don't want to let magnolia * automatically initialize repositories simply remove this parameter.</li> * </ul> * * @version $Id$ * @since 4.5 */ public interface MagnoliaConfigurationProperties extends PropertySource { PropertySource getPropertySource(String key); void init() throws Exception; }