mirror of
https://github.com/vanitasvitae/Smack.git
synced 2024-11-26 14:02:06 +01:00
Applied patch for full XEP-128 compliance from Guus.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@9920 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
parent
9876d05d52
commit
3a1a6b7830
1 changed files with 35 additions and 0 deletions
|
@ -29,6 +29,7 @@ import org.jivesoftware.smack.packet.Packet;
|
||||||
import org.jivesoftware.smack.packet.XMPPError;
|
import org.jivesoftware.smack.packet.XMPPError;
|
||||||
import org.jivesoftware.smackx.packet.DiscoverInfo;
|
import org.jivesoftware.smackx.packet.DiscoverInfo;
|
||||||
import org.jivesoftware.smackx.packet.DiscoverItems;
|
import org.jivesoftware.smackx.packet.DiscoverItems;
|
||||||
|
import org.jivesoftware.smackx.packet.DataForm;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
@ -54,6 +55,7 @@ public class ServiceDiscoveryManager {
|
||||||
|
|
||||||
private XMPPConnection connection;
|
private XMPPConnection connection;
|
||||||
private final List<String> features = new ArrayList<String>();
|
private final List<String> features = new ArrayList<String>();
|
||||||
|
private DataForm extendedInfo = null;
|
||||||
private Map<String, NodeInformationProvider> nodeInformationProviders =
|
private Map<String, NodeInformationProvider> nodeInformationProviders =
|
||||||
new ConcurrentHashMap<String, NodeInformationProvider>();
|
new ConcurrentHashMap<String, NodeInformationProvider>();
|
||||||
|
|
||||||
|
@ -228,6 +230,9 @@ public class ServiceDiscoveryManager {
|
||||||
for (Iterator<String> it = getFeatures(); it.hasNext();) {
|
for (Iterator<String> it = getFeatures(); it.hasNext();) {
|
||||||
response.addFeature(it.next());
|
response.addFeature(it.next());
|
||||||
}
|
}
|
||||||
|
if (extendedInfo != null) {
|
||||||
|
response.addExtension(extendedInfo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -368,6 +373,36 @@ public class ServiceDiscoveryManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers extended discovery information of this XMPP entity. When this
|
||||||
|
* client is queried for its information this data form will be returned as
|
||||||
|
* specified by XEP-0128.
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* Since no packet is actually sent to the server it is safe to perform this
|
||||||
|
* operation before logging to the server. In fact, you may want to
|
||||||
|
* configure the extended info before logging to the server so that the
|
||||||
|
* information is already available if it is required upon login.
|
||||||
|
*
|
||||||
|
* @param info
|
||||||
|
* the data form that contains the extend service discovery
|
||||||
|
* information.
|
||||||
|
*/
|
||||||
|
public void setExtendedInfo(DataForm info) {
|
||||||
|
extendedInfo = info;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the dataform containing extended service discovery information
|
||||||
|
* from the information returned by this XMPP entity.<p>
|
||||||
|
*
|
||||||
|
* Since no packet is actually sent to the server it is safe to perform this
|
||||||
|
* operation before logging to the server.
|
||||||
|
*/
|
||||||
|
public void removeExtendedInfo() {
|
||||||
|
extendedInfo = null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the discovered information of a given XMPP entity addressed by its JID.
|
* Returns the discovered information of a given XMPP entity addressed by its JID.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue