@Test public void testBuildWithoutPropertyAdded() { try { ObjectNameBuilder.forDomain("testDomain").build(); fail("Should have thrown an exception without keys being added!"); } catch (RuntimeException expected) { assertEquals(expected.getCause().getClass(), MalformedObjectNameException.class); } }
@Override public ObjectName createObjectName(String domain, Monitor<?> monitor) { ObjectNameBuilder objBuilder = ObjectNameBuilder.forDomain(domain); Map<String, String> tags = new TreeMap<>( monitor.getConfig().getTags().asMap()); // For the known ordered keys, try to add them if they're present in the monitor's tags for (String knownKey : keyOrder) { // Special case for name as it isn't a tag if ("name".equals(knownKey)) { addName(objBuilder, monitor); } else { String value = tags.remove(knownKey); if (value != null) { objBuilder.addProperty(knownKey, value); } } } // If appending, then add the name (if not already added) and remaining tags if (appendRemaining) { if (!orderIncludesName) { addName(objBuilder, monitor); } for (Map.Entry<String, String> additionalTag : tags.entrySet()) { objBuilder.addProperty(additionalTag.getKey(), additionalTag.getValue()); } } return objBuilder.build(); }
@Test public void testInvalidCharactersSanitized() { ObjectName name = ObjectNameBuilder.forDomain("test*Domain&") .addProperty("foo%", "$bar") .build(); assertEquals(name.getDomain(), "test_Domain_"); assertEquals(name.getKeyPropertyListString(), "foo_=_bar"); }
@Test public void testAddTagList() { ObjectName name = ObjectNameBuilder.forDomain("testDomain") .addProperties(BasicTagList.of("foo", "bar", "test", "stuff")) .build(); assertEquals(name.getDomain(), "testDomain"); assertEquals(name.getKeyPropertyListString(), "foo=bar,test=stuff"); }
@Test public void testTagByTag() { // Order will be in the order tags were added to the builder ObjectName name = ObjectNameBuilder.forDomain("testDomain") .addProperty(Tags.newTag("foo", "bar")) .addProperty(Tags.newTag("test", "stuff")) .build(); assertEquals(name.getDomain(), "testDomain"); assertEquals(name.getKeyPropertyListString(), "foo=bar,test=stuff"); }
@Override public ObjectName createObjectName(String domain, Monitor<?> monitor) { ObjectNameBuilder objNameBuilder = ObjectNameBuilder.forDomain(domain); objNameBuilder.addProperty("name", monitor.getConfig().getName()); objNameBuilder.addProperties(monitor.getConfig().getTags()); return objNameBuilder.build(); }
@Override public ObjectName createObjectName(String domain, Monitor<?> monitor) { ObjectNameBuilder objBuilder = ObjectNameBuilder.forDomain(domain); Map<String, String> tags = new TreeMap<>( monitor.getConfig().getTags().asMap()); // For the known ordered keys, try to add them if they're present in the monitor's tags for (String knownKey : keyOrder) { // Special case for name as it isn't a tag if ("name".equals(knownKey)) { addName(objBuilder, monitor); } else { String value = tags.remove(knownKey); if (value != null) { objBuilder.addProperty(knownKey, value); } } } // If appending, then add the name (if not already added) and remaining tags if (appendRemaining) { if (!orderIncludesName) { addName(objBuilder, monitor); } for (Map.Entry<String, String> additionalTag : tags.entrySet()) { objBuilder.addProperty(additionalTag.getKey(), additionalTag.getValue()); } } return objBuilder.build(); }
@Override public ObjectName createObjectName(String domain, Monitor<?> monitor) { ObjectNameBuilder objNameBuilder = ObjectNameBuilder.forDomain(domain); objNameBuilder.addProperty("name", monitor.getConfig().getName()); objNameBuilder.addProperties(monitor.getConfig().getTags()); return objNameBuilder.build(); }