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
Florian Schmaus
99bf8316f5
Add javadoc about callbacks to XMPPConnection
2019-04-16 09:33:07 +02:00
Florian Schmaus
9c30e4f3cc
Merge branch '4.3'
2019-04-16 09:27:48 +02:00
Florian Schmaus
6076a9dfa5
Introduce asyncGoLimited()
...
which limits the number of threads created for asynchronous
operations.
Fixes SMACK-864.
2019-04-14 21:40:09 +02:00
Florian Schmaus
474ea68d4a
Remove unused method in Smack's Base64 API
2019-04-09 10:56:47 +02:00
Florian Schmaus
62fd897cf7
Add support for XEP-0418: DNS Queries over XMPP (DoX)
...
Fixes SMACK-862.
2019-04-09 10:56:47 +02:00
Florian Schmaus
75b1d8ce13
Add AbstractError.Builder.setDescriptiveEnText(String, Exception)
2019-04-09 09:33:32 +02:00
Florian Schmaus
1122bf394c
Add ExceptionUtil
2019-04-09 09:33:32 +02:00
Florian Schmaus
3075430713
Use IQ.isRequestIQ() in IQ
2019-04-09 09:33:32 +02:00
Florian Schmaus
d1f2631771
Use IQ.isResponseIQ() in AbstractXMPPConnection
2019-04-09 09:33:32 +02:00
Florian Schmaus
87e0ac9ba1
Add IQ.isResponseIQ()
2019-04-09 09:33:32 +02:00
Florian Schmaus
7d5274dad1
Use java.util.Base64 and remove build-in Base64 API
2019-04-09 09:33:32 +02:00
Florian Schmaus
d6b6fdca17
Add ConnectionConfiguration.setXmppAddressAndPassword()
2019-04-07 16:44:04 +02:00
Florian Schmaus
38384a1eed
Improve javadoc of ConnectionConfiguration
2019-04-07 16:43:48 +02:00
Florian Schmaus
89c0fa4b99
Let StringUtils.(insecure)randomString() return empty string
...
in case length is zero. Also do throw a NegativeArraySizeException if
length is negative instead of returning null.
This fixes the following sporadic test issue:
org.jivesoftware.smackx.ox.PainlessOpenPgpProviderTest > encryptDecryptTest FAILED
java.lang.AssertionError
at org.jivesoftware.smack.util.XmlStringBuilder.escape(XmlStringBuilder.java:425)
at org.jivesoftware.smackx.ox.element.EncryptedOpenPgpContentElement.addCommonXml(EncryptedOpenPgpContentElement.java:65)
at org.jivesoftware.smackx.ox.element.CryptElement.toXML(CryptElement.java:51)
at org.jivesoftware.smackx.ox.element.CryptElement.toXML(CryptElement.java:31)
at org.jivesoftware.smack.packet.Element.toXML(Element.java:41)
at org.jivesoftware.smackx.ox.element.OpenPgpContentElement.toInputStream(OpenPgpContentElement.java:186)
at org.jivesoftware.smackx.ox.crypto.PainlessOpenPgpProvider.encrypt(PainlessOpenPgpProvider.java:136)
at org.jivesoftware.smackx.ox.PainlessOpenPgpProviderTest.encryptDecryptTest(PainlessOpenPgpProviderTest.java:155)
because EncryptedOpenPgpContentElement rpad field was sometimes
'null' in case the random function returned '0' as length.
2019-03-25 18:58:58 +01:00
Florian Schmaus
14f288a763
Introduce RandomUtil
...
and use it in EncryptedOpenPgpContentElement
2019-03-25 18:58:58 +01: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
a23adfab6e
Merge branch '4.3'
2019-03-24 00:16:24 +01:00
Oliver Mihatsch
007a04c4fe
Better error messages when using a Proxy to connect to the XMPP server.
2019-03-24 00:12:32 +01:00
Oliver Mihatsch
3450ffad2b
Do not use "CONNECT" in the Host header field.
2019-03-24 00:09:54 +01:00
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
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
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
f0af00ee43
XEP-0373, XEP-0374: OpenPGP for XMPP: Instant Messaging
...
Fixes SMACK-826
2018-07-29 18:52:45 +02:00
74bebc13e6
requireNotNullOrEmpty -> requireNotNullNorEmpty
2018-07-17 15:10:39 +02:00
4afe573a68
Add Objects.requireNonNullOrEmpty
2018-07-17 11:39:51 +02:00
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