Update of /var/cvs/documentation/administrators In directory james.mmbase.org:/tmp/cvs-serv8765
Modified Files: configuration.xml Log Message: documented some stuff related to resource loading / applcation context settings See also: http://cvs.mmbase.org/viewcvs/documentation/administrators Index: configuration.xml =================================================================== RCS file: /var/cvs/documentation/administrators/configuration.xml,v retrieving revision 1.27 retrieving revision 1.28 diff -u -b -r1.27 -r1.28 --- configuration.xml 3 Oct 2006 08:10:21 -0000 1.27 +++ configuration.xml 11 Jul 2008 22:24:34 -0000 1.28 @@ -13,12 +13,7 @@ <authorgroup> <author> <firstname>Michiel</firstname> - <surname>Meeuwissen</surname> - - <affiliation> - <orgname>Publieke Omroep</orgname> - </affiliation> </author> </authorgroup> @@ -35,11 +30,60 @@ <section id="introduction"> <title>Introduction</title> - <para>The MMBase configuration can normally be found in WEB-INF/config. - Optionally, it is also possible to store this configuration in another - directory, which then has to be done by use of the web.xml context - parameter 'mmbase.config'. In this document, this configuration directory - will be simply referred to as 'config'.</para> + <para> + MMBase is configured using many configuration files, most of them are XMLs. + </para> + <para> + A specific configuration file is always referenced to, e.g. in this document, relative to the + 'MMBase configuration root'. + </para> + <para> + A resource inside this MMBase configuration root actually resolves quite complicated, and it + is not always trivial to know where an actual piece of configuration is coming from. To help + you with this, in the mmbase admin pages you can find the 'resource editor'. + </para> + <para> + Resolving of an configuration resource works like this. It tries the following strategies + until one succeeds. + <itemizedlist> + <listitem> + <para> + If the builder 'resources' is available, it will look up a matching node of that type. + </para> + </listitem> + <listitem> + <para> + It will check the application context resource mmbase-config/<name of the + resource>. If that exists, the value of it will be interpreted as a file-name. That + file will be opened. + </para> + </listitem> + <listitem> + <para> + It will check for the resource in the 'mmbase configuration directory' This directory + defaults to WEB-INF/config. This directory can be changed using the 'servlet context' + init parameter 'mmbase.config' or using the system property 'mmbase.config'. + </para> + <para> + WEB-INF/config needs not be a real directory, it can also be part of a war. + </para> + </listitem> + <listitem> + <para> + The resource will be loaded using a java class loader. The used class name is + 'org.mmbase.config.<name of the resource> + </para> + <para> + This means that the resource can be present anywhere in the present java 'CLASS PATH'. + It could be below WEB-INF/classes, or in any jar in WEB-INF/lib. If WEB-INF/classes + exists, MMBase will prefer to open the resources as files, rather then letting the + class-loader do it. + </para> + </listitem> + </itemizedlist> + If locations can be specified, normally they will be resolved relatively to the current + resource, but also absolute locations (file:///...) would work. + </para> </section> <section id="webxml"> @@ -185,14 +229,14 @@ <para>If you want to use taglibs in your (jsp) pages - which you probably want - then you may have to indicate that as well in web.xml. Taglibs that you might want to use are the MMBase taglib, the MMBase - community taglib, the oscache taglib and the jakarta taglibs. In mosst + community taglib, the oscache taglib and the jakarta taglibs. In most newer application servers it is enough to have the mmbase-taglib-2.jar (or other jars) in your WEB-INF/lib directory to have the MMBase taglib (or other taglibs) to your disposal. <!-- TODO links --></para> </section> <section id="resources"> - <title>Resources</title> + <title>Aplication Resources</title> <para>Since MMBase 1.6 certain things can (optionally) also be configured by the use of references to resources provided by the @@ -200,9 +244,73 @@ created and configured and can be referred to by a 'resource name'.</para> - <para>These resources must also be described in web.xml. The actual - configuration of these resources happens somewhere else and we refer to - the documentation of your application server.</para> + <para> + Since MMBase 1.8, and even more so in MMBase 1.9, many more things can be configured + in the application context. + <itemizedlist> + <listitem> + <para> + As mentioned, the location of any configuration file can be as a application context resource. + </para> + </listitem> + <listitem> + <para> + A database connection pool can be configured. As an alternative to jdbc.xml + </para> + </listitem> + <listitem> + <para> + Mailing can be configured. + </para> + </listitem> + <listitem> + <para> + Any mmbase module property can be overridden in the application context. + </para> + </listitem> + </itemizedlist> + We give an example of a context xml as may be used in tomcat. + <programlisting id="context.xml"><![CDATA[ +<Context + docBase="/home/tomcat/apps/michiel" + debug="0" reloadable="false" allowLinking="true"> + + <!-- demonstrates a bunch of module properties to be overrriden --> + <Environment name="mmbase/mmbaseroot/datadir" value="/home/tomcat/data" type="java.lang.String" /> + + <Environment name="mmbase/mmbaseroot/language" value="nl" type="java.lang.String" /> + <Environment name="mmbase/mmbaseroot/database" value="mysql" type="java.lang.String" /> + <Environment name="mmbase/mmbaseroot/basename" value="fo" type="java.lang.String" /> + <Environment name="mmbase/mmbaseroot/datasource-context" value="java:comp/env" type="java.lang.String" /> + <Environment name="mmbase/mmbaseroot/datasource" value="jdbc/MMBase" type="java.lang.String" /> + + <Environment name="mmbase/sendmail/mailhost" value="smtp.gmail.com" type="java.lang.String" /> + <Environment name="mmbase/sendmail/user" value="psyvutest" type="java.lang.String" /> + <Environment name="mmbase/sendmail/password" value="password" type="java.lang.String" /> + <Environment name="mmbase/sendmail/mailport" value="465" type="java.lang.String" /> + <Environment name="mmbase/sendmail/mail.smtp.socketFactory.class" value="javax.net.ssl.SSLSocketFactory" type="java.lang.String" /> + <Environment name="mmbase/sendmail/mail.smtp.socketFactory.fallBack" value="true" type="java.lang.String" /> + + <!-- configures the database --> + <Resource name="jdbc/MMBase" + auth="Container" type="javax.sql.DataSource" + maxActive="10" maxIdle="3" maxWait="10000" + username="fobieen_test" + password="password" + driverClassName="com.mysql.jdbc.Driver" + url="jdbc:mysql://localhost:3306/fobieen_test?autoReconnect=true"/> + + <!-- place a few other configuration files outside the war --> + <Environment name="mmbase-config/log/log4j.xml" + value="file://${catalina.base}/conf/log/fobieen_test.xml" type="java.lang.String" /> + + <Environment name="mmbase-config/utils/multicast.xml" + value="file://${catalina.base}/conf/multicast/fobieen.xml" type="java.lang.String" /> +</Context> + +]]> + </programlisting> + </para> </section> <section id="webxmlexample"> @@ -872,5 +980,6 @@ information in a centralized way. (classnames, log directories). Entities can be recognized by the &-sign.</para> </section> + </appendix> </article> \ No newline at end of file _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs