1
0
Fork 0
mirror of https://github.com/vanitasvitae/Smack.git synced 2024-11-15 08:42:05 +01:00
Commit graph

250 commits

Author SHA1 Message Date
Florian Schmaus
1e5d34eacf Bump to Gradle 8.10.2, require Java 11
Bump Gradle from 6.8.3 to 8.10.2 and increase the minimum required
Java version from 8 to 11 (SMACK-953).

The switch from Java 8 to 11 caused some Bytecode portability issues
regarding NIO Buffers. Java changed with version 9 the return type of
some subclasses of Buffer to return the specific Buffer type instead
of the Buffer superclass [JDK-4774077]. For example, ByteBuffer.filp()
previously returned Buffer, while it does return ByteBuffer now.

This sensible change was not reflected by the Android API [1], which
means that AnimalSniffer rightfully started to complain that there is
no method "ByteBuffer ByteBuffer.flip()" in Android, there is only
"Buffer ByteBuffer.flip()", and those are incompatible methods on
Java's Bytecode layer.

As workaround, this changes

    return charBuffer.flip().toString();

to

    ((java.nio.Buffer) charBuffer).flip();
    return charBuffer.toString();

to restore the Bytecode portability between Android and Java.

Errorprone also got new checks, of which JavaUtilDate and JdkObsolete
are wroth mentioning.

JavaUtilData basically strongly recommends to use Java's newer time
API over java.util.Date. But since Smack was Java 8 until now,
j.u.Date is widely used.

Similar JdkObsolete mentions obsolete JDK APIs, like data structures
like Vector and Stack. But mostly LinkedList, which should usually be
replaced by ArrayList. And this is what this commit largely does.

JDK-4774077: https://bugs.openjdk.org/browse/JDK-4774077
1: https://issuetracker.google.com/issues/369219141
2024-09-25 12:08:50 +02:00
Florian Schmaus
ab16e1a32c Bump jxmpp version to 1.1.0-beta1 2024-09-15 19:45:15 +02:00
Florian Schmaus
8d7952cec3 Bump MiniDNS version to 1.1.0-alpha3 2024-09-15 19:44:46 +02:00
Florian Schmaus
94375e3208 Bump minimum Android SDK version to 21
Fixes SMACK-951
2024-09-15 19:09:19 +02:00
Florian Schmaus
7024151f5d
Merge pull request #612 from stokito/fix_gradle_plugins
Fix gradle plugins
2024-09-12 11:24:32 +00:00
Guus der Kinderen
c85bcadd81 Fixes spelling (includes one API change)
Mostly benign changes. Added one new method to replace a method with a spelling mistake in its name. Kept the old method, marked as 'deprecated'.
2024-09-11 20:03:43 +02:00
Sergey Ponomarev
c74ebca955 build.gradle: migrate from jcenter to gradlePluginPortal and upgrade biz.aQute.bnd.builder 2024-08-12 08:47:03 +03:00
Sergey Ponomarev
b85be6572c build.gradle: remove clirr plugin
The clirr plugin is disabled and not used
2024-08-12 08:45:54 +03:00
Florian Schmaus
1bf0aed0f5 [build.gradle] Add junit-platform-launcher add testRuntimeOnly
Fixes

   NoSuchMethodError: 'java.util.Set org.junit.platform.engine.TestDescriptor.getAncestors()

when running unit tests in Eclipse.
2024-05-20 15:09:22 +02:00
Florian Schmaus
04dc212db8 Add smack-examples 2023-11-28 10:46:16 +01:00
9bfaf674b1
Bump BC to 1.73 2023-06-24 11:10:10 +02:00
Florian Schmaus
e87da18495 Bump Bouncy Castle to 1.71 2022-08-07 16:59:47 +02:00
b769be516e
Bump PGPainless to 1.1.1, Bouncy Castle to 1.70 2022-03-03 10:31:04 +01:00
Florian Schmaus
8c87daa7b4 Merge branch '4.4' 2021-10-20 19:03:38 +02:00
Florian Schmaus
d0be6a6216 [build] Remove OSS Sonatype Snapshot repository
Having the OSS Sonatype Snapshot repository searched causes build
failures if there snapshot dependencies are resolved due the javadoc
linking:

