Florian Schmaus
9ab50c374d
[extensions] Use StanzaView as parameter type in BoBDataExtension.from()
...
BoBDataExtensions can also appear in IQs (Registration IQ), and
potentially also Presence stanzas.
Fixes SMACK-901.
2021-01-25 14:29:21 +01:00
Florian Schmaus
d64a9d9029
[xdata] Fix NPE in DataForm.Builder.addItem()
...
Fixes SMACK-900.
2021-01-12 09:41:46 +01:00
Florian Schmaus
1bfb9f34f1
Merge branch '4.4'
2021-01-12 09:22:42 +01:00
Florian Schmaus
df3ca4100b
[caps] Check for null in EntityCapsManager.addCapsExtension()
...
To avoid a NPE, we check for null in addCapsExtension.
Fixes SMACK-899.
2021-01-12 09:01:19 +01:00
Florian Schmaus
35a71f0131
Merge branch '4.4'
2021-01-06 13:51:38 +01:00
Florian Schmaus
d64ee785bd
[extensions] Add BoBDataExtension getBobData() and getContentId()
...
Those two methods where missing after the BoB API redesign.
Fixes SMACK-896.
2021-01-06 13:47:09 +01:00
198c51356d
Add initial support for XEP-0103 and XEP-0104: URL Address Information
2020-12-31 00:10:18 +01:00
Florian Schmaus
d8642847ea
Smack 4.4.0
...
-----BEGIN PGP SIGNATURE-----
iQGTBAABCgB9FiEEl3UFnzoh3OFr5PuuIjmn6PWFIFIFAl/Msl5fFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDk3
NzUwNTlGM0EyMURDRTE2QkU0RkJBRTIyMzlBN0U4RjU4NTIwNTIACgkQIjmn6PWF
IFIq8gf9GZp0Cl9Gr+seA/C8nczE/cNRKfHnDR224klbjlGrnojb+bL2QgeKG6wN
u/eL3+UMus8uw3+R8NKARawqt/r6mbk4bgdGEbzoByLO6iiPYTr7TuZmTOQyZa5L
tMNkFIvfvMzDeDDqI4z4uTgT3s7YBg0d4BT7cL8T6RaZGHF57OxqhWnKxMuaiTXH
HJzVTPrtAcYg17QZl5+mrhiWyynE5+4QGeluYHlh7vvsniwNOqrwO1vWHg2BX003
DjaHK+6oLjKxVljCklXxE7Wsx0VcMrBfv2qZwW3Q4ZzZVcrAn8TC4HrUtR8DL176
DpGlEhmmdr3xKKX0JQ9RmIod+xSabw==
=4wGX
-----END PGP SIGNATURE-----
Merge tag '4.4.0'
Smack 4.4.0
2020-12-06 12:16:44 +01:00
Florian Schmaus
a4bb5bfda8
[ibb] Use UInt16 for 'seq' and fix its handling
...
Fixes a off-by-one error when incrementing 'seq'. Thanks to Kim
Alvefur <zash@zash.se> for spotting this.
2020-12-05 23:04:17 +01:00
Florian Schmaus
3f3a7cb540
Merge branch '4.4'
2020-11-09 21:23:25 +01:00
Guus der Kinderen
59cf449799
Provide more detailed code comment.
2020-11-09 21:21:27 +01:00
Guus der Kinderen
0ff8040895
FileTransfer: replace Error.none with null
...
This fixes an inconsistent representation of a 'no error' representation, that
causes a file transfer in which not enough bytes were transferred to _not_ be
marked as having a problem.
2020-11-09 21:21:27 +01:00
Florian Schmaus
71f5cfe3da
Merge branch '4.4'
2020-11-09 11:08:47 +01:00
Florian Schmaus
1f5ada4822
Add org.jivesoftware.smack.Smack with getVersion() and ensureInitialized()
2020-11-09 08:46:57 +01:00
Florian Schmaus
df96c57093
[address] Get rid of PacketCopy workaround
...
PacketCopy subclassing Stanza was always a peculiarity. The only
subclasses of Stanza should be Message, Presence, and IQ.
2020-11-09 08:46:56 +01:00
Florian Schmaus
7e311ab9df
[muc] Prevent race condition on enter() by waiting
...
This prevents a race condition of enter() with the presence listern by
waiting until all presences have been processed.
Reported-by: Guus der Kinderen <guus@goodbytes.nl>
2020-11-09 08:46:56 +01:00
Florian Schmaus
f12fe2264a
[muc] Only retrieve MUCUser once in Presence listener
2020-11-08 19:37:41 +01:00
Florian Schmaus
cfccc78ba0
[muc] Rename local variable 'presence' to 'reflectedSelfPresence'
...
To increase readability, and with that maintainability, we rename
'presence' to 'reflectedSelfPresence' in MultiUserChat.enter(), to
make it clear what kind of presence this variable holds.
Also mark the variable as final.
2020-11-03 22:31:22 +01:00
Guus der Kinderen
55d7b9d4eb
Fix pubsub options rendering
...
The exiting code generates an unintentional nested 'options' child element:
```
<iq to='pubsub.example.org' id='FQTHU-126' type='get'>
<pubsub xmlns='http://jabber.org/protocol/pubsub '>
<options node='sinttest-multisubscribe-nodename-13pnc'>
<options jid='smack-inttest-two-13pnc@example.org'
node='sinttest-multisubscribe-nodename-13pnc'/>
</options>
</pubsub>
</iq>
```
This commit removes the undesired nesting, resulting in:
```
<iq to='pubsub.example.org' id='FQTHU-126' type='get'>
<pubsub xmlns='http://jabber.org/protocol/pubsub '>
<options jid='smack-inttest-two-13pnc@example.org'
node='sinttest-multisubscribe-nodename-13pnc'/>
</pubsub>
</iq>
```
2020-10-27 10:23:17 +01:00
Florian Schmaus
5782fff2a4
Merge branch '4.4'
2020-09-23 21:42:51 +02:00
Florian Schmaus
6d39a4e3ac
[bob] Add BoBDataExtension, remove BoBExtension
...
BoBExtension extending XHTMLExtension was poorly designed and only
worked for a single paragraphy.
Fixes SMACK-770.
2020-09-23 19:57:13 +02:00
Florian Schmaus
fe7d3bec30
Make Forwarded a generic type
...
Fixes SMACK-821.
2020-09-23 17:48:04 +02:00
Florian Schmaus
d00656493a
[jingle] Use correct XmlStringBuilder constructor in JingleReason
2020-08-26 11:34:57 +02:00
Florian Schmaus
3003094130
Merge pull request #412 from Flowdalic/data-form-type-annotations
...
[xdata] Parse forms of any kind without field type annotations
2020-07-23 17:24:48 +02:00
Florian Schmaus
1bd097ed9b
Merge pull request #411 from Flowdalic/sasl
...
SASL / getFeature()
2020-07-23 16:09:57 +02:00
Florian Schmaus
103ffabc08
[xdata] Parse forms of any kind without field type annotations
...
We previously only looked in the registry for 'submit' type forms. But
also 'result' type forms may be send without field type
annotations. Same is true, but less likely, for 'form' type forms.
2020-07-23 15:47:17 +02:00
Florian Schmaus
329948b442
Add XMPP.(get|has)Feature(Class|QName) and deprecate (String, String)
2020-07-23 14:32:14 +02:00
Florian Schmaus
b7fe56fb9b
[xdata] Add message to IllegalArgumentException
2020-07-06 11:51:12 +02:00
Florian Schmaus
3e8666cd91
[xdata] Fix case in FillableForm
2020-07-06 11:51:12 +02:00
Florian Schmaus
ed02bcf0d4
[ibb] Ensure InBandBytestreamManager is a singleton
...
InBandBytestreamManager followed an unusual pattern: Within the
connectionTermianted() callback, it would remove itself from the
'managers' map. This allowed for multiple instances of an
InBandBytestreamManager to exist for the same connection, causing all
kinds of issues.
This fixes the issue by changing InBandBytestreamManager to use the
Smack-idiomatic pattern used by managers.
We also do no longer reset the listeners if the connection is
termianted, as listeners (and handlers) typically persist until they
are explicitly removed by the user.
As positive side-effect, the number of indeterministic unit-tests,
caused by using Thread.sleep(), is reduced. The executor service in
InitiationListener was also removed, because the IQ handler is already
called asynchronously to the connections main loop.
Thanks to Anno van Vliet for reporting this.
2020-07-03 22:01:15 +02:00
99cb60dac7
Add missing rightangle bracket to FormNode addXml()
2020-06-15 16:15:27 +02:00
Florian Schmaus
3f9ca68134
Delete TypedCloneable
2020-06-14 17:38:51 +02:00
Florian Schmaus
18c2c37ad0
Rename XmlUnitUtils to XmlAssertUtil
2020-06-14 16:53:21 +02:00
Florian Schmaus
9d6665735f
[pubsub] Rework NodeExtension.toXML()
2020-06-14 16:52:13 +02:00
damencho
8e337d7810
[muc] Make providesMucService() use the KNOWN_MUC_SERVICES cache
...
This reduces the number of disco#info queries on MUC join in some
situations.
2020-06-12 15:54:14 +02:00
Florian Schmaus
ccc785062e
[extensions] Deprecate old-style PepManager PEP listeners
2020-05-25 20:32:47 +02:00
Florian Schmaus
d65f2c932e
Bump Error Prone version to 2.3.4 and fix new bug patterns
2020-05-24 21:10:01 +02:00
Florian Schmaus
9a8ee3c8e3
[core] Improve NumberUtil's exception message and fix javadoc
2020-05-24 13:08:03 +02:00
Florian Schmaus
ebe5c49e92
[checkstyle] Tighten JavadocMethod checkstyle rule
2020-05-23 22:43:29 +02:00
Florian Schmaus
a137944e50
[disco/caps] Fix DiscoverInfo.asBuilder()
...
The method would not copy the extensions elements, which would lead to
a false calculation of the caps hash by EntityCapsManager.
2020-05-22 15:38:16 +02:00
Florian Schmaus
0db6406262
[softwareinfo] Separate static and non-static fields by empty line
2020-05-22 15:36:39 +02:00
Florian Schmaus
54d6bc8658
[softwareinfo] Remove SoftwareInfoManager.isSupported(Jid)
...
SoftwareInfoManager.fromJid(Jid) will return 'null' if the jid in
question does not announce or support this.
2020-05-22 15:35:56 +02:00
Florian Schmaus
027358fc63
[softwareinfo] Remove unnecessary throws declarations
2020-05-22 15:34:27 +02:00
Florian Schmaus
b3c57ef918
[xhtmlim] Use stanza builder API, deprecate old
2020-05-21 22:45:28 +02:00
Florian Schmaus
2679c72f0f
[disco] Move logic that was previously in EntityCapsManager in SDM
2020-05-18 09:15:15 +02:00
Florian Schmaus
46ba273689
[disco] Delay the entity caps renewal
...
This avoids the calculation of the caps hash while the managers become
registered with the connection and add their features.
2020-05-18 09:15:14 +02:00
Florian Schmaus
f00acbff89
Merge pull request #340 from adiaholic/XEP-0232
...
Add support for XEP-0232 : Software Information
2020-05-16 12:08:35 +02:00
Aditya Borikar
17ca4c541b
Add support for XEP-0232: Software Information
...
By making use of an extended data format, service discovery responses
can be used to constitute software information.
Solves SMACK-853.
2020-05-16 14:02:25 +05:30
Florian Schmaus
9fd5bc7873
[pubsub] Make Fillable(Configure|Subscribe)Form constructors package-private
...
Those are not meant to be used directly.
2020-05-15 11:54:49 +02:00
Florian Schmaus
fec928ffe7
[pubsub] Add missing "FillableSubscribeForm SubscribeForm.getFillableForm()"
2020-05-15 11:54:49 +02:00
Florian Schmaus
565397f632
[pubsub] Make FillableSubscribeForm implement SubscribeFormReader
2020-05-15 11:54:49 +02:00
Florian Schmaus
c5212c20b6
[xdata] Rename FormReader.read(String) to getField(String)
...
Now that FormWriter, with its write() method, is gone, there is no
reason the FormReader method should still be named read(). Renaming to
getField() as this is what DataForm also uses.
2020-05-14 17:13:01 +02:00
Florian Schmaus
d6c1018b47
[xdata] Remove FormWriter
...
The FormWriter interface was a left over from the initial design of
the reworked API, but is no longer required.
2020-05-14 17:13:01 +02:00
adiaholic
afa42a8b41
Remove TODO:method should not throw any exception but currently does
...
`mgr.getNode(...)` method is not supposed to throw any type
of exception. It threw two kinds of exceptions: `NotConnectedException`
and `SmackException`.
By using `ThreadedDummyConnection.newInstance()` method,
`NotConnectedException` can be removed. And `SmackException`
can be removed by correctly building the DiscoverInfo packet.
2020-05-13 22:25:22 +02:00
Florian Schmaus
50cb7735d1
[muc] Add generic callback invoked if a participant is removed
...
Fixes SMACK-883.
2020-05-13 22:14:43 +02:00
Florian Schmaus
ab2d3a2b79
[core] Deprecate AbstractConnectionListener
2020-05-13 22:14:43 +02:00
Florian Schmaus
13abeb9626
[muc] Deprecate DefaultUserStatusListener
2020-05-13 22:01:17 +02:00
Florian Schmaus
aacd94c62e
[muc] Deprecate DefaultParticipantStatusListener
2020-05-13 22:00:42 +02:00
Florian Schmaus
498dde2d86
Merge branch 'master' of github.com:igniterealtime/Smack
2020-05-13 20:20:01 +02:00
Florian Schmaus
77e26fc575
Re-work data form API
...
Apply builder pattern to form fields and replace getVariable() with
getFieldName(). Refer to the field name as "field name" instead of
"variable" everyone, just as XEP-0004 does.
Improve the high-level form API: introduce FilledForm and FillableForm
which perform stronger validation and consistency checks.
Also add FormFieldRegistry to enable processing of 'submit' forms
where the form field types are omitted.
Smack also now does omit the form field type declaration on 'submit'
type forms, as it is allowed by XEP-0004.
2020-05-13 20:14:41 +02:00
Guus der Kinderen
577c59484b
pep: notification type can be normal or headline
2020-05-12 19:57:56 +02:00
Florian Schmaus
3270c113c5
[filetransfer] Remove FaultTolerantNegotiator
...
The FaultTolerantNegotiator is the reason why Smack replies in a
non-standard way to file transfer requests: Smack puts two values in
the stream-method field, while the field is a list-single field,
i.e. a field which only allows one value.
Even if what Smack does is probably better, as it allows for a
fallback in case the bytestream transport fails, it is not standard
compliant. And, Jingle provide a proper fallback specification for
file transfers.
Fixes SMACK-561.
2020-05-11 22:12:22 +02:00
Florian Schmaus
2c39dff653
pubsub: remove 'replyto' and 'replyroom' configure settings
...
Those configurations where removed with version 1.13 (2010-07-12) of
XEP-0060.
This change is part of the effort to upgrade Smack's PubSub
implementation (SMACK-364).
2020-05-04 10:55:36 +02:00
Florian Schmaus
e79710840b
caps: handle multiple data forms of extened service discovery information
2020-04-18 22:56:24 +02:00
Florian Schmaus
dc443bccd4
disco: allow multiple data forms for extended discovery information
...
Previously Smack only supported a single data form as extended
discovery information.
2020-04-18 19:04:21 +02:00
Florian Schmaus
e58e6fa75d
xdata: add more helper methods to DataForm
2020-04-18 19:02:45 +02:00
Florian Schmaus
8e1003723e
Specify correct and full version in @since javadoc tag
...
The next release of Smack will be 4.4.0.
2020-04-18 19:02:30 +02:00
Florian Schmaus
d0347d1e00
muc: add removed() callback to UserStatusListener
2020-04-17 22:26:28 +02:00
adiaholic
22cff274bb
Remove unexpected MucNotJoinedException
from MultiUserChat.leave()
...
Occupant information should be reset after `leavePresence`
and `reflectedLeavePresenceFilter` are built.
2020-04-17 20:10:45 +05:30
Florian Schmaus
0f7b7df1f0
muc: fix roomDestroyed() callback
...
The previous site where the callback was invoked was only reached if
there was also a user status on the unvailable presence. But those are
not part of unavilable presences upon room destruction.
Fixes SMACK-888.
2020-04-16 21:59:19 +02:00
Florian Schmaus
20aaef2628
muc: remove 'joined' boolean from MultiUserChat, use myRoomJid instead
...
If myRoomJid is set, we are joined.
2020-04-16 21:44:55 +02:00
Florian Schmaus
26ab832452
muc: only call userHasLeft() at one site
...
There is no need to duplicate that code. Also ensure that
userHasLeft() is invoked *before* the listeners are invoked, so that
e.g. isJoined() returns false in the listeners.
2020-04-16 21:40:06 +02:00
Florian Schmaus
ab2822be3e
muc: also set myRoomJid to null if we have left the room
2020-04-16 21:39:52 +02:00
Florian Schmaus
c519dd1213
muc: do check for equality twice
...
We already performed the presence.getFrom().equals(myRoomJID) check
and saved its result. No need to do it again.
2020-04-16 21:38:55 +02:00
Florian Schmaus
e2e228fc93
muc: synchronize Stats.create(Integer)
...
Since this method is used by the MUCUserProvider, it is potentially
invoked concurrently and the access to the statusMap must be
synchronized then.
2020-04-16 21:20:53 +02:00
Florian Schmaus
fa643f12d5
muc: add MUC status code 33
...
SMACK-882
2020-04-16 21:20:35 +02:00
Florian Schmaus
6c3cd53567
pep: improve pep event filter
2020-04-13 22:37:54 +02:00
Florian Schmaus
7f027bd339
pep: Use EventItemsExtensionFilter
2020-04-13 22:37:54 +02:00
Florian Schmaus
2c6f444bab
pubsub: Add EventItemsExtensionFilter
2020-04-13 22:37:54 +02:00
Florian Schmaus
4f609b855c
geoloc: make GeoLocation implement hashCode() and equals(Object)
2020-04-13 20:40:10 +02:00
Florian Schmaus
f5c412a98f
geoloc: GeoLocation constructor should have Builder as sole paramter
...
Also remove that (broken) "Error and accuracy set" warning, but
mark (get|set)Error() as deprecated.
2020-04-13 20:39:43 +02:00
Florian Schmaus
340bcb2d12
pep: improve API, add PepEventListener
...
The geoloc, mood and usertune PEP users showed a pattern. Instead of
repeating this pattern every time, let PepManager do the hard work
2020-04-13 15:26:46 +02:00
Florian Schmaus
7c2f9e3603
pep: cleanup pep users API
...
Use EntityBareJid just as its done within PepManager. There is no need
for AsyncButOrdered in the PEP user managers, as PepManager already
takes care of that. Also the message carrying the PEP event should
always be the last parameter of the callbacks, as it is the least
important piece of information.
2020-04-13 12:14:32 +02:00
Florian Schmaus
32ae0d8826
geoloc: make global setter static
2020-04-13 10:52:58 +02:00
Florian Schmaus
fdeaaf368e
Merge pull request #350 from adiaholic/pepOverPubsub
...
Make use of `pep` instead of `pubsub` in GeoLocations
2020-04-12 19:20:04 +02:00
Florian Schmaus
7a57bb7c09
Rename Stanza.getExtension(String, String) to getExtensionElement()
2020-04-12 12:09:04 +02:00
Florian Schmaus
9879dea0bf
Refer to static fields by their declaring type
2020-04-12 12:08:31 +02:00
Florian Schmaus
0479a75d1d
Remove unnecessarily suppressed warnings
2020-04-12 12:07:59 +02:00
Florian Schmaus
de0f3cd06c
extensions: comment out unfinished jingle util test
2020-04-12 12:07:32 +02:00
Florian Schmaus
e63ba07e5c
Cast with generic declared
2020-04-12 12:07:02 +02:00
Florian Schmaus
516c68bdb4
test: remove InitExtensions
...
And replace it with SmackTestSuite.
2020-04-12 09:34:08 +02:00
Florian Schmaus
28e763f938
extensions/experimental: line separator according to import order
2020-04-12 09:33:14 +02:00
Florian Schmaus
463dfac48d
extensions: finish conversion to JUnit5, drop JUnit4
2020-04-11 22:10:19 +02:00
Florian Schmaus
b5f9d4d7a3
Introduce test fixtures
...
This also removes the powermock dependency. Although powermock is a
fine library, it currently prevents dropping Junit4. And since we only
use the Whitebox API of powermock, this simply replaced powermock's
Whitebox with our own.
2020-04-11 22:05:36 +02:00
adiaholic
4991c952e7
Correct code example inside UserTuneElement
.
2020-04-09 18:38:21 +05:30
Florian Schmaus
eaa94be7e6
Merge pull request #356 from vanitasvitae/improveAttention
...
Improve attention
2020-04-09 14:28:54 +02:00
Florian Schmaus
e70506152e
Merge pull request #357 from vanitasvitae/nicktest
...
Add Nick JUnit test
2020-04-09 14:28:08 +02:00
b5caf13c8a
Add Nick JUnit test
2020-04-08 22:15:29 +02:00
ffbd97ff10
Add AttentionElementTest
2020-04-08 22:09:13 +02:00
adiaholic
340e186cf6
Make use of pep
instead of pubsub
in GeoLocationManager
...
This mini assignment kicked-off with replacing `pubsub` with `pep`,
but later transformed into something more.
The alterations and additions in this commit:
a) GeoLocation.
1) Add Documentation.
2) Add `EMPTY_GEO_LOCATION` to be used while
`stopPublishingGeoLocation()` is called.
b) Add GeoLocation IntegrationTest.
c) Add GeoLocation Listener.
d) GeoLocationManager.
1) Add Documentation.
2) Replace `pubsub` with `pep`.
3) Add methods to add-and-remove GeoLocationListeners.
4) Enable GeoLocation by default.
e) Add `package.info` for GeoLocation Integration Test.
2020-04-08 23:05:09 +05:30
adiaholic
5169e887ad
Replace JUnit4 with JUnit5 in smack-extensions
.
...
This commit concludes migration of `smack-extensions` module,
from JUnit4 to JUnit5.
2020-04-07 15:46:21 +05:30
Florian Schmaus
078cb5cc8f
Merge pull request #366 from vanitasvitae/offlineMessage
...
Prevent multi-instancing of OfflineMessageManager
2020-04-06 09:22:26 +02:00
Florian Schmaus
69e9f3c044
Remove deprecated GroupChatInvitation.getFrom()
2020-04-05 22:14:27 +02:00
Florian Schmaus
0967019a5f
Remove deprecated Forwarded.getForwardedPacket()
...
This method was deprecated with 1cd268a8f
("Deprecate
Forwarded.getForwardedPacket()").
2020-04-05 22:13:14 +02:00
Florian Schmaus
07da9ffb48
Do not have Stanza.getExtension(String, String) return a generic type
...
Returning a generic would allow for
List<ExtensionElement> list = stanza.getExtension("foo", "bar");
to compile (Note the we are calling getExtension(), not
getExtension*s*()).
Users are encouraged to use the type safe getExtension(Class<? extends
ExtensionElement) variant instead.
Fixes SMACK-825.
2020-04-05 22:10:05 +02:00
3fb4438566
Reorder smack-extensions providers xml
...
Fix rfc number
2020-04-04 13:03:35 +02:00
Florian Schmaus
4beaae7d6a
disco: avoid boxing to Integer when not necessary
2020-03-13 16:41:27 +01:00
Florian Schmaus
863d0bf403
Fix NPE in ServiceDiscoveryManager
2020-03-09 14:41:52 +01:00
Florian Schmaus
78be8f3a04
junit: bump to 5.6.0
2020-02-23 19:12:54 +01:00
5ed594fe73
Prevent multi-instancing of OfflineMessageManager
2020-02-17 01:43:40 +01:00
e81c4814ed
Make use of XmlStringBuilder in AttentionElement
2020-01-06 18:41:30 +01:00
Florian Schmaus
a7a298c5d8
Use standard stanza listeners in MultiUserChat
...
Those, relatively new, listeners guarantee that the individual
listeners are not invoked in concurrently while preserving the
order. Exactly what MultiUserChat previously did with AsyncButOrdered,
which is now no longer needed and hence can be removed.
2019-11-07 14:36:50 +01:00
Florian Schmaus
eb4c2c5572
s/occured/occurred/
2019-10-30 12:02:36 +01:00
Florian Schmaus
ee699f24dd
Remove DiscoverInfo.Identity(Identity) copy constructor
...
as there is no need to copy an immutable type.
2019-10-30 08:24:13 +01:00
Florian Schmaus
63a4212f7e
Remove clone() from DiscoverInfo.Identity
...
there is no need to clone immutable types.
2019-10-30 08:22:47 +01:00
Florian Schmaus
e2223254cf
Organize imports everywhere
2019-10-29 21:12:22 +01:00
Florian Schmaus
69767e9538
Rename AbstractIqBuilder subclasses to their designated names
2019-10-29 19:34:18 +01:00
Florian Schmaus
6e32305987
Apply builder pattern to DiscoverInfo
...
This is the first transformation of an IQ type to the builder type.
2019-10-29 11:14:55 +01:00
Florian Schmaus
36072fb25a
test: created mocked connectionwith stanza factory
2019-10-29 10:40:41 +01:00
Florian Schmaus
4b01892129
Remove unused DiscoverInfo instances in PingTest
2019-10-27 07:51:25 +01:00
Florian Schmaus
e2d206e741
Introduce XMPPConnection.add(Message|Presence)Interceptor
...
add deprecate addStanzaInterceptor().
2019-10-25 21:41:55 +02:00
Florian Schmaus
5db6191110
Introduce StanzaBuilder
...
As first step to immutable Stanza types.
2019-10-25 21:41:55 +02:00
Florian Schmaus
926c5892ad
Fix 260c5539b
("Add support for XEP-0118: UserTune")
...
Fix a bug in the EqualsBuilder usage in UserTuneElement. Properly
synchronize listeners using CopyOnWriteSet. Make methods and fields
static where sensible and possible. Make
disableUserTuneNotifications() public (why was it private?). And a few
other minor fixes.
2019-10-17 12:27:33 +02:00
adiaholic
260c5539b5
Add support for XEP-0118: UserTune
...
This commit will enable user to communicate
information about music to which user is listening.
This feature is less of a requirement and more like fun to me.
An attempt at solving SMACK-257.
Incase you see any chances of improvement,
please let me know :)
2019-10-17 12:24:30 +02:00
Florian Schmaus
e23babf147
Add Stanza.setNewStanzaId() and ensureStanzaIdSet()
...
Also deprecate setStanzaId() since it was not clear if this would
create a new stanza ID or just ensure that one is set.
2019-10-05 23:16:15 +02:00
Florian Schmaus
eeb6c52f7e
Move SASL logic into AbstractXMPPConnection
...
Besides the way the transport handles the stream after SASL
<success/>, the SASL logic is independend from the underlying
transport (BOSH, TCP, …). Hence move it up into
AbstractXMPPConnection.
This also has the benefit that we can make some more methods private
or package-private.
Also introduce XmlStringBuilder.optTextChild(), which causes some
associated changes.
2019-09-25 13:49:21 +02:00
Florian Schmaus
c3247ef006
Use optElement() instead of optAppend() in StreamInitiation.toXML()
2019-09-24 23:29:26 +02:00
Florian Schmaus
afd61670a4
pubsub: Add removal comment in ConfigureForm
2019-09-16 22:04:57 +02:00
Florian Schmaus
2f667f95a8
gradle: Remove archives configuration
...
and FileTestUtil in favor of commons-io. This is required because
Eclipse won't put src/test code into the classpath of src/main
code (even though gradle was configured with an according
dependency).
2019-09-16 00:04:47 +02:00
Florian Schmaus
34f1c2b79e
errorprone: Enable MethodCanBeStatic
2019-09-07 23:01:39 +02:00
Florian Schmaus
65576cf3c2
Rework XML Element hierarchy and XmlStringBuilder
...
- Reduce the amount of types that are subtypes of NamedElement. See
javadoc of NamedElement for rationale.
- Work more with XmlEnvironment in XmlStringBuilder.
- Some minor changes to XmlStringBuilder API.
2019-09-07 18:17:08 +02:00
Florian Schmaus
dd4df0a5ef
Improve how XmlStringBuilder handles enclosing XML environments
...
to avoid emitting unnecessary attributes like xmlns.
Also add a test for MediaElement that checks that <uri/> does not
carry a xmlns attribute.
2019-09-04 10:22:56 +02:00
Florian Schmaus
1a3067c89b
Enable werror for javadoc and fix javadoc issues
2019-08-30 12:08:30 +02:00
Florian Schmaus
4249c1a845
Improve PepManager.publish()
...
by using PubSubManager.tryToPublishAndPossibleAutoCreate().
This also swaps the parameters of the method.
Thanks to Guus der Kinderen for suggesting this.
2019-08-28 22:59:30 +02:00
Florian Schmaus
bf0c69c93e
Merge pull request #333 from adiaholic/docFix
...
DocFix in `NodeInformationProvider`
2019-08-22 15:16:00 +02:00
Florian Schmaus
f863bd222c
Merge branch '4.3'
2019-08-22 11:52:41 +02:00
Florian Schmaus
ca7529c192
Use Integer.compare(int, int) now that we are on Android 19
2019-08-04 23:03:42 +02:00
adiaholic
144e99c020
DocFix in NodeInformationProvider
2019-08-04 19:39:55 +05:30
Florian Schmaus
3e74d11b45
Disable MucMemoryLeakTest
...
Although it it not that unreliable, it causes false negatives once in
a while. This is because the standard Java SE API does not provide a
way to force a *full* garbage collection run, we need to resort to
unreliable hacks to trigger one.
The test itself is still useful to diagnose or refute alleged memory
leaks.
This commit also move the test from JUnit 4 to Junit 5.
2019-08-03 22:25:21 +02:00
Florian Schmaus
d2f9617418
Merge pull request #326 from adiaholic/bugFix
...
Return obtained XmlStringBuilder instead of null
2019-07-28 17:50:09 +02:00
adiaholic
41a3ec05c7
Returning obtained XmlStringBuilder instead of null
2019-07-28 16:36:12 +05:30
Florian Schmaus
4ca2c7cc69
Enable MissingJavadocPackage and UnnecessaryParentheses checkstyle checks
2019-07-24 09:18:39 +02:00
Florian Schmaus
91ec6cc955
Javadoc changes for Java 11 compatibility
2019-07-19 23:05:46 +02:00
Florian Schmaus
fda9408cf3
Use XmlStringBuilder in PubSub's SubscribeExtension
2019-07-05 11:31:12 +02:00
Florian Schmaus
9c0da3ed07
Change SubscribeExtension's jid field type from String to Jid
...
and make it final.
2019-07-05 11:24:02 +02:00
Florian Schmaus
df5899e72b
Introduce SmackConfiguration.SMACK_URL(_STRING)
2019-07-04 15:51:28 +02:00
Florian Schmaus
f3b856c80b
Improve shouldFailIfInitiatorCannotConnectToSocks5Proxy() unit test
...
If run in parallel with other unit tests, especially onces that open
up a proxy, this test could fail, because another unit test actually
had an proxy running on the very address this unit test assumes to be
no proxy running.
We now use an IP address from RFC 5737's TEST-NET-1 address block,
which should never be available.
2019-07-04 15:49:47 +02:00
0ad1a0bd4c
Add note about BookmarkManager to MUCManager
2019-07-03 23:37:51 +02:00
Florian Schmaus
a3f6fa65a4
Disallow null or empty string in PubSubManager.getNode(String)
2019-06-12 22:31:55 +02:00
Florian Schmaus
ef88bb17d0
Disallow empty string as node in DiscoverInfo
2019-06-12 22:31:29 +02:00
Florian Schmaus
c6c904cc3e
Add support for XEP-0350: Data Forms Geolocation Element
...
Fixes SMACK-871.
2019-06-12 17:13:05 +02:00
Florian Schmaus
fa0c16d75c
Introduce EqualsUtil and HashCode.(Builder|Cache)
2019-06-12 14:51:17 +02:00
Florian Schmaus
92b02afbff
Improve exceptions of Socks5Proxy
2019-06-11 12:47:40 +02:00
Florian Schmaus
818ee8a727
Make Objects.requireNonNull() throw IllegalArgumentException
...
and not NullPointerException. Altough this differs from
java.util.Objects behavior, throwing an IllegalArgumentException
appears more sensible and makes it easier to catch it in Smack's
parsing function.
2019-06-11 12:47:40 +02:00
Florian Schmaus
9bb36fc63c
Make Socks5TestProxy a subclass of Socks5Proxy
...
to reduce the duplicated code. This also means we are now testing the
real implementation.
2019-06-11 12:47:39 +02:00
Florian Schmaus
6e1193edaf
Use QName instead of XmppStringUtils.generateKey()
2019-06-11 12:47:39 +02:00
Florian Schmaus
ce70308099
Introduce UInt(16|32) datatypes
2019-06-11 12:47:39 +02:00
Florian Schmaus
c0183775fe
Add support for XEP-0221: Data Forms Media Element
...
Fixes SMACK-824.
2019-06-11 12:47:39 +02:00
Florian Schmaus
1f8b7273a8
Improve junit test in Socks5ByteStreamManager
...
It could be that the test is flapping. This helps to see the origin of
the unexpected exception.
2019-06-11 12:47:39 +02:00
Florian Schmaus
4d36e3b521
Introduce FormFieldChildElement and make FormField immutable
2019-06-11 12:47:39 +02:00
Florian Schmaus
1a99801501
Fix typo in FormField's javadoc: s/fold/field/
2019-06-05 10:54:17 +02:00
Florian Schmaus
9a2cca2bd3
Merge branch 'master' of github.com:Flowdalic/Smack
2019-06-03 17:41:49 +02:00
Florian Schmaus
b288768f77
Introduce util.InternetAddress
...
and use it where sensible. Also fixes a few unit tests along the way.
2019-06-03 17:41:10 +02:00
Florian Schmaus
619b8e6f4a
Add secure(OnlineAttackSafe|Unique|OfflineAttackSafe)RandomString()
...
and replace usages of java.util.UUID in Smack with
secureUniqueRandomString() because it uses a thread-local secure random
number generator.
2019-06-02 20:08:03 +02:00
Florian Schmaus
58fc39714f
Use assertThrows() in Socks5ByteStreamManagerTest
2019-06-02 11:00:37 +02:00
Florian Schmaus
839e347676
Rename NumberUtil.checkIfInUInt32Range() to requireUInt32
2019-06-02 10:46:53 +02:00
Florian Schmaus
726a2de273
Deprecate ParserUtils.getQName()
2019-06-02 10:44:50 +02:00
Florian Schmaus
af6ee76f4c
Remove empty lines in Socks5BytestreamManager
2019-06-02 10:41:39 +02:00
Florian Schmaus
49aa7ce21b
Do not swallow exception in Socks5BytestreamManager
2019-06-02 10:41:27 +02:00
Florian Schmaus
9352225f44
Rework SOCKS5 unit tests so that they can be run in parallel
...
As result it is now also possible to start multiple local SOCKS5
proxies with different port, which is usually not necessary in real
life but useful for unit tests.
2019-06-02 10:38:19 +02:00
Florian Schmaus
d337474a86
Add DiscoverItems.Item.toString()
2019-05-23 23:06:39 +02:00
Florian Schmaus
02f7cfcf27
Improve session sweeping logic in AdHocCommandManager
...
Fixes SMACK-624.
2019-05-20 10:41:01 +02:00
Florian Schmaus
02e2eba556
Socks5Proxy: Remove empty line
2019-05-18 13:24:48 +02:00
Florian Schmaus
48010f3b82
Socks5Proxy: Log if server thread termination was interrupted
2019-05-18 13:24:30 +02:00
Florian Schmaus
11ae6d6960
Socks5Proxy: Use CloseableUtil to close server socket
2019-05-18 13:24:05 +02:00
Florian Schmaus
ab99f629a3
Socks5Proxy: Include server socket in thread name
2019-05-18 13:23:24 +02:00
Florian Schmaus
f7762c5db7
Add "whitespace after comma" checkstyle rule
2019-05-17 21:56:46 +02:00
Florian Schmaus
7e25c3ada5
Merge branch '4.3'
2019-05-16 20:52:27 +02:00
Florian Schmaus
60db42e2f4
Merge pull request #299 from magnetsystems/autojoin-callback-on-reconnect
...
Autojoin callback on reconnect
2019-05-08 13:43:46 +02:00
Florian Schmaus
f4ee7dd541
Update PowerMock to 2.0.2
...
and set Mockito 2's mock-maker-inline as MockMaker to allow mocking of
final classes.
2019-05-08 12:44:48 +02:00
Florian Schmaus
d2f5efcb20
Use StandardCharsets.(UTF_8|US_ASCII)
...
This also gets rid of a ton of UnsupportedEncodingException s.
2019-05-08 12:44:48 +02:00
Florian Schmaus
2a4d110b22
Add Socks5Exception and improve SOCKS5 bytestream exception messages
...
The exception message now also contains the stream hosts and their
exception.
2019-05-08 11:07:18 +02:00
Florian Schmaus
fd89a5e5a5
Add StreamHost.toString()
2019-05-08 09:24:23 +02:00
Florian Schmaus
7f0dc72dab
Update errorprone(-plugin) and make Unused(Variable|Method) an error
2019-05-07 23:09:00 +02:00
Florian Schmaus
68d7d738b6
Remove all tabs and add checkstyle rule that enforces no-tabs
...
Fixes SMACK-866.
2019-05-07 21:24:00 +02:00
Florian Schmaus
e1ed035beb
Remove xmlunit-lagacy and add xmlunit-assertj
2019-05-07 19:06:16 +02:00
Florian Schmaus
4a3dda93af
Merge pull request #315 from adiaholic/doc-fix-in-index
...
Minor changes in documentation.
2019-05-06 22:57:59 +02:00
Florian Schmaus
4133eb175c
Replace XPP3 by XmlPullParser interface wrapping StAX and XPP3
...
Introducing Smack's own XmlPullParser interface which tries to stay as
compatible as possible to XPP3. The interface is used to either wrap
StAX's XMLStreamReader if Smack is used on Java SE, and XPP3's
XmlPullParser if Smack is used on on Android.
Fixes SMACK-591.
Also introduce JUnit 5 and non-strict javadoc projects.
2019-05-06 22:10:50 +02:00
Eng ChongMeng
dd903bec95
SMACK-868: Fix XHTMLText producing invalid XML
2019-05-06 00:39:41 +02:00
adiaholic
1554a33518
Changed XEP-031 to XEP-0131
2019-05-04 14:18:46 +05:30
Florian Schmaus
4e7cd83220
Fix (Privacy|Time)ProviderTest
...
XML attributes must be separated by a whitespace.
2019-04-29 08:52:36 +02:00
Florian Schmaus
d97fb126a1
Add PubSubManager.getInstanceFor() just like all other Managers
...
and deprecate PubSubManager.getInstance().
2019-04-16 11:21:22 +02:00
Florian Schmaus
9c30e4f3cc
Merge branch '4.3'
2019-04-16 09:27:48 +02:00
Florian Schmaus
488055948d
Add missing 'synchronized' keywords to Manager.getInstanceFor()
...
Fixes SMACK-865.
2019-04-15 09:48:52 +02:00
V Lau
f1fb03d08c
Add a success callback for auto-join on reconnect.
...
When auto-join on reconnection is success, invoke a callback.
Conform to the proper copyright format.
2019-04-09 14:21:11 -07:00
Florian Schmaus
0ec7e84cbc
Update link to XMPP Registry for Service Discovery Identities
2019-04-09 14:26:15 +02:00
Florian Schmaus
9ad162af6e
Use correct field in ServiceDiscoveryManager.getIdentities()
...
Fixes SMACK-863.
2019-04-09 12:14:12 +02:00
Florian Schmaus
0d17f195b0
Use EntityFullJid as JID type in MultiUserChat.getJoinedRooms()
...
Got a user who put in a EntityBareJid and wondered why the returned
list was empty.
2019-04-07 22:13:38 +02:00
Florian Schmaus
927eb5e7d7
Add MemoryLeakTest(Util)
...
to check for the correct operation of what was implemented with
SMACK-383.
2019-03-25 18:58:58 +01:00
Florian Schmaus
0cd3318b12
Merge pull request #301 from adiaholic/JIRA836
...
Saving an instance of ServiceDiscoveryManager in MultiUserChatManager.
2019-03-24 11:39:20 +01:00