Commit Graph

174 Commits

Author SHA1 Message Date
Florian Schmaus fc3f5ef99e Only reset Roster on clean termination
As otherwise the Roster would be still unitialized after a SM resumption
if the connection was uncleanly terminated.

Thanks to Grigory Fedorov for reporting this.
2016-04-15 17:41:50 +02:00
Florian Schmaus 898912050e Fix missing @param in Roster 2016-04-15 10:23:44 +02:00
Florian Schmaus b94b2586e2 Smack 4.1.7
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQF8BAABCgBmBQJXD/2lXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
 ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQxMzU3QjAxODY1QjI1MDNDMTg0NTNEMjA4
 Q0FDMkE5Njc4NTQ4RTM1AAoJEIysKpZ4VI41rggH/0DjBLpCfTSdjjKGFNChc+1V
 dW9PaPGFUiPuTt3T2NEa74jGYe4PsPpy5zDsJ8uYi2aq3LAiCQvfk+F5LXjRJFoa
 eftz0GtPvfP42oFg8wyDAebFtb0OtE7aJueSRkYGhA1+kzHBbJ9s6TxqDWcB0UWC
 puLh/DEWDFGX5njln+l10O7b10G0+bSrvece22eP0sQIv4hvZJoPQ5rOpCR1wibL
 ldp6wXI6C/b/oQS9MjHq9SV10S+5GykBqN/UzcFnwRVHLbasqnXeNFLGOnMtx0g9
 DmOolAYKGBN5m7m0rqEj9R+OyNgtefV8sCHE69iNAlpQhbmTqPd5rIhIXIII4U4=
 =yWKV
 -----END PGP SIGNATURE-----

Merge tag '4.1.7'

Smack 4.1.7
2016-04-14 22:30:34 +02:00
Florian Schmaus e6db731810 Add Roster.setRosterLoadedAtLoginDefault(boolean)
Fixes SMACK-715
2016-02-17 09:22:40 +01:00
Florian Schmaus 8997a7d8f3 Fix typo in RosterEntries
s/rosterEntires/rosterEntries/

Fixes SMACK-666 (the issue of the devil).
2016-01-10 19:00:26 +01:00
Florian Schmaus f79a7d9d5f Fix javadoc warnings 2015-12-19 13:30:15 +01:00
Florian Schmaus feff081547 Add "Roster loading failed" callback 2015-12-09 10:56:24 +01:00
Florian Schmaus 45feaecdf7 Make XMPPError imutable and add stanza reference 2015-12-09 10:48:52 +01:00
Florian Schmaus f3817d6358 Don't cache all presences from entities not in Roster
Fixes SMACK-703
2015-12-04 14:51:46 +01:00
Florian Schmaus a5e9037907 Use contains(BareJid) instead of entries.containsKey in Roster 2015-12-01 18:08:54 +01:00
Florian Schmaus 19469b0faf Fix NPE in ChatManager: Check if null
bareJidChats is a ConcurrentHashMap which does not allow 'null' keys,
thus get(null) returns a NPE. And asEntityBareJidIfPossible may return
'null', this could happen.
2015-11-22 22:46:53 +01:00
Florian Schmaus 6ede7d0409 Make RosterStore handle corrupted stores.
This can happen for example if the store schema changes across Smack
version.

Previously Smack would simply ignore the entry, which would lead to an
inconsistent view of the Roster.
2015-09-30 10:29:01 +02:00
Florian Schmaus d7ac9481c7 Make RosterStore.getEntries() return a List
instead of an Collection.
2015-09-30 10:27:58 +02:00
Florian Schmaus 86548b87bb Rework Roster IQ and DirectoryRosterStore
remove (set|get)ItemStatus. This was always the ask status, which can
only be set to 'subscribe' or is non-existent.

Use the standard (de-)serialization facilities for DirectoryRosterStore.

