public List<String> getAllPropertyNames() {
        List<String> result = new ArrayList<>();

        final Lock readLock = readWriteLock.readLock();
        readLock.lock();
        try {
            for (String propertyName : getChildPropertyNamesFor(document.getRootElement(), "")) {
                if (getProperty(propertyName) != null) {
                    result.add(propertyName);
                }
            }
        } finally {
            readLock.unlock();
        }
        return result;
    }
Returns a list of names for all properties found in the XML file.

@return Names for all properties in the file
xmppserver/src/main/java/org/jivesoftware/util/XMLProperties.java