1
0
Fork 0
mirror of https://github.com/vanitasvitae/Smack.git synced 2024-11-29 23:42:06 +01:00
Commit graph

963 commits

Author SHA1 Message Date
Florian Schmaus
34f1c2b79e errorprone: Enable MethodCanBeStatic 2019-09-07 23:01:39 +02:00
Florian Schmaus
65576cf3c2 Rework XML Element hierarchy and XmlStringBuilder
- Reduce the amount of types that are subtypes of NamedElement. See
javadoc of NamedElement for rationale.
- Work more with XmlEnvironment in XmlStringBuilder.
- Some minor changes to XmlStringBuilder API.
2019-09-07 18:17:08 +02:00
Florian Schmaus
dd4df0a5ef Improve how XmlStringBuilder handles enclosing XML environments
to avoid emitting unnecessary attributes like xmlns.

Also add a test for MediaElement that checks that <uri/> does not
carry a xmlns attribute.
2019-09-04 10:22:56 +02:00
Florian Schmaus
1a3067c89b Enable werror for javadoc and fix javadoc issues 2019-08-30 12:08:30 +02:00
Florian Schmaus
4249c1a845 Improve PepManager.publish()
by using PubSubManager.tryToPublishAndPossibleAutoCreate().

This also swaps the parameters of the method.

Thanks to Guus der Kinderen for suggesting this.
2019-08-28 22:59:30 +02:00
Florian Schmaus
bf0c69c93e
Merge pull request #333 from adiaholic/docFix
DocFix in `NodeInformationProvider`
2019-08-22 15:16:00 +02:00
Florian Schmaus
f863bd222c Merge branch '4.3' 2019-08-22 11:52:41 +02:00
Florian Schmaus
ca7529c192 Use Integer.compare(int, int) now that we are on Android 19 2019-08-04 23:03:42 +02:00
adiaholic
144e99c020 DocFix in NodeInformationProvider 2019-08-04 19:39:55 +05:30
Florian Schmaus
3e74d11b45 Disable MucMemoryLeakTest
Although it it not that unreliable, it causes false negatives once in
a while. This is because the standard Java SE API does not provide a
way to force a *full* garbage collection run, we need to resort to
unreliable hacks to trigger one.

The test itself is still useful to diagnose or refute alleged memory
leaks.

This commit also move the test from JUnit 4 to Junit 5.
2019-08-03 22:25:21 +02:00
Florian Schmaus
d2f9617418
Merge pull request #326 from adiaholic/bugFix
Return obtained XmlStringBuilder instead of null
2019-07-28 17:50:09 +02:00
adiaholic
41a3ec05c7 Returning obtained XmlStringBuilder instead of null 2019-07-28 16:36:12 +05:30
Florian Schmaus
4ca2c7cc69 Enable MissingJavadocPackage and UnnecessaryParentheses checkstyle checks 2019-07-24 09:18:39 +02:00
Florian Schmaus
91ec6cc955 Javadoc changes for Java 11 compatibility 2019-07-19 23:05:46 +02:00
Florian Schmaus
fda9408cf3 Use XmlStringBuilder in PubSub's SubscribeExtension 2019-07-05 11:31:12 +02:00
Florian Schmaus
9c0da3ed07 Change SubscribeExtension's jid field type from String to Jid
and make it final.
2019-07-05 11:24:02 +02:00
Florian Schmaus
df5899e72b Introduce SmackConfiguration.SMACK_URL(_STRING) 2019-07-04 15:51:28 +02:00
Florian Schmaus
f3b856c80b Improve shouldFailIfInitiatorCannotConnectToSocks5Proxy() unit test
If run in parallel with other unit tests, especially onces that open
up a proxy, this test could fail, because another unit test actually
had an proxy running on the very address this unit test assumes to be
no proxy running.

We now use an IP address from RFC 5737's TEST-NET-1 address block,
which should never be available.
2019-07-04 15:49:47 +02:00
0ad1a0bd4c
Add note about BookmarkManager to MUCManager 2019-07-03 23:37:51 +02:00
Florian Schmaus
a3f6fa65a4 Disallow null or empty string in PubSubManager.getNode(String) 2019-06-12 22:31:55 +02:00
Florian Schmaus
ef88bb17d0 Disallow empty string as node in DiscoverInfo 2019-06-12 22:31:29 +02:00
Florian Schmaus
c6c904cc3e Add support for XEP-0350: Data Forms Geolocation Element
Fixes SMACK-871.
2019-06-12 17:13:05 +02:00
Florian Schmaus
fa0c16d75c Introduce EqualsUtil and HashCode.(Builder|Cache) 2019-06-12 14:51:17 +02:00
Florian Schmaus
92b02afbff Improve exceptions of Socks5Proxy 2019-06-11 12:47:40 +02:00
Florian Schmaus
818ee8a727 Make Objects.requireNonNull() throw IllegalArgumentException
and not NullPointerException. Altough this differs from
java.util.Objects behavior, throwing an IllegalArgumentException
appears more sensible and makes it easier to catch it in Smack's
parsing function.
2019-06-11 12:47:40 +02:00
Florian Schmaus
9bb36fc63c Make Socks5TestProxy a subclass of Socks5Proxy
to reduce the duplicated code. This also means we are now testing the
real implementation.
2019-06-11 12:47:39 +02:00
Florian Schmaus
6e1193edaf Use QName instead of XmppStringUtils.generateKey() 2019-06-11 12:47:39 +02:00
Florian Schmaus
ce70308099 Introduce UInt(16|32) datatypes 2019-06-11 12:47:39 +02:00
Florian Schmaus
c0183775fe Add support for XEP-0221: Data Forms Media Element
Fixes SMACK-824.
2019-06-11 12:47:39 +02:00
Florian Schmaus
1f8b7273a8 Improve junit test in Socks5ByteStreamManager
It could be that the test is flapping. This helps to see the origin of
the unexpected exception.
2019-06-11 12:47:39 +02:00
Florian Schmaus
4d36e3b521 Introduce FormFieldChildElement and make FormField immutable 2019-06-11 12:47:39 +02:00
Florian Schmaus
1a99801501 Fix typo in FormField's javadoc: s/fold/field/ 2019-06-05 10:54:17 +02:00
Florian Schmaus
9a2cca2bd3 Merge branch 'master' of github.com:Flowdalic/Smack 2019-06-03 17:41:49 +02:00
Florian Schmaus
b288768f77 Introduce util.InternetAddress
and use it where sensible. Also fixes a few unit tests along the way.
2019-06-03 17:41:10 +02:00
Florian Schmaus
619b8e6f4a Add secure(OnlineAttackSafe|Unique|OfflineAttackSafe)RandomString()
and replace usages of java.util.UUID in Smack with
secureUniqueRandomString() because it uses a thread-local secure random
number generator.
2019-06-02 20:08:03 +02:00
Florian Schmaus
58fc39714f Use assertThrows() in Socks5ByteStreamManagerTest 2019-06-02 11:00:37 +02:00
Florian Schmaus
839e347676 Rename NumberUtil.checkIfInUInt32Range() to requireUInt32 2019-06-02 10:46:53 +02:00
Florian Schmaus
726a2de273 Deprecate ParserUtils.getQName() 2019-06-02 10:44:50 +02:00
Florian Schmaus
af6ee76f4c Remove empty lines in Socks5BytestreamManager 2019-06-02 10:41:39 +02:00
Florian Schmaus
49aa7ce21b Do not swallow exception in Socks5BytestreamManager 2019-06-02 10:41:27 +02:00
Florian Schmaus
9352225f44 Rework SOCKS5 unit tests so that they can be run in parallel
As result it is now also possible to start multiple local SOCKS5
proxies with different port, which is usually not necessary in real
life but useful for unit tests.
2019-06-02 10:38:19 +02:00
Florian Schmaus
d337474a86 Add DiscoverItems.Item.toString() 2019-05-23 23:06:39 +02:00
Florian Schmaus
02f7cfcf27 Improve session sweeping logic in AdHocCommandManager
Fixes SMACK-624.
2019-05-20 10:41:01 +02:00
Florian Schmaus
02e2eba556 Socks5Proxy: Remove empty line 2019-05-18 13:24:48 +02:00
Florian Schmaus
48010f3b82 Socks5Proxy: Log if server thread termination was interrupted 2019-05-18 13:24:30 +02:00
Florian Schmaus
11ae6d6960 Socks5Proxy: Use CloseableUtil to close server socket 2019-05-18 13:24:05 +02:00
Florian Schmaus
ab99f629a3 Socks5Proxy: Include server socket in thread name 2019-05-18 13:23:24 +02:00
Florian Schmaus
f7762c5db7 Add "whitespace after comma" checkstyle rule 2019-05-17 21:56:46 +02:00
Florian Schmaus
7e25c3ada5 Merge branch '4.3' 2019-05-16 20:52:27 +02:00
Florian Schmaus
60db42e2f4
Merge pull request #299 from magnetsystems/autojoin-callback-on-reconnect
Autojoin callback on reconnect
2019-05-08 13:43:46 +02:00
Florian Schmaus
f4ee7dd541 Update PowerMock to 2.0.2
and set Mockito 2's mock-maker-inline as MockMaker to allow mocking of
final classes.
2019-05-08 12:44:48 +02:00
Florian Schmaus
d2f5efcb20 Use StandardCharsets.(UTF_8|US_ASCII)
This also gets rid of a ton of UnsupportedEncodingException s.
2019-05-08 12:44:48 +02:00
Florian Schmaus
2a4d110b22 Add Socks5Exception and improve SOCKS5 bytestream exception messages
The exception message now also contains the stream hosts and their
exception.
2019-05-08 11:07:18 +02:00
Florian Schmaus
fd89a5e5a5 Add StreamHost.toString() 2019-05-08 09:24:23 +02:00
Florian Schmaus
7f0dc72dab Update errorprone(-plugin) and make Unused(Variable|Method) an error 2019-05-07 23:09:00 +02:00
Florian Schmaus
68d7d738b6 Remove all tabs and add checkstyle rule that enforces no-tabs
Fixes SMACK-866.
2019-05-07 21:24:00 +02:00
Florian Schmaus
e1ed035beb Remove xmlunit-lagacy and add xmlunit-assertj 2019-05-07 19:06:16 +02:00
Florian Schmaus
4a3dda93af
Merge pull request #315 from adiaholic/doc-fix-in-index
Minor changes in documentation.
2019-05-06 22:57:59 +02:00
Florian Schmaus
4133eb175c Replace XPP3 by XmlPullParser interface wrapping StAX and XPP3
Introducing Smack's own XmlPullParser interface which tries to stay as
compatible as possible to XPP3. The interface is used to either wrap
StAX's XMLStreamReader if Smack is used on Java SE, and XPP3's
XmlPullParser if Smack is used on on Android.

