Commit Graph

89 Commits

Author SHA1 Message Date
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 75625283ef Make "duplicate" package-info.java files symbolic links
This is needed for javadocAll since otherwhise there will be

smack-core/src/main/java/org/jivesoftware/smack/package-info.java:21:
	warning: a package-info.java file has already been seen for
	package org.jivesoftware.smack

warnings.
2019-09-01 23:13:20 +02:00
Florian Schmaus 1a3067c89b Enable werror for javadoc and fix javadoc issues 2019-08-30 12:08:30 +02:00
Florian Schmaus 9923268391 Remove LOCK in OmemoManager and use Manager instance instead 2019-08-06 12:48:31 +02:00
Florian Schmaus 1bce378e6d smack-omemo*: Do not swallow IOException deep within the library
Those exception are caused by I/O operations in the OmemoStore, which
is now declaring that it throws those (since it is not uncommon for
I/O operations to cause IOExceptions). After all, this is nicely
demonstrated as this change is caused by switching with this commit to
the Android API 19 compatible methods in FileBasedOmemoStore, which
throw.

The library can not decide what to do in case of those exceptions,
hence it is sensible to expose them to the user.
2019-08-05 09:31:48 +02:00
Florian Schmaus aec648c34b Improve PubSubIntegrationTest
Ensuring that the node has no items in
transientNotificationOnlyNodeWithoutItemTest() is not right. An
implementation is free to create an item with an ID and return it. The
item is just not guaranteed to be persistent.

Also add a dummy payload to
transientNotificationOnlyNodeWithItemTest().
2019-07-04 16:48:35 +02:00
Florian Schmaus 4d36e3b521 Introduce FormFieldChildElement and make FormField immutable 2019-06-11 12:47:39 +02:00
Florian Schmaus f7762c5db7 Add "whitespace after comma" checkstyle rule 2019-05-17 21:56:46 +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
Guus der Kinderen fc70484cf6 More specific Pubsub integration tests.
XEP-0060 prohibits publishing a request that contains an item to a node that
is both 'notification-only' and 'transient' (section 7.1.3.6)

In commit 8ed872ca63 the existing pubsub publication
test was modified (to resolve a different issue) to operate on a node that's both
'notification-only' and 'transient'. This resulted in a test that should return
an error, even though the test implementation didn't expect one.

This commit explicitly verifies that publishing an item to such a node causes
an error to be returned. A new test is added that verifies that publishing an
event notification does succeed.
2019-04-17 21:52:01 +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 a619135960 MoodIntegrationTest: Ensure that listener is removed 2019-03-16 22:41:01 +01:00
Florian Schmaus 8ed872ca63 PubSubIntegrationTest: Add workaround for ejabberd issue #2799 2019-02-17 17:51:37 +01:00
Florian Schmaus 7fce6b5a98 Introduce SmackMessageException 2019-02-10 21:50:39 +01:00
Florian Schmaus fee3ed81ca Introduce XmlEnvironment 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 e4c31541e0 Make MultiUserChat.leave() behave as leaveSync()
and mark leaveSync() as deprecated.

