1
0
Fork 0
mirror of https://github.com/vanitasvitae/Smack.git synced 2024-11-18 02:02:04 +01:00
Commit graph

196 commits

Author SHA1 Message Date
Florian Schmaus
57d7ac4d5d Remove smack-compression-jzlib
The smack-compression-jzlib subproject is obsolete since Java 7 de-
and inflate support was added with SMACK-389. Now it is time to remove
it.

Fixes SMACK-840.
2020-04-09 15:14:09 +02:00
Florian Schmaus
398cba330b gradle: add support for custom repo to publish to
And introduce useSonatype setting to skip the sonatype repos if
desired.
2020-04-07 16:56:54 +02:00
Florian Schmaus
ea944a8dc6 build.gradle: remove OSGi leftovers
OSGi support was rapped with d06f533bb ("Drop OSGi support").
2020-04-07 10:02:22 +02:00
Florian Schmaus
cc636fff21 Introduce Smack's Modular Connection Architecture
This is a complete redesign of what was previously
XmppNioTcpConnection. The new architecture allows to extend an XMPP
client to server (c2s) connection with new transport bindings and
other extensions.
2020-04-04 13:03:31 +02:00
Florian Schmaus
78be8f3a04 junit: bump to 5.6.0 2020-02-23 19:12:54 +01:00
Florian Schmaus
7b5186f651
Merge pull request #353 from vanitasvitae/androidApiExceptionWording
build.gradle: Improve android API exception message
2020-02-20 15:23:13 +01:00
Florian Schmaus
6edbe640cb gradle: bump errorprone plugin to 1.1.1 2020-01-28 17:44:39 +01:00
5fd638545d
build.gradle: Improve android API exception message 2019-12-13 16:12:18 +01:00
John Haubrich
7a58862794 gradle: Ensure git command is run projectDir rather than CWD.
The assert on line 659 was causing my build to fail. Two issues caused
gitCommit to be empty.

1. The cmd 'git describe --always --tags --dirty=+' was not given
   enough time to complete and had not exited which meant no text in
   proc.text
2. The two git commands on lines 653 and 658 were run from the
   CWD of my Eclipse IDE, not the $projectDir which caused git to return
   an error 128.

To solve the two issues I added a waitForOrKill method call to
proc (like the srCmd had) and I set the execute to run in $projectDir
which I think was the intent/assumption in the original code.

Also add waitFor on git describe command.
2019-10-12 10:34:05 +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
89cb3f679b gradle: Switch to 'maven-publish' plugin 2019-09-15 23:21:21 +02:00
Florian Schmaus
34f1c2b79e errorprone: Enable MethodCanBeStatic 2019-09-07 23:01:39 +02:00
Florian Schmaus
870d1a7238 build.gradle: Bump gradle-errorprone-plugin to 0.8.1 2019-09-07 23:00:16 +02:00
Florian Schmaus
1a7e2c1510 javadocAll: Set source to sourceCompatibility to work around bug
in JDK 11. See https://bugs.openjdk.java.net/browse/JDK-8217177
2019-09-01 23:13:20 +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
e6ac568f32 Change license of smack-repl to GPLv3 2019-08-05 09:33:16 +02:00
Florian Schmaus
95c73f51b1 Bump Checkstyle to 8.22 2019-07-22 08:40:17 +02:00
Florian Schmaus
9de2b983c8 gradle: Add workaround for gpg signatory not supporting 'required' 2019-07-21 09:16:00 +02:00
Florian Schmaus
5ba85aa8a7 gradle: Use gpg-agent for signing 2019-07-20 22:34:23 +02:00
Florian Schmaus
cd0cb95ce1 checkstyle: Use $config_loc for Java 11
Also move configuration files into "${rootProject}/config/checkstyle"
to follow convention over configuration.