Fixes SMACK-591.

Also introduce JUnit 5 and non-strict javadoc projects.
2019-05-06 22:10:50 +02:00
Eng ChongMeng
dd903bec95
SMACK-868: Fix XHTMLText producing invalid XML 2019-05-06 00:39:41 +02:00
adiaholic
1554a33518 Changed XEP-031 to XEP-0131 2019-05-04 14:18:46 +05:30
Florian Schmaus
4e7cd83220 Fix (Privacy|Time)ProviderTest
XML attributes must be separated by a whitespace.
2019-04-29 08:52:36 +02:00
Florian Schmaus
d97fb126a1 Add PubSubManager.getInstanceFor() just like all other Managers
and deprecate PubSubManager.getInstance().
2019-04-16 11:21:22 +02:00
Florian Schmaus
9c30e4f3cc Merge branch '4.3' 2019-04-16 09:27:48 +02:00
Florian Schmaus
488055948d Add missing 'synchronized' keywords to Manager.getInstanceFor()
Fixes SMACK-865.
2019-04-15 09:48:52 +02:00
V Lau
f1fb03d08c Add a success callback for auto-join on reconnect.
When auto-join on reconnection is success, invoke a callback.

Conform to the proper copyright format.
2019-04-09 14:21:11 -07:00
Florian Schmaus
0ec7e84cbc Update link to XMPP Registry for Service Discovery Identities 2019-04-09 14:26:15 +02:00
Florian Schmaus
9ad162af6e Use correct field in ServiceDiscoveryManager.getIdentities()
Fixes SMACK-863.
2019-04-09 12:14:12 +02:00
Florian Schmaus
0d17f195b0 Use EntityFullJid as JID type in MultiUserChat.getJoinedRooms()
Got a user who put in a EntityBareJid and wondered why the returned
list was empty.
2019-04-07 22:13:38 +02:00
Florian Schmaus
927eb5e7d7 Add MemoryLeakTest(Util)
to check for the correct operation of what was implemented with
SMACK-383.
2019-03-25 18:58:58 +01:00
Florian Schmaus
0cd3318b12
Merge pull request #301 from adiaholic/JIRA836
Saving an instance of ServiceDiscoveryManager in MultiUserChatManager.
2019-03-24 11:39:20 +01:00
Florian Schmaus
989dbb14e8
Merge pull request #296 from MarcelHeckel/PingManager_ConnectionOkOnAnyPacket
PingManager: con. assumed ok for any packed within the ping interval
2019-03-20 20:00:54 +01:00
adiaholic
d6e25730d0 Saving an instance of ServiceDiscoveryManager in MultiUserChatManager.
Previously, the costly method 'ServiceDiscoveryManager.getInstance()'
was called at multiple instances inside MultiUserChatManager.
In this commit I wish to replace this call by saving a private final
instance of 'ServiceDiscoveryManager' which will is an attempt at
solving SMACK-836.
2019-03-18 13:10:20 +05:30
Florian Schmaus
daab6039a1 Smack 4.3.3
-----BEGIN PGP SIGNATURE-----
 
 iQGTBAABCgB9FiEEl3UFnzoh3OFr5PuuIjmn6PWFIFIFAlyKV9tfFIAAAAAALgAo
 aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDk3
 NzUwNTlGM0EyMURDRTE2QkU0RkJBRTIyMzlBN0U4RjU4NTIwNTIACgkQIjmn6PWF
 IFL4vQf/Qfg3VzNEnmk0+KjOtuvfAbhMfzE92gfo15vE0PPEIe9VA0Pzkvqhva4k
 Efw7BhD2zx8hWvo0d5FfkdII89hSYnOCiSmhiX1Ln9q/gUqFW0TDAKpsMfAl7jAK
 Fap8M7uUStP9T6fF/gq01djYCYoWA/4v1lGKv4J4b9gWCqzGIF2sK0M7of7VERnr
 pEXJSUM228rk6EYjVmX/9Ujo1Y+xaNMFFZZSbKYrirAqjP540v0OPBCRQyB8qFaI
 NTcNJ+qESe6Q80mw5V+y/kD6kX0LERSDB+pigzOOOlmfMtD1uADR84tAynuTKNAU
 7/5K/YSQxceRY6RTgD17Al5lHIH5nw==
 =ToR+
 -----END PGP SIGNATURE-----

Merge tag '4.3.3'

Smack 4.3.3
2019-03-14 18:23:33 +01:00
Heckel
3d3d89612f PingManager: Assume server ping successful if stanzas where received
We assume that the connection is good even if there was no ping
result but a stanzas within the ping interval.

In some case we have produced so much load, that the ping result
was not delivered in time because so many other packets were
delivered before.
2019-03-14 12:42:46 +01:00
Florian Schmaus
7f0932a481 Reset the MUC self-presence collector on presence stanzas on join
To prevent timeouts when joining very large MUCs we now reset the
self-presence collector's timeout for every other (occupant) presence
we receive.

