From: <do...@hy...> - 2007-03-31 15:47:00
|
Author: dougm Date: 2007-03-31 07:46:56 -0800 (Sat, 31 Mar 2007) New Revision: 3981 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=3981 Modified: trunk/plugins/mule/etc/hq-plugin.xml trunk/plugins/mule/src/org/hyperic/hq/plugin/mule/MuleServerDetector.java Log: add mule.home and mule.config properties Modified: trunk/plugins/mule/etc/hq-plugin.xml =================================================================== --- trunk/plugins/mule/etc/hq-plugin.xml 2007-03-31 15:12:45 UTC (rev 3980) +++ trunk/plugins/mule/etc/hq-plugin.xml 2007-03-31 15:46:56 UTC (rev 3981) @@ -50,6 +50,12 @@ <option name="domain" description="JMX Domain" default="Mule.Mule_Dot_Net_Stock_Quote_Sample_using_REST"/> + <option name="mule.home" + description="Mule Home" + default=""/> + <option name="mule.config" + description="Mule Instance Config" + default=""/> </config> <plugin type="autoinventory" Modified: trunk/plugins/mule/src/org/hyperic/hq/plugin/mule/MuleServerDetector.java =================================================================== --- trunk/plugins/mule/src/org/hyperic/hq/plugin/mule/MuleServerDetector.java 2007-03-31 15:12:45 UTC (rev 3980) +++ trunk/plugins/mule/src/org/hyperic/hq/plugin/mule/MuleServerDetector.java 2007-03-31 15:46:56 UTC (rev 3981) @@ -53,10 +53,11 @@ "wrapper.working.dir="; private static final String PROP_DOMAIN = "domain"; + private static final String PROP_CONFIG = "mule.config"; private static final String DOMAIN_PREFIX = "Mule"; - private Map _ids = new HashMap(); + private Map _instances = new HashMap(); //attempt to find the xml config file for this server //1.3 has a wrapper parent process with the working.dir @@ -65,6 +66,9 @@ String[] args = process.getArgs(); String wrapperPid = null; String config = null; + final String propHome = getProcHomeProperty(); + final String defPropHome = "-D" + propHome + "="; + String home = null; for (int i=0; i<args.length; i++) { String arg = args[i]; @@ -74,6 +78,9 @@ else if (arg.equals("-config")) { config = args[i+1]; } + else if (arg.startsWith(defPropHome)) { + home = arg.substring(defPropHome.length()); + } } if (config == null) { @@ -104,7 +111,14 @@ process.setURL(url); getLog().debug(configFile + " jmx.url=" + url); String id = getXPathValue(doc, ID_EXPR); - _ids.put(url, id); + HashMap instance = new HashMap(); + instance.put(PROP_DOMAIN, DOMAIN_PREFIX + "." + id); + instance.put(PROP_CONFIG, + getCanonicalPath(configFile.getPath())); + if (home != null) { + instance.put(propHome, home); + } + _instances.put(url, instance); } catch (IOException e) { getLog().error("Error parsing: " + configFile, e); } @@ -145,15 +159,11 @@ ConfigResponse config) { String url = config.getValue(MxUtil.PROP_JMX_URL); - String id = (String)_ids.get(url); - if (id == null) { - //Using the default jmx service url - id = (String)_ids.get(null); + Map instance = (Map)_instances.get(url); + + if (instance != null) { + config.merge(new ConfigResponse(instance), true); } - if (id != null) { - config.setValue(PROP_DOMAIN, - DOMAIN_PREFIX + "." + id); - } super.setProductConfig(server, config); |