See https://github.com/gradle/gradle/issues/8286#issuecomment-458145619
2019-07-20 10:26:32 +02:00
Florian Schmaus
6619372bb8 Enable parallel unit test execution 2019-06-02 10:40:44 +02:00
Florian Schmaus
db5f6f648c Bump AnimalSniffer to 1.5.0 2019-05-17 18:04:27 +02:00
Florian Schmaus
7c6d1f4340 Remove no-op configure block in build.gradle
Become a no-op configure block with
4108b9a83e.
2019-05-08 20:43:45 +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
7f0dc72dab Update errorprone(-plugin) and make Unused(Variable|Method) an error 2019-05-07 23:09:00 +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
Florian Schmaus
2b9cbb978e Enable full stacktraces of failed tests in console 2019-02-22 23:02:40 +01:00
Florian Schmaus
c0a64078c5 build.gradle: Lazily evaluate Android related arguments 2019-02-14 12:29:54 +01:00
Florian Schmaus
91f200dca0 Do not use deprecated jacoco plugin API 2019-02-05 13:48:24 +01:00
Florian Schmaus
6edc444b6a Bump jacoco to 0.8.3 2019-02-05 13:48:24 +01:00
Florian Schmaus
58a5055067 Bump gradle-animalsniffer-plugin to 1.4.6 2019-02-05 13:48:24 +01:00
Florian Schmaus
d06f533bb9 Drop OSGi support 2019-02-05 13:48:24 +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
122ad1ee62 Provide '-Xfatal-warnings' argument to scala compiler 2018-11-16 22:25:55 +01:00
Florian Schmaus
3f8fa7a311 Add '-feature' argument to scala compiler 2018-11-16 22:20:12 +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
082540c633 Enable Xwerror for smack-android-extensions 2018-10-07 09:55:36 +02:00
Florian Schmaus
b69691e676 Add javadoc-overview.html 2018-08-02 17:11:13 +02:00
Florian Schmaus
c9fb3cc792 build.gradle: Make javadocAll options use scope 2018-08-02 17:01:49 +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
9596ca8943 Bump AnimalSniffer to 1.4.5 2018-07-30 11:51:20 +02:00
f0af00ee43
XEP-0373, XEP-0374: OpenPGP for XMPP: Instant Messaging
Fixes SMACK-826
2018-07-29 18:52:45 +02:00
Florian Schmaus
4108b9a83e Enable uploadArchives for smack-omemo* projects 2018-06-17 14:30:03 +02:00
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
9d61a6de7d Bump checkstyle to 8.10 2018-05-09 21:14:52 +02:00
Florian Schmaus
4cff9ddfa0 Bump junit to 5.2.0 2018-05-09 19:59:39 +02:00
Florian Schmaus
ab30b0c921 Add AndroidSmackInitializer.initialize(Context)
This commit also changes the usage of the android.jar found in the
androidBootClasspath gradle variable, because
AndroidSmackInitializer.initialize(Context) pulls in

org.minidns.dnsserverlookup.android21.AndroidUsingLinkProperties

from minidns-android21, which has a @TargetApi annotation which is
only available on Android SDK API level 16 or higher. Otherwhise we
would get

> Task :smack-android:compileJava FAILED
/home/flo/.gradle/caches/modules-2/files-2.1/org.minidns/minidns-android21/0.3.0/13f273d095e51d701283062a25e867f3ff26d258/minidns-android21-0.3.0.jar(/org/minidns/dnsserverlookup/android21/AndroidUsingLinkProperties.class): warning: Cannot find annotation method 'value()' in type 'TargetApi': class file for android.annotation.TargetApi not found
/home/flo/.gradle/caches/modules-2/files-2.1/org.minidns/minidns-android21/0.3.0/13f273d095e51d701283062a25e867f3ff26d258/minidns-android21-0.3.0.jar(/org/minidns/dnsserverlookup/android21/AndroidUsingLinkProperties.class): warning: Cannot find annotation method 'value()' in type 'TargetApi'
error: warnings found and -Werror specified
1 error

when compiling smack-android.
2018-05-06 13:38:22 +02:00
Florian Schmaus
380f9a2b72 build.gradle: Update jxmpp javadoc link 2018-04-27 10:05:25 +02:00