Fixes SMACK-859.
2019-03-04 23:01:52 +01:00
Florian Schmaus
825a5836eb Merge branch '4.3' 2019-02-17 22:28:01 +01:00
Florian Schmaus
e9b514548b Filter error messages in DeliveryReceiptManager 2019-02-17 22:27:38 +01:00
Florian Schmaus
85f7e1d39c Remove deprecated methods scheduled for removal in Smack 4.4 2019-02-16 17:17:25 +01:00
Florian Schmaus
8df69bd3ce Use XmlEnvironment in parsing/provider subsystem 2019-02-15 23:21:30 +01:00
Florian Schmaus
b3801b984a Use PacketParserUtils in OpenIQProviderTest 2019-02-15 23:16:11 +01:00
Florian Schmaus
394f3d133a Make SmackException abstract 2019-02-10 21:53:31 +01:00
Florian Schmaus
7fce6b5a98 Introduce SmackMessageException 2019-02-10 21:50:39 +01:00
Florian Schmaus
7dee3b88a2 Introduce SmackParsingException 2019-02-10 19:01:47 +01:00
Florian Schmaus
083dac8b83 Rework exceptions in the parsing / provider subsystem 2019-02-05 13:18:03 +01:00
Florian Schmaus
fee3ed81ca Introduce XmlEnvironment 2019-02-05 13:18:03 +01:00
Florian Schmaus
658fd08d20 Use try-with-resources where possible
and make StanzaCollector implement AutoCloseable.
2019-02-05 13:18:03 +01:00
Florian Schmaus
e98d42790a SmackReactor/NIO, Java8/Android19, Pretty print XML, FSM connections
This commit adds
- SmackReactor / NIO
- a framework for finite state machine connections
- support for Java 8
- pretty printed XML debug output

It also
- reworks the integration test framework
- raises the minimum Android API level to 19
- introduces XmppNioTcpConnection

Furthermore fixes SMACK-801 (at least partly). Java 8 language
features are available, but not all runtime library methods. For that
we would need to raise the Android API level to 24 or higher.
2019-02-05 13:18:03 +01:00
Florian Schmaus
ee8728479d Merge branch '4.3' 2018-12-27 14:43:31 +01:00
Florian Schmaus
1a4ad7b8b5 Mark Local SOCKS5 Proxy thread as daemon thread
Fixes SMACK-849.
2018-12-27 14:42:48 +01:00
Florian Schmaus
e4c31541e0 Make MultiUserChat.leave() behave as leaveSync()
and mark leaveSync() as deprecated.

Fixes SMACK-848.
2018-12-26 21:50:36 +01:00
Florian Schmaus
a9de8e2f76 Merge branch '4.3' 2018-12-26 21:40:10 +01:00
Florian Schmaus
4b21f003af Add MultiUserChat.leaveSync()
Fixes SMACK-848.
2018-12-26 21:39:25 +01:00
Florian Schmaus
62a0c6f26e Merge branch '4.3' 2018-11-29 22:39:55 +01:00
Florian Schmaus
fa7297019d Add checkstyle rule for "Boolean.valueOf()" usages 2018-11-29 22:38:11 +01:00
Georg Lukas
b8bd10b056 RoomInfo: use proper boolean parser for muc#roominfo_subjectmod
XML allows both false/true and 0/1 syntax for booleans.

Signed-off-by: Georg Lukas <georg@op-co.de>
2018-11-28 11:11:52 +01:00
Georg Lukas
8b88f9cb20 Bookmarks: use proper boolean parser for autojoin
Some clients (read: Gajim) store boolean values as `0` and `1` instead
of `false` and `true`, which is legal for the XML boolean type.

Signed-off-by: Georg Lukas <georg@op-co.de>
2018-11-28 11:11:52 +01:00
cc1bee4659
SMACK-828: Add support for XEP-0107: User Mood 2018-11-11 16:13:41 +01:00
Florian Schmaus
b7ea226c56 Bump "Error Prone" to 2.3.2
and gradle-errorprone-plugin to 0.6.
2018-10-31 16:06:31 +01:00
Florian Schmaus
2ee621ed10 Factor NickProvider in extra file and fill under correct package 2018-10-21 09:31:15 +02:00
Florian Schmaus
382057f520 Make Nick immutable 2018-10-21 09:01:54 +02:00
Florian Schmaus
2f1f0b6c1a Clear comments in Nick 2018-10-21 08:58:33 +02:00
Florian Schmaus
c053f5a41b Escape nickname in Nick.toXML() 2018-10-21 08:58:16 +02:00
Florian Schmaus
ab120691cb Smack 4.3.1
-----BEGIN PGP SIGNATURE-----
 
 iQGTBAABCgB9FiEEl3UFnzoh3OFr5PuuIjmn6PWFIFIFAlvDIBdfFIAAAAAALgAo
 aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDk3
 NzUwNTlGM0EyMURDRTE2QkU0RkJBRTIyMzlBN0U4RjU4NTIwNTIACgkQIjmn6PWF
 IFKObAgApvEwstvSXhgzlrA46DM6fXezbPEnO1rh8rCPJEAsmfBSnyINSuuhelzw
 zN8L7GAU0jDeuDivxA12vQx5QB8wuCHKgc5pXDKNRi9eUdsyDUMKswcbMMAJWDvq
 I3bm7TOC1D9ZWmfhGmqfulrsVD1Q0wh+P2A1/CWVR5ZZUB5S4fESFZUrnCfJmeXe
 f+INXUiui3otAF6nPxKm782rSfHWvA32i4Obnagh3oPX/c9R7Ftb78Wukrsbaqfg
 +a5iTlBJXLG75/Yozq+JqmWlUvEKv7le0vkF5fF+oc76H4p1U1wqQyIMei/Pwaer
 H/SyMqLPzCiwpUHiunpWD13e5kkeLw==
 =47on
 -----END PGP SIGNATURE-----

Merge tag '4.3.1'

Smack 4.3.1
2018-10-14 14:31:31 +02:00
Florian Schmaus
ec982f65e2 Fix IndexOutOfBoundsException in FormField.getFirstValue()
Fixes SMACK-838.
2018-10-14 12:07:51 +02:00
Florian Schmaus
1aa35bc957 Merge branch '4.3' of github.com:Flowdalic/Smack into 4.3 2018-09-12 20:02:16 +02:00
Florian Schmaus
87fac888c6 Improve MultiUserChat's API to query hosted rooms
Return a Map instead of a List. This makes it possible to check for
the existence of MUC by looking up the MUC's address in the Map's key
set.
2018-09-12 19:56:46 +02:00
Florian Schmaus
271ac7ee7a Use PossibleFromTypeFilter for MultiUserChat's presence listener 2018-09-10 21:05:47 +02:00
Florian Schmaus
77baaa99bc Do not warn on presence from bare MUC JID in MultiUserChat
as such presence messages became a thing in XMPP (e.g. for XEP-0153
avatars for MUC).
2018-09-10 21:00:49 +02:00
Florian Schmaus
0e847f34f3 Remove unused method in pubsub.Subscription 2018-08-21 12:51:52 +02:00
Florian Schmaus
7374caefef Make StringEncoder generic 2018-08-21 11:09:26 +02:00
Florian Schmaus
27164f4c06 Do not use a generic return parameter in PubSubManager.getNode() 2018-08-16 17:23:15 +02:00
Florian Schmaus
528e170b99 Use pepPubSubManager in PepManager.publish() 2018-08-15 20:16:33 +02:00
Florian Schmaus
4d4f92ba86 Rename PEP to Pep 2018-08-15 20:15:57 +02:00
Florian Schmaus
4b3f757ed9 Add a PEP PubSubManager to PEPManager 2018-08-15 20:13:40 +02:00
Florian Schmaus
5569782113 Fix javadoc in PEPManager 2018-08-15 17:58:53 +02:00
Florian Schmaus
a1d4a91fa0 Make PubSubManager.deleteNode(String) "node did not exists" aware 2018-08-15 17:48:54 +02:00
Florian Schmaus
a00aa726fe Introduce CloseableUtil 2018-08-15 17:25:22 +02:00
Florian Schmaus
50385be964 Bump jxmpp to 0.7.0-alpha1 2018-08-02 14:45:26 +02:00
74bebc13e6
requireNotNullOrEmpty -> requireNotNullNorEmpty 2018-07-17 15:10:39 +02:00
Florian Schmaus
ce4f3352a2 Merge branch '4.3' 2018-06-23 17:18:17 +02:00
Florian Schmaus
23bb5c5625 Add XMPPErrorException.getStanzaError()
Also deprecate getXMPPError and let StanzaError implement
ExtensionElement.
2018-06-20 22:17:11 +02:00
Florian Schmaus
8841c4aed2 Remove deprecated method sin SDM and AdHocCommandManager
These methods are related to functionality which is no longer existend
in XEP-0030.
2018-06-14 09:59:46 +02:00
Florian Schmaus
84ef4047a7 Remove depreacted methods in MultiUserChat 2018-06-14 09:58:52 +02:00
Florian Schmaus
9e865fe6ab Merge remote-tracking branch 'ignite/4.3' into 4.3 2018-06-12 13:41:43 +02:00
Florian Schmaus
6ba9218c77 Introduce myRoomJid EntityFullJid in MultiUserChat 2018-06-12 12:16:56 +02:00
Guus der Kinderen
03a267a925 fix: Prevent attempt to construct invalid address
When no join was properly registered, a nickname will not be defined.
In that case, attempting to construct the from address for the 'leave'
presence stanza will result in:

