static final public <T> ProbeDesc<T> getProbeDesc(JrdsDocument node) throws Exception { ProbeDescBuilder builder = new ProbeDescBuilder(); builder.setPm(new PropertiesManager()); return builder.makeProbeDesc(node); } }
public Map<String, ProbeDesc<? extends Object>> setProbeDescMap() { Map<String, JrdsDocument> nodemap = load.getRepository(ConfigType.PROBEDESC); ProbeDescBuilder ob = new ProbeDescBuilder(); ob.setClassLoader(cl); ob.setPm(pm); ob.setGraphDescMap(graphDescMap); Map<String, ProbeDesc<? extends Object>> probeDescMap = getObjectMap(ob, nodemap); pf = new ProbeFactory(probeDescMap, graphDescMap); logger.debug(jrds.Util.delayedFormatString("Probe description configured: %s", probeDescMap.keySet())); return probeDescMap; }
@Override ProbeDesc<? extends Object> build(JrdsDocument n) throws InvocationTargetException { try { return makeProbeDesc(n); } catch (SecurityException | IllegalArgumentException | NoSuchMethodException | IllegalAccessException | InvocationTargetException | ClassNotFoundException | NoClassDefFoundError | InstantiationException e) { throw new InvocationTargetException(e, ProbeDescBuilder.class.getName()); } }
setMethod(root.getElementbyName("probeName"), pd, "setProbeName"); setMethod(root.getElementbyName("name"), pd, "setName"); setMethod(root.getElementbyName("index"), pd, "setIndex"); setMethod(root.getElementbyName("uptimefactor"), pd, "setUptimefactor", Float.TYPE); for(Map<String, Object> dsMap: doDsList(pd.getName(), root)) { pd.add(dsMap);
@Test public void loadBadProbeDesc() throws Exception { JrdsDocument d = Tools.parseRessource("baddesc.xml"); PropertiesManager pm = new PropertiesManager(); List<LoggingEvent> logged = Tools.getLockChecker("jrds.configuration.ConfigObjectBuilder"); ProbeDescBuilder builder = new ProbeDescBuilder(); builder.setPm(pm); ProbeDesc<?> pd = builder.makeProbeDesc(d); logger.trace("Collect mapping: " + pd.getCollectMapping()); Assert.assertEquals(1, pd.getCollectMapping().size()); boolean found = false; for(LoggingEvent le: logged) { String message = le.getRenderedMessage(); if(message.contains("Invalid ds type specified")) { found = true; break; } } Assert.assertTrue("bad probe desc not detected", found); }
@Test public void loadProbeDesc() throws Exception { JrdsDocument d = Tools.parseRessource("fulldesc.xml"); PropertiesManager pm = new PropertiesManager(); ProbeDescBuilder builder = new ProbeDescBuilder(); builder.setPm(new PropertiesManager()); ProbeDesc<?> pd = builder.makeProbeDesc(d); Assert.assertEquals("name", pd.getName()); Assert.assertEquals("probename", pd.getProbeName()); Assert.assertEquals(jrds.mockobjects.MokeProbe.class, pd.getProbeClass()); Assert.assertEquals("specificvalue1", pd.getSpecific("specificname1")); Assert.assertEquals("specificvalue2", pd.getSpecific("specificname2")); Assert.assertEquals(0.5, pd.getUptimefactor(), 0); Assert.assertEquals((long) pm.step * 2, pd.getHeartBeatDefault()); logger.trace(pd.getCollectMapping()); logger.trace(pd.getDefaultBeans()); // An empty collect string should not be collected Assert.assertEquals(5, pd.getCollectMapping().size()); }