From d4e9b0dad4edf1c493c1eead0456041df897541a Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 16 Jan 2013 07:56:29 -0500
Subject: [PATCH] Updated docs for upgrade procedure
---
src/com/gitblit/build/BuildWebXml.java | 77 ++++++++++++++++++++++----------------
1 files changed, 45 insertions(+), 32 deletions(-)
diff --git a/src/com/gitblit/build/BuildWebXml.java b/src/com/gitblit/build/BuildWebXml.java
index c37f014..49a12ab 100644
--- a/src/com/gitblit/build/BuildWebXml.java
+++ b/src/com/gitblit/build/BuildWebXml.java
@@ -29,9 +29,15 @@
import com.beust.jcommander.ParameterException;
import com.beust.jcommander.Parameters;
import com.gitblit.Keys;
-import com.gitblit.Keys.server;
import com.gitblit.utils.StringUtils;
+/**
+ * Builds the Gitblit WAR web.xml file by merging the Gitblit GO web.xml file
+ * with the gitblit.properties comments, settings, and values.
+ *
+ * @author James Moger
+ *
+ */
public class BuildWebXml {
private static final String PARAMS = "<!-- PARAMS -->";
@@ -54,43 +60,44 @@
}
private static void generateWebXml(Params params) throws Exception {
+ StringBuilder parameters = new StringBuilder();
// Read the current Gitblit properties
- BufferedReader propertiesReader = new BufferedReader(new FileReader(new File(
- params.propertiesFile)));
+ if (params.propertiesFile != null) {
+ BufferedReader propertiesReader = new BufferedReader(new FileReader(new File(
+ params.propertiesFile)));
- Vector<Setting> settings = new Vector<Setting>();
- List<String> comments = new ArrayList<String>();
- String line = null;
- while ((line = propertiesReader.readLine()) != null) {
- if (line.length() == 0) {
- comments.clear();
- } else {
- if (line.charAt(0) == '#') {
- if (line.length() > 1) {
- comments.add(line.substring(1).trim());
- }
- } else {
- String[] kvp = line.split("=", 2);
- String key = kvp[0].trim();
- if (!skipKey(key)) {
- Setting s = new Setting(key, kvp[1].trim(), comments);
- settings.add(s);
- }
+ Vector<Setting> settings = new Vector<Setting>();
+ List<String> comments = new ArrayList<String>();
+ String line = null;
+ while ((line = propertiesReader.readLine()) != null) {
+ if (line.length() == 0) {
comments.clear();
+ } else {
+ if (line.charAt(0) == '#') {
+ if (line.length() > 1) {
+ comments.add(line.substring(1).trim());
+ }
+ } else {
+ String[] kvp = line.split("=", 2);
+ String key = kvp[0].trim();
+ if (!skipKey(key)) {
+ Setting s = new Setting(key, kvp[1].trim(), comments);
+ settings.add(s);
+ }
+ comments.clear();
+ }
}
}
- }
- propertiesReader.close();
+ propertiesReader.close();
- StringBuilder parameters = new StringBuilder();
-
- for (Setting setting : settings) {
- for (String comment : setting.comments) {
- parameters.append(MessageFormat.format(COMMENT_PATTERN, comment));
+ for (Setting setting : settings) {
+ for (String comment : setting.comments) {
+ parameters.append(MessageFormat.format(COMMENT_PATTERN, comment));
+ }
+ parameters.append(MessageFormat.format(PARAM_PATTERN, setting.name,
+ StringUtils.escapeForHtml(setting.value, false)));
}
- parameters.append(MessageFormat.format(PARAM_PATTERN, setting.name, StringUtils.escapeForHtml(setting.value, false)));
}
-
// Read the prototype web.xml file
File webxml = new File(params.sourceFile);
char[] buffer = new char[(int) webxml.length()];
@@ -119,6 +126,9 @@
return key.startsWith(Keys.server._ROOT);
}
+ /**
+ * Setting represents a setting and its comments from the properties file.
+ */
private static class Setting {
final String name;
final String value;
@@ -131,17 +141,20 @@
}
}
+ /**
+ * JCommander Parameters class for BuildWebXml.
+ */
@Parameters(separators = " ")
private static class Params {
@Parameter(names = { "--sourceFile" }, description = "Source web.xml file", required = true)
public String sourceFile;
- @Parameter(names = { "--propertiesFile" }, description = "Properties settings file", required = true)
+ @Parameter(names = { "--propertiesFile" }, description = "Properties settings file")
public String propertiesFile;
@Parameter(names = { "--destinationFile" }, description = "Destination web.xml file", required = true)
public String destinationFile;
-
+
}
}
--
Gitblit v1.9.1