java.lang.IllegalArgumentException: The Resourcepart must not be null

This commit prevents that, by verifying that the nickname is non-null,
before sending that stanza.
2018-06-12 10:09:55 +02:00
Florian Schmaus
5ae164f670 Add Forwarded.extractMessagesFrom(Collection<Forwarded>) 2018-06-06 08:39:09 +02:00
Florian Schmaus
8aa7029b38 Add DataForm.addFields() 2018-06-03 21:19:04 +02:00
Florian Schmaus
d26baeb66f Add Date API methods to FormField values 2018-06-03 17:29:09 +02:00
Florian Schmaus
298bcc8097 Improve FormField.resetValues()
by using clear() instead of removeAll().
2018-06-03 17:29:09 +02:00
Florian Schmaus
2adf8a79af Add CommandsProviderTest 2018-06-03 17:01:19 +02:00
Florian Schmaus
ccf2b8bcf8 Add MultiUserChat.getXmppConnection() 2018-05-31 18:37:08 +02:00
Boris Grozev
fd5e86ce5a fix: Cleans the multiUserChats map. 2018-05-21 14:54:23 -05:00
Florian Schmaus
98a029e9c7 Set name of local SOCKS5 proxy thread 2018-05-13 19:37:41 +02:00
Florian Schmaus
fd97f5ba0b Use a CopyOnWriteArraySet for joinedRooms
Since it is accessed concurrently. And also may cause a
ConcurrentModificationException when the MultiUserChatManager tries to
re-join the joined rooms.

Fixes SMACK-819.
2018-05-10 20:30:24 +02:00
Florian Schmaus
72de6540b2 Add DiscoInfoLookupShortcutMechanism and EntityCapabilitiesChangedListener
to allow for plugable XEP-0115 like mechanisms. For example XEP-0390.
2018-05-10 20:30:23 +02:00
Florian Schmaus
c94962c763 Add toString() to Disco Feature and Identity 2018-05-10 15:25:20 +02:00
Florian Schmaus
e8923b9d16 Enable trailing whitespace checkstyle check
for all source code regions, including javadoc.
2018-05-09 23:26:39 +02:00
Florian Schmaus
e5d93e58a1 Bump PowerMock to 1.7.3
And also drop the powermock-classloading-xstream dependency as it is
currently not used.
2018-05-09 20:16:05 +02:00
Florian Schmaus
a9e45475ab Treat <body/> just like all other extension elements in Message
This turned out to be a rather large change.
2018-05-09 17:13:09 +02:00
Florian Schmaus
cb9a11b74e Fix Forwarded.toXml(String): Set the correct enclosing XML namespace 2018-05-09 17:13:09 +02:00
Florian Schmaus
779ebd5d69
Merge pull request #234 from vanitasvitae/fixDeliveryReceipts
Make receipts id optional (SMACK-815)
2018-05-06 22:00:47 +02:00
95534da53f
Make receipts id optional
(SMACK-815)

Remove @author and change javadoc
2018-04-28 13:24:46 +02:00
Florian Schmaus
5ab2903c32 Change Element.toXml() to toXml(String enclosingNamespace) 2018-04-27 10:05:25 +02:00
Florian Schmaus
6c4a02691e Make PubSub's SimplePayload infer the XML Element name and namespace
Fixes SMACK-816.
2018-04-23 22:00:12 +02:00
Florian Schmaus
cc0022c919 Globally s;Stanza(/Packet);Stanza; and more 'packet' → 'stanza' 2018-04-23 21:10:22 +02:00
Florian Schmaus
2065a7ed01 Add findServicesDiscoverInfo() with service argument
to ServiceDiscoveryManager.
2018-04-23 20:41:33 +02:00
Florian Schmaus
31244ae982 Make PubSub elements namespace aware
Also fixes SMACK-814.
2018-04-23 20:36:41 +02:00
Florian Schmaus
acc64ffc2d Remove unnecessary argument from createMockedConnection()
The server address can be infered from the user JID.
2018-04-23 17:02:28 +02:00
Florian Schmaus
2050845289 Fix Protocol code examples in Javadoc 2018-04-23 17:02:28 +02:00
Florian Schmaus
73168bff69 Use XmlUtil for XML pretty printing in Protocol 2018-04-23 17:02:28 +02:00
Florian Schmaus
4fb34a6952 Add MultiUserChatManager.getMucServiceDomains()
and deprecate getXMPPServiceDomains().
2018-04-23 17:02:28 +02:00
Florian Schmaus
f69cd55970
Merge pull request #232 from TimothyPitt/PubSub_NotificationType
Pub sub notification type
2018-04-16 18:22:08 +02:00
Timothy Pitt
d5aaf8fdab Notification type for pubsub node config 2018-04-16 16:03:02 +02:00
Florian Schmaus
74f14484e6 Smack 4.2.4
-----BEGIN PGP SIGNATURE-----
 
 iQGTBAABCgB9FiEEl3UFnzoh3OFr5PuuIjmn6PWFIFIFAlrTPy5fFIAAAAAALgAo
 aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDk3
 NzUwNTlGM0EyMURDRTE2QkU0RkJBRTIyMzlBN0U4RjU4NTIwNTIACgkQIjmn6PWF
 IFI5aAf/Rb6Y+hqxiHRbsmww74rt7HfgQnOjOjz3bPhgbVH2emzBHzxsU2pBBY87
 iTfCXjXA3qQ9FzluBchLrd9EciDEXq1A/ZblYnR+kch1DK7wvVipTPWIzOHt6ahD
 q7vfS9EmmFBCRjNM4tW8zwaajWWeJAWimXoZFxuy/n+2FORnx0x5NrnIHwYvyUtf
 nY432BOiCg7l6J9sgfcoYDgP0Ot4SkdfUIgGOYonv0lzKW8HkU/OZZwEMbFhlCHU
 s0inbU5ldDDP7xXIinDqHVSKpRlSIkaOJ0zbAQLjFz8h2fCnqDGhpnNbun8Xb7l2
 agsATloOl91tlUV5D+qRWjzkx7pDxA==
 =YqLS
 -----END PGP SIGNATURE-----

