in src/main/java/org/apache/sling/discovery/impl/support/StandardPropertyProvider.java [68:98]
private Dictionary<String, Object> getRegistrationProperties() {
final List<String> names = new ArrayList<>();
names.add(InstanceDescription.PROPERTY_NAME);
names.add(InstanceDescription.PROPERTY_DESCRIPTION);
names.add(InstanceDescription.PROPERTY_ENDPOINTS);
final StringBuilder sb = new StringBuilder();
boolean first = true;
synchronized ( this.endpoints ) {
for(final String[] points : endpoints.values()) {
for(final String point : points) {
if ( first ) {
first = false;
} else {
sb.append(",");
}
sb.append(point);
}
}
}
this.endpointString = sb.toString();
final Dictionary<String, Object> serviceProps = new Hashtable<>();
serviceProps.put(PropertyProvider.PROPERTY_PROPERTIES, names.toArray(new String[names.size()]));
// we add a changing property to the service registration
// to make sure a modification event is really sent
synchronized ( this ) {
serviceProps.put("changeCount", this.changeCount++);
}
return serviceProps;
}