Commit Graph

1124 Commits

Author SHA1 Message Date
Florian Schmaus 8e52e80399 Synchronize later in notifyConnectionError(Exception)
especially *after* the sync points have been notified so that a
potential thread currently callin gconnect()/login() throws and leaves
the synchronized section.

This commit is more or less equivalent to
3ded023629 of the 4.3 branch.
2019-03-16 10:43:41 +01:00
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
Florian Schmaus 569f7417a8 Add AuthenticatedConnectionInitiallyEstablished timestamp 2019-03-10 21:24:37 +01:00
Florian Schmaus c4289b2c18 Add AbstractXMPPConnection.initState()
and init/reset the sychronization points there.

This method is called right at the beginning of connect() and at the
end of shutdown().
2019-03-10 21:24:37 +01:00
Florian Schmaus 7518bf9a25 Add descriptive text to StanzaError.toString() 2019-03-10 21:24:37 +01:00
Florian Schmaus 7d2c3ac9f9 Do not call synchronized methods in reader/writer thread
This may cause deadlocks with a call to acquire(2) on the introduced
readerWriterSemaphore in initConnection(), which is also synchronized.
2019-03-10 21:24:37 +01:00
Florian Schmaus 3d1a781a22 Show correct reply timeout value in StanzaCollector's NoResponseException 2019-03-05 08:21:59 +01:00
Florian Schmaus f602de8771 Call shutdown() in connect() on exception
to clean up the state build up by connect().

Related to SMACK-855 there is the possiblitiy of a stray (writer)
thread if, for example, tlsHandled.checkifSuccessOrWaitorThrow() in
XMPPTCPConnection.connectInternal() throws. This commit should prevent
that.
2019-03-04 20:14:12 +01:00
Florian Schmaus 488e20476e Improve message of StressTestFailedException.NotAllMessagesReceivedException 2019-02-17 21:47:16 +01:00
Florian Schmaus b3ed9bc29f Add BooleansUtils 2019-02-17 18:21:57 +01:00
Florian Schmaus 9f3d2d2f28 Log if reported XMPP domain does not match expected 2019-02-16 21:54:11 +01:00
Florian Schmaus 12bd76a011 s/@since 4.4/@since 4.4.0/ 2019-02-16 17:17:50 +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 a13829aa74 Add javadoc to Smack(Message|Wrapped)Exception 2019-02-10 21:55:07 +01:00
Florian Schmaus 394f3d133a Make SmackException abstract 2019-02-10 21:53:31 +01:00
Florian Schmaus 7e76712c46 Make SASLAuthentication.authenticationFailed(Exception) private 2019-02-10 21:51:01 +01:00
Florian Schmaus 7fce6b5a98 Introduce SmackMessageException 2019-02-10 21:50:39 +01:00
Florian Schmaus b51a6c54e8 Introduce SmackSaslException 2019-02-10 21:50:39 +01:00
Florian Schmaus 7dee3b88a2 Introduce SmackParsingException 2019-02-10 19:01:47 +01:00
Florian Schmaus 163ca2b009 Merge branch '4.3' 2019-02-09 20:15:09 +01:00
Florian Schmaus 78dcaec75b Remove null checks for writer/reader fields in XMPPTCPConnection
as those are never null since
60f324eb1b (the previous commit).
2019-02-09 18:20:55 +01:00
Florian Schmaus 09bffb8dca Fail sync points on exception in XMPPTCPConnection 2019-02-09 18:12:03 +01:00
Florian Schmaus d06f533bb9 Drop OSGi support 2019-02-05 13:48:24 +01:00
Florian Schmaus 083dac8b83 Rework exceptions in the parsing / provider subsystem 2019-02-05 13:18:03 +01:00
Florian Schmaus 4c42d0cd32 Add concurrent but in-order listeners to XMPPConnection 2019-02-05 13:18:03 +01:00
Florian Schmaus fee3ed81ca Introduce XmlEnvironment 2019-02-05 13:18:03 +01:00
Florian Schmaus dc780ffd6c Make sendStanza() final 2019-02-05 13:18:03 +01:00
Florian Schmaus 5705f18f58 Remove SmackDaneVerifier.finish(SSLSocket) 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 7a3f6f29cc Merge branch '4.3' 2018-12-21 13:21:50 +01:00
Florian Schmaus a2743549b8 Make TCP socket connection attempt interruptable
by introducing SmackFuture.SocketFuture.

Fixes SMACK-847.
2018-12-21 12:03:49 +01:00
Florian Schmaus fb2a9b2167 Merge branch '4.3' 2018-12-14 23:09:59 +01:00
Florian Schmaus f6da386dea Ensure that IQ response 'to' address and ID are set correctly
Fixes SMACK-845.
2018-12-14 17:18:53 +01:00
Florian Schmaus 0c134db072 Add ConnectionConfiguration.setHostAddressByNameOrIp(CharSequence fqdnOrIp) 2018-12-04 15:59:11 +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
Florian Schmaus 7ea7f9e2e9 Add ParserUtils.parseXmlBoolean(String) 2018-11-29 09:02:05 +01:00
Georg Lukas 229653af30 ParserUtils: fix boolean parser
How could this even happen?

Signed-off-by: Georg Lukas <georg@op-co.de>
2018-11-28 11:11:52 +01:00
Florian Schmaus 4358251e89 Merge branch '4.3' 2018-11-14 15:02:24 +01:00
asokolov 2900c5ae23 Move xml-not-well-formed (RFC 3920) condition handling to StreamError
Fixes SMACK-842.
2018-11-14 14:53:04 +01:00
Florian Schmaus 5c090c35d4 Ensure sync listeners not being called after they removed themselves 2018-11-11 16:55:57 +01:00
Florian Schmaus 49b7e8b905
Merge pull request #280 from MarcelHeckel/bosh_connection_with_compression
Enables the HTTP compression in JBOSH
2018-11-09 13:52:16 +01:00
Marcel Heckel 1ea10831b6 Enables the HTTP compression in JBOSH
Adds an extra parameter "compressionEnabled" to ConnectionConfiguration
that is used to set the setCompressionEnabled() of BOSHClientConfig
2018-11-08 13:36:45 +01:00
Florian Schmaus 0adcf889bf
Merge pull request #278 from vanitasvitae/omemoFileBasedStoreUrlEncode
Use new BareJidEncoder class in FileBasedOmemoStore
2018-11-08 07:38:43 +01:00
Paul Schaub 9302b08854
Use new BareJidEncoder class in FileBasedOmemoStore 2018-11-07 18:17:25 +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 367580d37b Make sure StanzaCollector is cancelled
even if nextResult(long) throws an InterruptedException when called in
nextResultOrThrow(long).
2018-10-22 11:34:49 +02:00
Florian Schmaus 00ce194109 Use Enum.toString() instead of Enum.name() in XmlStringBuilder.optElement() 2018-10-19 11:12:57 +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 cf22371d3e Catch IllegalArgumentException in XmlUtil clinit
Fixes SMACK-833.
2018-10-14 12:10:50 +02:00
Florian Schmaus b60a772df1 Remove unnecessary getNamespace() call in XmlStringBuilder 2018-10-03 20:09:56 +02:00
Florian Schmaus 127510692d Remove unnecessary supress "deprecation" warning in ReconnectionManager 2018-10-03 20:09:19 +02:00
Florian Schmaus 09279b8ac0 Add AbstractBlockingQueueWithShutdown.putAll(Collection) 2018-09-11 21:56:45 +02:00
Florian Schmaus 5097f01b7a Make StreamOpen.toXML(String) 'null' aware 2018-09-11 09:42:08 +02:00
Florian Schmaus 45736e8ead Remove NORMAL_OR_CHAT_OR_GROUPCHAT MessageTypeFilter
Type 'groupchat' message stanzas are not like others, they usually
require special handling. Hence such a filter is usually an indication
that multiple concepts are intermixed.
2018-09-06 18:42:41 +02:00
Miguel Hincapie 547138b325 Improve ChatMarkersManager
* Created filters to be used with incoming and outgoing message stanzas
* Added a list of ChatMarkersListener and its add and remove methods.
* Added a stanza listener for outgoing messages.
* Added a stanza listener for incoming messages.
* Added discover feature for XEP-0333.
* Added methods to inform a message was: received, displayed or ack
* Added javadoc autor tag.
2018-09-06 18:39:00 +02:00
Florian Schmaus c0b1fee700 Add "rule of thumb" to StanzaFilter javadoc 2018-08-25 12:55:51 +02:00
Florian Schmaus 7374caefef Make StringEncoder generic 2018-08-21 11:09:26 +02:00
Florian Schmaus fb3009adb2 Add FileUtils.maybeCreateFileWithParentDirectories(File) 2018-08-17 13:00:34 +02:00
Florian Schmaus a70ae7ab8e Add FileUtils.maybeDeleteFileOrThrow(File) 2018-08-17 13:00:34 +02:00
Florian Schmaus 3e65cb31c3 Consolidate FileUtils from smack-openpgp into smack-core 2018-08-15 17:36:29 +02:00
Florian Schmaus a00aa726fe Introduce CloseableUtil 2018-08-15 17:25:22 +02:00
Florian Schmaus 1136e8a2e9 Log exception in ProviderFileLoader 2018-08-13 16:40:16 +02:00
Florian Schmaus 6fb95d6226 Close stream in FileUtils.addLines() 2018-08-13 16:39:56 +02:00
Florian Schmaus 5517d03fae Close stream in UrlInitializer 2018-08-13 16:39:28 +02:00
Florian Schmaus 1e376d4ada Link to Manager from javadoc-overview.html 2018-08-02 17:14:33 +02:00
Florian Schmaus 51e800c034 Smack 4.3.0
-----BEGIN PGP SIGNATURE-----
 
 iQGTBAABCgB9FiEEl3UFnzoh3OFr5PuuIjmn6PWFIFIFAltjB1dfFIAAAAAALgAo
 aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDk3
 NzUwNTlGM0EyMURDRTE2QkU0RkJBRTIyMzlBN0U4RjU4NTIwNTIACgkQIjmn6PWF
 IFISagf/bFhu9Getz7tvo3R+Z2brTszQSKVIvXf6DFKXWapUwOLeZp6EQGQXbnym
 UOz1ykMnkCrgKRyNmPFwG2ZBcHWdL0/2nvyfm0e6nhd5gsoTJoqH8gMtVNlIsa47
 lGatkr0JhsyHUREtMbnRmGMEh5M+pMGGWGLqHIFXJIZJ2/IV2cMlBx0jPFpd+Toc
 IKXfe8euZp6Ic8JKk4V7SIcpTJw9zsihsXP3zwwDjn0xft89tI8lpT6MfaWL9q+Z
 bUSEoEv27gJvK1iFbxKR4A1TGnmesl8GMBeWhU2+aF8PardYuc3+0qjD9yah6o6p
 hlg4um1bgWixqRgGWfkcbhDHS1E04A==
 =+uoq
 -----END PGP SIGNATURE-----

