List of usage examples for org.apache.commons.configuration ConfigurationException toString
public String toString()
From source file:Cresendo.java
public static void main(String[] args) { String cfgFileReceiver = null; // Path to config file for eif receiver agent String cfgFileEngine = null; // Path to config file for xml event engine Options opts = null; // Command line options HelpFormatter hf = null; // Command line help formatter // Setup the message record which will contain text written to the log file ///*from w w w.j a va 2s . c o m*/ // The message logger object is created when the "-l" is processed // as this object need to be associated with a log file // LogRecord msg = new LogRecord(LogRecord.TYPE_INFO, "Cresendo", "main", "", "", "", "", ""); // Get the directory separator (defaults to "/") // dirSep = System.getProperty("file.separator", "/"); // Initialise the structure containing the event handler objects // Vector<IEventHandler> eventHandler = new Vector<IEventHandler>(10, 10); // Process the command line arguments // try { opts = new Options(); hf = new HelpFormatter(); opts.addOption("h", "help", false, "Command line arguments help"); opts.addOption("i", "instance name", true, "Name of cresendo instance"); opts.addOption("l", "log dir", true, "Path to log file directory"); opts.addOption("c", "config dir", true, "Path to configuarion file directory"); opts.getOption("l").setRequired(true); opts.getOption("c").setRequired(true); BasicParser parser = new BasicParser(); CommandLine cl = parser.parse(opts, args); // Print out some help and exit // if (cl.hasOption('h')) { hf.printHelp("Options", opts); System.exit(0); } // Set the instance name // if (cl.hasOption('i')) { instanceName = cl.getOptionValue('i'); // Set to something other than "default" } // Setup the message and trace logging objects for the EventEngine // if (cl.hasOption('l')) { // Setup the the paths to the message, trace and status log files // logDir = cl.getOptionValue("l"); logPath = logDir + dirSep + instanceName + "-engine.log"; tracePath = logDir + dirSep + instanceName + "-engine.trace"; statusPath = logDir + dirSep + instanceName + "-engine.status"; } else { // NOTE: This should be picked up by the MissingOptionException catch below // but I couldn't get this to work so I added the following code: // hf.printHelp("Option 'l' is a required option", opts); System.exit(1); } // Read the receiver and engine config files in the config directory // if (cl.hasOption('c')) { // Setup and check path to eif config file for TECAgent receiver object // configDir = cl.getOptionValue("c"); cfgFileReceiver = configDir + dirSep + instanceName + ".conf"; checkConfigFile(cfgFileReceiver); // Setup and check path to xml config file for the EventEngine // cfgFileEngine = cl.getOptionValue("c") + dirSep + instanceName + ".xml"; checkConfigFile(cfgFileEngine); } else { // NOTE: This should be picked up by the MissingOptionException catch below // but I couldn't get this to work so I added the following code: // hf.printHelp("Option 'c' is a required option", opts); System.exit(1); } } catch (UnrecognizedOptionException e) { hf.printHelp(e.toString(), opts); System.exit(1); } catch (MissingOptionException e) { hf.printHelp(e.toString(), opts); System.exit(1); } catch (MissingArgumentException e) { hf.printHelp(e.toString(), opts); System.exit(1); } catch (ParseException e) { e.printStackTrace(); System.exit(1); } catch (Exception e) { System.err.println(e.toString()); System.exit(1); } // Main program // try { // ===================================================================== // Setup the message, trace and status logger objects // try { msgHandler = new FileHandler("cresendo", "message handler", logPath); msgHandler.openDevice(); msgLogger = new MessageLogger("cresendo", "message log"); msgLogger.addHandler(msgHandler); trcHandler = new FileHandler("cresendo", "trace handler", tracePath); trcHandler.openDevice(); trcLogger = new TraceLogger("cresendo", "trace log"); trcLogger.addHandler(trcHandler); statLogger = new StatusLogger(statusPath); } catch (Exception e) { System.err.println(e.toString()); System.exit(1); } // Add the shutdown hook // Runtime.getRuntime().addShutdownHook(new ShutdownThread(msgLogger, instanceName)); // --------------------------------------------------------------------- // ===================================================================== // Load and parse the xml event engine configuration file // // msg.setText("Loading xml engine from: '" + cfgFileEngine + "'"); try { XMLConfiguration xmlProcessor = new XMLConfiguration(); xmlProcessor.setFileName(cfgFileEngine); // Validate the xml against a document type declaration // xmlProcessor.setValidating(true); // Don't interpolate the tag contents by splitting them on a delimiter // (ie by default a comma) // xmlProcessor.setDelimiterParsingDisabled(true); // This will throw a ConfigurationException if the xml document does not // conform to its dtd. By doing this we hopefully catch any errors left // behind after the xml configuration file has been edited. // xmlProcessor.load(); // Setup the trace flag // ConfigurationNode engine = xmlProcessor.getRootNode(); List rootAttribute = engine.getAttributes(); for (Iterator it = rootAttribute.iterator(); it.hasNext();) { ConfigurationNode attr = (ConfigurationNode) it.next(); String attrName = attr.getName(); String attrValue = (String) attr.getValue(); if (attrValue == null || attrValue == "") { System.err.println("\n Error: The value of the attribute '" + attrName + "'" + "\n in the xml file '" + cfgFileEngine + "'" + "\n is not set"); System.exit(1); } if (attrName.matches("trace")) { if (attrValue.matches("true") || attrValue.matches("on")) { trcLogger.setLogging(true); } } if (attrName.matches("status")) { if (attrValue.matches("true") || attrValue.matches("on")) { statLogger.setLogging(true); } else { statLogger.setLogging(false); } } if (attrName.matches("interval")) { if (!attrValue.matches("[0-9]+")) { System.err.println("\n Error: The value of the interval attribute in: '" + cfgFileEngine + "'" + "\n should only contain digits from 0 to 9." + "\n It currently contains: '" + attrValue + "'"); System.exit(1); } statLogger.setInterval(Integer.parseInt(attrValue)); } } // Now build and instantiate the list of classes that will process events // received by the TECAgent receiver in a chain like manner. // List classes = xmlProcessor.configurationsAt("class"); for (Iterator it = classes.iterator(); it.hasNext();) { HierarchicalConfiguration sub = (HierarchicalConfiguration) it.next(); // sub contains now all data contained in a single <class></class> tag set // String className = sub.getString("name"); // Log message // msg.setText(msg.getText() + "\n Instantiated event handler class: '" + className + "'"); // The angle brackets describing the class of object held by the // Vector are implemented by Java 1.5 and have 2 effects. // // 1. The list accepts only elements of that class and nothing else // (Of course thanks to Auto-Wrap you can also add double-values) // // 2. the get(), firstElement() ... Methods don't return a Object, but // they deliver an element of the class. // Vector<Class> optTypes = new Vector<Class>(10, 10); Vector<Object> optValues = new Vector<Object>(10, 10); for (int i = 0; i <= sub.getMaxIndex("option"); i++) { Object optValue = null; String optVarName = sub.getString("option(" + i + ")[@varname]"); String optJavaType = sub.getString("option(" + i + ")[@javatype]"); // Use the specified java type in order to make the method call // to the heirarchical sub object [painful :-((] // if (optJavaType.matches("byte")) { optTypes.addElement(byte.class); optValue = sub.getByte("option(" + i + ")"); if (optValue == null) // Catch nulls { optValue = 0; // Set to something nullish } } else if (optJavaType.matches("short")) { optTypes.addElement(byte.class); optValue = sub.getShort("option(" + i + ")"); if (optValue == null) // Catch nulls { optValue = 0; // Set to something nullish } } else if (optJavaType.matches("int")) { optTypes.addElement(int.class); optValue = sub.getInt("option(" + i + ")"); if (optValue == null) // Catch nulls { optValue = 0; // Set to something nullish } } else if (optJavaType.matches("long")) { optTypes.addElement(long.class); optValue = sub.getLong("option(" + i + ")"); if (optValue == null) // Catch nulls { optValue = 0; // Set to something nullish } } else if (optJavaType.matches("float")) { optTypes.addElement(float.class); optValue = sub.getFloat("option(" + i + ")"); if (optValue == null) // Catch nulls { optValue = 0.0; // Set to something nullish } } else if (optJavaType.matches("double")) { optTypes.addElement(double.class); optValue = sub.getDouble("option(" + i + ")"); if (optValue == null) // Catch nulls { optValue = 0.0; // Set to something nullish } } else if (optJavaType.matches("boolean")) { optTypes.addElement(boolean.class); optValue = sub.getBoolean("option(" + i + ")"); if (optValue == null) // Catch nulls { optValue = false; // Set to something nullish } } else if (optJavaType.matches("String")) { optTypes.addElement(String.class); optValue = sub.getString("option(" + i + ")"); if (optValue == null) // Catch nulls { optValue = ""; // Set it to something nullish } } else { System.err.println( "Error: Unsupported java type found in xml config: '" + optJavaType + "'"); System.exit(1); } // Add option value element // // System.out.println("Option value is: '" + optValue.toString() + "'\n"); // optValues.addElement(optValue); // Append to message text // String msgTemp = msg.getText(); msgTemp += "\n option name: '" + optVarName + "'"; msgTemp += "\n option type: '" + optJavaType + "'"; msgTemp += "\n option value: '" + optValues.lastElement().toString() + "'"; msg.setText(msgTemp); } try { // Instantiate the class with the java reflection api // Class klass = Class.forName(className); // Setup an array of paramater types in order to retrieve the matching constructor // Class[] types = optTypes.toArray(new Class[optTypes.size()]); // Get the constructor for the class which matches the parameter types // Constructor konstruct = klass.getConstructor(types); // Create an instance of the event handler // IEventHandler eventProcessor = (IEventHandler) konstruct.newInstance(optValues.toArray()); // Add the instance to the list of event handlers // eventHandler.addElement(eventProcessor); } catch (InvocationTargetException e) { System.err.println("Error: " + e.toString()); System.exit(1); } catch (ClassNotFoundException e) { System.err.println("Error: class name not found: '" + className + "' \n" + e.toString()); System.exit(1); } catch (Exception e) { System.err.println( "Error: failed to instantiate class: '" + className + "' \n" + e.toString()); System.exit(1); } } } catch (ConfigurationException cex) // Something went wrong loading the xml file { System.err.println("\n" + "Error loading XML file: " + cfgFileEngine + "\n" + cex.toString()); System.exit(1); } catch (Exception e) { System.err.println(e.toString()); System.exit(1); } // --------------------------------------------------------------------- // ===================================================================== // Setup the TECAgent receiver // Reader cfgIn = null; try { cfgIn = new FileReader(cfgFileReceiver); } catch (Exception e) { System.err.println(e.toString()); System.exit(1); } // Start the TECAgent receiver and register the event engine handler // TECAgent receiver = new TECAgent(cfgIn, TECAgent.RECEIVER_MODE, false); EventEngine ee = new EventEngine(eventHandler, msgLogger, trcLogger); receiver.registerListener(ee); // Construct message and send it to the message log // String text = "\n Cresendo instance '" + instanceName + "' listening for events on port '" + receiver.getConfigVal("ServerPort") + "'"; msg.setText(msg.getText() + text); msgLogger.log(msg); // Send message to log // --------------------------------------------------------------------- // ===================================================================== // Initiate status logging // if (statLogger.isLogging()) { int seconds = statLogger.getInterval(); while (true) { try { statLogger.log(); } catch (Exception ex) { System.err.println("\n An error occurred while writing to '" + statusPath + "'" + "\n '" + ex.toString() + "'"); } Thread.sleep(seconds * 1000); // Convert sleep time to milliseconds } } // --------------------------------------------------------------------- } catch (Exception e) { System.err.println(e.toString()); System.exit(1); } }
From source file:com.dfki.av.sudplan.Configuration.java
/** * Save the configuration file {@code config/sudplan3D.xml} from the * resources to the the file {@code file}. Adding the additional properties * {@code sudplan3D.user.dir} and {@code sudplan3D.working.dir}. * * @param file the configuration {@link File} * @param userHomeDir the user home directory * @param workingDir the working directory *//*w w w.j a v a 2s. c o m*/ private static void installConfigFile(File file, String userHomeDir, String workingDir) { log.debug("Installing configuration to {}...", file.getAbsoluteFile()); try { ClassLoader loader = Configuration.class.getClassLoader(); URL url = loader.getResource("config/sudplan3D.xml"); XMLConfiguration xmlInitialConfig = new XMLConfiguration(url); xmlInitialConfig.addProperty("sudplan3D.user.dir", userHomeDir); xmlInitialConfig.addProperty("sudplan3D.working.dir", workingDir); xmlInitialConfig.save(file); } catch (ConfigurationException ex) { log.error(ex.toString()); } }
From source file:com.dfki.av.sudplan.Configuration.java
/** * Returns whether the configuration file {@code file} is supported by the * current implementation.//from www . j a v a2s. c om * * @param file the configuration {@link File} to check * @return {@code true} if a {@code version} tag exists and its value is * equal to {@link #VERSION}. Otherwise {@code false}. */ private static boolean isConfigFileSupported(File file) { try { XMLConfiguration xmlConfig = new XMLConfiguration(file); if (!xmlConfig.containsKey("version")) { log.debug("No version tag."); return false; } String version = xmlConfig.getString("version"); if (version.equalsIgnoreCase(VERSION)) { return true; } else { log.debug("Version {} not supported.", version); return false; } } catch (ConfigurationException ex) { log.error(ex.toString()); } return false; }
From source file:com.dfki.av.sudplan.Configuration.java
/** * Initialize the {@link XMLConfiguration} for the application. * * @return the {@link #XML_CONFIG} to return. *//*from w w w . j a v a 2s .c o m*/ private static XMLConfiguration initConfig() { log.debug("Init sudplan3D user home..."); String userHomeDir = VisSettings.USER_HOME_DIR; log.info("Init sudplan3D configuration..."); // Check whether the sudplan3D config file already exists. final File userConfigFile = new File(userHomeDir + "/config/sudplan3D.xml"); if (!userConfigFile.exists()) { log.debug("No configuration file existing."); installConfigFile(userConfigFile, userHomeDir, userHomeDir); } else { log.debug("Configuration file existing. Checking version ..."); if (!isConfigFileSupported(userConfigFile)) { log.debug("Configuration file not supported."); log.debug("Delete old configuration file."); boolean deleted = userConfigFile.delete(); if (deleted) { installConfigFile(userConfigFile, userHomeDir, userHomeDir); } else { log.error("Could not delete file {}", userConfigFile.getAbsolutePath()); log.warn("Using old configuration file."); } } else { log.debug("Configuration file supported."); } } XMLConfiguration xmlConfig = null; try { xmlConfig = new XMLConfiguration(userConfigFile); xmlConfig.setAutoSave(true); for (Iterator<String> it = xmlConfig.getKeys(); it.hasNext();) { String key = it.next(); log.debug("{} : {}", key, xmlConfig.getString(key)); } } catch (ConfigurationException ex) { log.error(ex.toString()); } return xmlConfig; }
From source file:com.github.aynu.yukar.framework.util.PropertiesHelper.java
/** * ????// w w w .j ava2 s . co m * @param baseName ?? * @return ?? */ private PropertiesConfiguration getPropertiesConfiguration(final String baseName) { final String languageTag = String.format("%s-%s", SystemUtils.USER_LANGUAGE, SystemUtils.USER_COUNTRY); final Control control = Control.getControl(Control.FORMAT_DEFAULT); final Collection<Locale> locales = control.getCandidateLocales("messages", Locale.forLanguageTag(languageTag)); final StringBuilder builder = new StringBuilder(); for (final Locale locale : locales) { try { final String bundleName = control.toBundleName(baseName, locale); final String resourceName = control.toResourceName(bundleName, "properties"); final URL url = getClass().getResource("/" + resourceName); // final URL url = ClassLoader.getSystemResource(resourceName); if (url != null) { if (builder.length() > 0) { LOG.debug("Resource could not be found ({}).", builder.toString()); } LOG.debug("Resource could be found ({}).", resourceName); return new PropertiesConfiguration(url); } builder.append(" " + resourceName); } catch (final ConfigurationException e) { LOG.warn(e.toString(), e); throw new StandardRuntimeException(e); } } throw new StandardRuntimeException(String.format("PROPERTY is NOT_FOUND. [baseName=%s]", baseName)); }
From source file:edu.utexas.cs.tactex.core.BrokerPropertiesService.java
public void setUserConfig(File userConfig) { // then load the user-specified config try {/* w ww .j a va2 s . c o m*/ PropertiesConfiguration pconfig = new PropertiesConfiguration(); pconfig.load(userConfig); config.addConfiguration(pconfig); log.debug("setUserConfig " + userConfig.getName()); } catch (ConfigurationException e) { log.error("Config error loading " + userConfig + ": " + e.toString()); } lazyInit(); }
From source file:edu.utexas.cs.tactex.core.BrokerPropertiesService.java
/** * Loads the properties from classpath, default config file, * and user-specified config file, just in case it's not already been * loaded. This is done when properties are first requested, to ensure * that the logger has been initialized. Because the CompositeConfiguration * treats its config sources in FIFO order, this should be called <i>after</i> * any user-specified config is loaded./*from w w w . j a va 2 s .c om*/ */ void lazyInit() { // only do this once if (initialized) return; initialized = true; // find and load the default properties file log.debug("lazyInit"); try { File defaultProps = new File("broker.properties"); log.info("adding " + defaultProps.getName()); config.addConfiguration(new PropertiesConfiguration(defaultProps)); } catch (Exception e1) { log.warn("broker.properties not found: " + e1.toString()); } // set up the classpath props try { Resource[] xmlResources = context.getResources("classpath*:config/properties.xml"); for (Resource xml : xmlResources) { if (validXmlResource(xml)) { log.info("loading config from " + xml.getURI()); XMLConfiguration xconfig = new XMLConfiguration(); xconfig.load(xml.getInputStream()); config.addConfiguration(xconfig); } } Resource[] propResources = context.getResources("classpath*:config/*.properties"); for (Resource prop : propResources) { if (validPropResource(prop)) { if (null == prop) { log.error("Null resource"); } log.info("loading config from " + prop.getURI()); PropertiesConfiguration pconfig = new PropertiesConfiguration(); pconfig.load(prop.getInputStream()); config.addConfiguration(pconfig); } } } catch (ConfigurationException e) { log.error("Problem loading configuration: " + e.toString()); } catch (Exception e) { log.error("Error loading configuration: " + e.toString()); } // set up the configurator configurator.setConfiguration(config); }
From source file:muvis.Environment.java
private Environment() { //Loading the main configuration ConfigurationFactory factory = new ConfigurationFactory("config.xml"); try {//from w ww . ja v a 2s . c o m configuration = factory.getConfiguration(); } catch (ConfigurationException ex) { System.out.println("Couldn't not load the configuration file! Possible reason: " + ex.toString()); } initializeDataFolders(); //initialize all the elements in the workspace audioPlayer = new MuVisAudioPlayer(); snippetManager = new AudioSnippetPlayerManager(audioPlayer); userPlaylist = new BasePlaylist(); configFile = new Properties(); viewManager = new ViewManager(); desk = new DockingDesktop(); ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); scheduler.scheduleAtFixedRate(new MemoryCollector(), 300, 300, TimeUnit.SECONDS); nbtreesManager = new NBTreeManager(); try { String dataFolder = configuration.getString("muvis.data_folder"); String nbtreeMainFolder = configuration.getString("muvis.nbtree_folder"); String nbtreeFullfolder = dataFolder + Util.getOSEscapeSequence() + nbtreeMainFolder + Util.getOSEscapeSequence(); nbtreesManager.addNBTree(Elements.TRACKS_NBTREE, new NBTree(Elements.TRACKS_NBTREE, nbtreeFullfolder)); nbtreesManager.addNBTree(Elements.ALBUMS_NBTREE, new NBTree(Elements.ALBUMS_NBTREE, nbtreeFullfolder)); nbtreesManager.addNBTree(Elements.ARTISTS_NBTREE, new NBTree(Elements.ARTISTS_NBTREE, nbtreeFullfolder)); } catch (NBTreeException ex) { ex.printStackTrace(); System.out.println("An error occured when trying to initialize the nbtreemanager!"); } initConfigFile(); }
From source file:com.grendelscan.ui.MainWindow.java
public void saveSettings() { FileDialog fd = new FileDialog(getShell(), SWT.SAVE); fd.setFilterPath("." + File.separator + GrendelScan.defaultConfigDirectory + File.separator + Scan.getScanSettings().getScanConfigDir()); fd.setFilterExtensions(new String[] { "*.scan" }); fd.setText("Save settings file name"); String filename = fd.open();//from w ww .j ava2s.c o m if (filename != null) { try { Scan.getScanSettings().saveScanSettings(filename); } catch (ConfigurationException e1) { displayMessage("Error", "Problem saving scan settings: \n" + e1.toString(), true); } } }
From source file:com.grendelscan.ui.MainWindow.java
public void importSettings() { FileDialog fd = new FileDialog(getShell(), SWT.OPEN); fd.setFilterPath("." + File.separator + GrendelScan.defaultConfigDirectory + File.separator + Scan.getScanSettings().getScanConfigDir()); fd.setFilterExtensions(new String[] { "*.scan" }); fd.setText("Import settings file name"); String filename = fd.open();/*from w w w.j a v a2 s. c o m*/ if (filename != null) { try { Scan.getScanSettings().loadScanSettings(filename); updateFromSettings(); } catch (ConfigurationException e1) { displayMessage("Error", "Problem loading scan settings: \n" + e1.toString(), true); } } }