Merge tag '4.2.4'

Smack 4.2.4
2018-04-15 14:48:22 +02:00
Florian Schmaus
5f58529c3a Switch argument of VCard.setJabberId() to CharSequence
instead of String.
2018-04-13 10:09:14 +02:00
2614c0d5c1
Add support for XEP-0319: Last User Interaction (SMACK-636) 2018-04-09 20:59:39 +02:00
Timothy Pitt
832c0a92aa Added pubsub Node.modifySubscriptionsAsOwner with test 2018-04-09 18:03:53 +02:00
Florian Schmaus
476fdf99a1 Inroduce AsyncButOrdered 2018-04-08 21:21:50 +02:00
Florian Schmaus
2efec89050 Rename XMPPError to StanzaError
Fixes SMACK-769.
2018-04-07 22:59:25 +02:00
Florian Schmaus
0e15a903d9 Do not silently swallow exceptions in ChatStateManager 2018-04-06 19:38:12 +02:00
Florian Schmaus
19a445ea02 Remove unnecessary check in ChatStateManager 2018-04-06 19:38:12 +02:00
Florian Schmaus
9d53363413 Synchronize ChatStateManager's chatStateListeners 2018-04-06 19:38:12 +02:00
Florian Schmaus
1d88c857b5 Change FormField value(s) type from String to CharSequence 2018-04-06 13:24:54 +02:00
Florian Schmaus
9b5dafe541 Enable LeftCurly checkstyle check 2018-04-06 10:25:06 +02:00
Florian Schmaus
6a42d5baff Rework FileUtils 2018-04-06 10:25:06 +02:00
Fernando Ramirez
632c172f6d Add pubsub publishing and altaccuracy parameter to geoloc 2018-04-04 15:04:42 +02:00
Florian Schmaus
ad87243060 Globally 's;stanza(/packet);stanza;' 2018-03-31 14:17:30 +02:00
Florian Schmaus
a9ca1a0989 Enable ModifierOrder checkstyle check
Fixes SMACK-812
2018-03-29 12:35:11 +02:00
Florian Schmaus
bd08f11c4a Add DataValidationTest.testNamespacePrefix() 2018-03-28 19:37:26 +02:00
Florian Schmaus
702b9a5139 Use an extra variable for 'name' in DataValidationProvider 2018-03-28 19:35:41 +02:00
Florian Schmaus
3132d9a224 Bump errorprone to 2.2.0 2018-03-28 15:56:04 +02:00
Florian Schmaus
b5209f4701 Enable RedundantModifier checkstyle check 2018-03-28 14:02:21 +02:00
Florian Schmaus
193688e553 Merge branch '4.2' 2018-03-28 12:51:28 +02:00
Florian Schmaus
5b9254aff5
Merge pull request #209 from fuentesj11/rename-deprecate-xmppconnection-methods
Rename and deprecate XMPPConnection methods
2018-03-28 12:11:32 +02:00
Jesus Fuentes
a70063dc89 Rename and deprecate XMPPConnection methods
Rename and deprecate XMPPConnections methods as described in SMACK-802
2018-03-22 15:40:40 -05:00
Florian Schmaus
a9bf2a3504 Put ChatStateManager in INSTANCES in getInstanceFor()
like it is done everywhere else.
2018-03-22 17:09:51 +01:00
Florian Schmaus
d6cc291252 Move listeners into constructor in ChatStateManager 2018-03-22 17:07:32 +01:00
a3d430f334 Migrate the ChatState package to chat2 API
Fixes SMACK-761
2018-03-22 16:22:59 +01:00
Florian Schmaus
5a29be4c67 Use Jid in pubsub.Subscription 2018-03-21 14:47:45 +01:00
Florian Schmaus
ffaca31178 Use XmlStringBuilder for pubsub.Subscription 2018-03-21 14:47:45 +01:00
Florian Schmaus
7c9060c32b Merge branch '4.2' 2018-02-27 08:09:34 +01:00
Florian Schmaus
27808e9e8c Make PingManager use Manager.schedule() 2018-02-26 10:24:35 +01:00
Florian Schmaus
3bdeca44f2 Merge branch '4.2' 2018-02-23 18:35:34 +01:00
Florian Schmaus
20014d56b4 Use true/false instead of 1/0 in boolean type FormFields 2018-02-23 11:50:54 +01:00
Florian Schmaus
026f3a2f8c Merge branch '4.2' 2018-02-22 14:54:48 +01:00
Florian Schmaus
ec4be1963a Deprecate legacy disco-publish API of ServiceDiscoveryManager 2018-02-21 20:43:56 +01:00
Florian Schmaus
41f5cf8435 Remove unused LOGGER from ServiceDiscoveryManager 2018-02-21 20:21:10 +01:00
Florian Schmaus
a48e8ef843 Merge branch '4.2' 2018-02-21 20:13:05 +01:00
Florian Schmaus
98708d67a2 Make ServiceDiscoveryManager.findService() consider all services
with the same matching feature announced.

Consider for example PubSub where usually the service itself announces
the PubSub feature as part of PEP, and where an additional PubSub
component exists. The old logic will just lookup the first matching
service with a PubSub feature announcement and check if for a matching
identiy. If we look for a real PubSub service, but stumble first over
user's service with PEP, then findService() will return 'null' although
there would have been a valid PubSub service.

Fixes SMACK-805.
2018-02-21 20:09:11 +01:00
Florian Schmaus
64f41364f9
Merge pull request #207 from vanitasvitae/descriptions
Add missing package-info.java descriptions.
2018-02-21 20:08:39 +01:00
9f47daa7ad
Add missing package-info descriptions. 2018-02-21 16:47:11 +01:00
Florian Schmaus
245a3b3851 Use the correct ad-hoc action in ServiceAdministrationManager
Fixes SMACK-804. Thanks to Holger Weiß for his help with the issue.

Smack would always use the 'next' action only 'execute' (which is
always allowed) and 'complete' where candidates.

Example XMPP trace:

SENT: <iq to='salem.geekplace.eu' id='f0JiQ-45' type='set'><command xmlns='http://jabber.org/protocol/commands' node='http://jabber.org/protocol/admin#add-user' action='execute'></command></iq><r xmlns='urn:xmpp:sm:3'/>

RECV: <iq xml:lang='en' to='sinttest-admin@salem.geekplace.eu/one-phx8g' from='salem.geekplace.eu' type='result' id='f0JiQ-45'>
<command status='executing' sessionid='2018-02-21T14:48:13.508812Z' node='http://jabber.org/protocol/admin#add-user' xmlns='http://jabber.org/protocol/commands'>
<actions execute='complete'>
  <complete/>
</actions>
<x type='form' xmlns='jabberdata'>
<title>Add User</title>
<field var='FORM_TYPE' type='hidden'><value>http://jabber.org/protocol/admin</value></field>
<field var='accountjid' type='jid-single' label='Jabber ID'><required/></field>
<field var='password' type='text-private' label='Password'><required/></field>
<field var='password-verify' type='text-private' label='Password Verification'><required/></field>
</x>
</command>
</iq>

SENT:
<iq to='salem.geekplace.eu' id='f0JiQ-49' type='set'>
<command xmlns='http://jabber.org/protocol/commands' node='http://jabber.org/protocol/admin#add-user' sessionid='2018-02-21T14:48:13.508812Z' action='next'>
<x xmlns='jabberdata' type='submit'>
<field var='FORM_TYPE' type='hidden'><value>http://jabber.org/protocol/admin</value></field>
<field var='accountjid' type='jid-single'><value>smack-inttest-one-phx8g@salem.geekplace.eu</value></field>
<field var='password' type='text-private'><value>L2Cz2gKeVsBAEBRJ</value></field>
<field var='password-verify' type='text-private'><value>L2Cz2gKeVsBAEBRJ</value></field>
</x>
</command>
</iq>