Merge tag '4.3.0'

Smack 4.3.0
2018-08-02 16:17:58 +02:00
Florian Schmaus 9bb724d65d Add Possible(From|To)TypeFilter 2018-08-02 11:39:25 +02:00
Florian Schmaus 5bf0fd64ac Add ExceptionThrowingCallbackWithHint and javadoc
about parsing exceptions also providing rationale.
2018-08-02 09:40:11 +02:00
Florian Schmaus a3fcbdbf5a Make Stanza.appendErrorIfExists() aware of the enclosing XML namespace
Originally discovered by Paul Schaub:

Fixes an inconvenience, where an IQ with the implicit namespace
`jabber:client` would append the namespace to an error child element
like this:

```
<iq (xmlns='jabber:client) <!-- in parenthesis since the NS is implicit --> ... >
    <error xmlns='jabber:client' <!-- this NS is too much --> ... />
</iq>
``
2018-08-01 13:16:20 +02:00
Paul Schaub d78733e23a
Remove duplicate FileUtils methods 2018-07-30 16:05:58 +02:00
Florian Schmaus 166b8be8a9
Merge pull request #243 from vanitasvitae/tempDir
Add utility method to get temp directory
2018-07-30 10:57:24 +02:00
Paul Schaub f0af00ee43
XEP-0373, XEP-0374: OpenPGP for XMPP: Instant Messaging
Fixes SMACK-826
2018-07-29 18:52:45 +02:00
Paul Schaub 74bebc13e6
requireNotNullOrEmpty -> requireNotNullNorEmpty 2018-07-17 15:10:39 +02:00
Paul Schaub 4afe573a68
Add Objects.requireNonNullOrEmpty 2018-07-17 11:39:51 +02:00
Paul Schaub 4ee034bf40
Add utility method to get temp directory 2018-07-03 10:39:54 +02:00
Florian Schmaus ce4f3352a2 Merge branch '4.3' 2018-06-23 17:18:17 +02:00
Florian Schmaus c73219b797 Add (To|From)TypeFilter.(FROM|TO)_ANY_JID
to filter all stanzas which have a valid jid set as to/from.
2018-06-20 22:17:11 +02:00
Florian Schmaus 61be4d768d Add javadoc describing the XMPPErrorException class 2018-06-20 22:17:11 +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 c83f6ec9c8 Merge branch '4.3' 2018-06-17 14:10:52 +02:00
Florian Schmaus 9e18ba2327 Remove deprecated methods in XMPPConnection 2018-06-14 10:00:37 +02:00
Florian Schmaus 37b5260cdd Fix DNSUtil.setDaneProvider()
Fixes SMACK-820.
2018-06-12 19:06:18 +02:00
Florian Schmaus f290197f6a Merge branch '4.3' 2018-06-12 15:49:43 +02:00
Florian Schmaus 1edc00b334 Merge remote-tracking branch 'ignite/master' 2018-06-12 15:49:00 +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 d958b42eff Add StanzaCollector.getCollectedStanzasAfterCancelled() 2018-06-11 22:08:15 +02:00
Florian Schmaus 1dec29617e Fix StanzaCollector's Exception message: s/Packet/Stanza/ 2018-06-11 22:08:15 +02:00
Florian Schmaus 77707737df Make StanzaCollector's cancelled field volatile 2018-06-11 22:08:15 +02:00
Florian Schmaus c792be9267 Add StringUtils.requireNullOrNotEmpty() 2018-06-07 17:55:00 +02:00
Florian Schmaus 414d730962 Optimize XmlStringBuilder.element() for the empty element case
For example RSM (XEP-0059) gives <before/> a different semantic as
<before>UID</before>.
2018-06-07 17:15:16 +02:00
Florian Schmaus f2ea3e0d5b Add XmlUnitUtils.assertXmlSimilar() 2018-06-03 21:19:38 +02:00
Florian Schmaus 8f691e4b1d Add ArrayBlockingQueueWithShutdown.tryTake() 2018-05-31 17:20:09 +02:00
Florian Schmaus 751c7b0d40 Improve ArrayBlockingQueueWithShutdown.tryPut()
to return the internal state when the operation is performed.
2018-05-31 17:19:36 +02:00
Florian Schmaus a89f3458f2
Merge pull request #239 from vanitasvitae/fileutils
Add method to delete directory
2018-05-22 09:40:21 +02:00
Boris Grozev fd5e86ce5a fix: Cleans the multiUserChats map. 2018-05-21 14:54:23 -05:00
Paul Schaub 168e9398e3
Add method to delete directory 2018-05-21 12:35:25 +02:00
Paul Schaub 27c77fcb1c Add utility methods
ParserUtils: getShortAttribute
XmlStringBuilder: attribute(String, long), optAttribute(String, Long)
2018-05-20 11:27:52 +02:00
Florian Schmaus 84f282befe Add XMPPConnection trySendStanza() 2018-05-16 14:49:53 +02:00
Florian Schmaus c7697ea9d0 Add ArrayBlockingQueueWithShutdown.tryPut(E) 2018-05-16 07:57:50 +02:00
Florian Schmaus cb27b02658 Make SmackFuture use Smack's cached executor service
instead of SmackFuture using it's own executor service.
2018-05-10 20:30:24 +02:00
Florian Schmaus a22ec4b112 Use java.text.Normalizer for SASLPrep 2018-05-10 20:30:23 +02:00
Florian Schmaus 0e31bc8f73 Fix Stanza.overrideExtension(ExtensionElement)
Also fixes SMACK-818.
2018-05-10 15:34:24 +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 3066801d58 Bump James Murty's java-xmlbuilder to 1.2 2018-05-09 20:20:45 +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 4cff9ddfa0 Bump junit to 5.2.0 2018-05-09 19:59:39 +02:00
Florian Schmaus a415a90ac7 Bump xmlunit to 2.6.0 2018-05-09 19:44:10 +02:00
Florian Schmaus 96f75a1857 Fix TODO in PacketParserUtils 2018-05-09 17:13:09 +02:00
Florian Schmaus 0df7734efc Slightly improve PacketParserUtils.parseSessionFeature() 2018-05-09 17:13:09 +02:00
Florian Schmaus 49417d2e20 Remove deprecated methods in PacketParserUtils 2018-05-09 17:13:09 +02:00
Florian Schmaus 6d76e8a1ae Remove PacketParserutils.getLanguageAttribute(XmlPullParser) 2018-05-09 17:13:09 +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 cd5daa6fd7 Do net set a default language when parsing Message stanzas
the fallback is (usually) not needed, as most XMPP XML streams have a default
xml:lang set (See RFC 6120 § 4.7.4.).
2018-05-09 17:13:09 +02:00
Florian Schmaus 93c2b2be26 Do not return a Message "default" language if there is none 2018-05-09 17:13:08 +02:00
Florian Schmaus b4b75a3cca Make <subject/> (XML) language optional 2018-05-09 16:48:53 +02:00
Florian Schmaus 4b8f7ca6b6 Make <body/> (XML) language optional 2018-05-09 16:47:28 +02:00
Florian Schmaus ad932caf78 Do not use a reflection based initializer for core elements
like Message.Body from smack-core.
2018-05-09 16:45:14 +02:00
Florian Schmaus 09c6a9e2bc Add Objects.equals(Object, Object) 2018-05-09 12:37:09 +02:00
Paul Schaub 901b316c06
Add and register BodyElementProvider 2018-05-06 18:47:44 +02:00
Florian Schmaus 82cbc40327 Bump MiniDNS to 0.3.0 2018-05-05 10:53:52 +02:00
Florian Schmaus 5ab2903c32 Change Element.toXml() to toXml(String enclosingNamespace) 2018-04-27 10:05:25 +02:00
Florian Schmaus a91ca2aebf Bump MiniDNS to 0.3.0-alpha1
Also add minidns-core as dependency to smack-core. This requires
increasing the minimum required Android SDK level to 9, as this is
what MiniDNS requires.
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 98109e7b86 Record request stanza in XMPPErrorException 2018-04-23 20:56:54 +02:00
Florian Schmaus 73168bff69 Use XmlUtil for XML pretty printing in Protocol 2018-04-23 17:02:28 +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 f11134dc4c Remove deprecated reconnection callbacks in ConnectionListener
Fixes SMACK-776.
2018-04-07 21:15:20 +02:00
Florian Schmaus 0a99291d59 Make asyncGo() and schedule() static
in AbstractXMPPConnection.
2018-04-07 21:11:55 +02:00
Florian Schmaus 9b5dafe541 Enable LeftCurly checkstyle check 2018-04-06 10:25:06 +02:00
Florian Schmaus 5a841ff0a8 Remove support for classpath:org.jivesoftware.smack/disabledClasses
when initalizing Smack.
2018-04-06 10:25:06 +02:00
Florian Schmaus f73641da5a Better exception messages on Smack initialization 2018-04-06 10:25:06 +02:00
Florian Schmaus f48b761c33 Log exception when handling debugEnable 2018-04-06 10:25:06 +02:00
Florian Schmaus ac5508ae37 Remove deprecated CustomSmackConfiguration on intialization 2018-04-06 10:25:06 +02:00
Florian Schmaus 6a42d5baff Rework FileUtils 2018-04-06 10:25:06 +02:00
Florian Schmaus b443958bee Remove setting to disable legacy session establishment 2018-04-02 13:27:01 +02:00
Florian Schmaus ad87243060 Globally 's;stanza(/packet);stanza;' 2018-03-31 14:17:30 +02:00
Florian Schmaus 1d12be1644 Add XMPPConnection.sendIqRequestAndWaitForResponse(IQ) 2018-03-31 14:15:46 +02:00
Florian Schmaus a9ca1a0989 Enable ModifierOrder checkstyle check
Fixes SMACK-812
2018-03-29 12:35:11 +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 f42d9137b5 Merge branch '4.2' 2018-03-21 15:22:22 +01:00
Florian Schmaus ac24d6737f Drop CharsequenceEquals
it got duplicated into
- CharsequenceEquals
- CharSequenceEquals

with cb18056613
2018-03-21 15:15:08 +01:00
Florian Schmaus 1d438ec1c2
Merge pull request #214 from fuentesj11/javadoc-update
Update/fix javadocs
2018-03-12 16:04:05 +01:00
Jesus Fuentes 903f90e1c1 Update/fix javadocs 2018-03-09 07:15:46 -06:00
Florian Schmaus 7c9060c32b Merge branch '4.2' 2018-02-27 08:09:34 +01:00
Florian Schmaus ecc53b1bc8 Add Manager.schedule(Runnable, long, TimeUnit)
using Smack's scheduled executor service.
2018-02-26 10:24:01 +01:00
Florian Schmaus 4f88f23f33 Make scheduled executor service static 2018-02-26 10:23:02 +01:00
Florian Schmaus cd05d5f5d8 Call schedule() instead of directly invoking the scheduled executor
in AbstractXMPPConnection.
2018-02-25 11:29:39 +01:00
Florian Schmaus c90607d7db Call schedule() instead of directly invoking the scheduled executor
in AbstractXMPPConnection.
2018-02-23 18:50:02 +01:00
Florian Schmaus 3bdeca44f2 Merge branch '4.2' 2018-02-23 18:35:34 +01:00
Florian Schmaus 72a2014572 Set core-pool size of single-threaded executor to zero
in AbstractXMPPConnection.
2018-02-23 18:22:53 +01:00
Florian Schmaus a4ab6245f6 Make cached executor service static 2018-02-23 17:04:51 +01:00
Florian Schmaus abdfe73006 Remove executorService from AbstractXMPPConnection
Reduces thread count per connection by one.
2018-02-23 16:48:15 +01:00
Florian Schmaus 793d3c47ad Move TLS and SASL sync points into subclasses
In preperation of subclasses with different connection approaches.
2018-02-23 10:37:17 +01:00
Florian Schmaus 5e25491877 Do not send unavailable on disconnect() when not authenticated 2018-02-23 10:37:12 +01:00
Florian Schmaus a48e8ef843 Merge branch '4.2' 2018-02-21 20:13:05 +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
Paul Schaub 9f47daa7ad
Add missing package-info descriptions. 2018-02-21 16:47:11 +01:00
Florian Schmaus 20b97eb241 Add javadoc to Provider 2018-02-21 10:37:25 +01:00
Florian Schmaus 6f7d6a7f50 Smack 4.2.3
-----BEGIN PGP SIGNATURE-----
 
 iQGTBAABCgB9FiEEl3UFnzoh3OFr5PuuIjmn6PWFIFIFAlp7XzVfFIAAAAAALgAo
 aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDk3
 NzUwNTlGM0EyMURDRTE2QkU0RkJBRTIyMzlBN0U4RjU4NTIwNTIACgkQIjmn6PWF
 IFKdbQf8CpKmvAUqThaxSKUZKOzlH71BkneT7gdjLvDyvVLXkxZt+arC/Sx9WHXs
 OqP6XxxcUKpP9SVItyikEiyq4A4EAlYbtnGcAnJ2Zc04MorEvYtfePgX29WVMKa6
 VGZv4PyILAqRMBgQP6+TW++sgqB8JvlVY29e2igfM7mFjOiZdKkEPr2TZ995/XiT
 07WFxo72Fe7xXWTVWx5e2hbgC+KPtUFbm0rEBQ3x3seBbRQkn2f3sm8AItj6NKvz
 3W9Fzc7n+NY0l+84lX4mSB4Xq851AtOhJPeuSBijgYNM6V8yAXdCAHd0XJSiE89e
 /WwRIJAxLy74WzXs0wN3IAieKQhHdw==
 =/ZOL
 -----END PGP SIGNATURE-----

Merge tag '4.2.3'

Smack 4.2.3
2018-02-10 11:56:52 +01:00
lohse 93683389e3 Bugfix in SOCKS5 authentication
Read password bytes from the correct field.
Fixes SMACK-796, introduced with 4c64643
2018-01-19 12:53:57 +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 0cf33f9849 Merge branch '4.2' 2017-12-25 12:10:35 +01:00
Florian Schmaus 89c97bb46c Enable javadoc 'syntax' doclint
Addresses SMACK-650 but does not yet fix it completely.
2017-12-25 12:09:46 +01:00
Florian Schmaus 0eeab74990 Merge branch '4.2' 2017-12-25 11:40:45 +01:00
Florian Schmaus e5e5fca7c1
Merge pull request #191 from vanitasvitae/fixJavadoc
Fix javadoc issues in some packages
2017-12-24 14:46:02 +01:00
Paul Schaub 52398b535f
Fix javadoc issues in some packages 2017-12-23 20:21:19 +01:00
Paul Schaub 2288825b1c
Retain smack-core API 2017-12-19 15:06:40 +01:00
Paul Schaub 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
Paul Schaub cb18056613 Fix minor codestyle issues 2017-12-17 11:03:46 +01:00
Florian Schmaus 200f90ffdc Add IpAddressUtilTest 2017-12-16 12:40:17 +01:00
Florian Schmaus 517fc6e0f2 Add assert to IpAddressUtil.isIPv4LiteralAddress(String) 2017-12-16 12:37:11 +01:00
Florian Schmaus 5147f6e915 Fix IPAddressUtil.isIPv4LiteralAddress(String)
Fixes SMACK-791
2017-12-16 12:36:02 +01:00
Florian Schmaus 47940ba5ad Fix NPE in DNSResolver.lookupSRVRecords0
in case hostAddresses was null, the isEmpty() check before the log()
invocation would throw an NPE. Thanks to Ingo Bauersachs for reporting
this.

Fixes SMACK-788.
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 32f681c6e5 Initialize keytsoreType with KeyStore.getDefaultType() 2017-11-22 22:34:56 +01:00
Florian Schmaus 81002c4fbd Merge branch '4.2' 2017-11-22 08:37:47 +01:00
Florian Schmaus 5ff4387f68 Fix Presence.getPriority() to not return Integer.MIN_VALUE
Fixes SMACK-787.
2017-11-21 21:05:10 +01:00
Florian Schmaus 4775f350ae Add javadoc to Presence.priority 2017-11-21 21:04:13 +01:00
Florian Schmaus 9e11b68144 Add comment style checkstyle rule requiring a space 2017-11-20 08:53:19 +01:00
Florian Schmaus 2341bb4e23 Remove duplicate code in StringUtils 2017-11-16 18:02:02 +01:00
Florian Schmaus 73dd46af21 Remove duplicate numbers from StringUtils.numbersAndLetters
Fixes SMACK-784.
2017-11-16 17:48:29 +01:00
Florian Schmaus fe61922fb7
Merge pull request #179 from damencho/4.2
Makes xmpperror descriptive text optional as said in the rfc.
2017-11-09 18:26:14 +01:00
Florian Schmaus 65b4f506dc Add SubscribeAnswer.ApproveAndAlsoRequestIfRequired 2017-11-06 22:41:28 +01:00
damencho a0b0b5a63b Makes xmpperror descriptive text optional as said in the rfc. 2017-10-27 13:14:50 -05:00
Florian Schmaus 384c285fbc Merge branch '4.2' 2017-10-14 14:56:36 +02:00
Florian Schmaus 01aa6d9c18 DNS: Correctly handle broken SRV records
where the SRV RR points to a target DNS name with no associated A or
AAAA RRs.

Fixes SMACK-781.
2017-10-14 13:29:46 +02:00
Florian Schmaus 122bf06ccc Merge pull request #160 from ibauersachs/parse-error-texts
Get descriptive text from error without lang
2017-09-29 19:04:14 +02:00
Florian Schmaus 941f29e928 Improve ReconnectionManager
Fixes SMACK-778.
2017-09-29 16:32:32 +02:00
Ingo Bauersachs 699145ee5f Get descriptive text from error without lang
A stanza with <error><text>Some text</text></error>, i.e. without a
xml:lang attribute, did not return the value 'Some text' in
getDescriptiveText().

Insert the empty string as key when the attribute is not present while
parsing the xml. When writing, omit the attribute if the key is the
empty string.
2017-09-27 00:21:40 +02:00
Florian Schmaus 255865f733 Add XmlUtil.prettyFormatXml() 2017-09-10 16:46:26 +02:00
Florian Schmaus 8020fc1416 Make IQRequestHandler the only option to handle IQ requests
Previously StanzaListeners and Collectors where able to receive IQ of
type 'get' or 'set' (i.e., IQ requests) when no IQRequestHandler was
registered. By moving the 'return' statement one level down, even
listeners/collectors won't receive them.
2017-08-16 21:06:23 +02:00
Florian Schmaus 2a97d7c5ea Don't reinvent methods in HashManager
use the existing API from StringUtils instead.

Also rename StringUtils.toBytes() to 'toUtf8Bytes()'.
2017-08-16 14:55:25 +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 6203d163c4 Deprecate old async API 2017-08-16 13:46:42 +02:00
Florian Schmaus 798d158d32 Make SmackFuture.getOrThrow() throw InterruptedException 2017-08-16 13:45:51 +02:00
Florian Schmaus 339ae1c7a0 Merge pull request #163 from ibauersachs/replymode-public
Make UnknownIqRequestReplyMode public
2017-08-14 22:57:28 +02:00
Florian Schmaus 997766533f Merge pull request #161 from ibauersachs/condition-to-type-mappings
Make XMPPError Condition to Type mapping consistent
2017-08-14 22:57:12 +02:00
Ingo Bauersachs 25114b3fc1 Add a test to ensure all Conditions have a Type mapping 2017-08-14 21:50:30 +02:00
Ingo Bauersachs b7542bbde5 Fix too shorts indents of two Javadoc comments 2017-08-14 21:47:53 +02:00
Ingo Bauersachs 47c936e508 Make UnknownIqRequestReplyMode public
If it is not made public, then (g|s)etUnknownIqRequestReplyMode cannot
be used.
2017-08-14 21:45:29 +02:00
Ingo Bauersachs 199311eda1 Fix error Condition to Type mappings to match RFC 6120
Synchronize the Javadoc table to match the actual implementation.
2017-08-14 21:35:31 +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 b497a236f9 Improve StanzaListner javadoc 2017-08-14 14:18:21 +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
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
Florian Schmaus b8ee8d808f Rework Smack debugger.
Also fixes SMACK-728.
2017-07-28 12:01:11 +02:00
Florian Schmaus 3d032298a5 Deal with cases wehre HostAddress.fqdn is null
Fixes SMACK-772
2017-07-02 18:09:15 +02:00
Florian Schmaus 2b11074950 Merge branch '4.2' 2017-06-17 15:55:38 +02:00
Florian Schmaus 813219179f Add support for <text/> elements in SM's <failed/> element
Also introduce AbstractTextElement and StanzaErrorTextElement.

Fixes SMACK-760.
2017-06-17 11:43:49 +02:00
Florian Schmaus 1448fa4632 Add ParserUtils.getXmlLang(XmlPullParser)
and add TODO comment to PacketParserUtils.getLanguageAttribute().
2017-06-17 11:42:09 +02:00
Florian Schmaus 5424c9635f Add XmlStringBuilder.optXmlLangAttribute(String) 2017-06-17 11:41:35 +02:00
Florian Schmaus 8038b7a3e1 Add TODO comment about renaming XMPPError to StanzaError 2017-06-17 11:41:07 +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
Florian Schmaus f5ef42ec56 Merge branch '4.2' 2017-06-02 13:51:56 +02:00
vanitasvitae e86700b040 Add OMEMO support
This commit adds the modules smack-omemo and smack-omemo-signal.
smack-omemo is licensed under the Apache license like the rest of the smack project.
smack-omemo-signal on the other hand is licensed under the GPLv3.
Due to the fact, that smack-omemo is not of much use without smack-omemo-signal,
the OMEMO feature can currently only be used by GPLv3 compatible software.
This may change in the future, when a more permissively licensed module becomes available.

Fixes SMACK-743.
2017-06-02 13:40:10 +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
Florian Schmaus 5f900d3713 Add PingManager.pingAsync(Jid, long)
and SmackFuture API.
2017-05-16 15:53:03 +02:00
Florian Schmaus ac626f248a Add TODOs about the removal of deprecated methods 2017-05-16 15:53:03 +02:00
Florian Schmaus dcf7406fa4 Add UnknownIqRequestReplyMode 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 45edc969c9 Fix NoWhitespaceAfter checkstyle violation
in StringUtils.
2017-05-16 15:52:24 +02:00
Florian Schmaus b51d5070fc Log LazyStringBuilder instances throwing a NPE 2017-04-19 20:09:32 +02:00
Florian Schmaus d421b2fa1b Fix provided SASL DIGEST-MD5 mechanism
In case the server provided nonce contained one or more equals
characters ("=") the part.split("=") call would return more then the
expected two key/value parts. Hence we simply use part.split("=", 2).

Also made the unit test check for this case.

Fixes SMACK-755
2017-04-07 19:06:55 +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
vanitasvitae 8a8c01a4e5 Fix AbstractError.getDescriptiveText() 2017-03-20 16:57:06 +01:00
Fernando Martinez Herrera 4fb1449077 Fix AbstractJidTypeFilter.accept() 2017-03-20 16:56:12 +01:00
Florian Schmaus 08c228ef99 Merge branch '4.2' 2017-03-20 14:57:42 +01:00
Florian Schmaus 3d1cf61caf Add comment to ScramMechanism.getChannelBindingName() 2017-03-18 17:49:38 +01:00
Florian Schmaus 43715460c6 Fix SASL SCRAM-SHA-1(-PLUS) priority
Fixes SMACK-749.

Thanks to Grigory Fedorov for reporting this and to Kim Alvefur for
helping to diagnose the issue.
2017-03-18 17:49:38 +01:00
Florian Schmaus b6f7d019c7 Use SASLMechanism.toString() in getRegisterdSASLMechanisms()
of SASLAuthentication.
2017-03-18 17:49:38 +01:00
Florian Schmaus 762939068b Add javadoc for SASLMechanism.getPriority() 2017-03-18 17:49:38 +01:00
Florian Schmaus de783dce73 Add SASLMechanism.toString() 2017-03-18 17:49:38 +01:00
Florian Schmaus dcac9531e7 Fix SASLAuthentication.getRegisteredSASLMechanisms
by using a LinkedHashMap which is insertion-ordered as compared to
HashMap.
2017-03-18 17:48:52 +01:00
Florian Schmaus 3640339073 Fix ConnectionConfiguration.getEnabledSaslMechanisms()
in case enabledSaslMechanisms is null, because then unmodifiableSet()
will throw an NPE.

Thanks to Nándor Holozsnyák for reporting.
2017-03-15 21:25:37 +01:00
Florian Schmaus 525feaa161 Add SynchronizationPoint.getFailureException() 2017-03-13 07:37:40 +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 1cc9cec677 Use thread local variables for (Secure)Randoms 2017-03-10 17:55:07 +01:00
Florian Schmaus 09b6608a3a Fix and improve the HTTP File Upload implementation
Fix a few resource leaks. Improve the API and add an integration
test. Also add compability layer for XEP-0363: HTTP File Upload 0.2.

SMACK-747
2017-03-10 17:54:29 +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 52a52e12d2 Make Body and Subject implement ExtensionElement 2017-03-07 08:53:31 +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 ffe9397e66 Fix SASLMechanism.compareTo(SASLMechanism)
Thanks to Aleksander Melnichnikov for pointing this out.
2017-02-02 16:08:37 +01:00
Florian Schmaus 872b254db5 sendStanzaWithResponseCallback: Ensure exactly one callback is called 2017-01-30 21:01:56 +01:00
Florian Schmaus b142060f9e sendStanzaWithResponseCallback(): remove listener right away
I'm not sure why i've put the removeAsyncStanzaListener() call into
the finally block. If callback.processStanza(Stanza) takes a long
time (or even blocks), then it would appear to the "no response"
handling Runnable as if there was no response, when in fact there was
one.
2017-01-30 17:09:30 +01:00
Florian Schmaus 5d0dd49e61 Introduce ToMatchesFilter
and refactor the FromMatchesFilter into AbstractFromToMatchesFilter.
2017-01-29 11:08:16 +01:00
Florian Schmaus 51378aebee Revert "Throw exception if stanza child contains text"
This reverts commit eb9242768c.

Turns out, that there is in fact not such restriction in the
RFCs (only for <subject/>, <body/> and the a few others).
2017-01-24 22:47:16 +01:00
Florian Schmaus 62d903171f Remove NOP from FromMatchesFilter 2017-01-24 22:46:00 +01:00
Florian Schmaus 2ac0fc72ba Handle NameNotFoundException in smack-resolver-javax 2017-01-24 20:14:01 +01:00
Florian Schmaus 1bcb5a2d1a Also check that srvRecords is not empty 2017-01-24 20:13:40 +01:00
Florian Schmaus 9526926cd3 Log message about missing SRV RRs 2017-01-24 20:13:26 +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 4377e39b5f Add javadoc about client set resourceparts 2017-01-20 12:24:26 +01:00
Florian Schmaus 382ed9d871 Smack 4.2.0-rc2
-----BEGIN PGP SIGNATURE-----
 
 iQF8BAABCgBmBQJYe7kjXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
 ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ5Nzc1MDU5RjNBMjFEQ0UxNkJFNEZCQUUy
 MjM5QTdFOEY1ODUyMDUyAAoJECI5p+j1hSBSuGkH/1mU66MNR0/ywbdZ2RKcb9MK
 WTHBBOuD/KaqkQOQQ5Fud+ktyahmDd9Nk4TbchIJ56PlEPqJbhnwP8txh1gU+8Zz
 jpRHYYQiTEuLSblToVL3afrfd/IQnOrh7VbwkG7S1wkWmOFKCv94wlv/OgZFaICc
 RHHJyJbJ0TTuavEkJ141ruNYmq/qYjUjdLmFrqhT3hv3iuiHCT1PK1787wEB0EWS
 ciwkw2j/j/2i27XNQRwu7QaLsmUGk8rLnr2/AsYpmsBsjAMqMbNEQEPbIgO9MVef
 7dt/GWoqHjH1opVcOw+rRz/cynMii2sSTXiqRVTEZsWlx3uYYz5eKsuiuckZcBs=
 =yqh1
 -----END PGP SIGNATURE-----

Merge tag '4.2.0-rc2'

Smack 4.2.0-rc2
2017-01-15 20:02:13 +01:00
Florian Schmaus 7c46f58c80 Rename "PacketReplyTimeout" → "ReplyTimeout" 2017-01-12 20:57:19 +01:00
Florian Schmaus f31cc6e043 Fix IllegalArgumentException on DNS lookup if XMPP domain is wrong
Fixes the following exception thrown if the user had entered a non-existend XMPP domain:
java.lang.IllegalArgumentException: Must provide at least one InetAddress
     at org.jivesoftware.smack.util.dns.HostAddress.<init>(HostAddress.java:55)
     at org.jivesoftware.smack.util.dns.DNSResolver.lookupHostAddress(DNSResolver.java: 56)
     at org.jivesoftware.smack.util.DNSUtil.resolveDomain(DNSUtil.java:209)
     at org.jivesoftware.smack.util.DNSUtil.resolveXMPPServiceDomain(DNSUtil.java:136)
     at org.jivesoftware.smack.AbstractXMPPConnection.populateHostAddresses(AbstractXMP PConnection.java:626)
     at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectUsingConfiguration(XMPPTCPC onnection.java:556)
     at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection. java:888)
     at org.jivesoftware.smack.AbstractXMPPConnection.connect(AbstractXMPPConnection.ja va:377)

Thanks to Grigory Fedorov for reporting.
2017-01-12 13:39:11 +01:00
Florian Schmaus d47463a533 Deprecate Chat API, introduce new Chat API
Also add (From|To)TypeFilter and update/fix the documentation in a few places.
2017-01-11 19:48:22 +01:00
Florian Schmaus b0fef6ffcb Ensure that populateHostAddressees() doesn't return a list with 'null'
Thanks to Grigory Fedorov for reporting this.
2017-01-09 19:36:21 +01:00
Florian Schmaus bfc14227ca Propagate stream errors on connect/login to the caller
Before this, if there was a stream error response by the server to our
stream open, that error response would only be handled in the reader
thread, and the user would get a message like:

"org.jivesoftware.smack.SmackException$NoResponseException: No
response received within reply timeout. Timeout was
5000ms (~5s). While waiting for SASL mechanisms stream feature from
server"

while the server may actually sent something like

<stream:stream
  xmlns='jabber:client'
  xmlns:stream='http://etherx.jabber.org/streams'
  id='6785787028201586334'
  from='jabbim.com'
  version='1.0'
  xml:lang='en'>
  <stream:error>
    <policy-violation xmlns='urn:ietf:params:xml:ns:xmpp-streams'>
	</policy-violation>
	<text xml:lang='en' xmlns='urn:ietf:params:xml:ns:xmpp-streams'>
	  Too many (2) failed authentications from this IP
      address (1xx.66.xx.xxx). The address will be unblocked at 04:24:00
      06.01.2017 UTC
    </text>
  </stream:error>
</stream:stream>

It was necessary to change saslFeatureReceived from SmackException to
XMPPException in order to return the StreamErrorException at this sync
point. But this change in return required the introduction of a
tlsHandled sync point for SmackException (which just acts as a wrapper
for the various exception types that could occurn when establishing
TLS). The tlsHandled sync point is marked successful even if no TLS
was established in case none was required and/or if not supported by
the server.
2017-01-07 10:38:41 +01:00
Florian Schmaus 24bbe63da1 Minor code improvements in DNSutil 2017-01-06 14:49:12 +01:00
Florian Schmaus 96aad6a4aa Add TODOs about when to remove deprecated methods 2017-01-04 16:00:53 +01:00
Florian Schmaus e9bbe9a475 Fix OOB exception when setHostAddress(InetAddress) is used.
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
  at java.lang.String.charAt(String.java:658)
  at org.jivesoftware.smack.util.dns.HostAddress.<init>(HostAddress.java:48)
  at org.jivesoftware.smack.util.dns.HostAddress.<init>(HostAddress.java:62)
2017-01-04 15:35:47 +01:00
Florian Schmaus 90a5e289f8 s/processPacket/processStanza/ s/PacketCollector/StanzaCollector/ 2017-01-03 11:35:04 +01:00
Florian Schmaus 9328182912 Rework Bits of Binary implementation 2017-01-03 11:05:46 +01:00
Florian Schmaus 70e860fe27 Add SmackConfiguration.addDisabledSmackClasses(String...) 2017-01-03 11:00:05 +01:00
Florian Schmaus 183c605278 Bump JXMPP to 0.5.0 2017-01-02 09:40:46 +01:00
Florian Schmaus f633313c4a Add Message.setBody(CharSequence) 2017-01-02 00:47:25 +01:00
Florian Schmaus 3129165a1c Add ConnectionConfiguration.setHostAddress(InetAddress)
In previous Smack versions, it was possible to set the host's IP
address via setHost(String), this is no longer possible (since the
support for DNSSEC was introduced). The new
setHostAddress(InetAddress) allows it again to explicitly specifiy the
XMPP service's host IP.
2016-12-28 23:18:28 +01:00
Florian Schmaus ecf1ed7f6b Fix EntityCapsManager presenceSend
capturing all outoing presences of type 'available' would also capture
presences not used for presence broadcast, e.g., MUC presences.

This caused the EntityCaps integration test (localEntityCaps) to fail
if the MUC integration test was run before.
2016-12-23 23:52:29 +01:00
Florian Schmaus 8511a9e67b Fix deadline check
The pattern

if (now > deadline) break;
wait(deadline - now);

is insufficient in case "now == deadline" because the result would be
wait() being called with 0, which would mean "wait until
notified". Thus, the timeout would become infinite.
2016-12-19 16:29:16 +01:00
Florian Schmaus b558a128c3 Merge remote-tracking branch 'my/master' 2016-12-07 21:20:02 +01:00
Florian Schmaus 274e5630c4 Add support for XEP-0133: Service Administration
also extend Smack's integration test framework to use XEP-0133 as a
means for of throw away account creation.

Fixes SMACK-742
2016-12-04 21:42:50 +01:00
Florian Schmaus d976434bb3 Improve message of XMPPErrorException
by including the XMPP entity which send the XMPP error reply to us.

Also cleanup the no longer used constructors.
2016-11-29 16:40:08 +01:00
Florian Schmaus 9165e818d9 Add ParenPad and NoWhitespaceAfter checkstyle rules 2016-11-29 12:01:41 +01:00
Florian Schmaus 9d0d8088f4 Don't throw when calling UnparsedIQ.toXML()
this causes the debugger to terminate if an unparsed IQ is shown.
2016-11-24 10:38:19 +01:00
Florian Schmaus 1f1bc236fd Ads support for SCRAM-SHA-1-PLUS
Related to SMACK-398.
2016-11-20 19:34:17 +01:00
Florian Schmaus 44744de003 Prepare SASL SCRAM API for other hash functions 2016-11-20 15:28:02 +01:00
Florian Schmaus e71d159b96 Smack 4.1.9
-----BEGIN PGP SIGNATURE-----
 
 iQF8BAABCgBmBQJYMZ8OXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
 ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ5Nzc1MDU5RjNBMjFEQ0UxNkJFNEZCQUUy
 MjM5QTdFOEY1ODUyMDUyAAoJECI5p+j1hSBSK88H/0L0gxM9Pb4Eki4KLi0iUuMy
 QtP0L7r4uLkZxgmOx7pmkY84jIRhkO2zQYubdK4qBzcGzQapHU5J6wOy/HCVVgp7
 Roys1krA3hT0sNL+jnDvsnGU1nc5eb4TftP6ie9mm2Io0nYLoMrWfgxK7FN3xUj/
 3tQn3cpkH5yIWHkaokXS45BHQEXm+uy7gvV/yqcjziyopKnsbvERLudQzFLBz+0w
 z/vljq0W0k22nrLc8syaLhgmY7uyeksqmPXC0EctMgI6HxuJyaFFwtZbATnyzfpk
 1+45QcoSkgw/2u03gZPThj/Pk0nV5h1feKYw/ZUx3VWd4UCd5cjM2on4zzWEro0=
 =OkN/
 -----END PGP SIGNATURE-----

Merge tag '4.1.9'

Smack 4.1.9
2016-11-20 14:53:44 +01:00
Florian Schmaus eb9242768c Throw exception if stanza child contains text 2016-11-15 22:41:24 +01:00
Florian Schmaus 5a47f56cd0 Call shutdown() before throwing
Follow up on a9d5cd4a61 /
059ee99ba0 (SMACK-739).
2016-11-15 07:20:58 +01:00
Florian Schmaus 059ee99ba0 Move TLS Required check at the end of connect()
It was a *very* bad idea to perform the SecurityMode.Required check in
the connection's reader thread and not at the end of
AbstractXMPPConnectin's connect(). :/

This behavior dates back to 8e750912a7

Fixes SMACK-739
2016-11-14 20:31:13 +01:00
Florian Schmaus a9d5cd4a61 Move TLS Required check at the end of connect()
It was a *very* bad idea to perform the SecurityMode.Required check in
the connection's reader thread and not at the end of
AbstractXMPPConnectin's connect(). :/

This behavior dates back to 8e750912a7

Fixes SMACK-739
2016-11-12 11:59:06 +01:00
Florian Schmaus 013f4d630a Move duplicate code in AbstractXMPPConnection
from XMPP(TCP|BOSH)Connection.
2016-11-12 11:03:44 +01:00
Florian Schmaus 6cf3ad32f9 Remove unnecessary semicolon in StringUtils 2016-11-06 11:14:19 +01:00
Florian Schmaus 5a2326a856 Add convinient constructors for Message and Presence 2016-10-31 12:24:03 +01:00
Dmitry Deshevoy 267fc431e5 Fix typo in TLSUtils 2016-10-31 10:50:34 +01:00
Florian Schmaus a1630d033e Add support for DNSSEC/DANE
This closes the cycle which started with a GSOC 2015 project under the
umbrella of the XSF adding DNSSEC/DANE support to MiniDNS.

Fixes SMACK-366.
2016-10-31 10:45:38 +01:00
Florian Schmaus 6e04a9d0ff Use 24h timestamp in debuggers. 2016-10-20 17:44:23 +02:00
Florian Schmaus fca2f59e08 Fix SCRAM-SHA1 mechanism creating invalid c-nonce
Because of the condition "c >= 32", Smack would possible return a
c-nonce containing ASCII whitespace characters (32d, 0x20), which are
not allowed in the c-nonce as per RFC 5802.

This commit applies the correct condition: "c > 32".

Fixes SMACK-735.
2016-10-20 17:00:52 +02:00
Andrey Prokopenko 2b83decc89 Handle success SASL messages containing equals sign
More strict conformance to RFC 6120 § 6.4.6, correctly handle
success SASL message which consists of a single equals sign.
Fixes SMACK-737.
2016-08-31 22:28:00 +02:00
Florian Schmaus 0e72213760 Add ConnectionConfiguration.setXmppDomain(String)
for easier usage and so so that the examples actually work. :)

Also some javadoc improvements.
2016-08-09 17:47:09 +02:00
Florian Schmaus d37d26547c Improve MUC code and documentation
- use JID types
- make clases immutable
2016-08-03 19:12:57 +02:00
Florian Schmaus e04697d349 Improve Collector javadoc 2016-08-03 19:12:24 +02:00
Florian Schmaus 4d7e4b2ab1 Add Message(String, String) constructor
to make simply Smack examples work, e.g.

Message message = new Message("user@example.org", "Hi, how are you?");
2016-07-24 21:21:21 +02:00
Florian Schmaus aeb385a022 Apply refinements and fixes to the MAM code
SMACK-625.
2016-07-23 15:45:45 +02:00
Florian Schmaus b91978dcc4 Add (partial) support for IoT XEPs
That is XEP-0323, -0324, -0325, and -0347.

SMACK-727.
2016-07-21 08:51:11 +02:00
Florian Schmaus d3cc9d12a0 Implement flexible port selection in Socks5ClientTest 2016-07-08 08:07:37 +02:00
Florian Schmaus 45b04800a4 Handle AlreadyConnectedException in ReconnectionManager
Fixes SMACK-725.
2016-07-04 08:27:18 +02:00
Florian Schmaus e943bbbd91 Handle AlreadyLoggedInException in ReconnectionManager
Fixes SMACK-725.
2016-07-04 08:27:06 +02:00
Florian Schmaus 1f87185ee8 Do not base64 twice in SASL X-OAUTH2
Fixes SMACK-722.
2016-07-04 08:25:01 +02:00
Florian Schmaus 17c9661283 Handle AlreadyLoggedInException in ReconnectionManager
Fixes SMACK-725.
2016-07-01 08:18:56 +02:00
Florian Schmaus ac5d9d56c6 Do not base64 twice in SASL X-OAUTH2
Fixes SMACK-722.
2016-06-01 13:10:11 +02:00
Florian Schmaus 86e11e69e8 Add Message.toString() providing a short description 2016-05-25 22:58:34 +02:00
Florian Schmaus 98ec77caee Use Message in FromMatchesFilterTest 2016-05-25 22:58:34 +02:00
Florian Schmaus 2bf6435881 Make Bind IQ constructor private 2016-05-25 22:58:34 +02:00
Florian Schmaus 03031dfb5d Add javadoc to SASLError 2016-05-22 22:55:28 +02:00
Florian Schmaus f4ce4b6e77 Add @see RFC for Presence's priority element 2016-05-21 12:44:13 +02:00
Florian Schmaus fa10a01831 Fix Presence.setPriority(int): Range is [-128,127]
Thanks to Guus der Kinderen for reporting this.
2016-05-21 12:44:13 +02:00
Florian Schmaus 4c63cfafd7 Rework support for Proxy connections
in order to improve support for Tor connections.

This makes it possible to establish a connection to an .onion domain by
manually setting host and port in the ConnectionConfiguration and
configuring a Socks5Proxy pointing to a Tor node.

Fixes SMACK-720.
2016-05-10 18:57:04 +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 58d9f4e749 Use Locale.US in XMPPError.Type ↔ String conversion
Fixes SMACK-719
2016-04-12 15:05:56 +02:00
Florian Schmaus 8235e8417d Use simple name in StanzaTypeFilter 2016-04-12 15:05:56 +02:00
rohanag12 d69265774b Update DefaultExtensionElement.java
Removed duplicate word from description
2016-01-30 12:44:43 +05:30
Andrey Starodubtsev 35ba917728 Fix a couple of javadoc warnings 2016-01-18 22:08:43 +01:00
Florian Schmaus 23201d5f0f Improve logging of failed presence extensions
Don't log the exception for now because the stack trace makes to much
noise in the log output. This is mostly caused by Googles outdated
Entity Capabilities implementation.
2016-01-18 22:08:23 +01:00
Florian Schmaus e6a9027cc6 Improve StringUtils.escapeForXml() 2016-01-18 22:04:20 +01:00
Florian Schmaus 2539c10246 Fix javadoc of ConnectionException
Related to SMACK-711.
2016-01-10 19:38:29 +01:00
Florian Schmaus ac0c05be04 StringUtils: Make randGen and numbersAndLetters final 2016-01-10 18:34:54 +01:00
Florian Schmaus 7a8d66e9e6 Improve logging of failed connection attempts
also improve XMPPTCPConnection.connectUsingConfiguration(): Try further
hostAddresses if getAllByName failes.

Fixes SMACK-711
2016-01-10 18:34:54 +01:00
Florian Schmaus 658a671cbe Make StringUtils.randomString(int) use SecureRandom 2016-01-10 18:21:46 +01:00
Florian Schmaus f79a7d9d5f Fix javadoc warnings 2015-12-19 13:30:15 +01:00
Florian Schmaus 45feaecdf7 Make XMPPError imutable and add stanza reference 2015-12-09 10:48:52 +01:00
damencho 035bbea837 Reply with service-unavailable for unhandled IQ requests
instead of feature-not-implemented.

Changes to send service-unavailable for not handled iq as said in
RFC6120 § 8.4: https://tools.ietf.org/html/rfc6120#page-128

"""
o  If an intended recipient receives an IQ stanza of type "get" or
   "set" containing a child element qualified by a namespace it does
   not understand, then the entity MUST return an IQ stanza of type
   "error" with an error condition of <service-unavailable/>.
"""
2015-12-06 17:09:47 +01:00
Florian Schmaus 3c2dd9b9e6 Improve javadoc of getIQChildElementBuilder() 2015-11-24 10:58:41 +01:00
Florian Schmaus 8dcb3c11ff Smack 4.1.5
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQF8BAABCgBmBQJWUjTuXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
 ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQxMzU3QjAxODY1QjI1MDNDMTg0NTNEMjA4
 Q0FDMkE5Njc4NTQ4RTM1AAoJEIysKpZ4VI41zp8H/iRB0CtFvxVBFwRpP2HB0Iyc
 VzdxJTVXgJ7s8V3Us2Gmm0chUvs1wybshIdZ090NX7huZ4F1rWrOP7qt9S4soKgX
 LNdKTKTTNJ61jktLkG1HjA8yJr1Zu+XFK10Ne8997N9TnhbcVYAhsuTb8SRE8dlE
 G1Qihe2guJCCnWJhz9bsCXyAFt/fM5rSb/sgs/kXkE1W5bYeMHpFMvqMfab8NPBP
 fkt/NSxfqLfrRJneynnSwGSvRitDxpfRCcxLktTdDO31eryayIyiQIhaUhFYIGJQ
 tKx0/7HdCkgdUueBdtoQ/O02rjJ+kYqN2F3CErcIbB//3R6WKNF61XzOY81egYc=
 =dklO
 -----END PGP SIGNATURE-----

Merge tag '4.1.5'

Smack 4.1.5
2015-11-22 23:14:02 +01:00
Florian Schmaus 81fb1ed93c Make executorService blocking in AbstractXMPPConnection
Otherwise AbstractXMPPConnection.processPacket() will throw a
RejectedExecutionException if the underlying queue is full.

Fixes SMACK-702.
2015-11-21 17:31:39 +01:00
Florian Schmaus 227ef2c5ae Add StandardExtensionElement
replaces DefaultExtensionElement which is now deprecated.

Also changes Stanza (and MultiMap) API so that there can be duplicate extension
elements, as this change is required for StandardExtensionElement and by
the XMPP standard.
2015-10-19 08:21:42 +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 e9f7710759 Fix spelling in ConnectionConfiguration 2015-09-27 23:12:18 +02:00
Florian Schmaus e1f09032d9 Fix javadoc link in ConnectionConfiguration.Builder 2015-09-27 23:11:56 +02:00
Florian Schmaus 9c694a0a75 Code cleanup: Fix some warnings 2015-09-24 12:59:17 +02:00
Dave Cridland 9c772add93 SASL Proxy Auth support
This adds the ability to provide a distinct authorization identifier for use
by SASL mechanisms. Not all SASL mechanisms support this operation, in
particular CRAM-MD5.

Both the javax and provided SASL implementations are extended, and an authzid
parameter added to the authenticate method.

The authorization identifier is passed as a EntityBareJid in order to assure the
correct form.

Resolves SMACK-677.

Minor-Modifications-By: Florian Schmaus <flo@geekplace.eu>
2015-09-21 20:39:23 +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 d728204890 Add errorprone check and fix found errors
Adds gradle-errorprone-plugin 0.0.8, requires Gradle 2.6.
2015-09-13 18:12:33 +02:00
Florian Schmaus b1e4884fbb Remove erroneous next() from AbstractJsonExtensionProvider
Fixes SMACK-695.
2015-08-24 11:09:59 +02:00
Florian Schmaus 33e5c37af8 Refactor PEP to use PubSub API.
Fixes SMACK-416.
2015-08-17 12:45:23 +02:00
Florian Schmaus 9884eee85d Provide a hint in NotConnectedException
that connect() needs to be called prior login().

SMACK-686
2015-07-29 08:20:46 +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 7032688123 Rework Proxy API
Instead of extending SocketFactory, the proxy support classes now
implement ProxySocketConnection. This removes a lot of unnecessary
code.

Also re-enables proxy support, which was broken in previous versions
because none of extended SocketFactories did override
createSocket() (SMACK-683).
2015-07-17 08:50:19 +02:00
Florian Schmaus 46f9b9ab39 Improve StringUtils.escapeForXML()
use CharSequence as input.
2015-07-15 19:56:46 +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 710948c8f7 Add support for XEP-360: Nonzas
SMACK-682
2015-07-14 22:43:58 +02:00
Florian Schmaus 734695c80e Improve StringUtils.collectionToString()
Use generics, and iterator and append(char) instead of append(String).
2015-07-14 13:40:23 +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 e6a403fb1c Re-escape XML text in parseContentDepth()
SMACK-680.
2015-07-02 16:10:50 +02:00
Florian Schmaus 9ea5c0a2ce "Smackify" HOXT code: Use Smack programming idioms 2015-07-01 13:39:04 +02:00
Florian Schmaus ebcbdb75cd Smack 4.1.2
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQF8BAABCgBmBQJVjpgTXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
 ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQxMzU3QjAxODY1QjI1MDNDMTg0NTNEMjA4
 Q0FDMkE5Njc4NTQ4RTM1AAoJEIysKpZ4VI41g0IH/3dJedDe6D8BySl4YVoFkQEk
 Ax6T9oguTHN4o+6wnIjZUMBqycxKbwCppwE8ydrsarpxBicehwLzgaegxqVOtqM/
 /7ZNzMiASxzeSCOQpR6dxNYGZp/buY3yaL4hweVh8V+vRVxzk/dXBpl6Syba+G1N
 ytpCfeC6bGd+Gf5aQ9SA8rPz3ZP99twFNuKYwZGkC8/ePtieT8YthKwwnaIlCuFL
 BZbhgR24W5pDtaCocTBUnI2wTqv2WsEx6+6LNEHsg2pbAwf2hYw12LPk0krvZOOV
 PSK/Jtq5qdXrq/vNudvfuVmk5KnhS8BO/WIY+8+EsYBFfP0W7ajZl69KGOxobNQ=
 =dg39
 -----END PGP SIGNATURE-----

Merge tag '4.1.2'

Smack 4.1.2

Conflicts:
	version.gradle
2015-06-27 15:07:04 +02:00
Florian Schmaus 65788389ea Reset ReconnectionManager's 'attempts' to 0
on successful reconnects. Fixes SMACK-668.
2015-06-27 14:25:19 +02:00
Florian Schmaus a997283304 Make AbstractXMPPConnection.getConfiguration public 2015-06-26 14:04:46 +02:00
Florian Schmaus 989076a166 Make synchronization point return the exception
instead of a boolean value.
2015-06-13 19:26:57 +02:00
Florian Schmaus 13224a9662 More information in closed on error log 2015-06-09 22:25:19 +02:00
Florian Schmaus a85ba5311e Add more information to NotConnectedException 2015-06-09 22:16:01 +02:00
Florian Schmaus bad52fad21 Deprecate setServiceName in favor of setXmppDomain 2015-06-08 14:42:05 +02:00
Florian Schmaus 4a857fe67a Assert that a Stanza is a Stanza in sendStanza 2015-06-06 11:16:12 +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 9a00e09c0a Improve NoResponseException messages 2015-06-02 17:30:57 +02:00
Florian Schmaus c125a3b055 Bump jxmpp to 0.5.0-alpha4 2015-05-27 19:29:51 +02:00
Florian Schmaus 8840236b72 Gracefully disconnect XMPPTCPConnection
That is, wait with a timeout for a closing stream element if we have
sent a closing stream element to the server. See RFC 6120 § 4.4.

Fixes SMACK-633.
2015-05-27 17:36:04 +02:00
Florian Schmaus 01f08e87c2 Merge branch '4.1'
Conflicts:
	smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java
	version.gradle
2015-05-24 22:36:11 +02:00
Florian Schmaus 385798f9ba Only add Entity Capabilities extension to available presences
Also don't override eventually send presences on
updateLocalEntityCaps(), instead save the last sent Presence stanza and
re-send that stanza.

SMACK-669.
2015-05-22 08:45:53 +02:00
Florian Schmaus c120bc1cbc Handle empty array in SASLMechanism.authenticate()
like null array.

Thanks to Anthony Sorvari for reporting.

Fixes SMACK-670.
2015-05-22 08:24:54 +02:00
Florian Schmaus 8db0403138 Improve writing XML elements to socket
Instead of allocating one big continuous memory block before "writing"
the XMPP stream element to the socket, write the single CharSequences of
LazyStringBuilder/XmlStringBuilder.

Also change Obserable writer to only notify the listeners after a
flush *or* if a certain limit has been reached since the last
notification. Otherwise the debugger would "print" every single XML part
as result of this change.
2015-05-21 22:41:21 +02:00
Florian Schmaus 3c2ba0ec43 Add AbstractXMPPConnection.getUsedSaslMechanism()
and improve isAnonymous(). Also some minor changes to
SASLAuthentication.
2015-05-19 09:26:59 +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 0c8199650b Improve parsing exception callback.
Fixes SMACK-631.
2015-05-18 12:38:25 +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 236dfb009d Improve logging of parsing errors 2015-05-07 22:40:38 +02:00
Florian Schmaus 36cc05a507 Use Resourcepart as type for the resource 2015-05-04 20:53:00 +02:00
Florian Schmaus 9354e4fb74 Rework and improve authentication API and internals
Add

- performSaslAnonymousAuthentication()
- performSaslExternalAuthentication(SSLContext)
- addEnabledSaslMechanism(String)
- addEnabledSaslMechanisms(Collection<String>)

to ConnectionConfiguration.Builder.

Instead of providing a special API call for anonymous authentication,
Smack now has a configuration builder method to set anonymous/external
authentication. This also removes a lot of duplicate code within
Smack.

Also move SASLAnonymous into o.j.smack.sasl.core.

Fixes SMACK-629.
2015-05-03 22:00:41 +02:00
Florian Schmaus 4eb322608e Add ConnectionConfiguration.setProxyInfo(ProxyInfo)
Fixes SMACK-661.
2015-04-27 17:51:18 +02:00
Florian Schmaus a4be67ff5d Fix ReconnectionManager RANDOM_INCREASING_DELAY policy
which was using the same value. Fixes SMACK-660.
2015-04-27 17:35:00 +02:00
Florian Schmaus f579fb2c77 Throw exception if smack-java7 is loaded on Android 2015-04-25 22:53:46 +02:00
Florian Schmaus 17103def0b Change SmackExecutorthreadFactory constructor parameter to XMPPConnection 2015-04-22 09:45:02 +02:00
Florian Schmaus 7c3f4b7129 Add AbstractXMPPConnection.toString() 2015-04-22 09:28:30 +02:00
Florian Schmaus 189f524195 Make SynchronizationPoint interruptible
SMACK-632
2015-04-12 18:33:43 +02:00
Florian Schmaus 4a16ab9329 Merge branch '4.1'
Conflicts:
	version.gradle
2015-04-12 18:32:55 +02:00
Florian Schmaus 1eb315d6b7 Add Manager.getAuthenticatedConnectionOrThrow() 2015-04-09 19:00:03 +02:00
Florian Schmaus 9a69f992c4 Deprecate SynchronizationPoint.reportFailure()
assert and document that an exception must be set when calling
reportFailure(E).
2015-04-07 08:52:48 +02:00
Florian Schmaus cca34fd872 First check condition, then remaining wait in SynchronizationPoint
as otherwhise SynchronizationPoint may report NoResponseException when
there was in fact a success or failure reported in case there are
multiple threads waiting for the condition.
2015-04-07 08:51:03 +02:00
Florian Schmaus 83aa6838d9 Use signalAll in SynchronizationPoint
to prevent a thread from not being notified about a change of the state
of the SynchronizationPoint.

If two threads are waiting for a change, which could happen e.g. because
of a connectivity change and one thread does instantShutdown() while the
other handles connectionClosedOnError(), then only one thread, usually
the one handling connectionClosedOnError(), would be notified and
resumed.

Fixes SMACK-652.
2015-04-07 08:51:03 +02:00
Florian Schmaus 57fa631480 Add javadoc to SynchronizationPoint 2015-04-07 08:50:52 +02:00
Florian Schmaus 6c637d5784 Don't automatically login() on connect()
if the connection was authenticated before.

Fixes SMACK-647.
2015-04-06 13:51:47 +02:00
Florian Schmaus b4694ec152 Add FinalClass checkstyle check
And mark affected classes final.
2015-04-06 10:45:12 +02:00