From b9afce4d3db8dec34b22b07c952df814efc7335f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 02 Apr 2013 10:43:52 -0400
Subject: [PATCH] Simplify resource loading

---
 .gitignore                             |    2 ++
 src/main/java/login.mkd                |    0 
 src/main/java/login_pt_br.mkd          |    0 
 src/main/java/login_pl.mkd             |    0 
 src/main/java/welcome.mkd              |    0 
 src/main/java/com/gitblit/GitBlit.java |   11 +++--------
 src/main/java/welcome_es.mkd           |    0 
 src/main/java/welcome_zh_CN.mkd        |    0 
 src/main/java/login_ko.mkd             |    0 
 src/main/java/login_nl.mkd             |    0 
 src/main/java/welcome_nl.mkd           |    0 
 src/main/java/login_zh_CN.mkd          |    0 
 src/main/java/welcome_ko.mkd           |    0 
 src/main/java/welcome_pl.mkd           |    0 
 build.xml                              |   44 ++++++++++++++++++++++++++------------------
 src/main/java/login_es.mkd             |    0 
 src/main/java/welcome_pt_br.mkd        |    0 
 17 files changed, 31 insertions(+), 26 deletions(-)

diff --git a/.gitignore b/.gitignore
index 057f6d7..23a73cc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,7 +7,9 @@
 /build.properties
 /federation.properties
 /mailtest.properties
+/test-users.conf
 /.settings/
+/src/main/java/reference.properties
 /src/main/java/WEB-INF/reference.properties
 /bin/
 /build-demo.xml
diff --git a/build.xml b/build.xml
index e1333bd..9ae494d 100644
--- a/build.xml
+++ b/build.xml
@@ -93,9 +93,9 @@
 			<fileset dir="${project.distrib.dir}/data" />
 		</copy>
 		
-		<!-- copy gitblit.properties to the WEB-INF directory.
+		<!-- copy gitblit.properties to the source directory.
 		     this file is only used for parsing setting descriptions. -->
-		<copy tofile="${project.src.dir}/WEB-INF/reference.properties" overwrite="true"
+		<copy tofile="${project.src.dir}/reference.properties" overwrite="true"
 			file="${project.distrib.dir}/data/gitblit.properties" />
 		
 		<!-- 
@@ -265,6 +265,26 @@
 		<!-- Build the WAR web.xml from the prototype web.xml -->
 		<mx:webxml sourcefile="${project.src.dir}/WEB-INF/web.xml" destfile="${webinf}/web.xml" />
 
+		<!-- Gitblit jar -->
+		<mx:genjar destfile="${webinf}/lib/gitblit.jar" includeresources="false" excludeclasspathjars="true">
+			<!-- Specify all web.xml servlets and filters -->
+			<class name="com.gitblit.GitBlit" />
+			<class name="com.gitblit.DownloadZipFilter" />
+			<class name="com.gitblit.DownloadZipServlet" />
+			<class name="com.gitblit.EnforceAuthenticationFilter" />
+			<class name="com.gitblit.FederationServlet" />
+			<class name="com.gitblit.GitFilter" />
+			<class name="com.gitblit.GitServlet" />
+			<class name="com.gitblit.PagesFilter" />
+			<class name="com.gitblit.PagesServlet" />
+			<class name="com.gitblit.RobotsTxtServlet" />
+			<class name="com.gitblit.RpcFilter" />
+			<class name="com.gitblit.RpcServlet" />
+			<class name="com.gitblit.SyndicationFilter" />
+			<class name="com.gitblit.SyndicationServlet" />
+			<class name="com.gitblit.wicket.GitBlitWebApp" />
+		</mx:genjar>
+
 		<!-- Build the WAR file -->
 		<mx:zip basedir="${war.dir}" destfile="${project.targetDirectory}/${distribution.warfile}" compress="true" >
 			<!-- Resources in root -->
@@ -273,20 +293,11 @@
 				<exclude name="*.mkd" />
 			</fileset>
 			<!-- WEB-INF directory -->
-			<zipfileset fullpath="WEB-INF/reference.properties" 
-				file="${project.distrib.dir}/data/gitblit.properties" />
 			<zipfileset prefix="WEB-INF" dir="${basedir}" >
 				<include name="LICENSE" />
 				<include name="NOTICE" />
 			</zipfileset>
 			<zipfileset prefix="WEB-INF" file="${project.compileOutputDirectory}/WEB-INF/weblogic.xml" />
