Commit Graph

206 Commits

Author SHA1 Message Date
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
Florian Schmaus e8fef260e6 sinttest: migrate to JUnit5, drop JUnit4
The before/after class annotations are now no longer borrowed from
JUnit.

Also some integration tests used @After and/or @Before from JUnit,
which was never supported nor had any effected. Those methods got
deleted. But since there appears to be a desire for such a
functionality in sinttest, we should consider adding one.
2020-04-12 22:21:30 +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
Florian Schmaus 4a99f7252c gradle: remove 'java' plugin
Only one plugin of 'java' of 'java-library' is required.
2020-04-11 18:06:03 +02:00
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
Paul Schaub 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
Paul Schaub 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