View Javadoc
1   /**
2    * This file Copyright (c) 2011-2018 Magnolia International
3    * Ltd.  (http://www.magnolia-cms.com). All rights reserved.
4    *
5    *
6    * This file is dual-licensed under both the Magnolia
7    * Network Agreement and the GNU General Public License.
8    * You may elect to use one or the other of these licenses.
9    *
10   * This file is distributed in the hope that it will be
11   * useful, but AS-IS and WITHOUT ANY WARRANTY; without even the
12   * implied warranty of MERCHANTABILITY or FITNESS FOR A
13   * PARTICULAR PURPOSE, TITLE, or NONINFRINGEMENT.
14   * Redistribution, except as permitted by whichever of the GPL
15   * or MNA you select, is prohibited.
16   *
17   * 1. For the GPL license (GPL), you can redistribute and/or
18   * modify this file under the terms of the GNU General
19   * Public License, Version 3, as published by the Free Software
20   * Foundation.  You should have received a copy of the GNU
21   * General Public License, Version 3 along with this program;
22   * if not, write to the Free Software Foundation, Inc., 51
23   * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
24   *
25   * 2. For the Magnolia Network Agreement (MNA), this file
26   * and the accompanying materials are made available under the
27   * terms of the MNA which accompanies this distribution, and
28   * is available at http://www.magnolia-cms.com/mna.html
29   *
30   * Any modifications to this file must keep this entire header
31   * intact.
32   *
33   */
34  package info.magnolia.init;
35  
36  /**
37   * MagnoliaConfigurationProperties instances provides access to system-wide configuration properties. They are
38   * essentially a wrapper around all the <tt>magnolia.properties</tt> files that are used in the system, as well as
39   * properties configured in module descriptors, etc.
40   *
41   * <p>Implementations of this interface are responsible for locating relevant {@link PropertySource}, and provide them in a sensible order.</p>
42   *
43   * The following properties are required:
44   * <ul>
45   * <li><b>magnolia.cache.startdir</b>:<br/>
46   * directory used for cached pages</li>
47   * <li><b>magnolia.upload.tmpdir</b>:<br/>
48   * tmp directory for uploaded files</li>
49   * <li><b>magnolia.exchange.history</b>:<br/>
50   * history directory used for activation</li>
51   * <li><b>magnolia.repositories.config</b>:<br/>
52   * repositories configuration</li>
53   * <li><b>log4j.config</b>:<br/>
54   * Name of a log4j config file. Can be a .properties or .xml file. The value can be:
55   * <ul>
56   * <li>a full path</li>
57   * <li>a path relative to the webapp root</li>
58   * <li>a file name which will be loaded from the classpath</li>
59   * </ul>
60   * </li>
61   * <li><b>magnolia.root.sysproperty</b>:<br/>
62   * Name of a system variable which will be set to the webapp root. You can use this property in log4j configuration
63   * files to handle relative paths, such as <code>${magnolia.root}logs/magnolia-debug.log</code>.
64   * <strong>Important</strong>: if you drop multiple magnolia wars in a container which doesn't isolate system properties
65   * (e.g. tomcat) you will need to change the name of the <code>magnolia.root.sysproperty</code> variable in web.xml and
66   * in log4j configuration files.</li>
67   * <li><b>magnolia.bootstrap.dir</b>:<br/>
68   * Directory containing xml files for initialization of a blank magnolia instance. If no content is found in any of
69   * the repository, they are initialized importing xml files found in this folder. If you don't want to let magnolia
70   * automatically initialize repositories simply remove this parameter.</li>
71   * </ul>
72   */
73  public interface MagnoliaConfigurationProperties extends PropertySource {
74  
75      String MAGNOLIA_REPOSITORIES_HOME = "magnolia.repositories.home";
76  
77      String MAGNOLIA_REPOSITORIES_CONFIG = "magnolia.repositories.config";
78  
79      String MAGNOLIA_REPOSITORIES_CLUSTER_CONFIG = "magnolia.repositories.jackrabbit.cluster.config";
80  
81      String MAGNOLIA_REPOSITORIES_CLUSTER_MASTER = "magnolia.repositories.jackrabbit.cluster.master";
82  
83      String MAGNOLIA_JACKRABBIT_USER_PROPERTY = "magnolia.connection.jcr.userId";
84  
85      String MAGNOLIA_JACKRABBIT_PASSWORD_PROPERTY = "magnolia.connection.jcr.password";
86  
87      String MAGNOLIA_EXCHANGE_HISTORY = "magnolia.exchange.history";
88  
89      String MAGNOLIA_UPLOAD_TMPDIR = "magnolia.upload.tmpdir";
90  
91      String MAGNOLIA_CACHE_STARTDIR = "magnolia.cache.startdir";
92  
93      String MAGNOLIA_APP_ROOTDIR = "magnolia.app.rootdir";
94  
95      String MAGNOLIA_BOOTSTRAP_ROOTDIR = "magnolia.bootstrap.dir";
96  
97      String MAGNOLIA_BOOTSTRAP_SAMPLES = "magnolia.bootstrap.samples";
98  
99      String MAGNOLIA_UTF8_ENABLED = "magnolia.utf8.enabled";
100 
101     String MAGNOLIA_WEBAPP = "magnolia.webapp";
102 
103     String MAGNOLIA_SERVERNAME = "magnolia.servername";
104 
105     String MAGNOLIA_CONTEXTPATH = "magnolia.contextpath";
106 
107     String MAGNOLIA_DEFINITIONS_CLASSPATH = "magnolia.definitions.classpath";
108 
109     PropertySource getPropertySource(String key);
110 
111     void init() throws Exception;
112 }