Fixes Smack-657.
2015-09-29 22:35:50 +02:00
Florian Schmaus 04a0004035 Smack 4.1.4
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQF8BAABCgBmBQJV9nAlXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
 ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQxMzU3QjAxODY1QjI1MDNDMTg0NTNEMjA4
 Q0FDMkE5Njc4NTQ4RTM1AAoJEIysKpZ4VI41sFEIAJlfRspk6S5ymNc4w7u/FT1w
 MpHT/cxqIQIBU9J5dYqeW6Y8O6VuUeknCmZBEv7dIVHroTmvfosMauAyRZJXWeeL
 FQQTBqDJszYdM88x/d5X6d25lCEBdQkdDh2a5s9AIy9RH0iXE74AypuikbroK+VC
 zI3wRPUFq7WnARtmiP2NalSgSNv5ToeicBO+JSniQ+O52ZAlP2FSDfi4uzPPigdP
 Ip/V3eF4Bp0YZimcxAnWdnMU+ciVLClRYKgD3+qTEoic7dx3dzeTyrk1NoLRgQl9
 mfcNXBgUScHZAoSIkR0QiUx9ktPCJ950qa+XtW3B8NtDOZkXegUL/a8ukQAuz+k=
 =qMsC
 -----END PGP SIGNATURE-----

Merge tag '4.1.4'

Smack 4.1.4
2015-09-14 09:05:24 +02:00
Florian Schmaus 23b7626c18 Suppress warning if roster isn't set to load
automatically.
2015-09-07 09:31:51 +02:00
Florian Schmaus e0e4fd9b12 Add checkstyle rule for StringBuilder.append(char)
And replace all instances where String.Builder.append() is called with a
String of length one with append(char).

Also adds StringUtils.toStringBuilder(Collection, String).
2015-07-27 19:02:11 +02:00
Florian Schmaus 1c716bc1e0 Smack 4.1.3
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQF8BAABCgBmBQJVpgWiXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
 ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQxMzU3QjAxODY1QjI1MDNDMTg0NTNEMjA4
 Q0FDMkE5Njc4NTQ4RTM1AAoJEIysKpZ4VI41G1gH+gIw/seXSSY6vYlVkYEFtR+e
 LV/LArN/eN1ZGc+WjN0EysRyqOBqF8HVHuyO7fF67huDRn62s7hufVY//NTctJ5L
 m4TXwaEUvgjdul7vm/dZcNRYr0jcSpDTFWx2egkOXt3qE9AhnpbnaIJ5c3q9VVVD
 aba88c3NS7quxp0hQm1SNEAmt1CCMPom7YkxdIPKWlLj8N5AF1UuSKwckLLYSUlS
 wloBbITb6EjI1IwszhN6e6o3W+7Pz/1zbFjk0CkKUS+TmhHhKil8TonH8Se/9DYD
 1SVHxvZa8LHWsU9G/R1Nhl69K2+GHEUbGmXalFmyPIf5ifhYyNimpx9krXQUuLs=
 =3/cn
 -----END PGP SIGNATURE-----

Merge tag '4.1.3'

Smack 4.1.3
2015-07-15 09:37:46 +02:00
Florian Schmaus ae944d3546 Only wait in Roster's presence listener if loading
otherwhise skip waitUntilLoaded(). This introduces RosterState.

SMACK-681
2015-07-13 12:58:43 +02:00
Florian Schmaus 0555297a6e Fix Roster.waitUntilLoaded and make it interruptable
waitTime and start need to be initialized outside of the while body.
2015-07-03 14:46:55 +02:00
Florian Schmaus 3bb06b8429 Wait in Roster's presence listener until Roster is loaded
Fixes SMACK-681.
2015-07-03 14:24:13 +02:00
Florian Schmaus bfdcfba092 Throw NotConnectedException instead of NoResponseException
if the connection is not connected in sendStanzaWithResponseCallback and
in PacketCollector.

Also decrease log level if roster result listener's exeption callback is
invoked with a NotConnectedException.
2015-07-03 13:01:53 +02:00
Florian Schmaus 0cbbedd2f4 Bump jxmpp to 0.5.0-alpha6 2015-06-16 10:08:18 +02:00
Florian Schmaus 58402c5615 Bump jxmpp to 0.5.0-alpha5 and change Roster API
to only allow bare JIDs as roster entires.
2015-06-06 11:16:12 +02:00
Florian Schmaus 2f219c7317 Rename processPacket to processStanza
and assert that 'stanza' is a Stanza.
2015-06-05 14:04:17 +02:00
Florian Schmaus 2079ba6bd6 Merge branch '4.1'
Conflicts:
	smack-im/src/main/java/org/jivesoftware/smack/roster/RosterGroup.java
	smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentSession.java
	smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/OfferRevokeProvider.java
