From 06718be43c345d74f24288d7b8477d2237ce7358 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 02 Oct 2013 17:12:18 -0400 Subject: [PATCH] Switch web.xml baseFolder from context-param to env-entry --- src/main/java/WEB-INF/web.xml | 10 ++++++---- releases.moxie | 2 ++ src/main/java/com/gitblit/GitBlit.java | 15 +++++++++++++++ 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/releases.moxie b/releases.moxie index 87d178a..c231a29 100644 --- a/releases.moxie +++ b/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 } # diff --git a/src/main/java/WEB-INF/web.xml b/src/main/java/WEB-INF/web.xml index d4acb04..6e24326 100644 --- a/src/main/java/WEB-INF/web.xml +++ b/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> diff --git a/src/main/java/com/gitblit/GitBlit.java b/src/main/java/com/gitblit/GitBlit.java index 5eec7a9..7f82432 100644 --- a/src/main/java/com/gitblit/GitBlit.java +++ b/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(); -- Gitblit v1.9.1