RECV:
<iq xml:lang='en' to='sinttest-admin@salem.geekplace.eu/one-phx8g' from='salem.geekplace.eu' type='error' id='f0JiQ-49'>
<command action='next' sessionid='2018-02-21T14:48:13.508812Z' node='http://jabber.org/protocol/admin#add-user' xmlns='http://jabber.org/protocol/commands'>
<x type='submit' xmlns='jabberdata'>
<field var='FORM_TYPE' type='hidden'><value>http://jabber.org/protocol/admin</value></field>
<field var='accountjid' type='jid-single'><value>smack-inttest-one-phx8g@salem.geekplace.eu</value></field>
<field var='password' type='text-private'><value>L2Cz2gKeVsBAEBRJ</value></field>
<field var='password-verify' type='text-private'><value>L2Cz2gKeVsBAEBRJ</value></field>
</x>
</command>
<error code='400' type='modify'><bad-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Unexpected action</text>
</error>
</iq>
2018-02-21 16:34:03 +01:00
Florian Schmaus
d6be4a7782 Set Java source and target compatibility to Java 8
Fixes SMACK-801.
2018-02-10 14:11:27 +01:00
Florian Schmaus
5333bde2e8 Merge branch '4.2' 2018-02-10 12:14:09 +01:00
Florian Schmaus
278c15d52d Deprecate some chat2 ChatManager APIs
because their functional interfaces clashes. This helps to prepare
Smack for Java 8 where such a construct results in a compile time error.
2018-02-10 12:10:19 +01:00
Florian Schmaus
3c4225d167 Merge branch '4.2' 2017-12-25 14:16:43 +01:00
Florian Schmaus
34373e8710 Enable javadoc 'html' doclint
Also make all 'test' tasks depend on the 'javadoc' task.

Fixes SMACK-650.
2017-12-25 14:08:18 +01:00
Florian Schmaus
0eeab74990 Merge branch '4.2' 2017-12-25 11:40:45 +01:00
52398b535f
Fix javadoc issues in some packages 2017-12-23 20:21:19 +01:00
2f2c2f8663 Fix minor codestyle issues 2017-12-17 11:19:41 +01:00
Florian Schmaus
431e5b3c67 Merge branch '4.2' into master-paul-merged 2017-12-17 11:16:02 +01:00
cb18056613 Fix minor codestyle issues 2017-12-17 11:03:46 +01:00
Florian Schmaus
a25971d02b Add AffiliationsExtensionTest 2017-12-05 20:50:34 +01:00
Florian Schmaus
ca1852f6e0 Fix AffiliationsExtension.toXml()
Fixes SMACK-789.
2017-12-05 20:50:34 +01:00
Florian Schmaus
76a6b9f2a1 Smack 4.2.2
-----BEGIN PGP SIGNATURE-----
 
 iQGTBAABCgB9FiEEl3UFnzoh3OFr5PuuIjmn6PWFIFIFAloZnf5fFIAAAAAALgAo
 aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDk3
 NzUwNTlGM0EyMURDRTE2QkU0RkJBRTIyMzlBN0U4RjU4NTIwNTIACgkQIjmn6PWF
 IFLcIQgAsTLRI3sWIZDPRuI5YaU/y6beqqzMp5cQgk/9+9DHGBoziLEU1spkvBs2
 Yvlwu3NtHSJsI+ibzYLEFRnzEwuW07vXw7R5J+kRSZrsE40z1HCQRwUIXDkPgghe
 MuL6vT6OV+kLqKb33YLSBuT2fj2pzVE6mRmMsnFekay/weEqOGUZaY9Hd5lJ31/9
 33fQC0FQfKULQ5t7PbdfX4dDDNWn0n6v+KjvjaskHI0oA+vqPWxPkj8gNXWW8b72
 tVV4h5uXQ0ziK3oED79+GH+DSiET9N2PmsZ7woXiFy5H8KbcQDVe5Pazf+Iq2VQ+
 Vi6Vxikr6Ak+v2Xkt+e3x9E6mZDI1w==
 =CVqq
 -----END PGP SIGNATURE-----

Merge tag '4.2.2'

Smack 4.2.2
2017-11-25 18:45:32 +01:00
Florian Schmaus
2edbc64957 Refactor reconnection callbacks into an extra class
Fixes SMACK-775
2017-11-25 16:30:18 +01:00
Florian Schmaus
81002c4fbd Merge branch '4.2' 2017-11-22 08:37:47 +01:00
Florian Schmaus
9e11b68144 Add comment style checkstyle rule requiring a space 2017-11-20 08:53:19 +01:00
Florian Schmaus
52bd680bb5 Fix OfflineMessageManager.getMessages(List<STring>)
by implementing a new logic how the messages are retrieved.

Previously in case the node list has exactly one item, the method
would perform an unnecessary call to nextResult() causing a delay.

Fixes SMACK-785.
2017-11-18 15:58:08 +01:00
Florian Schmaus
0da3ebf385 Make MUC invitation rejected filter also filter by room address
Fixes SMACK-783.
2017-11-12 12:20:08 +01:00
Florian Schmaus
a66c42834f Add findServicesDiscoveryInfo() variant
which does not log some exceptions, but instead comes with an optional
output paramater which returns the encountered exceptions.
2017-11-09 18:16:08 +01:00
Florian Schmaus
5ef6853db6 Improve MultiUserChat's leave() and destroy() login
Remove the "if (!joined) return" guard in leave() this allows to
resync the instances state with the real world state in case they ever
get out of sync.

Also call userHasLeft() in even if leave() throws and in certain
situations if destroy() throws.

Thanks to Дамян Минков and Ingo Bauersachs for pointing this out.
2017-11-07 20:38:19 +01:00
Florian Schmaus
0a4cd79d4e Call MultiUserChat.userHasLeft() before invoking listeners
in case a listener throws, userHasLeft() will eventually have set the
MutliUserChat instance to the right state.
2017-11-07 20:34:43 +01:00
Florian Schmaus
d93d214f0e Remove duplicate code in MultiUserChat 2017-11-07 20:34:43 +01:00
damencho
44e4607259 Fix memory leak in MutliUserChat.removeConnectionCallback().
Fix memory leak by removing subject listener
in MutliUserChat.removeConnectionCallback().
Fixes SMACK-782.
2017-11-07 20:34:43 +01:00
Florian Schmaus
65b4f506dc Add SubscribeAnswer.ApproveAndAlsoRequestIfRequired 2017-11-06 22:41:28 +01:00
Florian Schmaus
384c285fbc Merge branch '4.2' 2017-10-14 14:56:36 +02:00
Florian Schmaus
0729392ab8 Fix isSupported discovery of "Push Notifications"
Fixes SMACK-780.
2017-10-14 14:12:28 +02:00
Florian Schmaus
9bb0ed150b Merge pull request #165 from pocman/patch-1
Keep 4.1.9 chat.sendMessage(String) behavior
2017-08-16 15:18:52 +02:00
Florian Schmaus
ba323b51f9 Remove API parts scheduled to be removed in Smack 4.3 2017-08-16 14:31:46 +02:00
Florian Schmaus
80eaaf2d71 Fix warnings 2017-08-16 14:10:00 +02:00
Florian Schmaus
43abd52d76 Smack 4.2.1
-----BEGIN PGP SIGNATURE-----
 
 iQGTBAABCgB9FiEEl3UFnzoh3OFr5PuuIjmn6PWFIFIFAlmR75tfFIAAAAAALgAo
 aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDk3
 NzUwNTlGM0EyMURDRTE2QkU0RkJBRTIyMzlBN0U4RjU4NTIwNTIACgkQIjmn6PWF
 IFLeXggAjdgj7YVUe22NtamnROBj1c3PaWwgSY0gEjcyDPsOz5qeqNUdQLHbmt2j
 XQQpYZWKg1/1uoQHlsixaFKbGVctKRk72aNEodRfd1osta11WTOwZKEb8nI411Tt
 7M0Fhf430WZY6nioZiZIorsmid57fftJ2EMPlmjEDp2FD0AVGAXkEhCneGaPtt9Q
 hbWbepIy9tApeIH+QgmFLBmPLnFCaSg+X6NUden3Z21bUz5vH8pmcbeUVfsNB7kW
 nkkDuNwKHPFLgjuhcq7D+KAKRwNU7n8WEuHseRzM7bMCEB+S/rZok5KPXe/tV4v+
 YZKN2e+2yh4j5l4FT/fCzELfWcvrgA==
 =MV3G
 -----END PGP SIGNATURE-----