2015-05-27 22:50:55 +02:00
Florian Schmaus 7a3ca4fd68 Fix memory leak caused by RosterGroup
SMACK-672
2015-05-27 22:44:27 +02:00
Florian Schmaus 1d1ea5dd10 Improve Roster API
Make Roster entries Map from BareJid to RosterEntry, since only
bare JIDs are allowed as roster items as per RFC 6121 § 3.1.1

   When a user sends a presence subscription request to a potential
   instant messaging and presence contact, the value of the 'to'
   attribute MUST be a bare JID <contact@domainpart> rather than a full
   JID <contact@domainpart/resourcepart>,…

Also some further Roster API changes regarding JIDs.
2015-05-27 22:34:43 +02:00
Florian Schmaus c125a3b055 Bump jxmpp to 0.5.0-alpha4 2015-05-27 19:29:51 +02:00
Florian Schmaus 2365c4c208 Add Roster.addSubscribeListener()
Remove unnecessary 'Unsubscribe' case in Roster: It is not required to
acknowledge these.
2015-05-21 22:41:21 +02:00
Florian Schmaus f369a009ac Rename 'serviceName' to 'xmppServiceDomain'
Also use 'null' as default value for the resource, to enforce server
generated resources.

Fixes Smack-665
2015-05-19 09:26:59 +02:00
Florian Schmaus 21c7007212 Make Roster.waitUntilLoaded() package-private
there is no point in having it 'protected', since Roster is not
subclassable.
2015-05-15 17:04:10 +02:00
Florian Schmaus 8dd12e7220 Try that Roster is loaded after Roster.getInstaceFor(XMPPConnection)
Fixes SMACK-633
2015-05-15 17:02:52 +02:00
Florian Schmaus bbc7aaae77 Smack 4.1.1
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQF8BAABCgBmBQJVTgmuXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
 ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQxMzU3QjAxODY1QjI1MDNDMTg0NTNEMjA4
 Q0FDMkE5Njc4NTQ4RTM1AAoJEIysKpZ4VI41MXUH/3A5Jc6rzALhnXMT4yj+jXow
 rLLX5/ypOvkAXEMRlTf9xd2apz4hT8dMsBcL3JvZscuVmkw0/woh9eV/PFSDoc7t
 HA7bMZRqWqUuVOezFD0ggHsJ7zfpcIuxsgoNARQlCRMPHzCLzKhMNctz5UApAdfy
 +wPpTMpc3K5SM1bNlM60qp+dbPCqQcLwYP02KrOQASgenVDm6iKFpzx0ieVpPY1M
 hOBMyaZg3n2j+267gpqBG6c7PVmEq3deAlB6BOBAsL/Bp1w5B5Smq959LWJLstrU
 /LeYJFi1TeIASiFy1vZyTV0Tw+Pe++3gB6ppLqkQhfWV8vXzm0coCXx29qWxAzM=
 =pGJt
 -----END PGP SIGNATURE-----

Merge tag '4.1.1'

Smack 4.1.1

Conflicts:
	smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProvider.java
	smack-im/src/main/java/org/jivesoftware/smack/roster/RosterEntry.java
	smack-java7/src/main/java/org/jivesoftware/smack/java7/Java7SmackInitializer.java
	version.gradle
2015-05-09 15:42:09 +02:00
Florian Schmaus 65dd6c9777 Fix RosterEntry.setNames(String)
also mark the method synchornized, to prevent race conditions with the
name.

Fixes SMACK-662.
2015-04-30 11:43:54 +02:00
Florian Schmaus e0bc1ccaf2 Fix memory leak in RosterEntry
Roster's INSTANCE map has a weak reference to XMPPConnection, which has
a field of RosterEntry(ies), and RosterEntry has a strong reference to
XMPPConnection resulting in a cycle which is preventing XMPPConnection
from getting gc'ed.

