1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2024-11-05 16:15:58 +01:00
Commit graph

782 commits

Author SHA1 Message Date
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