Merge tag '4.2.1'

Smack 4.2.1
2017-08-14 21:01:36 +02:00
Florian Schmaus
772e45da92 Introduce NotAPubSubNodeException
Fixes SMACK-759.
2017-08-14 20:23:35 +02:00
Florian Schmaus
f4391c07d7 Rework SmackFuture and add async API based on it 2017-08-12 17:35:45 +02:00
Florian Schmaus
0602ae064a Remove deprecated methods from XMPPConnection 2017-08-12 13:36:47 +02:00
Thomas
b70e80b1ad Keep 4.1.9 chat.sendMessage(String) behavior
chat2.Chat.send(String) should have the same behavior as chat.Chat.sendMessage(String)
2017-08-11 10:30:05 +02:00
Florian Schmaus
7f851d806c Use StandardExtensionElement in JingleProvider
and some further minor jingle fixes:
- deprecate getJingleTransport() in favor of getTransport()
- Jingle.Builder now checks if the session ID is not empty
2017-08-05 11:13:58 +02:00
Ingo Bauersachs
c9b9558cd4 Make add/remove for presence interceptors consistent 2017-08-01 16:17:35 +02:00
Florian Schmaus
ed9eae4793 Improve JingleS5BTransportInfo by introducing abstract class
Introduce a abstract class for shared functionality. And remove static
lazy getters.
2017-07-30 19:29:11 +02:00
Ingo Bauersachs
0b8788a9fc Fix parameter ordering in BoBHash construction 2017-07-20 22:50:34 +02:00
Florian Schmaus
104146c5ed Add Jingle.getSoleContentOrThrow() 2017-07-17 21:05:56 +02:00
Florian Schmaus
8f808b38e1 Merge pull request #153 from vanitasvitae/fixReason
Allow parsing of JingleReason.AlternativeSession
2017-07-08 08:24:17 +02:00
58c32639b5
Allow parsing of JingleReason.AlternativeSession
The JingleReasonProvider was faulty and ignored the
<alternative-session> element.
2017-07-06 16:55:12 +02:00
8bd3856fa1
Fix typos in filetransfer package 2017-07-06 14:01:28 +02:00
99c1c93c2a Fix shouldPreserveAddressOrderOnInsertions test
The test failed because the ArrayList - in contrast
to the underlying Set - did not check for duplicates
on insert. Under certain circumstances this lead to
an index out of bounds exception because the list in
the test contained duplicated entries which were not
present in the set of the Socks5Proxy.
I fixed the issue by only inserting the address when
it was not in the list before.
2017-07-04 21:50:08 +02:00
7e76bc1ae5
More changes to the Jingle package:
- Change visibility of some Socks5Bytestreams code.
- Add central ThreadPool
- Move FullJidAndSessionId in own class
- More complete JingleSession class
- More complete JingleUtil class
- Improved tests
2017-07-03 10:35:46 +02:00
5bd01b7385
Add Jingle File Transfer elements and JingleUtil class 2017-06-30 15:03:13 +02:00
Florian Schmaus
541c9ecfdd Fix compile errors in jingle code
Which where introduced by merging

20eabca1b3

after

b14aca744f
2017-06-29 18:09:25 +02:00
Florian Schmaus
1d53889874 Merge pull request #145 from vanitasvitae/singleJingleTransport
Switch to single transport instead of list
2017-06-28 21:02:52 +02:00
20eabca1b3
Also replace list with single transport-info info 2017-06-26 15:04:22 +02:00
e2b8ffdf22
Switch to single transport instead of list 2017-06-21 13:42:02 +02:00
b14aca744f
Add Jingle SOCKS5Bytestream transport method 2017-06-19 10:11:08 +02:00
Florian Schmaus
08a4ee4eb2 Reworked some Jingle unit tests to use Junit's "expected="
Also don't use randomString() because then the unit tests also depend
on the correct behavior of it.
2017-06-17 16:08:32 +02:00
Florian Schmaus
2b11074950 Merge branch '4.2' 2017-06-17 15:55:38 +02:00
Florian Schmaus
05148ab0ad Merge pull request #142 from vanitasvitae/jingleIBB
Add Jingle InBandBytestream transports
2017-06-16 23:32:59 +02:00
Florian Schmaus
aaad697b02 Merge pull request #140 from vanitasvitae/TransportInfo
Add JingleContentTransportInfo class
2017-06-16 23:25:23 +02:00
Florian Schmaus
6712cc91c8 Merge pull request #139 from vanitasvitae/JingleErrors
Remove unused errors and add missing ones
2017-06-16 23:19:50 +02:00
5699373cd9
Add method to set Reason 2017-06-16 22:54:32 +02:00
Florian Schmaus
759a7d7a70 Fix InitationListenerTest's timeouts
Don't use Thread.sleep(), isntead we use Mockito's timeout() method.
2017-06-16 22:51:14 +02:00
287976e0e0
Add Jingle InBandBytestream transports 2017-06-16 22:43:50 +02:00
Florian Schmaus
08e897113d Add CustomImportOrder checkstyle rule
And matching ImportOrder settings for Eclipse in
resources/eclipse/smack.importorder
2017-06-14 17:12:43 +02:00
e33bb5a741
Reorder imports 2017-06-14 00:01:05 +02:00
a604266336
Create alternative-session JingleReason 2017-06-14 00:00:27 +02:00
62167a7857
Reorder imports 2017-06-13 23:58:41 +02:00
4ae8434852
Remove unused errors and add missing ones 2017-06-13 23:57:59 +02:00
d49dc71bae
Add JingleContentTransportInfo class 2017-06-08 15:04:25 +02:00
Florian Schmaus
acc98b4b2f Merge pull request #137 from vanitasvitae/jingleTests
Add tests for jingle classes
2017-06-05 19:06:29 +02:00
Florian Schmaus
349d1ba2ae Merge pull request #136 from vanitasvitae/jingleManagerFixes
Fix typos and xml issues in jingle package
2017-06-05 11:04:52 +02:00
23190604bd
Fix typos and xml issues 2017-06-04 20:41:27 +02:00
0a31161950
Add tests for jingle classes
Depends on #135, #136
2017-06-03 23:46:29 +02:00
23ed0bdbce
Add missing security-info in JingleAction
Also fix typo
2017-06-03 23:23:23 +02:00
Florian Schmaus
f5ef42ec56 Merge branch '4.2' 2017-06-02 13:51:56 +02:00
Florian Schmaus
ce36fb468c Increase getSocket() timeout in Socks5ClientForInitiatorTest
This will hopefully reduce the false negatives when running the unit
tests with Travis CI.
2017-06-02 12:03:46 +02:00
Florian Schmaus
6bb001d274 New Jingle API groundwork
A start for the new Jingle API. Since Jingle is a single IQ with many
plugable extensions, there are some particularities we need to deal
with, e.g. jingle users have to register with JingleManager.