-			<!-- Classes and classpath resources -->
-			<zipfileset prefix="WEB-INF/classes" dir="${project.compileOutputDirectory}">
-				<include name="**/*.class" />
-				<include name="**/*.properties" />
-				<include name="**/*.mkd" />
-				<exclude name="WEB-INF" />
-			</zipfileset>
 			<!-- include "war" tagged dependencies -->
 			<dependencies prefix="WEB-INF/lib" tag="war" />
 		</mx:zip>
@@ -303,7 +314,7 @@
 	
 		<!-- generate jar by traversing the class hierarchy of the specified
 			 classes, exclude any classes in classpath jars -->
-		<mx:genjar tag="" excludeClasspathJars="true"
+		<mx:genjar tag="" includeresources="false" excludeClasspathJars="true"
 			destfile="${project.targetDirectory}/fedclient.jar">
 			<mainclass name="com.gitblit.FederationClient" />
 			<launcher paths="ext" />
@@ -363,7 +374,7 @@
 		skip="server.*" />
 
 		<!-- Gitblit classes -->
-		<mx:genjar destfile="${webinf}/lib/gitblit.jar" excludeclasspathjars="true">
+		<mx:genjar destfile="${webinf}/lib/gitblit.jar" includeresources="false" excludeclasspathjars="true">
 			<!-- Specify all web.xml servlets and filters -->
 			<class name="com.gitblit.GitBlit" />
 			<class name="com.gitblit.DownloadZipFilter" />
@@ -395,9 +406,6 @@
 				<exclude name="thumbs.db" />
 				<exclude name="*.mkd" />
 			</zipfileset>
-			<!-- reference.properties -->
-			<zipfileset fullpath="deployments/ROOT.war/WEB-INF/reference.properties" 
-				file="${project.distrib.dir}/data/gitblit.properties" />
 			<!-- include "war" tagged dependencies -->
 			<dependencies prefix="deployments/ROOT.war/WEB-INF/lib" tag="war" />
 		</mx:zip>
@@ -415,7 +423,7 @@
 
 		<!-- generate jar by traversing the class hierarchy of the specified
 			 classes, exclude any classes in classpath jars -->
-		<mx:genjar tag="" excludeClasspathJars="true"
+		<mx:genjar tag="" includeResources="false" excludeClasspathJars="true"
 			destfile="${project.targetDirectory}/manager.jar">
 			<resource file="${project.src.dir}/com/gitblit/client/splash.png" />
 			<resource file="${project.resources.dir}/gitblt-favicon.png" />
@@ -553,7 +561,7 @@
 		<delete dir="${javadoc.dir}" />
 
 		<!-- Build API Library jar -->
-		<mx:genjar tag="" excludeClasspathJars="true"
+		<mx:genjar tag="" includeResources="false" excludeClasspathJars="true"
 			destfile="${project.targetDirectory}/gbapi-${project.version}.jar">
 			<class name="com.gitblit.Keys" />
 			<class name="com.gitblit.client.GitblitClient" />
diff --git a/src/main/java/com/gitblit/GitBlit.java b/src/main/java/com/gitblit/GitBlit.java
index 1a817ab..566a917 100644
--- a/src/main/java/com/gitblit/GitBlit.java
+++ b/src/main/java/com/gitblit/GitBlit.java
@@ -2997,11 +2997,10 @@
 	 * Parse the properties file and aggregate all the comments by the setting
 	 * key. A setting model tracks the current value, the default value, the
 	 * description of the setting and and directives about the setting.
-	 * @param referencePropertiesInputStream
 	 * 
 	 * @return Map<String, SettingModel>
 	 */
