Is anyone interested in an implementation of XEP-0115: Entity Capabilities? I have a slightly fresh implementation. It is currently mangled up together with my XEP-0174: Serverless Messaging source tree but if anyone is interested, I can extract the changes.
So what does it do? Well…
It adds a caps blob to all the packets consisting of a SHA-1 hash of the current available services.
It sends a new presence with the new SHA-1 hash, if sendPresence thing is turned on in the ConnectionConfiguration class, or manually turned on in the ServiceDiscovery class (the entity caps hash is calculated using supported features, identities and form fields as input, read XEP-0115 if interested)
It reads all of the presence packets from all the users, creating a cache of up-to-date hash values.
Stores a cache of already known service sets. The cache is then used to speed up service discovery info requests.
Per JVM: a hash-value -> DiscoverInfo table
Per Connection: a Full JID -> hash value table
Note that this is the newest version of the XEP, thus it does not support the old deprecated ext-attribute.