From 85c2e6eb34215e2242e388a8f8b7173a14b96ad3 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Sat, 25 Jun 2011 08:57:29 -0400 Subject: [PATCH] Big push for first release. --- src/com/gitblit/BuildWebXml.java | 40 ++++++++++++++++++++++++++++++++++++---- 1 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/com/gitblit/BuildWebXml.java b/src/com/gitblit/BuildWebXml.java index 557c6a8..8e957df 100644 --- a/src/com/gitblit/BuildWebXml.java +++ b/src/com/gitblit/BuildWebXml.java @@ -24,6 +24,12 @@ import java.util.List; import java.util.Vector; +import com.beust.jcommander.JCommander; +import com.beust.jcommander.Parameter; +import com.beust.jcommander.ParameterException; +import com.beust.jcommander.Parameters; +import com.gitblit.utils.StringUtils; + public class BuildWebXml { private static final String PARAMS = "<!-- PARAMS -->"; @@ -34,9 +40,21 @@ private static final String PARAM_PATTERN = "\n\t<context-param>\n\t\t<param-name>{0}</param-name>\n\t\t<param-value>{1}</param-value>\n\t</context-param>\n"; public static void main(String[] args) throws Exception { + Params params = new Params(); + JCommander jc = new JCommander(params); + try { + jc.parse(args); + } catch (ParameterException t) { + System.err.println(t.getMessage()); + jc.usage(); + } + generateWebXml(params); + } + + private static void generateWebXml(Params params) throws Exception { // Read the current Gitblit properties BufferedReader propertiesReader = new BufferedReader(new FileReader(new File( - "distrib/gitblit.properties"))); + params.propertiesFile))); Vector<Setting> settings = new Vector<Setting>(); List<String> comments = new ArrayList<String>(); @@ -68,11 +86,11 @@ for (String comment : setting.comments) { parameters.append(MessageFormat.format(COMMENT_PATTERN, comment)); } - parameters.append(MessageFormat.format(PARAM_PATTERN, setting.name, setting.value)); + parameters.append(MessageFormat.format(PARAM_PATTERN, setting.name, StringUtils.escapeForHtml(setting.value, false))); } // Read the prototype web.xml file - File webxml = new File("src/WEB-INF/web.xml"); + File webxml = new File(params.sourceFile); char[] buffer = new char[(int) webxml.length()]; FileReader webxmlReader = new FileReader(webxml); webxmlReader.read(buffer); @@ -90,7 +108,7 @@ sb.append(webXmlContent.substring(idx + PARAMS.length())); // Save the merged web.xml to the war build folder - FileOutputStream os = new FileOutputStream(new File("war/WEB-INF/web.xml"), false); + FileOutputStream os = new FileOutputStream(new File(params.destinationFile), false); os.write(sb.toString().getBytes()); os.close(); } @@ -110,4 +128,18 @@ this.comments = new ArrayList<String>(comments); } } + + @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) + public String propertiesFile; + + @Parameter(names = { "--destinationFile" }, description = "Destination web.xml file", required = true) + public String destinationFile; + + } } -- Gitblit v1.9.1