diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/Agent.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/Agent.java index bc0e1ee10..0e863a6cd 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/Agent.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/Agent.java @@ -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 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; } diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentRoster.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentRoster.java index 71188d91a..76e2224df 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentRoster.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentRoster.java @@ -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 entries = new ArrayList<>(); private final List listeners = new ArrayList<>(); private final Map> 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) { diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentSession.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentSession.java index 89f52a2c3..6c9be82ff 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentSession.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentSession.java @@ -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); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/TranscriptManager.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/TranscriptManager.java index ac0aece8f..82691edd8 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/TranscriptManager.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/TranscriptManager.java @@ -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(); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentStatus.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentStatus.java index 787ac0c98..fe508e28a 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentStatus.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/AgentStatus.java @@ -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 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) { diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/DepartQueuePacket.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/DepartQueuePacket.java index d75a10f4c..abe8771ca 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/DepartQueuePacket.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/DepartQueuePacket.java @@ -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); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java index 6fa3eac74..c4a80de84 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/WorkgroupInformation.java @@ -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 diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/user/Workgroup.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/user/Workgroup.java index 06b19c589..bae251605 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/user/Workgroup.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/user/Workgroup.java @@ -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 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;