This is untested code. There may be drangons.
2017-05-30 08:45:27 +02:00
Florian Schmaus
7a5f9e6a03 Merge branch '4.2' 2017-05-25 11:25:36 +02:00
Florian Schmaus
ce1cddc722 More checkstyle whitespace related checks 2017-05-24 14:42:38 +02:00
Alexander Tovstonozhenko
b636883ce6 Fix NPE in hashCode() in Occupant when jid is null
Fixes SMACK-764.
2017-05-19 14:09:19 +03:00
Florian Schmaus
5f900d3713 Add PingManager.pingAsync(Jid, long)
and SmackFuture API.
2017-05-16 15:53:03 +02:00
Florian Schmaus
5aab471d64 Improve handling of error response "Pongs" 2017-05-16 15:53:03 +02:00
Florian Schmaus
48b5dc5fe7 Conditionially set the IQ type in ThreadedDummyConnection
and do not set 'from'.
2017-05-16 15:53:03 +02:00
Florian Schmaus
24f6d86452 Fix typo: s/ProsoydWorkaround/ProsodyWorkaround/ 2017-04-19 12:23:17 +02:00
Florian Schmaus
ddf888e607 Do not return null in getLeafNodeProsodyWorkaround
and rethrow the original exception.
2017-04-19 12:21:04 +02:00
Florian Schmaus
bfab3ec578 PubSubManager.getLeafNode(): Actually employ the prosody workaround 2017-04-19 11:50:01 +02:00
Florian Schmaus
e6a51f2151 Add PubSubManager.getLeafNode() and improve prosody workaround
by using the protected constructor and not reflection.
2017-04-19 11:46:39 +02:00
10927577ad
Fix getOrCreateLeafNode for prosody 2017-04-19 11:34:47 +02:00
Florian Schmaus
c636e72a9d Change behavior of send()/publish() in LeafNode
Previously publish() was "asynchronously" in that sense that the response
of the IQ as *not* awaited, and send() would wait for the
responses. It makes no sense to have that functionality this way.

Instead we now make publish() to the right thing, i.e., wait for an IQ
result, make send() a proxy for publish(), and mark send() deprecated.

In the future, there may be a publishAsync() method which returns a
Future instance.
2017-04-06 15:11:04 +02:00
Florian Schmaus
16ede9806a Add PubSubManaer.supportsAutomaticNodeCreation() 2017-04-06 12:32:34 +02:00
Florian Schmaus
e73cef8000 Add PubSubManager.tryToPublishAndPossibleAutoCreate(String, I) 2017-04-06 10:14:54 +02:00
Florian Schmaus
8466a5af1a Improve MUCs subject changed notification filter
Filter also messages with bodies or thread element.
2017-04-04 14:27:11 +02:00
Florian Schmaus
a887cde1ce Allow MUC room subject changes from the MUCs bare JID
Fixes SMACK-754.
2017-04-04 14:08:19 +02:00
Florian Schmaus
08c228ef99 Merge branch '4.2' 2017-03-20 14:57:42 +01:00
Florian Schmaus
1e0481b355 Add PubSubManager.getOrCreateLeafNode(String) 2017-03-18 18:31:06 +01:00
Florian Schmaus
0a6843f41f Make StreamNegotiator weakly reference XMPPConnection
by extending Manager.

Because FileTransferNegotiator will hold a strong reference to the
StreamNegotiators, which will eventually prevent XMPPConnection from
being GC'ed if no weak references in StreamNegotiator are used.

Thanks to Werner Glanzer for pointing this out.
2017-03-15 21:17:49 +01:00
Florian Schmaus
a592a12229 Make InBandBytestreamManager use weak references to XMPPConnection 2017-03-15 15:07:41 +01:00
Florian Schmaus
1a93b448db Smack 4.2.0
-----BEGIN PGP SIGNATURE-----
 
 iQGTBAABCgB9FiEEl3UFnzoh3OFr5PuuIjmn6PWFIFIFAljDKBtfFIAAAAAALgAo
 aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDk3
 NzUwNTlGM0EyMURDRTE2QkU0RkJBRTIyMzlBN0U4RjU4NTIwNTIACgkQIjmn6PWF
 IFJB7Qf6AlkwpzMqq1g18jzEBFVX/3Sk2QWivEY7t3EhGuSguan2VIfd1fL0P85Q
 vLBm6Pw93haIxHXKRUKc8DINwP9yuRMvUotCN2hYVgfqfByHGhDCJLTNZ9atncL5
 JToptfhdRy6kgljVZPtpXOMXKBvaO3QOuTuC5cmz8PlidsYw0yUnliPLQ36uPRWX
 eaEXXbgmkjJh35WjsaafD/uM86OCqZahfvEf3e8bkPzdAayd0OKU67+v0ArA9P2E
 CiRU5vfco/vt2Qo41aLLIEOjSFfVX6Xh/pXxfQvInMAxies0KRLi5vonOmfrWRmi
 uIblzcYRXCSaZSgVN2yF8KzmF4pzcw==
 =qETn
 -----END PGP SIGNATURE-----

Merge tag '4.2.0'

Smack 4.2.0
2017-03-10 23:35:06 +01:00
Florian Schmaus
c81f28a3a2 Update Error Prone to 2.0.18
and update errorprone-plugin to 0.0.9.
2017-03-07 11:00:47 +01:00
Florian Schmaus
68cecf2eee Fix the MUC join presence response filter
Error responses do not contain the '110' status. Therefore we have to
filter for them via the stanza id and the from address.
2017-02-20 14:22:19 +01:00
Florian Schmaus
6cfdf2bc6f Use CopyOnWriteArraySet for pingFailedListeners
To prevent

java.util.ConcurrentModificationException
  at java.util.HashMap$HashIterator.nextEntry(HashMap.java:788)
  at java.util.HashMap$KeyIterator.next(HashMap.java:815)
  at org.jivesoftware.smackx.ping.PingManager.pingMyServer(PingManager.java:252)
  at org.kontalk.service.msgcenter.MessageCenterService$3.run(MessageCenterService.java:1114)
  at java.lang.Thread.run(Thread.java:818)

Thanks to Daniele Ricci for reporting this.
2017-02-15 20:16:40 +01:00
Florian Schmaus
ca54f65b3e Merge branch '4.2' 2017-02-11 21:02:20 +01:00
Florian Schmaus
4c646436a5 Bump "Error Prone" to 2.0.15
and fix a few things :)
2017-02-11 16:16:41 +01:00
Florian Schmaus
ef0af66b21 Enfore spaces for indentation
Although I'm in the tabs camp, Smack uses mostly spaces. Therefore it
is the logical choice for the indentation style.
2017-02-07 22:10:10 +01:00
Florian Schmaus
bf1e07e672 Fix chat2.ChatManager's message filter
Thanks to Andras Csete for pointing this out.
2017-02-02 12:46:50 +01:00
Florian Schmaus
187fe37cd7 Fix MucEnterConfiguration.Builder.withPresence(Presence) throw ISE
when presence is of type available. This inverts the logic to fix
this.
2017-01-30 17:09:29 +01:00
Florian Schmaus
5d0dd49e61 Introduce ToMatchesFilter
and refactor the FromMatchesFilter into AbstractFromToMatchesFilter.
2017-01-29 11:08:16 +01:00
Florian Schmaus
33371cffaf Move ChatStateExtension Provider in its own class 2017-01-23 22:59:53 +01:00
Florian Schmaus
af1bde4fd0 Make MUC invitations 'from' value an EntityJid
instead of an EntityFullJid, because according to XEP-0045 § 7.8.1.:

"The <room@service> itself MUST then add a 'from' address to the
<invite/> element whose value is the bare JID, full JID, or occupant
JID of the inviter …"
2017-01-20 17:06:06 +01:00
Florian Schmaus
4d7b9318ce Add callbacks for block/unblock events to BlockingCommandManager 2017-01-20 08:57:03 +01:00
Florian Schmaus
ff97d2eb35 Make BlockContactsIQProvider idiomatic
The jids list doesn't have to be lazy initialized, because every IQ of
that type is guaranteed to contain at least one JID.

Also use ParserUtils.getJidAttribute().
2017-01-20 08:56:56 +01:00