James Moger
2013-10-02 06718be43c345d74f24288d7b8477d2237ce7358
Switch web.xml baseFolder from context-param to env-entry

Change-Id: Id18077126e984a767725cf9e8d8eb531a14e1713
3 files modified
27 ■■■■ changed files
releases.moxie 2 ●●●●● patch | view | raw | blame | history
src/main/java/WEB-INF/web.xml 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/GitBlit.java 15 ●●●●● patch | view | raw | blame | history
releases.moxie
@@ -19,6 +19,7 @@
    - Dashboard and Activity pages now obey the web.generateActivityGraph setting (issue-310)
    - Do not log passwords on failed authentication attempts (issue-316)
    - Updated default binary and Lucene ignore extensions
    - Change the WAR baseFolder context parameter to a JNDI env-entry to improve enterprise deployments
    additions:
    - Added branch graph image servlet based on EGit's branch graph renderer (issue-194)
    - Added option to render Markdown commit messages (issue-203)
@@ -40,6 +41,7 @@
    - Bret Ikehara
    - Chad Horohoe
    - Domingo Oropeza
    - Chris Graham
}
#
src/main/java/WEB-INF/web.xml
@@ -22,10 +22,12 @@
        review the defaults for any new settings.  Settings are always versioned
        with a SINCE x.y.z attribute and also noted in the release changelog.
        -->
    <context-param>
        <param-name>baseFolder</param-name>
        <param-value>${contextFolder}/WEB-INF/data</param-value>
    </context-param>
    <env-entry>
        <description>The base folder is used to specify the root location of your Gitblit data.</description>
        <env-entry-name>baseFolder</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>${contextFolder}/WEB-INF/data</env-entry-value>
    </env-entry>
    
    <!-- Gitblit Displayname -->
    <display-name>
src/main/java/com/gitblit/GitBlit.java
@@ -62,6 +62,9 @@
import javax.mail.MessagingException;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
@@ -3776,6 +3779,18 @@
                    logger.error("");
                }
                try {
                    // try to lookup JNDI env-entry for the baseFolder
                    InitialContext ic = new InitialContext();
                    Context env = (Context) ic.lookup("java:comp/env");
                    String val = (String) env.lookup("baseFolder");
                    if (!StringUtils.isEmpty(val)) {
                        path = val;
                    }
                } catch (NamingException n) {
                    logger.error("Failed to get JNDI env-entry: " + n.getExplanation());
                }
                File base = com.gitblit.utils.FileUtils.resolveParameter(Constants.contextFolder$, contextFolder, path);
                base.mkdirs();