javadoc: error - Error fetching URL: https://jxmpp.org/releases/1.0.3-SNAPSHOT/javadoc/
> Task :javadocAll
javadoc: error - Error fetching URL: https://minidns.org/releases/1.0.2-SNAPSHOT/javadoc/
2 errors
2021-10-20 19:02:19 +02:00
Florian Schmaus
e842195b71 Merge branch '4.4' 2021-10-19 14:33:21 +02:00
Ingo Bauersachs
b675aac81b Make Smack jars OSGi bundles
Fixes SMACK-343 by using bnd instead of the deprecated Gradle
plugin that was previously used and removed in commit
d06f533bb9.
2021-10-17 15:57:48 +02:00
9c5b0a2a16
Bump Bouncycastle to 1.69 2021-08-10 14:51:52 +02:00
Florian Schmaus
8d74873925 Merge branch '4.4' 2021-05-20 14:39:32 +02:00
Florian Schmaus
4eb5869860 [build] Remove markdown-gradle-plugin 2021-05-20 14:38:16 +02:00
Florian Schmaus
3d4e7938a7 Make ExtensionElement marker interface wrt. QNAME field
ExtensionElement is now a marker interface that requires all
implementation non-abstract classes to carry a static final QNAME
field (of type QName). This is verified by a new unit test.

Also FullyQualifiedElement is renamed to simply XmlElement. XmlElement
is used over ExtensionElement when implementing classes do not
statically know the qualified name of the XML elements they
represent. In general, XmlElement should be used sparingly, and every
XML element should be modeled by its own Java class (implementing
ExtensionElement).
2021-04-18 21:07:19 +02:00
Florian Schmaus
4fefa92e40 Merge branch '4.4' 2021-03-19 09:47:07 +01:00
Florian Schmaus
47178fd27d Bump JUnit to 5.7.1 2021-03-18 09:01:03 +01:00
Florian Schmaus
4e90db3191 [gitlab-ci] Also check with Java 15 2021-02-15 13:12:24 +01:00
Florian Schmaus
8b0248c346 Bump Mockito to 3.7.7 2021-02-15 13:12:24 +01:00
Florian Schmaus
4aacdc5154 Add smack-websocket-java11
This also lifts a bunch of logic from smack-websocket-okhttp into
smack-websocket. Furthermore, the following subprojects require now
Java 11:
- smack-integration-test
- smack-omemo-signal-integration-test
- smack-repl
- smack-websocket-java11

Related tracking issue: SMACK-835
2021-02-14 20:34:40 +01:00
Florian Schmaus
cd40455b62 [smack-integration-test] Bump reflections to 0.9.12
This also means that smack-integration-test needs to declare a
dependency on Guava, which was previously available as transitive
dependency of 'reflections' 0.9.11.
2021-02-14 18:37:44 +01:00
Florian Schmaus
fe3214291d Bump Bouncy Castle to 1.68 2021-02-14 18:35:50 +01:00
Florian Schmaus
a7b3303f3e Bump ErrorProne to 2.5.1 and refactor Providers a bit
This also resulted in a refactoring of the Providers and parsing
Exceptions. NumberFormatException and ParseException can now be thrown
directly, the wrapping in a SmackParsingException is down at a higher
layer, i.e. in AbstractProvider.
2021-01-29 09:26:15 +01:00
Florian Schmaus
9fb4a2bf4f [gradle] Bump coveralls-gradle-plugin to 2.10.2
This should make it work with Github Actions.
2021-01-12 13:13:16 +01:00
Florian Schmaus
5782fff2a4 Merge branch '4.4' 2020-09-23 21:42:51 +02:00
Florian Schmaus
048226960b Rename smack-java7 to smack-java8
Fixes SMACK-854.
2020-09-23 17:50:11 +02:00
adiaholic
7ed29b9d5f Introduce websocket module into smack 2020-08-28 23:40:40 +05:30
Florian Schmaus
45e865757a [gradle] Use 'projectDirFile' File instance in getGitCommit()
The previous construct

