private void dumpAll(Collection<ProbeDesc<? extends Object>> probes) { for(ProbeDesc<? extends Object> pd: probes) { @SuppressWarnings("unchecked") ProbeDesc<Object> castedpd = (ProbeDesc<Object>) pd; try { Class<? extends Probe<Object, ?>> c = (Class<? extends Probe<Object, ?>>) castedpd.getProbeClass(); //Don't dump passive probes, nothing to show if (PassiveProbe.class.isAssignableFrom(c)) { continue; } Probe<Object, ?> p = c.newInstance(); p.setPd(castedpd); System.out.println(oneLine(p)); } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); } } }
Class<? extends Probe<KeyType, ValueType>> probeClass = (Class<? extends Probe<KeyType, ValueType>>) pd.getProbeClass(); if(probeClass == null) { logger.error("Invalid probe description " + pd.getName() + ", probe class name not found");
private void dumpProbe(ProbeDesc<Object> pd) throws InstantiationException, IllegalAccessException, InvocationTargetException { Class<? extends Probe<Object, ?>> c = (Class<? extends Probe<Object, ?>>) pd.getProbeClass(); Probe<Object, ?> p = c.newInstance(); p.setPd(pd); System.out.println(doTitle("Probe class")); System.out.println(); System.out.println(classToLink(pd.getProbeClass())); System.out.println(); System.out.println(doTitle("Arguments"));
Class<?> pc = pd.getProbeClass(); while (pc != null && pc != StarterNode.class) { if(pc.isAnnotationPresent(ProbeMeta.class)) {
setPd(pd); if(pd.getProbeClass() == null) try { pd.setProbeClass((Class<? extends Probe<A, B>>) this.getClass());
Map<String, ProbeDesc<?>> allProbeDesc = conf.setProbeDescMap(); for(ProbeDesc<?> pd: allProbeDesc.values()) { for(ProbeMeta meta: ArgFactory.enumerateAnnotation(pd.getProbeClass(), ProbeMeta.class, StarterNode.class)) { log(Level.TRACE, "new probe meta: %s", meta); daList.add(meta.discoverAgent());
@Test public void testOptional() throws Exception { PropertiesManager localpm = Tools.makePm(testFolder); ConfigObjectFactory conf = new ConfigObjectFactory(localpm, localpm.extensionClassLoader); JrdsDocument pddoc = Tools.parseRessource("httpxmlprobedesc.xml"); pddoc.getRootElement().getElementbyName("probeClass").setTextContent("jrds.mockobjects.MokeProbeBean"); conf.getNodeMap(ConfigType.PROBEDESC).put("name", pddoc); @SuppressWarnings("unchecked") ProbeDesc<String> pd = (ProbeDesc<String>) conf.setProbeDescMap().get("name"); Assert.assertNotNull("Probedesc not build", pd); @SuppressWarnings("unchecked") Probe<String, String> p = (Probe<String, String>) pd.getProbeClass().getConstructor().newInstance(); p.setPd(pd); p.setLabel("goodlabel"); Assert.assertTrue("optional resolution broken", p.isOptional("goodlabel")); }
@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()); }
@Test public void testCustomBeans() throws Exception { PropertiesManager localpm = Tools.makePm(testFolder); ConfigObjectFactory conf = new ConfigObjectFactory(localpm, localpm.extensionClassLoader); JrdsDocument pddoc = Tools.parseRessource("beans.xml"); pddoc.getRootElement().getElementbyName("probeClass").setTextContent("jrds.mockobjects.MokeProbeBean"); conf.getNodeMap(ConfigType.PROBEDESC).put("name", pddoc); @SuppressWarnings("unchecked") ProbeDesc<String> pd = (ProbeDesc<String>) conf.setProbeDescMap().get("name"); Assert.assertNotNull("custom bean customattr1 not found", pd.getBean("customattr1")); Assert.assertNotNull("custom bean customattr2 not found", pd.getBean("customattr2")); @SuppressWarnings("unchecked") Probe<String, String> p = (Probe<String, String>) pd.getProbeClass().getConstructor().newInstance(); p.setPd(pd); pd.getBean("customattr1").set(p, "value1"); pd.getBean("customattr2").set(p, "value2"); Assert.assertEquals("value1", pd.getBean("customattr1").get(p)); Assert.assertEquals("value2", pd.getBean("customattr2").get(p)); Assert.assertEquals("value1", Util.parseTemplate("${attr.customattr1}", p)); Assert.assertEquals("value2", Util.parseTemplate("${attr.customattr2}", p)); } }