Commit Graph

532 Commits

Author SHA1 Message Date
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
vanitasvitae 58c32639b5
Allow parsing of JingleReason.AlternativeSession
The JingleReasonProvider was faulty and ignored the
<alternative-session> element.
2017-07-06 16:55:12 +02:00
vanitasvitae 8bd3856fa1
Fix typos in filetransfer package 2017-07-06 14:01:28 +02:00
vanitasvitae 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
vanitasvitae 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
vanitasvitae 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
vanitasvitae 20eabca1b3
Also replace list with single transport-info info 2017-06-26 15:04:22 +02:00
vanitasvitae e2b8ffdf22
Switch to single transport instead of list 2017-06-21 13:42:02 +02:00
vanitasvitae 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
vanitasvitae 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
vanitasvitae 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
vanitasvitae e33bb5a741
Reorder imports 2017-06-14 00:01:05 +02:00
vanitasvitae a604266336
Create alternative-session JingleReason 2017-06-14 00:00:27 +02:00
vanitasvitae 62167a7857
Reorder imports 2017-06-13 23:58:41 +02:00
vanitasvitae 4ae8434852
Remove unused errors and add missing ones 2017-06-13 23:57:59 +02:00
vanitasvitae 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
vanitasvitae 23190604bd
Fix typos and xml issues 2017-06-04 20:41:27 +02:00
vanitasvitae 0a31161950
Add tests for jingle classes
Depends on #135, #136
2017-06-03 23:46:29 +02:00
vanitasvitae 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
vanitasvitae 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
Florian Schmaus b3662c0682 Make UnblockContactsIQ immutable
and make the serialization function idiomatic.
2017-01-20 08:56:50 +01:00
Florian Schmaus 07cba5b974 Make BlockContactsIQ immutable 2017-01-20 08:56:44 +01:00
Florian Schmaus 965cbcc979 Fix memory leak in MultiUserChat.enter(MucEnterConfiguration)
Thanks to Aleksander Melnichnikov for reporting this issue.

Fixes SMACK-745
2017-01-20 08:56:37 +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 b5415fe841 Don't wait the reply timeout in OfflineMessageManager.getMessages(List<String>)
for the last message. We now count the number of messages we want to
retrieve, and don't wait for another message if we have already
received all.

Thanks to King Jeong Hun for reporting this.
2017-01-12 13:40:55 +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 cff91f5a92 Use correct element and namepsace in AccountManager.isSupported() 2017-01-07 10:38:41 +01:00
Florian Schmaus 7167a55f81 AccountManager: Don't fallback to disco#info if not authenticated 2017-01-06 14:56:35 +01:00
Florian Schmaus 50a8ff08e3 Re-activate FormTest integration test 2017-01-04 00:32:52 +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 c688acaa0f Add XEP-0231: Bits of Binary implementation
Fixes SMACK-737
2017-01-03 11:00:05 +01:00
Fernando Ramirez 018a7dd93a Blocking Command: add blocked error management and refactor SMACK-731 2017-01-02 16:02:10 +01:00
Florian Schmaus 183c605278 Bump JXMPP to 0.5.0 2017-01-02 09:40:46 +01:00
Florian Schmaus 7655ac17f2 Re-activate EntityCaps integration test 2016-12-24 10:27:04 +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 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 d6ebb884e7 Ad-Hoc Commands: 'type' attribute is optional
Fixes SMACK-741
2016-11-23 17:55:16 +01:00
Florian Schmaus 1b1e88c4c3 Fix UOE being thrown in BlockingCommandManager
the manager must use a copy of the BlockListIQ's JID list, since it may
be the empty list which is not modifiable.

Also rename the getter methods from getJids() to getBlockedJids().
2016-11-23 17:52:04 +01:00
Florian Schmaus 54790cd380 Filter MUC 'decline' messages by type 'normal'
and not by '!error' as this there are presence stanzas containing the
muc#user namespace also send to the client, which results in a
ClassCastException in the StanzaListener.
2016-11-14 08:50:46 +01:00
Florian Schmaus 5bb0c8c223 Option to automatically rejoin MUC rooms after reconnection
Fixes SMACK-572.
2016-11-06 11:14:19 +01:00
Florian Schmaus 095b5c85a1 Also catch SmackException in Socks5BytestreamRequest
and use try/multi-catch.
2016-11-05 20:02:25 +01:00
Florian Schmaus 4f7324103c Throw instead of return in Socks5Client
Returning a boolean is not really expressive in such cases. For example,
if it returns 'false' then the callee has no information *what* went
wrong. Instead throw an SmackException with some more information.
2016-11-05 19:56:34 +01:00
Florian Schmaus 32b4e74910 Improve exception message of Socks5 code 2016-11-05 18:24:07 +01:00
Florian Schmaus 1f66f301ba Improve "Invalid affiliation" exception message 2016-10-03 13:12:05 +02:00
Florian Schmaus 810e7c8b78 Prevent GC of connection within pingServerIfNecessary() 2016-09-05 14:56:40 +02:00
Florian Schmaus 9a16f68433 Remove Socks5ProxyTest.shouldOnlyStartOneServerThread()
The unit test relied on Thread.activeCount() which made the whole test
unreliable.
2016-09-01 08:53:24 +02:00