Fixes SMACK-848.
2018-12-26 21:50:36 +01:00
Florian Schmaus a9de8e2f76 Merge branch '4.3' 2018-12-26 21:40:10 +01:00
Florian Schmaus 4b21f003af Add MultiUserChat.leaveSync()
Fixes SMACK-848.
2018-12-26 21:39:25 +01:00
Florian Schmaus b705355e3d Add IntegrationTestRosterUtil 2018-11-11 17:10:40 +01:00
Florian Schmaus e835db15a5
Merge pull request #262 from vanitasvitae/mood
Add support for XEP-0107: User Mood
2018-11-11 16:55:33 +01:00
Paul Schaub 22e3f463fa
Utilize RosterIntegrationTest methods
Use RosterIntegrationTest.ensureBothAccountsAreSubscribedToEachOther() to subscribe users to another.
2018-11-11 16:32:45 +01:00
Paul Schaub cc1bee4659
SMACK-828: Add support for XEP-0107: User Mood 2018-11-11 16:13:41 +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
Paul Schaub 410c652074
Add integration test and fix checkstyle issues 2018-10-10 14:48:22 +02:00
Florian Schmaus 4d4f92ba86 Rename PEP to Pep 2018-08-15 20:15:57 +02:00
Florian Schmaus 4b3f757ed9 Add a PEP PubSubManager to PEPManager 2018-08-15 20:13:40 +02:00
Paul Schaub d78733e23a
Remove duplicate FileUtils methods 2018-07-30 16:05:58 +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 1f731f6318
Rework support for XEP-0384: OMEMO Encryption
Changes:

    Rework integration tests
    New structure of base integration test classes
    bump dependency on signal-protocol-java from 2.4.0 to 2.6.2
    Introduced CachingOmemoStore implementations
    Use CachingOmemoStore classes in integration tests
    Removed OmemoSession classes (replaced with more logical OmemoRatchet classes)
    Consequently also removed load/storeOmemoSession methods from OmemoStore
    Removed some clutter from KeyUtil classes
    Moved trust decision related code from OmemoStore to TrustCallback
    Require authenticated connection for many functions
    Add async initialization function in OmemoStore
    Refactor omemo test package (/java/org/jivesoftware/smack/omemo -> /java/org/jivesoftware/smackx)
    Remove OmemoStore method isFreshInstallation() as well as defaultDeviceId related stuff
    FileBasedOmemoStore: Add cleaner methods to store/load base data types (Using tryWithResource, only for future releases, once Android API gets bumped)
    Attempt to make OmemoManager thread safe
    new logic for getInstanceFor() deviceId determination
    OmemoManagers encrypt methods now don't throw exceptions when encryption for some devices fails. Instead message gets encrypted when possible and more information about failures gets returned alongside the message itself
    Added OmemoMessage class for that purpose
    Reworked entire OmemoService class
    Use safer logic for creating trust-ignoring messages (like ratchet-update messages)
    Restructure elements/provider in order to prepare for OMEMO namespace bumps
    Remove OmemoManager.regenerate() methods in favor of getInstanceFor(connection, randomDeviceId)
    Removed some unnecessary configuration options
    Prepare for support of more AES message key types
    Simplify session creation
    Where possible, avoid side effects in methods
    Add UntrustedOmemoIdentityException
    Add TrustState enum
    More improved tests
2018-06-13 12:29:16 +02:00
Florian Schmaus 9161ba9e7d Improve MamManager API 2018-06-12 08:53:18 +02:00
Florian Schmaus 458d8d98b6 Make junit assertion more verbose 2018-05-10 15:26:06 +02:00
Florian Schmaus 6f83553c1b Reduce scope of 'discoInfoSend' in EntityCapsTest integratino test 2018-05-10 14:55:34 +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 5ab2903c32 Change Element.toXml() to toXml(String enclosingNamespace) 2018-04-27 10:05:25 +02:00
Florian Schmaus 4fb34a6952 Add MultiUserChatManager.getMucServiceDomains()
and deprecate getXMPPServiceDomains().
2018-04-23 17:02:28 +02:00
Florian Schmaus ad87243060 Globally 's;stanza(/packet);stanza;' 2018-03-31 14:17:30 +02:00
Florian Schmaus 3132d9a224 Bump errorprone to 2.2.0 2018-03-28 15:56:04 +02:00
Florian Schmaus 193688e553 Merge branch '4.2' 2018-03-28 12:51:28 +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
Paul Schaub a3d430f334 Migrate the ChatState package to chat2 API
Fixes SMACK-761
2018-03-22 16:22:59 +01:00
Florian Schmaus 3bdeca44f2 Merge branch '4.2' 2018-02-23 18:35:34 +01:00
Florian Schmaus 1bd3469fec Also set persist items to true in PubSubIntegrationTest 2018-02-22 15:05:12 +01:00
Florian Schmaus a48e8ef843 Merge branch '4.2' 2018-02-21 20:13:05 +01:00
Florian Schmaus 79cb639f93 Improve PubSubIntegrationTest.simplePubSubNodeTest()
by setting the node's deliverPayloads to 'false'.
2018-02-21 20:09:11 +01:00
Paul Schaub ec95bd4422 Prevent race condition in ecaps test (#206)
Properly synchronize EntityCapsTest.testPreventDiscoInfo()
2018-02-20 15:52:04 +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 81002c4fbd Merge branch '4.2' 2017-11-22 08:37:47 +01:00