List of usage examples for org.apache.commons.configuration XMLConfiguration XMLConfiguration
public XMLConfiguration(URL url) throws ConfigurationException
XMLConfiguration
. From source file:io.datalayer.conf.XmlConfigurationTest.java
/** * Prepares a configuration object for testing a reload operation. * /*from w w w . ja v a2s . c o m*/ * @return the initialized configuration * @throws ConfigurationException * if an error occurs */ private XMLConfiguration setUpReloadTest() throws ConfigurationException { removeTestFile(); conf.save(testSaveConf); XMLConfiguration c = new XMLConfiguration(testSaveConf); c.setReloadingStrategy(new FileAlwaysReloadingStrategy()); conf.setProperty("test(0).entity", "newValue"); conf.save(testSaveConf); return c; }
From source file:com.moviejukebox.model.Library.java
private static void fillGenreMap(String xmlGenreFilename) { File xmlGenreFile = new File(xmlGenreFilename); if (xmlGenreFile.exists() && xmlGenreFile.isFile() && xmlGenreFilename.toUpperCase().endsWith("XML")) { try {/* www . ja va2s . c om*/ XMLConfiguration c = new XMLConfiguration(xmlGenreFile); List<HierarchicalConfiguration> genres = c.configurationsAt("genre"); for (HierarchicalConfiguration genre : genres) { String masterGenre = genre.getString(LIT_NAME); LOG.trace("New masterGenre parsed : (" + masterGenre + ")"); List<Object> subgenres = genre.getList("subgenre"); for (Object subgenre : subgenres) { LOG.trace("New genre added to map : (" + subgenre + "," + masterGenre + ")"); GENRES_MAP.put((String) subgenre, masterGenre); } } } catch (ConfigurationException error) { LOG.error("Failed parsing moviejukebox genre input file: {}", xmlGenreFile.getName()); LOG.error(SystemTools.getStackTrace(error)); } } else { LOG.error("The moviejukebox genre input file you specified is invalid: {}", xmlGenreFile.getName()); } }
From source file:com.moviejukebox.model.Library.java
private static void fillCertificationMap(String xmlCertificationFilename) { File xmlCertificationFile = new File(xmlCertificationFilename); if (xmlCertificationFile.exists() && xmlCertificationFile.isFile() && xmlCertificationFilename.toUpperCase().endsWith("XML")) { try {/*from w w w . j a v a2s . c o m*/ XMLConfiguration conf = new XMLConfiguration(xmlCertificationFile); List<HierarchicalConfiguration> certifications = conf.configurationsAt("certification"); for (HierarchicalConfiguration certification : certifications) { String masterCertification = certification.getString(LIT_NAME); List<Object> subcertifications = certification.getList("subcertification"); for (Object subcertification : subcertifications) { CERTIFICATIONS_MAP.put((String) subcertification, masterCertification); } } if (conf.containsKey("default")) { defaultCertification = conf.getString("default"); LOG.info("Found default certification: {}", defaultCertification); } } catch (ConfigurationException error) { LOG.error("Failed parsing moviejukebox certification input file: {}", xmlCertificationFile.getName()); LOG.error(SystemTools.getStackTrace(error)); } } else { LOG.error("The moviejukebox certification input file you specified is invalid: {}", xmlCertificationFile.getName()); } }
From source file:com.moviejukebox.model.Library.java
private static void fillCategoryMap(String xmlCategoryFilename) { File xmlFile = new File(xmlCategoryFilename); if (xmlFile.exists() && xmlFile.isFile() && xmlCategoryFilename.toUpperCase().endsWith("XML")) { try {/* ww w .j a va2 s . c o m*/ XMLConfiguration c = new XMLConfiguration(xmlFile); List<HierarchicalConfiguration> categories = c.configurationsAt("category"); for (HierarchicalConfiguration category : categories) { boolean enabled = Boolean.parseBoolean(category.getString("enable", TRUE)); if (enabled) { String origName = category.getString(LIT_NAME); String newName = category.getString("rename", origName); CATEGORIES_MAP.put(origName, newName); //logger.debug("Added category '" + origName + "' with name '" + newName + "'"); } } } catch (ConfigurationException error) { LOG.error("Failed parsing moviejukebox category input file: {}", xmlFile.getName()); LOG.error(SystemTools.getStackTrace(error)); } } else { LOG.error("The moviejukebox category input file you specified is invalid: {}", xmlFile.getName()); } }
From source file:com.moviejukebox.plugin.DefaultImagePlugin.java
private void fillOverlayParams(String xmlOverlayFilename) { if (!xmlOverlayFilename.toUpperCase().endsWith("XML")) { return;//from w ww . j a v a 2s. c om } File xmlOverlayFile = new File(overlayRoot + xmlOverlayFilename); if (xmlOverlayFile.exists() && xmlOverlayFile.isFile()) { try { XMLConfiguration c = new XMLConfiguration(xmlOverlayFile); List<HierarchicalConfiguration> layers = c.configurationsAt("layer"); overlayLayers.clear(); int index = 0; for (HierarchicalConfiguration layer : layers) { String name = layer.getString("name"); if (StringTools.isNotValidString(name)) { continue; } LogoOverlay overlay = new LogoOverlay(); String after = layer.getString("[@after]"); if (StringTools.isValidString(after) && after.equalsIgnoreCase(TRUE)) { overlay.setBefore(Boolean.FALSE); } String left = layer.getString(LEFT); String top = layer.getString(TOP); String align = layer.getString("align"); String valign = layer.getString("valign"); String width = layer.getString("width"); String height = layer.getString("height"); overlay.setNames(Arrays.asList(name.split("/"))); if (StringUtils.isNumeric(left)) { overlay.setLeft(NumberUtils.toInt(left, 0)); } if (StringUtils.isNumeric(top)) { overlay.setTop(NumberUtils.toInt(top, 0)); } if (StringTools.isValidString(align) && (align.equalsIgnoreCase(LEFT) || align.equalsIgnoreCase(CENTER) || align.equalsIgnoreCase(RIGHT))) { overlay.setAlign(align); } if (StringTools.isValidString(valign) && (valign.equalsIgnoreCase(TOP) || valign.equalsIgnoreCase(CENTER) || valign.equalsIgnoreCase(BOTTOM))) { overlay.setValign(valign); } if (StringTools.isValidString(width) && (width.equalsIgnoreCase(EQUAL) || width.equalsIgnoreCase(AUTO) || width.matches(D_PLUS))) { overlay.setWidth(width); } if (StringTools.isValidString(height) && (height.equalsIgnoreCase(EQUAL) || height.equalsIgnoreCase(AUTO) || height.matches(D_PLUS))) { overlay.setHeight(height); } List<HierarchicalConfiguration> images = c .configurationsAt("layer(" + index + ").images.image"); for (HierarchicalConfiguration image : images) { name = image.getString("[@name]"); String value = image.getString("[@value]"); String filename = image.getString("[@filename]"); if (StringTools.isNotValidString(name)) { name = overlay.getNames().get(0); } if (!overlay.getNames().contains(name) || StringTools.isNotValidString(value) || StringTools.isNotValidString(filename)) { continue; } ImageOverlay img = new ImageOverlay(name, value, filename, Arrays.asList(value.split("/"))); if (img.getValues().size() > 1) { for (int i = 0; i < overlay.getNames().size(); i++) { if (img.getValues().size() <= i) { img.getValues().add(Movie.UNKNOWN); } else if (StringTools.isNotValidString(img.getValues().get(i))) { img.getValues().set(i, Movie.UNKNOWN); } } } overlay.getImages().add(img); } if (overlay.getNames().size() > 1) { List<HierarchicalConfiguration> positions = c .configurationsAt("layer(" + index + ").positions.position"); for (HierarchicalConfiguration position : positions) { String value = position.getString("[@value]"); left = position.getString("[@left]"); top = position.getString("[@top]"); align = position.getString("[@align]"); valign = position.getString("[@valign]"); width = position.getString("[@width]"); height = position.getString("[@height]"); if (StringTools.isNotValidString(value)) { continue; } ConditionOverlay condition = new ConditionOverlay(); condition.setValues(Arrays.asList(value.split("/"))); if (StringTools.isNotValidString(left)) { left = Integer.toString(overlay.getLeft()); } if (StringTools.isNotValidString(top)) { top = Integer.toString(overlay.getTop()); } if (StringTools.isNotValidString(align)) { align = overlay.getAlign(); } if (StringTools.isNotValidString(valign)) { valign = overlay.getValign(); } if (StringTools.isNotValidString(width)) { width = overlay.getWidth(); } if (StringTools.isNotValidString(height)) { height = overlay.getHeight(); } List<String> lefts = Arrays.asList(left.split("/")); List<String> tops = Arrays.asList(top.split("/")); List<String> aligns = Arrays.asList(align.split("/")); List<String> valigns = Arrays.asList(valign.split("/")); List<String> widths = Arrays.asList(width.split("/")); List<String> heights = Arrays.asList(height.split("/")); for (int i = 0; i < overlay.getNames().size(); i++) { if (StringTools.isNotValidString(condition.getValues().get(i))) { condition.getValues().set(i, Movie.UNKNOWN); } PositionOverlay p = new PositionOverlay( (lefts.size() <= i || StringTools.isNotValidString(lefts.get(i))) ? overlay.getLeft() : Integer.parseInt(lefts.get(i)), (tops.size() <= i || StringTools.isNotValidString(tops.get(i))) ? overlay.getTop() : Integer.parseInt(tops.get(i)), (aligns.size() <= i || StringTools.isNotValidString(aligns.get(i))) ? overlay.getAlign() : aligns.get(i), (valigns.size() <= i || StringTools.isNotValidString(valigns.get(i))) ? overlay.getValign() : valigns.get(i), (widths.size() <= i || StringTools.isNotValidString(widths.get(i))) ? overlay.getWidth() : widths.get(i), (heights.size() <= i || StringTools.isNotValidString(heights.get(i))) ? overlay.getHeight() : heights.get(i)); condition.getPositions().add(p); } overlay.getPositions().add(condition); } } overlayLayers.add(overlay); index++; } List<HierarchicalConfiguration> blocks = c.configurationsAt(BLOCK); overlayBlocks.clear(); for (HierarchicalConfiguration block : blocks) { String name = block.getString("name"); if (StringTools.isNotValidString(name)) { continue; } String dir = block.getString("dir"); dir = StringTools.isNotValidString(dir) ? "horizontal" : dir; String size = block.getString("size"); size = StringTools.isNotValidString(size) ? AUTO : size; String cols = block.getString("cols"); cols = StringTools.isNotValidString(cols) ? AUTO : cols; String rows = block.getString("rows"); rows = StringTools.isNotValidString(rows) ? AUTO : rows; String hmargin = block.getString("hmargin"); hmargin = StringTools.isNotValidString(hmargin) ? "0" : hmargin; String vmargin = block.getString("vmargin"); vmargin = StringTools.isNotValidString(vmargin) ? "0" : vmargin; String clones = block.getString("clones"); overlayBlocks.put(name, new LogosBlock("horizontal".equalsIgnoreCase(dir), "static".equalsIgnoreCase(size), cols, rows, hmargin, vmargin, StringTools.isNotValidString(clones) ? blockClones : (TRUE.equalsIgnoreCase(clones) ? true : (FALSE.equalsIgnoreCase(clones) ? false : blockClones)))); } } catch (ConfigurationException ex) { LOG.error("Failed parsing moviejukebox overlay configuration file: {}", xmlOverlayFile.getName()); LOG.error(SystemTools.getStackTrace(ex)); } } else { LOG.error("The moviejukebox overlay configuration file you specified is invalid: {}", xmlOverlayFile.getAbsolutePath()); } }
From source file:net.fenyo.gnetwatch.GUI.GUI.java
/** * Parses a configuration file to create initial targets. * @param filename configuration file. * @return void./* ww w . java 2s . c om*/ */ public void createFromXML(final String filename) { final GUI gui = this; asyncExec(new Runnable() { public void run() { synchronized (synchro) { final Session session = synchro.getSessionFactory().getCurrentSession(); session.beginTransaction(); try { final XMLConfiguration initial = new XMLConfiguration(filename); initial.setExpressionEngine(new XPathExpressionEngine()); // limitation de l'implmentation : on n'autorise que les parents de type groupe for (final HierarchicalConfiguration subconf : (java.util.List<HierarchicalConfiguration>) initial .configurationsAt("/objects/target")) { if (subconf.getProperty("@targetType").equals("group")) { final String name = subconf.getString("name"); final java.util.List<String> parents = (java.util.List<String>) subconf .getList("parent[@parentType='group']"); if (parents.size() == 0) { final TargetGroup target_group = new TargetGroup( "added by initial configuration", name); target_group.addTarget(gui, user_defined); } else for (final String parent : parents) { final TargetGroup foo = new TargetGroup("temporary", parent); final TargetGroup target_parent = (TargetGroup) getCanonicalInstance(foo); if (target_parent == foo) log.error("Initial configuration: parent does not exist"); else { final TargetGroup target_group = new TargetGroup( "added by initial configuration", name); target_group.addTarget(gui, target_parent); } } } if (subconf.getProperty("@targetType").equals("ipv4")) { final String address = subconf.getString("address"); java.util.List<String> parents = (java.util.List<String>) subconf .getList("parent[@parentType='group']"); if (parents.size() != 0) for (final String parent : parents) { final TargetGroup foo = new TargetGroup("temporary", parent); final TargetGroup target_parent = (TargetGroup) getCanonicalInstance(foo); if (target_parent == foo) log.error("Initial configuration: parent does not exist"); else { final TargetIPv4 target = new TargetIPv4( "added by initial configuration", GenericTools.stringToInet4Address(address), snmp_manager); target.addTarget(gui, target_parent); if (subconf.getString("snmp/version") != null) { if (subconf.getString("snmp/version").equals("v1")) target.getSNMPQuerier().setVersion(0); if (subconf.getString("snmp/version").equals("v2c")) target.getSNMPQuerier().setVersion(1); if (subconf.getString("snmp/version").equals("v3")) target.getSNMPQuerier().setVersion(2); } if (subconf.getString("snmp/community") != null) target.getSNMPQuerier() .setCommunity(subconf.getString("snmp/community")); // Setting the agent is not possible when creating a target through the GUI if (subconf.getString("snmp/agent") != null) target.getSNMPQuerier().setAddress(GenericTools .stringToInet4Address(subconf.getString("snmp/agent"))); if (subconf.getString("snmp/password-auth") != null) target.getSNMPQuerier() .setPasswordAuth(subconf.getString("snmp/password-auth")); if (subconf.getString("snmp/password-priv") != null) target.getSNMPQuerier() .setPasswordPriv(subconf.getString("snmp/password-priv")); if (subconf.getString("snmp/pdu-max-size") != null) target.getSNMPQuerier() .setPDUMaxSize(subconf.getInt("snmp/pdu-max-size")); if (subconf.getString("snmp/port") != null) target.getSNMPQuerier().setPort(subconf.getInt("snmp/port")); if (subconf.getString("snmp/retries") != null) target.getSNMPQuerier().setRetries(subconf.getInt("snmp/retries")); if (subconf.getString("snmp/security") != null && subconf.getString("snmp/security").equals("NOAUTH_NOPRIV")) target.getSNMPQuerier().setSec(SecurityLevel.NOAUTH_NOPRIV); if (subconf.getString("snmp/security") != null && subconf.getString("snmp/security").equals("AUTH_NOPRIV")) target.getSNMPQuerier().setSec(SecurityLevel.AUTH_NOPRIV); if (subconf.getString("snmp/security") != null && subconf.getString("snmp/security").equals("AUTH_PRIV")) target.getSNMPQuerier().setSec(SecurityLevel.AUTH_PRIV); if (subconf.getString("snmp/timeout") != null) target.getSNMPQuerier().setTimeout(subconf.getInt("snmp/timeout")); target.getSNMPQuerier().update(); } } } if (subconf.getProperty("@targetType").equals("ipv6")) { final String address = subconf.getString("address"); java.util.List<String> parents = (java.util.List<String>) subconf .getList("parent[@parentType='group']"); if (parents.size() != 0) for (final String parent : parents) { final TargetGroup foo = new TargetGroup("temporary", parent); final TargetGroup target_parent = (TargetGroup) getCanonicalInstance(foo); if (target_parent == foo) log.error("Initial configuration: parent does not exist"); else { final TargetIPv6 target = new TargetIPv6( "added by initial configuration", GenericTools.stringToInet6Address(address), snmp_manager); target.addTarget(gui, target_parent); } } } if (subconf.getProperty("@targetType").equals("ipv4range")) { final String begin = subconf.getString("begin"); final String end = subconf.getString("end"); java.util.List<String> parents = (java.util.List<String>) subconf .getList("parent[@parentType='group']"); if (parents.size() != 0) for (final String parent : parents) { final TargetGroup foo = new TargetGroup("temporary", parent); final TargetGroup target_parent = (TargetGroup) getCanonicalInstance(foo); if (target_parent == foo) log.error("Initial configuration: parent does not exist"); else { final TargetIPv4Range target = new TargetIPv4Range( "added by initial configuration", GenericTools.stringToInet4Address(begin), GenericTools.stringToInet4Address(end)); target.addTarget(gui, target_parent); } } } if (subconf.getProperty("@targetType").equals("ipv4subnet")) { final String network = subconf.getString("network"); final String netmask = subconf.getString("netmask"); java.util.List<String> parents = (java.util.List<String>) subconf .getList("parent[@parentType='group']"); if (parents.size() != 0) for (final String parent : parents) { final TargetGroup foo = new TargetGroup("temporary", parent); final TargetGroup target_parent = (TargetGroup) getCanonicalInstance(foo); if (target_parent == foo) log.error("Initial configuration: parent does not exist"); else { final TargetIPv4Subnet target = new TargetIPv4Subnet( "added by initial configuration", GenericTools.stringToInet4Address(network), GenericTools.stringToInet4Address(netmask)); target.addTarget(gui, target_parent); } } } } session.getTransaction().commit(); } catch (final ConfigurationException ex) { log.warn("Exception", ex); session.getTransaction().rollback(); } catch (final AlgorithmException ex) { log.error("Exception", ex); session.getTransaction().rollback(); } catch (final UnknownHostException ex) { log.error("Exception", ex); session.getTransaction().rollback(); } } } }); }
From source file:FocusingField.java
License:asdf
public boolean loadXML(boolean smart, // do not open dialog if default matches String defaultPath) { // x,y,r String[] extensions = { ".history-xml" }; CalibrationFileManagement.MultipleExtensionsFileFilter parFilter = new CalibrationFileManagement.MultipleExtensionsFileFilter( "", extensions, "*.history-xml files"); String pathname = CalibrationFileManagement.selectFile(smart, false, "Restore focusing field measurement data", "Restore", parFilter, defaultPath); //String defaultPath if ((pathname == null) || (pathname == "")) return false; XMLConfiguration hConfig = null;//from w w w . ja v a2 s . c o m try { hConfig = new XMLConfiguration(pathname); } catch (ConfigurationException e) { return false; } hConfig.setThrowExceptionOnMissing(false); // default value, will return null on missing comment = hConfig.getString("comment", "no comments"); // if ((comment.length()>10) && comment.substring(0,9).equals("<![CDATA[")) comment=comment.substring(9,comment.length()-3); PIXEL_SIZE = Double.parseDouble(hConfig.getString("PIXEL_SIZE", PIXEL_SIZE + "")); sensorWidth = Integer.parseInt(hConfig.getString("sensorWidth", sensorWidth + "")); sensorHeight = Integer.parseInt(hConfig.getString("sensorHeight", sensorHeight + "")); serialNumber = hConfig.getString("serialNumber", "???"); lensSerial = hConfig.getString("lensSerial", "???"); pX0_distortions = Double.parseDouble(hConfig.getString("lens_center_x", "0.0")); pY0_distortions = Double.parseDouble(hConfig.getString("lens_center_y", "0.0")); // copy distortions to current PX0/PY0 this.currentPX0 = pX0_distortions; this.currentPY0 = pY0_distortions; int rows = Integer.parseInt(hConfig.getString("samples_y", "0")); int cols = Integer.parseInt(hConfig.getString("samples_x", "0")); sampleCoord = new double[rows][cols][2]; for (int i = 0; i < rows; i++) for (int j = 0; j < cols; j++) { String[] coords = hConfig.getString("sample_" + i + "_" + j, "0 0").split(regSep); sampleCoord[i][j][0] = Double.parseDouble(coords[0]); sampleCoord[i][j][1] = Double.parseDouble(coords[1]); } int numMeasurements = Integer.parseInt(hConfig.getString("measurements", "0")); measurements = new ArrayList<FocusingFieldMeasurement>(); for (int m = 0; m < numMeasurements; m++) { String prefix = "measurement_" + m + "."; String timestamp = hConfig.getString(prefix + "timestamp", "0"); double temperature = Double.parseDouble(hConfig.getString(prefix + "temperature", "0.0")); String[] sMotors = hConfig.getString(prefix + "motors", "0 0 0").split(regSep); int[] motors = new int[sMotors.length]; for (int i = 0; i < sMotors.length; i++) motors[i] = Integer.parseInt(sMotors[i]); String[] sampleStrings = hConfig.getStringArray(prefix + "sample"); measurements.add(new FocusingFieldMeasurement(timestamp, temperature, motors, sampleStrings)); } if (debugLevel > 0) { System.out.println("Loaded measurement history " + pathname); } this.historyPath = pathname; return true; }
From source file:nz.co.jsrsolutions.ds3.test.RetrieveTestData.java
public static void main(String[] args) { logger.info("Starting application [ rtd ] ..."); try {//from w ww . ja va 2s.c o m config.addConfiguration( new XMLConfiguration(RetrieveTestData.class.getClassLoader().getResource(CONFIG_FILENAME))); HierarchicalConfiguration appConfig = config.configurationAt(APPLICATION_CONFIG_ROOT); EodDataProvider eodDataProvider = null; OutputStream out = new FileOutputStream(OUTPUT_FILENAME); XMLOutputFactory factory = XMLOutputFactory.newInstance(); XMLStreamWriter writer = factory.createXMLStreamWriter(out); eodDataProvider = EodDataProviderFactory.create(appConfig, EODDATA_PROVIDER_NAME); writer.writeStartDocument("utf-8", "1.0"); writer.writeCharacters(NEWLINE); writer.writeComment("Test data for running DataScraper unit tests against"); writer.writeCharacters(NEWLINE); writer.setPrefix(XML_PREFIX, XML_NAMESPACE_URI); writer.writeStartElement(XML_NAMESPACE_URI, TESTDATA_LOCALNAME); writer.writeNamespace(XML_PREFIX, XML_NAMESPACE_URI); writer.writeCharacters(NEWLINE); serializeExchanges(eodDataProvider, writer); serializeSymbols(eodDataProvider, writer); serializeQuotes(eodDataProvider, writer); writer.writeEndElement(); writer.writeCharacters(NEWLINE); writer.writeEndDocument(); writer.flush(); writer.close(); } catch (ConfigurationException ce) { logger.error(ce.toString()); ce.printStackTrace(); } catch (Exception e) { logger.error(e.toString()); logger.error(e); } logger.info("Exiting application [ rtd ] ..."); }
From source file:openlr.properties.OpenLRPropertiesReader.java
/** * Load the OpenLR properties file and validate the content according to the * OpenLR properties schema definition. This method is able to process * properties in format of XML or Java properties files. If the file suffix * is not ".properties" XML is assumed to be the content format, which is * the internally standard./*from ww w . j a v a2 s. c o m*/ * * @param file * the file * @return the OpenLR properties * @throws OpenLRPropertyException * the open lr property exception */ public static FileConfiguration loadPropertiesFromFile(final File file) throws OpenLRPropertyException { if (LOG.isDebugEnabled()) { LOG.debug("load OpenLR properties file"); } if (file == null) { LOG.error("Cannot find the OpenLR properties file."); throw new OpenLRPropertyException(PropertyError.PROPERTIES_FILE_NOT_FOUND); } FileConfiguration conf; try { if (file.getName().endsWith(".properties")) { conf = new PropertiesConfiguration(file); } else { conf = new XMLConfiguration(file); } } catch (ConfigurationException e) { throw new OpenLRPropertyException(PropertyError.MISSING_PROPERTY, e); } return conf; }
From source file:org.accada.hal.impl.sim.GraphicSimulator.java
/** * implements the initialize method of the SimulatorEngine * //from ww w . j a v a 2 s .c o m * @param controller * @param propFile * @throws IOException */ public void initialize(SimulatorController controller, String propFile) throws IOException { this.controller = controller; mgmtSimDialogs = new Hashtable<String, MgmtSimDialog>(); // load properties URL url = ResourceLocator.getURL(propFile, defaultPropFile, this.getClass()); try { propsConfig = new XMLConfiguration(url); } catch (ConfigurationException ce) { throw new IOException("Graphic simulator configuration file not found."); } // load language String prefix = propFile.substring(0, propFile.lastIndexOf("/")) + "/GUIText_"; String postfix = ".xml"; String language = null; guiTextConfig = new XMLConfiguration(); boolean loaded = false; // try to get language from property file if (propsConfig.containsKey("Language")) { language = propsConfig.getString("Language"); String langFile = prefix + language + postfix; URL fileurl = ResourceLocator.getURL(langFile, langFile, this.getClass()); try { guiTextConfig.load(fileurl); loaded = true; } catch (ConfigurationException ce) { } } // try system default language if (!loaded) { language = SYSTEM_DEFAULT_LOCALE.getLanguage(); String langFile = prefix + language + postfix; URL fileurl = ResourceLocator.getURL(langFile, langFile, this.getClass()); try { guiTextConfig.load(fileurl); loaded = true; } catch (ConfigurationException ce) { } } // try default language if (!loaded) { language = DEFAULT_LOCALE.getLanguage(); String langFile = prefix + language + postfix; URL fileurl = ResourceLocator.getURL(langFile, langFile, this.getClass()); try { guiTextConfig.load(fileurl); loaded = true; } catch (ConfigurationException ce) { throw new IOException("Graphic simulator language file not found."); } } // initialize GUI initializeGUI(); LOG.info("GraphicSimulator started"); }