-	private ServerSettings loadSettingModels(InputStream referencePropertiesInputStream) {
+	private ServerSettings loadSettingModels() {
 		ServerSettings settingsModel = new ServerSettings();
 		settingsModel.supportsCredentialChanges = userService.supportsCredentialChanges();
 		settingsModel.supportsDisplayNameChanges = userService.supportsDisplayNameChanges();
@@ -3011,7 +3010,7 @@
 			// Read bundled Gitblit properties to extract setting descriptions.
 			// This copy is pristine and only used for populating the setting
 			// models map.
-			InputStream is = referencePropertiesInputStream;
+			InputStream is = getClass().getResourceAsStream("/reference.properties");
 			BufferedReader propertiesReader = new BufferedReader(new InputStreamReader(is));
 			StringBuilder description = new StringBuilder();
 			SettingModel setting = new SettingModel();
@@ -3239,10 +3238,6 @@
 	 */
 	@Override
 	public void contextInitialized(ServletContextEvent contextEvent) {
-		contextInitialized(contextEvent, contextEvent.getServletContext().getResourceAsStream("/WEB-INF/reference.properties"));
-	}
-
-	public void contextInitialized(ServletContextEvent contextEvent, InputStream referencePropertiesInputStream) {
 		servletContext = contextEvent.getServletContext();
 		if (settings == null) {
 			// Gitblit is running in a servlet container
@@ -3307,7 +3302,7 @@
 			}
 		}
 		
-		settingsModel = loadSettingModels(referencePropertiesInputStream);
+		settingsModel = loadSettingModels();
 		serverStatus.servletContainer = servletContext.getServerInfo();
 	}
 
diff --git a/src/main/resources/login.mkd b/src/main/java/login.mkd
similarity index 100%
rename from src/main/resources/login.mkd
rename to src/main/java/login.mkd
diff --git a/src/main/resources/login_es.mkd b/src/main/java/login_es.mkd
similarity index 100%
rename from src/main/resources/login_es.mkd
rename to src/main/java/login_es.mkd
diff --git a/src/main/resources/login_ko.mkd b/src/main/java/login_ko.mkd
similarity index 100%
rename from src/main/resources/login_ko.mkd
rename to src/main/java/login_ko.mkd
diff --git a/src/main/resources/login_nl.mkd b/src/main/java/login_nl.mkd
similarity index 100%
rename from src/main/resources/login_nl.mkd
rename to src/main/java/login_nl.mkd
diff --git a/src/main/resources/login_pl.mkd b/src/main/java/login_pl.mkd
similarity index 100%
rename from src/main/resources/login_pl.mkd
rename to src/main/java/login_pl.mkd
diff --git a/src/main/resources/login_pt_br.mkd b/src/main/java/login_pt_br.mkd
similarity index 100%
rename from src/main/resources/login_pt_br.mkd
rename to src/main/java/login_pt_br.mkd
diff --git a/src/main/resources/login_zh_CN.mkd b/src/main/java/login_zh_CN.mkd
similarity index 100%
rename from src/main/resources/login_zh_CN.mkd
rename to src/main/java/login_zh_CN.mkd
diff --git a/src/main/resources/welcome.mkd b/src/main/java/welcome.mkd
similarity index 100%
rename from src/main/resources/welcome.mkd
rename to src/main/java/welcome.mkd
diff --git a/src/main/resources/welcome_es.mkd b/src/main/java/welcome_es.mkd
similarity index 100%
rename from src/main/resources/welcome_es.mkd
rename to src/main/java/welcome_es.mkd
diff --git a/src/main/resources/welcome_ko.mkd b/src/main/java/welcome_ko.mkd
similarity index 100%
rename from src/main/resources/welcome_ko.mkd
rename to src/main/java/welcome_ko.mkd
diff --git a/src/main/resources/welcome_nl.mkd b/src/main/java/welcome_nl.mkd
similarity index 100%
rename from src/main/resources/welcome_nl.mkd
rename to src/main/java/welcome_nl.mkd
diff --git a/src/main/resources/welcome_pl.mkd b/src/main/java/welcome_pl.mkd
similarity index 100%
rename from src/main/resources/welcome_pl.mkd
rename to src/main/java/welcome_pl.mkd
diff --git a/src/main/resources/welcome_pt_br.mkd b/src/main/java/welcome_pt_br.mkd
similarity index 100%
rename from src/main/resources/welcome_pt_br.mkd
rename to src/main/java/welcome_pt_br.mkd
diff --git a/src/main/resources/welcome_zh_CN.mkd b/src/main/java/welcome_zh_CN.mkd
similarity index 100%
rename from src/main/resources/welcome_zh_CN.mkd
rename to src/main/java/welcome_zh_CN.mkd

--
Gitblit v1.9.1