SMACK-659.
2015-04-27 07:27:40 +02:00
Florian Schmaus e3dced6eea Fix NPE in Roster if 'from' is null 2015-04-12 16:22:41 +02:00
Florian Schmaus 1eb315d6b7 Add Manager.getAuthenticatedConnectionOrThrow() 2015-04-09 19:00:03 +02:00
Florian Schmaus dddba8f08c Allow Roster for anonymous connections
Fixes SMACK-628.
2015-04-06 13:56:32 +02:00
Florian Schmaus b4694ec152 Add FinalClass checkstyle check
And mark affected classes final.
2015-04-06 10:45:12 +02:00
Florian Schmaus 0a6ac76447 Remove package-info.java from test packages
as otherwhise eclipse will complain "The type package-info is already
defined".
2015-04-05 10:48:00 +02:00
Florian Schmaus de528eee67 Add JavadocPackage checkstyle
change from package.html to package-info.java. Add missing
package-info.java with a placeholder description.
2015-04-04 17:16:47 +02:00
Florian Schmaus dc373f641c Make Smack Java8's javac and javadoc ready 2015-04-04 17:16:27 +02:00
Florian Schmaus 64d134052d Enable javadoc checkstyle
and fix violations.
2015-03-29 12:29:32 +02:00
Florian Schmaus c6594aec2f Lint fixes: Remove dead code, etc.
- make method static when possible
- remove never thrown Exception declarations
- other fixes
2015-03-24 18:33:47 +01:00
Florian Schmaus 83b84c5bd3 Merge branch '4.1'
Conflicts:
	smack-core/src/main/java/org/jivesoftware/smack/StanzaListener.java
	smack-core/src/main/java/org/jivesoftware/smack/XMPPConnection.java
	smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java
	smack-core/src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java
	version.gradle
2015-03-24 17:16:18 +01:00
Florian Schmaus 7c5428ab0e Javadoc improvements 2015-03-21 18:59:12 +01:00
Florian Schmaus 5e86db4f80 Substitute 'packet' with 'stanza(/packet)' in javadoc 2015-03-21 09:36:28 +01:00
Tomáš Havlas fae9d129a9 Added support for pre-approved subscription requests (RFC 6121 § 3.4)
SMACK-639
2015-03-19 11:31:05 +01:00
Florian Schmaus 8878cf3773 Add checkstyle check for trailing whitespace 2015-03-18 21:01:49 +01:00
Florian Schmaus b2221d5483 Add more checkstyle tests
- Lines containing tab(s) after space
- Usage of printStackTrace
- Usage of println
- Add SupressionCommentFilter module

SuppressionCommentFilter can be enabled with
// CHECKSTYLE:OFF
and disabled with
// CHECKSTYLE:ON
2015-03-17 22:02:44 +01:00
Florian Schmaus 0fde39fa45 's;^\s+$;;' on all source files
And add checkstyle test for lines containing only whitespace characters.
2015-03-17 11:33:02 +01:00
Florian Schmaus 0b322419ce Bump jxmpp to 0.5.0-alpha2 2015-03-11 22:11:57 +01:00
Florian Schmaus 701aa7d9c4 Merge branch '4.1'
Conflicts:
	smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java
	smack-core/src/main/java/org/jivesoftware/smack/PacketCollector.java
	smack-core/src/main/java/org/jivesoftware/smack/PacketListener.java
	smack-core/src/main/java/org/jivesoftware/smack/XMPPConnection.java
	smack-core/src/main/java/org/jivesoftware/smack/debugger/SmackDebugger.java
	smack-core/src/main/java/org/jivesoftware/smack/packet/Packet.java
	smack-core/src/main/java/org/jivesoftware/smack/util/XmlStringBuilder.java
	smack-core/src/test/java/org/jivesoftware/smack/ThreadedDummyConnection.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/address/provider/MultipleAddressesProvider.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/DataListener.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FaultTolerantNegotiator.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/IBBTransferNegotiator.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/StreamNegotiator.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/LeafNode.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Node.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/PubSubManager.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/packet/PubSub.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/VCardManager.java
	smack-extensions/src/test/java/org/jivesoftware/smackx/receipts/DeliveryReceiptTest.java
	smack-im/src/main/java/org/jivesoftware/smack/chat/ChatManager.java
	smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSession.java
	smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleProvider.java
	smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/UserID.java
	smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/provider/RosterExchangeProvider.java
	smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java
	version.gradle
