Bug fix for help text / version number - help text retriever was crashing in the debugger if help text hadn't been built.

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@2643 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
hanna 2010-01-20 19:18:19 +00:00
parent ab289872e4
commit 908d399670
3 changed files with 38 additions and 9 deletions

View File

@ -99,10 +99,10 @@ public class CommandLineGATK extends CommandLineExecutable {
* @return The application header.
*/
public static List<String> createApplicationHeader() {
ResourceBundle headerInfo = ResourceBundle.getBundle("StingText");
ResourceBundle headerInfo = TextFormattingUtils.loadResourceBundle("StingText");
String versionNumber = headerInfo.getString("org.broadinstitute.sting.gatk.version");
String timestamp = headerInfo.getString("build.timestamp");
String versionNumber = headerInfo.containsKey("org.broadinstitute.sting.gatk.version") ? headerInfo.getString("org.broadinstitute.sting.gatk.version") : "<unknown>";
String timestamp = headerInfo.containsKey("build.timestamp") ? headerInfo.getString("build.timestamp") : "<unknown>";
List<String> header = new ArrayList<String>();
header.add(String.format("The Genome Analysis Toolkit (GATK) v%s, Compiled %s",versionNumber,timestamp));

View File

@ -26,8 +26,6 @@
package org.broadinstitute.sting.gatk;
import java.util.*;
import java.io.InputStream;
import java.io.IOException;
import org.broadinstitute.sting.gatk.walkers.*;
import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum;
@ -35,6 +33,7 @@ import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedData;
import org.broadinstitute.sting.gatk.filters.FilterManager;
import org.broadinstitute.sting.utils.StingException;
import org.broadinstitute.sting.utils.PluginManager;
import org.broadinstitute.sting.utils.TextFormattingUtils;
import org.broadinstitute.sting.utils.help.DisplayNameTaglet;
import org.broadinstitute.sting.utils.help.DescriptionTaglet;
import org.broadinstitute.sting.utils.help.SummaryTaglet;
@ -62,7 +61,7 @@ public class WalkerManager extends PluginManager<Walker> {
public WalkerManager() {
super(Walker.class,"walker","Walker");
helpText = ResourceBundle.getBundle("StingText");
helpText = TextFormattingUtils.loadResourceBundle("StingText");
}
/**

View File

@ -1,10 +1,12 @@
package org.broadinstitute.sting.utils;
import java.util.List;
import java.util.ArrayList;
import java.util.Comparator;
import org.apache.log4j.Logger;
import java.util.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.io.StringReader;
import java.io.IOException;
/**
* Common utilities for dealing with text formatting.
@ -13,6 +15,11 @@ import java.util.regex.Matcher;
* @version 0.1
*/
public class TextFormattingUtils {
/**
* our log, which we want to capture anything from this class
*/
private static Logger logger = Logger.getLogger(TextFormattingUtils.class);
/**
* The default line width, for GATK output written to the screen.
*/
@ -57,7 +64,30 @@ public class TextFormattingUtils {
if(rhs == null) return -1;
return lhs.toLowerCase().compareTo(rhs.toLowerCase());
}
}
/**
* Load the contents of a resource bundle with the given name. If no such resource exists, warn the user
* and create an empty bundle.
* @param bundleName The name of the bundle to load.
* @return The best resource bundle that can be found matching the given name.
*/
public static ResourceBundle loadResourceBundle(String bundleName) {
ResourceBundle bundle;
try {
bundle = ResourceBundle.getBundle(bundleName);
}
catch(MissingResourceException ex) {
logger.warn("Unable to load help text. Help output will be sparse.");
// Generate an empty resource bundle.
try {
bundle = new PropertyResourceBundle(new StringReader(""));
}
catch(IOException ioe) {
throw new StingException("No resource bundle found, and unable to create an empty placeholder.",ioe);
}
}
return bundle;
}
}