mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-12-22 20:47:57 +01:00
Make Workgroup JID an EntityBareJid in smackx.workgroup
This commit is contained in:
parent
96046a063a
commit
5fbf2ce75a
8 changed files with 38 additions and 33 deletions
|
@ -28,6 +28,7 @@ import org.jivesoftware.smack.packet.IQ;
|
|||
import org.jivesoftware.smackx.workgroup.packet.AgentInfo;
|
||||
import org.jivesoftware.smackx.workgroup.packet.AgentWorkgroups;
|
||||
|
||||
import org.jxmpp.jid.EntityBareJid;
|
||||
import org.jxmpp.jid.Jid;
|
||||
|
||||
/**
|
||||
|
@ -37,7 +38,7 @@ import org.jxmpp.jid.Jid;
|
|||
*/
|
||||
public class Agent {
|
||||
private XMPPConnection connection;
|
||||
private Jid workgroupJID;
|
||||
private final EntityBareJid workgroupJID;
|
||||
|
||||
public static Collection<String> getWorkgroups(Jid serviceJID, Jid agentJID, XMPPConnection connection) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
|
||||
AgentWorkgroups request = new AgentWorkgroups(agentJID);
|
||||
|
@ -49,7 +50,7 @@ public class Agent {
|
|||
/**
|
||||
* Constructs an Agent.
|
||||
*/
|
||||
Agent(XMPPConnection connection, Jid workgroupJID) {
|
||||
Agent(XMPPConnection connection, EntityBareJid workgroupJID) {
|
||||
this.connection = connection;
|
||||
this.workgroupJID = workgroupJID;
|
||||
}
|
||||
|
|
|
@ -58,7 +58,7 @@ public class AgentRoster {
|
|||
private static final int EVENT_PRESENCE_CHANGED = 2;
|
||||
|
||||
private final XMPPConnection connection;
|
||||
private final Jid workgroupJID;
|
||||
private final EntityBareJid workgroupJID;
|
||||
private final List<EntityBareJid> entries = new ArrayList<>();
|
||||
private final List<AgentRosterListener> listeners = new ArrayList<>();
|
||||
private final Map<Jid, Map<Resourcepart, Presence>> presenceMap = new HashMap<>();
|
||||
|
@ -73,7 +73,7 @@ public class AgentRoster {
|
|||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
AgentRoster(XMPPConnection connection, Jid workgroupJID) throws NotConnectedException, InterruptedException {
|
||||
AgentRoster(XMPPConnection connection, EntityBareJid workgroupJID) throws NotConnectedException, InterruptedException {
|
||||
this.connection = connection;
|
||||
this.workgroupJID = workgroupJID;
|
||||
// Listen for any roster packets.
|
||||
|
@ -292,7 +292,6 @@ public class AgentRoster {
|
|||
/**
|
||||
* Listens for all presence packets and processes them.
|
||||
*/
|
||||
@SuppressWarnings("EqualsIncompatibleType")
|
||||
private class PresencePacketListener implements StanzaListener {
|
||||
@Override
|
||||
public void processStanza(Stanza packet) {
|
||||
|
|
|
@ -76,6 +76,8 @@ import org.jivesoftware.smackx.workgroup.settings.GenericSettings;
|
|||
import org.jivesoftware.smackx.workgroup.settings.SearchSettings;
|
||||
import org.jivesoftware.smackx.xdata.Form;
|
||||
|
||||
import org.jxmpp.jid.EntityBareJid;
|
||||
import org.jxmpp.jid.EntityJid;
|
||||
import org.jxmpp.jid.Jid;
|
||||
import org.jxmpp.jid.parts.Resourcepart;
|
||||
import org.jxmpp.stringprep.XmppStringprepException;
|
||||
|
@ -96,7 +98,7 @@ public class AgentSession {
|
|||
|
||||
private final XMPPConnection connection;
|
||||
|
||||
private final Jid workgroupJID;
|
||||
private final EntityBareJid workgroupJID;
|
||||
|
||||
private boolean online = false;
|
||||
private Presence.Mode presenceMode;
|
||||
|
@ -124,7 +126,7 @@ public class AgentSession {
|
|||
* authentication.
|
||||
* @param workgroupJID the fully qualified JID of the workgroup.
|
||||
*/
|
||||
public AgentSession(Jid workgroupJID, XMPPConnection connection) {
|
||||
public AgentSession(EntityBareJid workgroupJID, XMPPConnection connection) {
|
||||
// Login must have been done before passing in connection.
|
||||
if (!connection.isAuthenticated()) {
|
||||
throw new IllegalStateException("Must login to server before creating workgroup.");
|
||||
|
@ -502,9 +504,9 @@ public class AgentSession {
|
|||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
public void dequeueUser(String userID) throws XMPPException, NotConnectedException, InterruptedException {
|
||||
public void dequeueUser(EntityJid userID) throws XMPPException, NotConnectedException, InterruptedException {
|
||||
// todo: this method simply won't work right now.
|
||||
DepartQueuePacket departPacket = new DepartQueuePacket(this.workgroupJID);
|
||||
DepartQueuePacket departPacket = new DepartQueuePacket(workgroupJID, userID);
|
||||
|
||||
// PENDING
|
||||
this.connection.sendStanza(departPacket);
|
||||
|
|
|
@ -25,12 +25,13 @@ import org.jivesoftware.smack.XMPPException.XMPPErrorException;
|
|||
import org.jivesoftware.smackx.workgroup.packet.Transcript;
|
||||
import org.jivesoftware.smackx.workgroup.packet.Transcripts;
|
||||
|
||||
import org.jxmpp.jid.EntityBareJid;
|
||||
import org.jxmpp.jid.Jid;
|
||||
|
||||
/**
|
||||
* A TranscriptManager helps to retrieve the full conversation transcript of a given session
|
||||
* {@link #getTranscript(Jid, String)} or to retrieve a list with the summary of all the
|
||||
* conversations that a user had {@link #getTranscripts(Jid, Jid)}.
|
||||
* {@link #getTranscript(EntityBareJid, String)} or to retrieve a list with the summary of all the
|
||||
* conversations that a user had {@link #getTranscripts(EntityBareJid, Jid)}.
|
||||
*
|
||||
* @author Gaston Dombiak
|
||||
*/
|
||||
|
@ -52,7 +53,7 @@ public class TranscriptManager {
|
|||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
public Transcript getTranscript(Jid workgroupJID, String sessionID) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
|
||||
public Transcript getTranscript(EntityBareJid workgroupJID, String sessionID) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
|
||||
Transcript request = new Transcript(sessionID);
|
||||
request.setTo(workgroupJID);
|
||||
Transcript response = connection.createStanzaCollectorAndSend(request).nextResultOrThrow();
|
||||
|
@ -71,7 +72,7 @@ public class TranscriptManager {
|
|||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
public Transcripts getTranscripts(Jid workgroupJID, Jid userID) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
|
||||
public Transcripts getTranscripts(EntityBareJid workgroupJID, Jid userID) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
|
||||
Transcripts request = new Transcripts(userID);
|
||||
request.setTo(workgroupJID);
|
||||
Transcripts response = connection.createStanzaCollectorAndSend(request).nextResultOrThrow();
|
||||
|
|
|
@ -28,7 +28,9 @@ import java.util.TimeZone;
|
|||
|
||||
import org.jivesoftware.smack.packet.ExtensionElement;
|
||||
import org.jivesoftware.smack.provider.ExtensionElementProvider;
|
||||
import org.jivesoftware.smack.util.ParserUtils;
|
||||
|
||||
import org.jxmpp.jid.EntityBareJid;
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
|
@ -56,14 +58,14 @@ public class AgentStatus implements ExtensionElement {
|
|||
*/
|
||||
public static final String NAMESPACE = "http://jabber.org/protocol/workgroup";
|
||||
|
||||
private String workgroupJID;
|
||||
private EntityBareJid workgroupJID;
|
||||
private final List<ChatInfo> currentChats = new ArrayList<>();
|
||||
private int maxChats = -1;
|
||||
|
||||
AgentStatus() {
|
||||
}
|
||||
|
||||
public String getWorkgroupJID() {
|
||||
public EntityBareJid getWorkgroupJID() {
|
||||
return workgroupJID;
|
||||
}
|
||||
|
||||
|
@ -238,7 +240,7 @@ public class AgentStatus implements ExtensionElement {
|
|||
public AgentStatus parse(XmlPullParser parser, int initialDepth) throws XmlPullParserException, IOException {
|
||||
AgentStatus agentStatus = new AgentStatus();
|
||||
|
||||
agentStatus.workgroupJID = parser.getAttributeValue("", "jid");
|
||||
agentStatus.workgroupJID = ParserUtils.getBareJidAttribute(parser);
|
||||
|
||||
boolean done = false;
|
||||
while (!done) {
|
||||
|
|
|
@ -19,7 +19,8 @@ package org.jivesoftware.smackx.workgroup.packet;
|
|||
|
||||
import org.jivesoftware.smack.packet.IQ;
|
||||
|
||||
import org.jxmpp.jid.Jid;
|
||||
import org.jxmpp.jid.EntityBareJid;
|
||||
import org.jxmpp.jid.EntityJid;
|
||||
|
||||
/**
|
||||
* A IQ stanza used to depart a workgroup queue. There are two cases for issuing a depart
|
||||
|
@ -34,18 +35,14 @@ import org.jxmpp.jid.Jid;
|
|||
*/
|
||||
public class DepartQueuePacket extends IQ {
|
||||
|
||||
private Jid user;
|
||||
|
||||
private DepartQueuePacket() {
|
||||
super("depart-queue", "http://jabber.org/protocol/workgroup");
|
||||
}
|
||||
private final EntityJid user;
|
||||
|
||||
/**
|
||||
* Creates a depart queue request stanza to the specified workgroup.
|
||||
*
|
||||
* @param workgroup the workgroup to depart.
|
||||
*/
|
||||
public DepartQueuePacket(Jid workgroup) {
|
||||
public DepartQueuePacket(EntityBareJid workgroup) {
|
||||
this(workgroup, null);
|
||||
}
|
||||
|
||||
|
@ -56,8 +53,8 @@ public class DepartQueuePacket extends IQ {
|
|||
* @param workgroup the workgroup to depart.
|
||||
* @param user the user to make depart from the queue.
|
||||
*/
|
||||
public DepartQueuePacket(Jid workgroup, Jid user) {
|
||||
this();
|
||||
public DepartQueuePacket(EntityBareJid workgroup, EntityJid user) {
|
||||
super("depart-queue", "http://jabber.org/protocol/workgroup");
|
||||
this.user = user;
|
||||
|
||||
setTo(workgroup);
|
||||
|
|
|
@ -21,7 +21,9 @@ import java.io.IOException;
|
|||
|
||||
import org.jivesoftware.smack.packet.ExtensionElement;
|
||||
import org.jivesoftware.smack.provider.ExtensionElementProvider;
|
||||
import org.jivesoftware.smack.util.ParserUtils;
|
||||
|
||||
import org.jxmpp.jid.EntityBareJid;
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
|
@ -41,13 +43,13 @@ public class WorkgroupInformation implements ExtensionElement {
|
|||
*/
|
||||
public static final String NAMESPACE = "http://jabber.org/protocol/workgroup";
|
||||
|
||||
private final String workgroupJID;
|
||||
private final EntityBareJid workgroupJID;
|
||||
|
||||
public WorkgroupInformation(String workgroupJID) {
|
||||
public WorkgroupInformation(EntityBareJid workgroupJID) {
|
||||
this.workgroupJID = workgroupJID;
|
||||
}
|
||||
|
||||
public String getWorkgroupJID() {
|
||||
public EntityBareJid getWorkgroupJID() {
|
||||
return workgroupJID;
|
||||
}
|
||||
|
||||
|
@ -83,7 +85,7 @@ public class WorkgroupInformation implements ExtensionElement {
|
|||
public WorkgroupInformation parse(XmlPullParser parser,
|
||||
int initialDepth) throws XmlPullParserException,
|
||||
IOException {
|
||||
String workgroupJID = parser.getAttributeValue("", "jid");
|
||||
EntityBareJid workgroupJID = ParserUtils.getBareJidAttribute(parser);
|
||||
|
||||
// since this is a start and end tag, and we arrive on the start, this should guarantee
|
||||
// we leave on the end
|
||||
|
|
|
@ -61,6 +61,7 @@ import org.jivesoftware.smackx.xdata.FormField;
|
|||
import org.jivesoftware.smackx.xdata.packet.DataForm;
|
||||
|
||||
import org.jxmpp.jid.DomainBareJid;
|
||||
import org.jxmpp.jid.EntityBareJid;
|
||||
import org.jxmpp.jid.EntityJid;
|
||||
import org.jxmpp.jid.Jid;
|
||||
|
||||
|
@ -77,7 +78,7 @@ import org.jxmpp.jid.Jid;
|
|||
*/
|
||||
public class Workgroup {
|
||||
|
||||
private final Jid workgroupJID;
|
||||
private final EntityBareJid workgroupJID;
|
||||
private final XMPPConnection connection;
|
||||
private boolean inQueue;
|
||||
private final CopyOnWriteArraySet<WorkgroupInvitationListener> invitationListeners;
|
||||
|
@ -96,7 +97,7 @@ public class Workgroup {
|
|||
* @param connection an XMPP connection which must have already undergone a
|
||||
* successful login.
|
||||
*/
|
||||
public Workgroup(Jid workgroupJID, XMPPConnection connection) {
|
||||
public Workgroup(EntityBareJid workgroupJID, XMPPConnection connection) {
|
||||
// Login must have been done before passing in connection.
|
||||
if (!connection.isAuthenticated()) {
|
||||
throw new IllegalStateException("Must login to server before creating workgroup.");
|
||||
|
@ -163,7 +164,7 @@ public class Workgroup {
|
|||
*
|
||||
* @return the name of the workgroup.
|
||||
*/
|
||||
public Jid getWorkgroupJID() {
|
||||
public EntityBareJid getWorkgroupJID() {
|
||||
return workgroupJID;
|
||||
}
|
||||
|
||||
|
@ -569,7 +570,7 @@ public class Workgroup {
|
|||
private final Jid userID;
|
||||
private final DataForm form;
|
||||
|
||||
private JoinQueuePacket(Jid workgroup, Form answerForm, Jid userID) {
|
||||
private JoinQueuePacket(EntityBareJid workgroup, Form answerForm, Jid userID) {
|
||||
super("join-queue", "http://jabber.org/protocol/workgroup");
|
||||
this.userID = userID;
|
||||
|
||||
|
|
Loading…
Reference in a new issue