def projectDir = dotGit.getParentFile()

was a little bit strange (and its declaration shadows the projectDir
String property).
2020-08-15 10:08:43 +02:00
Florian Schmaus
3c54d5ffcd [build] Use ranged version [1.0.0, 1.0.999] for jXMPP and MiniDNS
This also means that we need to lookup the resovled versions of those
artifacts in order to provide the javadoc link.
2020-08-06 15:19:42 +02:00
Florian Schmaus
dad2a1ad2e Bump MiniDNS version to 1.0.0 2020-07-18 21:55:56 +02:00
Florian Schmaus
7d6374b04b Bump jXMPP version to 1.0.0 2020-07-18 21:55:47 +02:00
Florian Schmaus
049d687778 [gradle] Add fix for javadoc search 2020-07-03 22:01:06 +02:00
Florian Schmaus
8752605c74 Bump MiniDNS version to 0.4.0-alpha6 2020-06-19 21:15:26 +02:00
Florian Schmaus
eae8acb856 [gradle] Add 'sinttestAll' task 2020-05-26 09:54:06 +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
f3207e8c27 Bump junit version to 5.6.2 2020-05-24 13:14:26 +02:00
Florian Schmaus
f750c79392 Bump jxmpp Version to 0.7.0-alpha6 2020-05-24 13:14:14 +02:00
Florian Schmaus
c7c5b10c41 Bump MiniDNS version to 0.4.0-alpha5 2020-05-24 13:11:50 +02:00
Florian Schmaus
a51663448b [checkstyle] Bump to 8.27
We can not bump to the latest version, due
https://github.com/checkstyle/checkstyle/issues/8248
2020-05-23 23:36:58 +02:00
Florian Schmaus
4239dac440 [gradle] Fix project description in POM 2020-05-18 09:15:14 +02:00
Florian Schmaus
b8d8c9e9dd Replace version.gradle with version 2020-05-15 21:12:51 +02:00
Florian Schmaus
321c91c264 [build] Introduce bouncyCastleVersion variable and use it
Also bumps bouncy castle to 1.65.
2020-05-13 22:20:32 +02:00
Florian Schmaus
f61ecb65e7 Make java(c|doc) use --release when available
In order to truely stay Java 8 compatible, declaring a source and
target compatiblity is not sufficient. Source compatiblity means that
the input, i.e. the code written in Java is compatible with that
particular version of the Java Language Specification (JLS). And
target compatibitliy means that the produced Java bytecode is
compatible with that particular version of the Java Virtual Machine
Specificiation (JVMS).

But there is actually a third dimension: the runtime
library (rt.jar). If signatures of methods change over java releases
within the runtime library, then the produced bytecode, may contain
calls to methods that do not exist with that exact same signature in
older java versions.

For example the family of Buffer subclasses changed the return value
of certain functions, for example flip() to not return Buffer, but the
concrete type of the current instance, e.g. CharBuffer.

If we compile now with a newer JDK, where the return type is
CharBuffer and not Buffer, then executing on an older JDK, where the
return type is Buffer, then we get java.lang.NoSuchMethodError(s)
thrown at us.

Fixes SMACK-651.
2020-04-24 10:15:13 +02:00
Florian Schmaus
c3c14cfdb9 gradle: remove nonStrictJavadocProjects
This become obsolete with 1a3067c89 ("Enable werror for javadoc and
fix javadoc issues"), which enabled 'werror' for javadoc on all
projects.
2020-04-17 10:29:40 +02:00