2015-03-04 22:42:36 +01:00
Florian Schmaus ed4fa3390f Add XMPPConnection.sendStanza(Stanza)
and deprecate sendPacket().
2015-03-04 21:46:44 +01:00
Florian Schmaus 75ec271c6c Rename PacketListener to StanzaListener
and add the PacketListener as deprecated interface.
2015-03-02 15:49:56 +01:00
Florian Schmaus d4a6d8e653 Rename PacketFilter (and implementing classes) and PacketExtension
to StanzaFilter and ExtensionElement.
2015-02-28 13:49:38 +01:00
Florian Schmaus 7e68bb7470 Javadoc fixes in Roster 2015-02-23 22:17:31 +01:00
Florian Schmaus 4424ec6c53 Make Roster API not leak internal state
Fixes SMACK-645
2015-02-23 22:16:49 +01:00
Florian Schmaus fbf0ba13ce Merge Smack 4.1.0-rc2
Conflicts:
	smack-core/src/main/java/org/jivesoftware/smack/filter/FromMatchesFilter.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/AccountManager.java
	version.gradle
2015-02-21 18:07:45 +01:00
Florian Schmaus 98cfad6cc6 Add RosterLoadedListener 2015-02-17 16:56:04 +01:00
Florian Schmaus 5bb4727c57 Use Jid (and subclasses) from jxmpp-jid
Fixes SMACK-634
2015-02-17 16:07:16 +01:00
Florian Schmaus bc61527bd2 Expose InterruptedException
SMACK-632
2015-02-14 14:57:33 +01:00
Florian Schmaus 57c1b57b7c s/ a XMPP/ an XMPP/ 2015-02-12 12:13:19 +01:00
Florian Schmaus 4698805a34 Rename 'Packet' class to 'Stanza'
Smack still uses the term 'Packet' in some places. This is just the
first step towards using correct XMPP terms in Smack.
2015-02-06 09:34:51 +01:00
Florian Schmaus e493500cfe Consider XMPP service name in isSubscribedToMyPresence() 2015-01-27 09:45:50 +01:00
Florian Schmaus 3299515b36 Make Roster.isRosterVersioningSupported public 2015-01-26 20:47:14 +01:00
Florian Schmaus 7348e8bc8b Add Roster.getEntriesAndAddListener(RosterListener,RosterEntries) 2015-01-26 20:47:14 +01:00
Florian Schmaus 603f64166b Improve Roster, RosterEntry and RosterGroup
Use final where possible, add javadoc. Fix duplicate comment in
Roster.

Use createPacketCollectorAndSend(packet).nextResultOrThrow when
possible, and only set the entry name if the IQ set is successful.
2015-01-26 16:24:32 +01:00
Florian Schmaus 763139684b Add javadoc for Roster.reloadAndWait()/setRosterStore() 2015-01-26 11:45:25 +01:00
Florian Schmaus dc4720a00b Add '@Override' annotation to Roster's packet listener 2015-01-26 07:54:10 +01:00
Florian Schmaus 0581580831 Make Roster.unfiledEntries a CopyOnWriteArraySet 2015-01-26 07:54:10 +01:00
Florian Schmaus bb85d2b437 Make Roster.rosterListeners a LinkedHashSet 2015-01-26 07:54:10 +01:00
Florian Schmaus d5b8647d9d Create smack-im subproject for XMPP-IM
Move Roster and Chat(Manager) code into their own packages within the
new smack-im subproject.

Apply Manager pattern to Roster.

Fixes SMACK-637.
2015-01-26 07:54:05 +01:00