mirror of
https://github.com/vanitasvitae/Smack.git
synced 2025-09-09 00:59:39 +02:00
Bump ErrorProne to 2.5.1 and refactor Providers a bit
This also resulted in a refactoring of the Providers and parsing Exceptions. NumberFormatException and ParseException can now be thrown directly, the wrapping in a SmackParsingException is down at a higher layer, i.e. in AbstractProvider.
This commit is contained in:
parent
1df0763f92
commit
a7b3303f3e
136 changed files with 574 additions and 551 deletions
|
@ -39,7 +39,6 @@ import org.jivesoftware.smack.filter.OrFilter;
|
|||
import org.jivesoftware.smack.filter.StanzaFilter;
|
||||
import org.jivesoftware.smack.filter.ThreadFilter;
|
||||
import org.jivesoftware.smack.packet.Message;
|
||||
import org.jivesoftware.smack.packet.Message.Type;
|
||||
import org.jivesoftware.smack.packet.Stanza;
|
||||
import org.jivesoftware.smack.util.StringUtils;
|
||||
|
||||
|
@ -110,7 +109,7 @@ public final class ChatManager extends Manager{
|
|||
|
||||
@Override
|
||||
protected boolean acceptSpecific(Message message) {
|
||||
return normalIncluded ? message.getType() == Type.normal : false;
|
||||
return normalIncluded ? message.getType() == Message.Type.normal : false;
|
||||
}
|
||||
|
||||
});
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
*
|
||||
* Copyright 2003-2007 Jive Software, 2016-2019 Florian Schmaus.
|
||||
* Copyright 2003-2007 Jive Software, 2016-2021 Florian Schmaus.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -25,7 +25,6 @@ import java.util.HashSet;
|
|||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.WeakHashMap;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
@ -54,7 +53,6 @@ import org.jivesoftware.smack.filter.StanzaTypeFilter;
|
|||
import org.jivesoftware.smack.filter.ToMatchesFilter;
|
||||
import org.jivesoftware.smack.iqrequest.AbstractIqRequestHandler;
|
||||
import org.jivesoftware.smack.packet.IQ;
|
||||
import org.jivesoftware.smack.packet.IQ.Type;
|
||||
import org.jivesoftware.smack.packet.Presence;
|
||||
import org.jivesoftware.smack.packet.PresenceBuilder;
|
||||
import org.jivesoftware.smack.packet.Stanza;
|
||||
|
@ -151,7 +149,17 @@ public final class Roster extends Manager {
|
|||
private static int defaultNonRosterPresenceMapMaxSize = INITIAL_DEFAULT_NON_ROSTER_PRESENCE_MAP_SIZE;
|
||||
|
||||
private RosterStore rosterStore;
|
||||
private final Map<String, RosterGroup> groups = new ConcurrentHashMap<>();
|
||||
|
||||
/**
|
||||
* The groups of this roster.
|
||||
* <p>
|
||||
* Note that we use {@link ConcurrentHashMap} also as static type of this field, since we use the fact that the same
|
||||
* thread can modify this collection, e.g. remove items, while iterating over it. This is done, for example in
|
||||
* {@link #deleteEntry(Collection, RosterEntry)}. If we do not denote the static type to ConcurrentHashMap, but
|
||||
* {@link Map} instead, then error prone would report a ModifyCollectionInEnhancedForLoop but.
|
||||
* </p>
|
||||
*/
|
||||
private final ConcurrentHashMap<String, RosterGroup> groups = new ConcurrentHashMap<>();
|
||||
|
||||
/**
|
||||
* Concurrent hash map from JID to its roster entry.
|
||||
|
@ -508,7 +516,7 @@ public final class Roster extends Manager {
|
|||
return true;
|
||||
}
|
||||
|
||||
protected boolean waitUntilLoaded() throws InterruptedException {
|
||||
boolean waitUntilLoaded() throws InterruptedException {
|
||||
long waitTime = connection().getReplyTimeout();
|
||||
long start = System.currentTimeMillis();
|
||||
while (!isLoaded()) {
|
||||
|
@ -1416,7 +1424,7 @@ public final class Roster extends Manager {
|
|||
move(user, presenceMap, nonRosterPresenceMap);
|
||||
deletedEntries.add(user);
|
||||
|
||||
for (Entry<String, RosterGroup> e : groups.entrySet()) {
|
||||
for (Map.Entry<String, RosterGroup> e : groups.entrySet()) {
|
||||
RosterGroup group = e.getValue();
|
||||
group.removeEntryLocal(entry);
|
||||
if (group.getEntryCount() == 0) {
|
||||
|
@ -1787,7 +1795,7 @@ public final class Roster extends Manager {
|
|||
private final class RosterPushListener extends AbstractIqRequestHandler {
|
||||
|
||||
private RosterPushListener() {
|
||||
super(RosterPacket.ELEMENT, RosterPacket.NAMESPACE, Type.set, Mode.sync);
|
||||
super(RosterPacket.ELEMENT, RosterPacket.NAMESPACE, IQ.Type.set, Mode.sync);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -29,7 +29,6 @@ import org.jivesoftware.smack.XMPPConnection;
|
|||
import org.jivesoftware.smack.XMPPException.XMPPErrorException;
|
||||
import org.jivesoftware.smack.packet.IQ;
|
||||
import org.jivesoftware.smack.packet.Presence;
|
||||
import org.jivesoftware.smack.packet.Presence.Type;
|
||||
import org.jivesoftware.smack.roster.packet.RosterPacket;
|
||||
import org.jivesoftware.smack.util.EqualsUtil;
|
||||
|
||||
|
@ -221,7 +220,7 @@ public final class RosterEntry extends Manager {
|
|||
XMPPConnection connection = connection();
|
||||
Presence unsubscribed = connection.getStanzaFactory().buildPresenceStanza()
|
||||
.to(item.getJid())
|
||||
.ofType(Type.unsubscribed)
|
||||
.ofType(Presence.Type.unsubscribed)
|
||||
.build();
|
||||
connection.sendStanza(unsubscribed);
|
||||
}
|
||||
|
|
|
@ -24,7 +24,6 @@ import static org.junit.Assert.assertTrue;
|
|||
|
||||
import org.jivesoftware.smack.DummyConnection;
|
||||
import org.jivesoftware.smack.packet.Message;
|
||||
import org.jivesoftware.smack.packet.Message.Type;
|
||||
import org.jivesoftware.smack.packet.MessageBuilder;
|
||||
import org.jivesoftware.smack.packet.Stanza;
|
||||
import org.jivesoftware.smack.packet.StanzaBuilder;
|
||||
|
@ -92,7 +91,7 @@ public class ChatConnectionTest {
|
|||
@Test
|
||||
public void validateMessageTypeWithDefaults1() {
|
||||
MessageBuilder incomingChat = createChatPacket("134", true);
|
||||
incomingChat.ofType(Type.chat);
|
||||
incomingChat.ofType(Message.Type.chat);
|
||||
processServerMessage(incomingChat.build());
|
||||
assertNotNull(listener.getNewChat());
|
||||
}
|
||||
|
@ -100,14 +99,14 @@ public class ChatConnectionTest {
|
|||
@Test
|
||||
public void validateMessageTypeWithDefaults2() {
|
||||
MessageBuilder incomingChat = createChatPacket("134", true);
|
||||
incomingChat.ofType(Type.normal);
|
||||
incomingChat.ofType(Message.Type.normal);
|
||||
processServerMessage(incomingChat.build());
|
||||
assertNotNull(listener.getNewChat());
|
||||
}
|
||||
@Test
|
||||
public void validateMessageTypeWithDefaults3() {
|
||||
MessageBuilder incomingChat = createChatPacket("134", true);
|
||||
incomingChat.ofType(Type.groupchat);
|
||||
incomingChat.ofType(Message.Type.groupchat);
|
||||
processServerMessage(incomingChat.build());
|
||||
assertNull(listener.getNewChat());
|
||||
}
|
||||
|
@ -115,7 +114,7 @@ public class ChatConnectionTest {
|
|||
@Test
|
||||
public void validateMessageTypeWithDefaults4() {
|
||||
MessageBuilder incomingChat = createChatPacket("134", true);
|
||||
incomingChat.ofType(Type.headline);
|
||||
incomingChat.ofType(Message.Type.headline);
|
||||
assertNull(listener.getNewChat());
|
||||
}
|
||||
|
||||
|
@ -123,7 +122,7 @@ public class ChatConnectionTest {
|
|||
public void validateMessageTypeWithNoNormal1() {
|
||||
cm.setNormalIncluded(false);
|
||||
MessageBuilder incomingChat = createChatPacket("134", true);
|
||||
incomingChat.ofType(Type.chat);
|
||||
incomingChat.ofType(Message.Type.chat);
|
||||
processServerMessage(incomingChat.build());
|
||||
assertNotNull(listener.getNewChat());
|
||||
}
|
||||
|
@ -132,7 +131,7 @@ public class ChatConnectionTest {
|
|||
public void validateMessageTypeWithNoNormal2() {
|
||||
cm.setNormalIncluded(false);
|
||||
MessageBuilder incomingChat = createChatPacket("134", true);
|
||||
incomingChat.ofType(Type.normal);
|
||||
incomingChat.ofType(Message.Type.normal);
|
||||
processServerMessage(incomingChat.build());
|
||||
assertNull(listener.getNewChat());
|
||||
}
|
||||
|
@ -318,7 +317,7 @@ public class ChatConnectionTest {
|
|||
cm.setNormalIncluded(false);
|
||||
|
||||
MessageBuilder incomingChat = createChatPacket(null, false);
|
||||
incomingChat.ofType(Type.normal);
|
||||
incomingChat.ofType(Message.Type.normal);
|
||||
processServerMessage(incomingChat.build());
|
||||
|
||||
assertNull(listener.getNewChat());
|
||||
|
|
|
@ -35,7 +35,6 @@ import org.jivesoftware.smack.SmackException;
|
|||
import org.jivesoftware.smack.im.InitSmackIm;
|
||||
import org.jivesoftware.smack.packet.ErrorIQ;
|
||||
import org.jivesoftware.smack.packet.IQ;
|
||||
import org.jivesoftware.smack.packet.IQ.Type;
|
||||
import org.jivesoftware.smack.packet.Presence;
|
||||
import org.jivesoftware.smack.packet.Stanza;
|
||||
import org.jivesoftware.smack.packet.StanzaError.Condition;
|
||||
|
@ -385,7 +384,7 @@ public class RosterTest extends InitSmackIm {
|
|||
public void testIgnoreInvalidFrom() throws XmppStringprepException {
|
||||
final BareJid spammerJid = JidCreate.entityBareFrom("spam@example.com");
|
||||
RosterPacket packet = new RosterPacket();
|
||||
packet.setType(Type.set);
|
||||
packet.setType(IQ.Type.set);
|
||||
packet.setTo(connection.getUser());
|
||||
packet.setFrom(JidCreate.entityBareFrom("mallory@example.com"));
|
||||
packet.addRosterItem(new Item(spammerJid, "Cool products!"));
|
||||
|
@ -530,7 +529,7 @@ public class RosterTest extends InitSmackIm {
|
|||
for (RosterEntry entry : roster.getEntries()) {
|
||||
// prepare the roster push packet
|
||||
final RosterPacket rosterPush = new RosterPacket();
|
||||
rosterPush.setType(Type.set);
|
||||
rosterPush.setType(IQ.Type.set);
|
||||
rosterPush.setTo(connection.getUser());
|
||||
|
||||
// prepare the buddy's item entry which should be removed
|
||||
|
@ -555,7 +554,7 @@ public class RosterTest extends InitSmackIm {
|
|||
roster.reload();
|
||||
while (true) {
|
||||
final Stanza sentPacket = connection.getSentPacket();
|
||||
if (sentPacket instanceof RosterPacket && ((IQ) sentPacket).getType() == Type.get) {
|
||||
if (sentPacket instanceof RosterPacket && ((IQ) sentPacket).getType() == IQ.Type.get) {
|
||||
// setup the roster get request
|
||||
final RosterPacket rosterRequest = (RosterPacket) sentPacket;
|
||||
assertSame("The <query/> element MUST NOT contain any <item/> child elements!",
|
||||
|
@ -565,7 +564,7 @@ public class RosterTest extends InitSmackIm {
|
|||
// prepare the roster result
|
||||
final RosterPacket rosterResult = new RosterPacket();
|
||||
rosterResult.setTo(connection.getUser());
|
||||
rosterResult.setType(Type.result);
|
||||
rosterResult.setType(IQ.Type.result);
|
||||
rosterResult.setStanzaId(rosterRequest.getStanzaId());
|
||||
|
||||
// prepare romeo's roster entry
|
||||
|
@ -674,7 +673,7 @@ public class RosterTest extends InitSmackIm {
|
|||
try {
|
||||
while (true) {
|
||||
final Stanza packet = connection.getSentPacket();
|
||||
if (packet instanceof RosterPacket && ((IQ) packet).getType() == Type.set) {
|
||||
if (packet instanceof RosterPacket && ((IQ) packet).getType() == IQ.Type.set) {
|
||||
final RosterPacket rosterRequest = (RosterPacket) packet;
|
||||
|
||||
// Prepare and process the roster push
|
||||
|
@ -683,7 +682,7 @@ public class RosterTest extends InitSmackIm {
|
|||
if (item.getItemType() != ItemType.remove) {
|
||||
item.setItemType(ItemType.none);
|
||||
}
|
||||
rosterPush.setType(Type.set);
|
||||
rosterPush.setType(IQ.Type.set);
|
||||
rosterPush.setTo(connection.getUser());
|
||||
rosterPush.addRosterItem(item);
|
||||
connection.processStanza(rosterPush);
|
||||
|
|
|
@ -30,7 +30,6 @@ import org.jivesoftware.smack.DummyConnection;
|
|||
import org.jivesoftware.smack.SmackException;
|
||||
import org.jivesoftware.smack.XMPPException;
|
||||
import org.jivesoftware.smack.packet.IQ;
|
||||
import org.jivesoftware.smack.packet.IQ.Type;
|
||||
import org.jivesoftware.smack.packet.Stanza;
|
||||
import org.jivesoftware.smack.roster.RosterTest.TestRosterListener;
|
||||
import org.jivesoftware.smack.roster.packet.RosterPacket;
|
||||
|
@ -146,7 +145,7 @@ public class RosterVersioningTest {
|
|||
RosterPacket sentRP = (RosterPacket) sentPacket;
|
||||
RosterPacket answer = new RosterPacket();
|
||||
answer.setStanzaId(sentRP.getStanzaId());
|
||||
answer.setType(Type.result);
|
||||
answer.setType(IQ.Type.result);
|
||||
answer.setTo(sentRP.getFrom());
|
||||
|
||||
answer.setVersion("newVersion");
|
||||
|
@ -188,7 +187,7 @@ public class RosterVersioningTest {
|
|||
{
|
||||
RosterPacket rosterPush = new RosterPacket();
|
||||
rosterPush.setTo(JidCreate.from("rostertest@example.com/home"));
|
||||
rosterPush.setType(Type.set);
|
||||
rosterPush.setType(IQ.Type.set);
|
||||
rosterPush.setVersion("v97");
|
||||
|
||||
Item pushedItem = vaglafItem();
|
||||
|
@ -214,7 +213,7 @@ public class RosterVersioningTest {
|
|||
{
|
||||
RosterPacket rosterPush = new RosterPacket();
|
||||
rosterPush.setTo(JidCreate.from("rostertest@example.com/home"));
|
||||
rosterPush.setType(Type.set);
|
||||
rosterPush.setType(IQ.Type.set);
|
||||
rosterPush.setVersion("v98");
|
||||
|
||||
Item item = new Item(JidCreate.entityBareFrom("vaglaf@example.com"), "vaglaf the only");
|
||||
|
|
|
@ -26,7 +26,6 @@ import org.jivesoftware.smack.DummyConnection;
|
|||
import org.jivesoftware.smack.SmackException.FeatureNotSupportedException;
|
||||
import org.jivesoftware.smack.im.InitSmackIm;
|
||||
import org.jivesoftware.smack.packet.IQ;
|
||||
import org.jivesoftware.smack.packet.IQ.Type;
|
||||
import org.jivesoftware.smack.packet.Presence;
|
||||
import org.jivesoftware.smack.packet.Stanza;
|
||||
import org.jivesoftware.smack.roster.RosterTest.TestRosterListener;
|
||||
|
@ -161,7 +160,7 @@ public class SubscriptionPreApprovalTest extends InitSmackIm {
|
|||
try {
|
||||
while (true) {
|
||||
final Stanza packet = connection.getSentPacket();
|
||||
if (packet instanceof RosterPacket && ((IQ) packet).getType() == Type.set) {
|
||||
if (packet instanceof RosterPacket && ((IQ) packet).getType() == IQ.Type.set) {
|
||||
final RosterPacket rosterRequest = (RosterPacket) packet;
|
||||
|
||||
// Prepare and process the roster push
|
||||
|
@ -170,7 +169,7 @@ public class SubscriptionPreApprovalTest extends InitSmackIm {
|
|||
if (item.getItemType() != ItemType.remove) {
|
||||
item.setItemType(ItemType.none);
|
||||
}
|
||||
rosterPush.setType(Type.set);
|
||||
rosterPush.setType(IQ.Type.set);
|
||||
rosterPush.setTo(connection.getUser());
|
||||
rosterPush.addRosterItem(item);
|
||||
connection.processStanza(rosterPush);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue