@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(); }
/** * Creates an {@link ObjectNameBuilder} given the JMX domain. * * @param domain the JMX domain * @return The ObjectNameBuilder */ public static ObjectNameBuilder forDomain(String domain) { return new ObjectNameBuilder(domain); }
/** * Adds the key/value as a {@link ObjectName} property. * * @param key the key to add * @param value the value to add * @return This builder */ public ObjectNameBuilder addProperty(String key, String value) { nameStrBuilder.append(sanitizeValue(key)) .append('=') .append(sanitizeValue(value)).append(","); return this; }
@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 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"); }
/** * Adds the {@link TagList} as {@link ObjectName} properties. * * @param tagList the tag list to add * @return This builder */ public ObjectNameBuilder addProperties(TagList tagList) { for (Tag tag : tagList) { addProperty(tag); } return this; }
@Test public void testInvalidCharactersSanitized() { ObjectName name = ObjectNameBuilder.forDomain("test*Domain&") .addProperty("foo%", "$bar") .build(); assertEquals(name.getDomain(), "test_Domain_"); assertEquals(name.getKeyPropertyListString(), "foo_=_bar"); }
/** * Adds the {@link Tag} as a {@link ObjectName} property. * * @param tag the tag to add * @return This builder */ public ObjectNameBuilder addProperty(Tag tag) { return addProperty(tag.getKey(), tag.getValue()); }
@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(); }
private void addName(ObjectNameBuilder builder, Monitor<?> monitor) { builder.addProperty("name", monitor.getConfig().getName()); }
private ObjectNameBuilder(String domain) { nameStrBuilder = new StringBuilder(sanitizeValue(domain)); nameStrBuilder.append(":"); }
/** * Creates an {@link ObjectNameBuilder} given the JMX domain. * * @param domain the JMX domain * @return The ObjectNameBuilder */ public static ObjectNameBuilder forDomain(String domain) { return new ObjectNameBuilder(domain); }
@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(); }
/** * Adds the {@link TagList} as {@link ObjectName} properties. * * @param tagList the tag list to add * @return This builder */ public ObjectNameBuilder addProperties(TagList tagList) { for (Tag tag : tagList) { addProperty(tag); } return this; }
private ObjectNameBuilder(String domain) { nameStrBuilder = new StringBuilder(sanitizeValue(domain)); nameStrBuilder.append(":"); }
/** * Adds the {@link Tag} as a {@link ObjectName} property. * * @param tag the tag to add * @return This builder */ public ObjectNameBuilder addProperty(Tag tag) { return addProperty(tag.getKey(), tag.getValue()); }
/** * Adds the key/value as a {@link ObjectName} property. * * @param key the key to add * @param value the value to add * @return This builder */ public ObjectNameBuilder addProperty(String key, String value) { nameStrBuilder.append(sanitizeValue(key)) .append('=') .append(sanitizeValue(value)).append(","); return this; }
private void addName(ObjectNameBuilder builder, Monitor<?> monitor) { builder.addProperty("name", monitor.getConfig().getName()); }