From 340e186cf6cfc4c220b34a2dd91a9faed167f7e8 Mon Sep 17 00:00:00 2001 From: adiaholic Date: Sun, 20 Oct 2019 16:30:38 +0530 Subject: [PATCH 01/30] 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. --- .../smackx/geoloc/GeoLocationListener.java | 26 +++ .../smackx/geoloc/GeoLocationManager.java | 100 ++++++++-- .../smackx/geoloc/packet/GeoLocation.java | 183 +++++++++++++++++- .../GeolocationIntegrationTest.java | 107 ++++++++++ .../smackx/geolocation/package-info.java | 23 +++ 5 files changed, 423 insertions(+), 16 deletions(-) create mode 100644 smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationListener.java create mode 100644 smack-integration-test/src/main/java/org/jivesoftware/smackx/geolocation/GeolocationIntegrationTest.java create mode 100644 smack-integration-test/src/main/java/org/jivesoftware/smackx/geolocation/package-info.java diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationListener.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationListener.java new file mode 100644 index 000000000..8b1259ec7 --- /dev/null +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationListener.java @@ -0,0 +1,26 @@ +/** + * + * Copyright 2020 Aditya Borikar. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smackx.geoloc; + +import org.jivesoftware.smack.packet.Message; +import org.jivesoftware.smackx.geoloc.packet.GeoLocation; + +import org.jxmpp.jid.BareJid; + +public interface GeoLocationListener { + void onGeoLocationUpdated(BareJid jid, GeoLocation geoLocation, Message message); +} diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationManager.java index a12d975d1..858d1a83a 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationManager.java @@ -16,9 +16,13 @@ */ package org.jivesoftware.smackx.geoloc; +import java.util.List; import java.util.Map; +import java.util.Set; import java.util.WeakHashMap; +import java.util.concurrent.CopyOnWriteArraySet; +import org.jivesoftware.smack.AsyncButOrdered; import org.jivesoftware.smack.ConnectionCreationListener; import org.jivesoftware.smack.Manager; import org.jivesoftware.smack.SmackException.NoResponseException; @@ -26,22 +30,53 @@ import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPConnectionRegistry; import org.jivesoftware.smack.XMPPException.XMPPErrorException; +import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.Message; - +import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; import org.jivesoftware.smackx.geoloc.packet.GeoLocation; import org.jivesoftware.smackx.geoloc.provider.GeoLocationProvider; -import org.jivesoftware.smackx.pubsub.LeafNode; +import org.jivesoftware.smackx.pep.PepListener; +import org.jivesoftware.smackx.pep.PepManager; +import org.jivesoftware.smackx.pubsub.EventElement; +import org.jivesoftware.smackx.pubsub.ItemsExtension; import org.jivesoftware.smackx.pubsub.PayloadItem; import org.jivesoftware.smackx.pubsub.PubSubException.NotALeafNodeException; -import org.jivesoftware.smackx.pubsub.PubSubManager; import org.jivesoftware.smackx.xdata.provider.FormFieldChildElementProviderManager; +import org.jxmpp.jid.BareJid; +import org.jxmpp.jid.EntityBareJid; import org.jxmpp.jid.Jid; +/** + * Entry point for Smacks API for XEP-0080: User Location. + *
+ * To publish a UserLocation, please use {@link #sendGeolocation(GeoLocation)} method. This will publish the node. + *
+ * To stop publishing a UserLocation, please use {@link #stopPublishingGeolocation()} method. This will send a disble publishing signal. + *
+ * To add a {@link GeoLocationListener} in order to remain updated with other users GeoLocation, use {@link #addGeoLocationListener(GeoLocationListener)} method. + *
+ * To link a GeoLocation with {@link Message}, use `message.addExtension(geoLocation)`. + *
+ * An example for illustration is provided inside GeoLocationTest inside the test package. + *
+ * @see + * XEP-0080: User Location + */ public final class GeoLocationManager extends Manager { + public static final String GEOLOCATION_NODE = "http://jabber.org/protocol/geoloc"; + public static final String GEOLOCATION_NOTIFY = GEOLOCATION_NODE + "+notify"; + private static final Map INSTANCES = new WeakHashMap<>(); + private static boolean ENABLE_USER_LOCATION_NOTIFICATIONS_BY_DEFAULT = true; + + private final Set geoLocationListeners = new CopyOnWriteArraySet<>(); + private final AsyncButOrdered asyncButOrdered = new AsyncButOrdered(); + private final ServiceDiscoveryManager serviceDiscoveryManager; + private final PepManager pepManager; + static { FormFieldChildElementProviderManager.addFormFieldChildElementProvider( GeoLocationProvider.GeoLocationFormFieldChildElementProvider.INSTANCE); @@ -54,11 +89,6 @@ public final class GeoLocationManager extends Manager { }); } - public GeoLocationManager(XMPPConnection connection) { - super(connection); - - } - /** * Retrieves a {@link GeoLocationManager} for the specified {@link XMPPConnection}, creating one if it doesn't * already exist. @@ -75,6 +105,36 @@ public final class GeoLocationManager extends Manager { return geoLocationManager; } + private GeoLocationManager(XMPPConnection connection) { + super(connection); + pepManager = PepManager.getInstanceFor(connection); + pepManager.addPepListener(new PepListener() { + + @Override + public void eventReceived(EntityBareJid from, EventElement event, Message message) { + if (!GEOLOCATION_NODE.equals(event.getEvent().getNode())) { + return; + } + + final BareJid contact = from.asBareJid(); + asyncButOrdered.performAsyncButOrdered(contact, () -> { + ItemsExtension itemsExtension = (ItemsExtension) event.getEvent(); + List items = itemsExtension.getExtensions(); + @SuppressWarnings("unchecked") + PayloadItem payload = (PayloadItem) items.get(0); + GeoLocation geoLocation = payload.getPayload(); + for (GeoLocationListener listener : geoLocationListeners) { + listener.onGeoLocationUpdated(contact, geoLocation, message); + } + }); + } + }); + serviceDiscoveryManager = ServiceDiscoveryManager.getInstanceFor(connection); + if (ENABLE_USER_LOCATION_NOTIFICATIONS_BY_DEFAULT) { + enableUserLocationNotifications(); + } + } + public void sendGeoLocationToJid(GeoLocation geoLocation, Jid jid) throws InterruptedException, NotConnectedException { @@ -111,7 +171,7 @@ public final class GeoLocationManager extends Manager { */ public void sendGeolocation(GeoLocation geoLocation) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException, NotALeafNodeException { - getNode().publish(new PayloadItem(geoLocation)); + pepManager.publish(GeoLocation.NAMESPACE, new PayloadItem(geoLocation)); } /** @@ -125,13 +185,25 @@ public final class GeoLocationManager extends Manager { */ public void stopPublishingGeolocation() throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException, NotALeafNodeException { - GeoLocation emptyGeolocation = new GeoLocation.Builder().build(); - getNode().publish(new PayloadItem(emptyGeolocation)); + pepManager.publish(GeoLocation.NAMESPACE, new PayloadItem(GeoLocation.EMPTY_GEO_LOCATION)); } - private LeafNode getNode() - throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException, NotALeafNodeException { - return PubSubManager.getInstanceFor(connection()).getOrCreateLeafNode(GeoLocation.NAMESPACE); + public void setGeoLocationNotificationsEnabledByDefault(boolean bool) { + ENABLE_USER_LOCATION_NOTIFICATIONS_BY_DEFAULT = bool; } + public void enableUserLocationNotifications() { + serviceDiscoveryManager.addFeature(GEOLOCATION_NOTIFY); + } + + public void disableGeoLocationNotifications() { + serviceDiscoveryManager.removeFeature(GEOLOCATION_NOTIFY); + } + + public boolean addGeoLocationListener(GeoLocationListener geoLocationListener) { + return geoLocationListeners.add(geoLocationListener); + } + public boolean removeGeoLocationListener(GeoLocationListener geoLocationListener) { + return geoLocationListeners.remove(geoLocationListener); + } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/packet/GeoLocation.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/packet/GeoLocation.java index 0b7b823fa..3cf633ee8 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/packet/GeoLocation.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/packet/GeoLocation.java @@ -48,6 +48,8 @@ public final class GeoLocation implements Serializable, ExtensionElement, FormFi public static final QName QNAME = new QName(NAMESPACE, ELEMENT); + public static final GeoLocation EMPTY_GEO_LOCATION = GeoLocation.builder().build(); + private static final Logger LOGGER = Logger.getLogger(GeoLocation.class.getName()); private final Double accuracy; @@ -264,6 +266,10 @@ public final class GeoLocation implements Serializable, ExtensionElement, FormFi return NAMESPACE; } + /** + * Returns a new instance of {@link Builder}. + * @return Builder + */ public static Builder builder() { return new GeoLocation.Builder(); } @@ -273,14 +279,35 @@ public final class GeoLocation implements Serializable, ExtensionElement, FormFi return true; } + /** + * Returns the first GeoLocation, or null if it doesn't exist in {@link Message}. + *
+ * @param message The Message stanza containing GeoLocation + * @return GeoLocation + */ public static GeoLocation from(Message message) { return message.getExtension(GeoLocation.class); } + /** + * Returns the first GeoLocation, or null if it doesn't exist in {@link FormField}. + *
+ * @param formField the Formfield containing GeoLocation + * @return GeoLocation + */ public static GeoLocation from(FormField formField) { return (GeoLocation) formField.getFormFieldChildElement(QNAME); } + /** + * This class defines a builder class for {@link GeoLocation}. + *
+ * {@link GeoLocation} instance can be obtained using {@link #build()} method as follows.

+ * GeoLocation.Builder builder = GeoLocation.builder();
+ * GeoLocation geoLocation = builder.build();
+ *

+ * To set GeoLocation parameters, use their respective setters. + */ public static class Builder { private Double accuracy; @@ -308,133 +335,285 @@ public final class GeoLocation implements Serializable, ExtensionElement, FormFi private String tzo; private URI uri; + /** + * Sets accuracy of horizontal GPS error in meters. + * + * @param accuracy accuracy in meters + * @return Builder + */ public Builder setAccuracy(Double accuracy) { this.accuracy = accuracy; return this; } + /** + * Sets Altitude in meters above or below sea level. + * + * @param alt altitude in meters + * @return Builder + */ public Builder setAlt(Double alt) { this.alt = alt; return this; } + /** + * Sets Vertical GPS error in meters. + * + * @param altAccuracy altAccuracy in meters + * @return Builder + */ public Builder setAltAccuracy(Double altAccuracy) { this.altAccuracy = altAccuracy; return this; } + /** + * Sets a named area such as a campus or neighborhood. + * + * @param area the named area + * @return Builder + */ public Builder setArea(String area) { this.area = area; return this; } + /** + * Sets GPS bearing (direction in which the entity is heading
+ * to reach its next waypoint), measured in decimal degrees,
+ * relative to true north. + * + * @param bearing bearing in decimal degrees + * @return Builder + */ public Builder setBearing(Double bearing) { this.bearing = bearing; return this; } + /** + * Sets a specific building on a street or in an area. + * + * @param building name of the building + * @return Builder + */ public Builder setBuilding(String building) { this.building = building; return this; } + /** + * Sets the nation where the user is located. + * + * @param country user's country of location + * @return Builder + */ public Builder setCountry(String country) { this.country = country; return this; } + /** + * Sets The ISO 3166 two-letter country code. + * + * @param countryCode two-letter country code + * @return Builder + */ public Builder setCountryCode(String countryCode) { this.countryCode = countryCode; return this; } + /** + * Sets GPS Datum. + * + * @param datum GPS datum + * @return Builder + */ public Builder setDatum(String datum) { this.datum = datum; return this; } + /** + * Sets A natural-language name for or description of the location. + * + * @param description description of the location + * @return Builder + */ public Builder setDescription(String description) { this.description = description; return this; } + /** + * Sets Horizontal GPS error in arc minutes;
+ * this element is deprecated in favor of accuracy. + * + * @param error error in arc minutes + * @return Builder + */ public Builder setError(Double error) { this.error = error; return this; } + /** + * Sets a particular floor in a building. + * + * @param floor floor in a building + * @return Builder + */ public Builder setFloor(String floor) { this.floor = floor; return this; } + /** + * Sets Latitude in decimal degrees North. + * + * @param lat latitude in decimal degrees + * @return Builder + */ public Builder setLat(Double lat) { this.lat = lat; return this; } + /** + * Sets Locality within the administrative region,
+ * such as a town or city. + * + * @param locality locality in a region + * @return Builder + */ public Builder setLocality(String locality) { this.locality = locality; return this; } + /** + * Sets Longitude in decimal degrees East. + * + * @param lon longitude in decimal degrees + * @return Builder + */ public Builder setLon(Double lon) { this.lon = lon; return this; } + /** + * Sets PostalCode used for postal delivery. + * + * @param postalcode code for postal delivery + * @return Builder + */ public Builder setPostalcode(String postalcode) { this.postalcode = postalcode; return this; } + /** + * Sets an administrative region of the nation,
+ * such as a state or province. + * + * @param region an administrative region + * @return Builder + */ public Builder setRegion(String region) { this.region = region; return this; } + /** + * Sets a particular room in a building. + * + * @param room room inside a building + * @return Builder + */ public Builder setRoom(String room) { this.room = room; return this; } + /** + * Sets Speed at which the entity is moving, in meters per second. + * + * @param speed speed in meters per second + * @return Builder + */ public Builder setSpeed(Double speed) { this.speed = speed; return this; } + /** + * Sets a thoroughfare within the locality, or a crossing of two thoroughfares. + * + * @param street name of the street + * @return Builder + */ public Builder setStreet(String street) { this.street = street; return this; } + /** + * Sets a catch-all element that captures any other information about the location. + * + * @param text distinctive feature about the location + * @return Builder + */ public Builder setText(String text) { this.text = text; return this; } + /** + * Sets UTC timestamp specifying the moment when the reading was taken. + * + * @param timestamp timestamp of the reading + * @return Builder + */ public Builder setTimestamp(Date timestamp) { this.timestamp = timestamp; return this; } + /** + * Sets the time zone offset from UTC for the current location. + * + * @param tzo time zone offset + * @return Builder + */ public Builder setTzo(String tzo) { this.tzo = tzo; return this; } + /** + * Sets URI or URL pointing to information about the location. + * + * @param uri uri to the location + * @return Builder + */ public Builder setUri(URI uri) { this.uri = uri; return this; } + /** + * This method is called to build {@link GeoLocation} from the Builder. + * + * @return GeoLocation + */ public GeoLocation build() { return new GeoLocation(accuracy, alt, altAccuracy, area, bearing, building, country, countryCode, datum, description, error, floor, lat, locality, lon, postalcode, region, room, speed, street, text, timestamp, tzo, uri); } - } - } diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/geolocation/GeolocationIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/geolocation/GeolocationIntegrationTest.java new file mode 100644 index 000000000..0c4c9f863 --- /dev/null +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/geolocation/GeolocationIntegrationTest.java @@ -0,0 +1,107 @@ +/** + * + * Copyright 2020 Aditya Borikar. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smackx.geolocation; + +import java.net.URI; +import java.util.concurrent.TimeoutException; + +import org.jivesoftware.smack.SmackException.NoResponseException; +import org.jivesoftware.smack.SmackException.NotConnectedException; +import org.jivesoftware.smack.SmackException.NotLoggedInException; +import org.jivesoftware.smack.XMPPException.XMPPErrorException; +import org.jivesoftware.smack.packet.Message; +import org.jivesoftware.smackx.geoloc.GeoLocationListener; +import org.jivesoftware.smackx.geoloc.GeoLocationManager; +import org.jivesoftware.smackx.geoloc.packet.GeoLocation; + +import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; +import org.igniterealtime.smack.inttest.SmackIntegrationTest; +import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.util.IntegrationTestRosterUtil; +import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint; + +import org.junit.AfterClass; + +import org.jxmpp.jid.BareJid; +import org.jxmpp.util.XmppDateTime; + +public class GeolocationIntegrationTest extends AbstractSmackIntegrationTest { + + private final GeoLocationManager glm1; + private final GeoLocationManager glm2; + + public GeolocationIntegrationTest(SmackIntegrationTestEnvironment environment) { + super(environment); + glm1 = GeoLocationManager.getInstanceFor(conOne); + glm2 = GeoLocationManager.getInstanceFor(conTwo); + } + + @SmackIntegrationTest + public void test() throws TimeoutException, Exception { + GeoLocation.Builder builder = GeoLocation.builder(); + GeoLocation geoLocation1 = builder.setAccuracy(23d) + .setAlt(1000d) + .setAltAccuracy(10d) + .setArea("Delhi") + .setBearing(10d) + .setBuilding("Small Building") + .setCountry("India") + .setCountryCode("IN") + .setDescription("My Description") + .setError(90d) + .setFloor("top") + .setLat(25.098345d) + .setLocality("awesome") + .setLon(77.992034) + .setPostalcode("110085") + .setRegion("North") + .setRoom("small") + .setSpeed(250.0d) + .setStreet("Wall Street") + .setText("Unit Testing GeoLocation") + .setTimestamp(XmppDateTime.parseDate("2004-02-19")) + .setTzo("+5:30") + .setUri(new URI("http://xmpp.org")) + .build(); + + IntegrationTestRosterUtil.ensureBothAccountsAreSubscribedToEachOther(conOne, conTwo, timeout); + final SimpleResultSyncPoint geoLocationReceived = new SimpleResultSyncPoint(); + final GeoLocationListener geoLocationListener = new GeoLocationListener() { + + @Override + public void onGeoLocationUpdated(BareJid jid, GeoLocation geoLocation, Message message) { + if (geoLocation.equals(geoLocation1)) { + geoLocationReceived.signal(); + } + } + }; + + glm2.addGeoLocationListener(geoLocationListener); + + try { + glm1.sendGeolocation(geoLocation1); + geoLocationReceived.waitForResult(timeout); + } finally { + glm2.removeGeoLocationListener(geoLocationListener); + } + } + + @AfterClass + public void unsubscribe() throws NotLoggedInException, NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException { + IntegrationTestRosterUtil.ensureBothAccountsAreNotInEachOthersRoster(conOne, conTwo); + } +} diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/geolocation/package-info.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/geolocation/package-info.java new file mode 100644 index 000000000..7ff880f4e --- /dev/null +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/geolocation/package-info.java @@ -0,0 +1,23 @@ +/** + * + * Copyright 2020 Aditya Borikar. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * Integration Tests for Smacks support for XEP-0080: User Location. + * + * @see + * XEP-0080: User Location + */ +package org.jivesoftware.smackx.geolocation; From a8b2446042f987f1881f1b3cf4db20a01aabb800 Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Fri, 13 Dec 2019 18:25:46 +0100 Subject: [PATCH 02/30] Fix javadoc issues --- .../omemo/signal/SignalOmemoRatchet.java | 1 - .../signal/SignalOmemoStoreConnector.java | 5 ++- .../smackx/omemo/CachingOmemoStore.java | 16 ++++---- .../smackx/omemo/FileBasedOmemoStore.java | 3 +- .../smackx/omemo/OmemoConfiguration.java | 8 ++-- .../smackx/omemo/OmemoInitializer.java | 2 +- .../smackx/omemo/OmemoManager.java | 34 ++++++++------- .../smackx/omemo/OmemoMessage.java | 8 ++-- .../smackx/omemo/OmemoService.java | 41 ++++++++++--------- .../jivesoftware/smackx/omemo/OmemoStore.java | 26 ++++++++---- .../omemo/element/OmemoBundleElement.java | 2 +- .../element/OmemoBundleElement_VAxolotl.java | 5 ++- .../smackx/omemo/element/OmemoElement.java | 2 +- .../CannotEstablishOmemoSessionException.java | 3 +- .../MultipleCryptoFailedException.java | 3 -- .../exceptions/ReadOnlyDeviceException.java | 3 +- .../exceptions/StaleDeviceException.java | 4 +- .../omemo/internal/CiphertextTuple.java | 4 +- .../smackx/omemo/internal/OmemoDevice.java | 4 +- .../smackx/omemo/trust/TrustState.java | 15 +++++-- .../smackx/omemo/util/OmemoConstants.java | 1 - .../smackx/omemo/util/OmemoKeyUtil.java | 23 +++++++---- .../omemo/util/OmemoMessageBuilder.java | 11 ++--- 23 files changed, 126 insertions(+), 98 deletions(-) diff --git a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoRatchet.java b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoRatchet.java index c219b6f14..6ab4311f8 100644 --- a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoRatchet.java +++ b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoRatchet.java @@ -149,7 +149,6 @@ public class SignalOmemoRatchet throw new AssertionError("Signals trust management MUST be disabled."); } - // TODO: Figure out, if this is enough... int type = ciphertextMessage.getType() == CiphertextMessage.PREKEY_TYPE ? OmemoElement.TYPE_OMEMO_PREKEY_MESSAGE : OmemoElement.TYPE_OMEMO_MESSAGE; diff --git a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoStoreConnector.java b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoStoreConnector.java index 751dcc830..69b43927c 100644 --- a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoStoreConnector.java +++ b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalOmemoStoreConnector.java @@ -87,8 +87,9 @@ public class SignalOmemoStoreConnector } /** - * We don't use this. - * @return dummy TODO javadoc me please + * The OMEMO protocol does not make use of a local registration ID, so we can simply return 0 here. + * + * @return local registration id. */ @Override public int getLocalRegistrationId() { diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java index d2fd9966b..780951243 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java @@ -437,8 +437,9 @@ public class CachingOmemoStore getCache(OmemoDevice device) { KeyCache cache = caches.get(device); @@ -451,11 +452,12 @@ public class CachingOmemoStore - * @param - * @param - * @param - * @param + * + * @param type of the identity key pair + * @param type of the public identity key + * @param type of a public preKey + * @param type of the public signed preKey + * @param type of the OMEMO session */ private static class KeyCache { private T_IdKeyPair identityKeyPair; diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/FileBasedOmemoStore.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/FileBasedOmemoStore.java index d8b1df42c..62b742db5 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/FileBasedOmemoStore.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/FileBasedOmemoStore.java @@ -45,6 +45,7 @@ import org.jxmpp.jid.BareJid; /** * Like a rocket! + * Implementation of the {@link OmemoStore} class that uses plain files for storage. * * @author Paul Schaub */ @@ -514,7 +515,7 @@ public abstract class FileBasedOmemoStoreBlog Post explaining the danger of read-only devices. TODO: Add URL + * @see Blog Post explaining the danger of read-only devices. */ public static void setIgnoreReadOnlyDevices(boolean ignore) { IGNORE_READ_ONLY_DEVICES = ignore; @@ -40,7 +40,7 @@ public final class OmemoConfiguration { * Return true, if the client should stop encrypting messages to a read-only device. * * @return true if read-only devices should get ignored after a certain amount of unanswered messages. - * @see Blog Post explaining the danger of read-only devices. TODO: Add URL + * @see Blog Post explaining the danger of read-only devices. */ public static boolean getIgnoreReadOnlyDevices() { return IGNORE_READ_ONLY_DEVICES; @@ -53,7 +53,7 @@ public final class OmemoConfiguration { * This threshold is used to prevent read-only devices from weakening forward secrecy. * * @param maxReadOnlyMessageCount maximum number of allowed messages to a read-only device. - * @see Blog Post explaining the danger of read-only devices. TODO: Add URL + * @see Blog Post explaining the danger of read-only devices. */ public static void setMaxReadOnlyMessageCount(int maxReadOnlyMessageCount) { if (maxReadOnlyMessageCount <= 0) { @@ -69,7 +69,7 @@ public final class OmemoConfiguration { * This threshold is used to prevent read-only devices from weakening forward secrecy. * * @return maximum number of allowed messages to a read-only device. - * @see Blog Post explaining the danger of read-only devices. TODO: Add URL + * @see Blog Post explaining the danger of read-only devices. */ public static int getMaxReadOnlyMessageCount() { return MAX_READ_ONLY_MESSAGE_COUNT; diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoInitializer.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoInitializer.java index 5f293490f..a5d1836ad 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoInitializer.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoInitializer.java @@ -19,7 +19,7 @@ package org.jivesoftware.smackx.omemo; import org.jivesoftware.smack.initializer.UrlInitializer; /** - * Initializer class that registers omemo providers. + * Initializer class that registers OMEMO providers. * * @author Paul Schaub */ diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoManager.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoManager.java index a3d2ff48d..71d80d478 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoManager.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoManager.java @@ -151,7 +151,7 @@ public final class OmemoManager extends Manager { * @param connection XmppConnection. * @param deviceId MUST NOT be null and MUST be greater than 0. * - * @return manager TODO javadoc me please + * @return OmemoManager instance for the given connection and deviceId. */ public static synchronized OmemoManager getInstanceFor(XMPPConnection connection, Integer deviceId) { if (deviceId == null || deviceId < 1) { @@ -182,7 +182,7 @@ public final class OmemoManager extends Manager { * * @param connection XmppConnection. * - * @return manager TODO javadoc me please + * @return OmemoManager instance for the given connection and a determined deviceId. */ public static synchronized OmemoManager getInstanceFor(XMPPConnection connection) { TreeMap managers = INSTANCES.get(connection); @@ -219,7 +219,8 @@ public final class OmemoManager extends Manager { /** * Return the TrustCallback of this manager. - * @return + * + * @return callback that is used for trust decisions. */ OmemoTrustCallback getTrustCallback() { return trustCallback; @@ -530,10 +531,11 @@ public final class OmemoManager extends Manager { * * @param multiUserChat MUC * @return true if chat supports OMEMO - * @throws XMPPException.XMPPErrorException if - * @throws SmackException.NotConnectedException something - * @throws InterruptedException goes - * @throws SmackException.NoResponseException wrong + * + * @throws XMPPException.XMPPErrorException if there was an XMPP protocol level error + * @throws SmackException.NotConnectedException if the connection is not connected + * @throws InterruptedException if the thread is interrupted + * @throws SmackException.NoResponseException if the server does not respond */ public boolean multiUserChatSupportsOmemo(MultiUserChat multiUserChat) throws XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException, @@ -564,7 +566,8 @@ public final class OmemoManager extends Manager { /** * Return the fingerprint of our identity key. * - * @return fingerprint TODO javadoc me please + * @return our own OMEMO fingerprint + * * @throws SmackException.NotLoggedInException if we don't know our bareJid yet. * @throws CorruptedOmemoKeyException if our identityKey is corrupted. * @throws IOException if an I/O error occurred. @@ -580,8 +583,10 @@ public final class OmemoManager extends Manager { /** * Get the fingerprint of a contacts device. + * * @param device contacts OmemoDevice - * @return fingerprint TODO javadoc me please + * @return fingerprint of the given OMEMO device. + * * @throws CannotEstablishOmemoSessionException if we have no session yet, and are unable to create one. * @throws SmackException.NotLoggedInException if the XMPP connection is not authenticated. * @throws CorruptedOmemoKeyException if the copy of the fingerprint we have is corrupted. @@ -763,7 +768,8 @@ public final class OmemoManager extends Manager { /** * Returns a pseudo random number from the interval [1, Integer.MAX_VALUE]. - * @return deviceId TODO javadoc me please + * + * @return a random deviceId. */ public static int randomDeviceId() { return new Random().nextInt(Integer.MAX_VALUE - 1) + 1; @@ -772,7 +778,7 @@ public final class OmemoManager extends Manager { /** * Return the BareJid of the user. * - * @return bareJid TODO javadoc me please + * @return our own bare JID. */ public BareJid getOwnJid() { if (ownJid == null && connection().isAuthenticated()) { @@ -785,7 +791,7 @@ public final class OmemoManager extends Manager { /** * Return the deviceId of this OmemoManager. * - * @return deviceId TODO javadoc me please + * @return this OmemoManagers deviceId. */ public synchronized Integer getDeviceId() { return deviceId; @@ -794,7 +800,7 @@ public final class OmemoManager extends Manager { /** * Return the OmemoDevice of the user. * - * @return omemoDevice TODO javadoc me please + * @return our own OmemoDevice */ public synchronized OmemoDevice getOwnDevice() { BareJid jid = getOwnJid(); @@ -926,7 +932,7 @@ public final class OmemoManager extends Manager { /** * Return the OMEMO service object. * - * @return omemoService TODO javadoc me please + * @return the OmemoService object related to this OmemoManager. */ OmemoService getOmemoService() { throwIfNoServiceSet(); diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoMessage.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoMessage.java index 2d5554e7f..a1486d900 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoMessage.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoMessage.java @@ -49,7 +49,7 @@ public class OmemoMessage { /** * Return the original OmemoElement (<encrypted/>). * - * @return omemoElement TODO javadoc me please + * @return omemoElement of the message */ public OmemoElement getElement() { return element; @@ -58,7 +58,7 @@ public class OmemoMessage { /** * Return the messageKey (or transported key in case of a KeyTransportMessage). * - * @return key TODO javadoc me please + * @return encryption key that protects the message payload */ public byte[] getKey() { return messageKey.clone(); @@ -66,6 +66,7 @@ public class OmemoMessage { /** * Return the initialization vector belonging to the key. + * * @return initialization vector */ public byte[] getIv() { @@ -189,7 +190,8 @@ public class OmemoMessage { /** * Return the OmemoDevice which sent the message. - * @return senderDevice TODO javadoc me please + * + * @return OMEMO device that sent the message. */ public OmemoDevice getSenderDevice() { return senderDevice; diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java index 372579b61..f9a01f108 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java @@ -107,17 +107,11 @@ public abstract class OmemoService INSTANCE; private OmemoStore omemoStore; private final HashMap> omemoRatchets = new HashMap<>(); - /** - * Create a new OmemoService object. This should only happen once. - */ protected OmemoService() { } @@ -229,7 +223,7 @@ public abstract class OmemoService decryptMamQueryResult(OmemoManager.LoggedInOmemoManager managerGuard, @@ -1326,8 +1325,10 @@ public abstract class OmemoService getPreKeys() { if (preKeys == null) { diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoBundleElement_VAxolotl.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoBundleElement_VAxolotl.java index 945a6611f..736afa37d 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoBundleElement_VAxolotl.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoBundleElement_VAxolotl.java @@ -21,8 +21,9 @@ import static org.jivesoftware.smackx.omemo.util.OmemoConstants.OMEMO_NAMESPACE_ import java.util.HashMap; /** - * OMEMO device bundle as described here: - * https://xmpp.org/extensions/xep-0384.html#usecases-announcing (Example 3). + * OMEMO device bundle as described by the protocol. + * + * @see XEP-0384: OMEMO Encryption (Example 3). * * @author Paul Schaub */ diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoElement.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoElement.java index 6d28da919..fea020003 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoElement.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoElement.java @@ -55,7 +55,7 @@ public abstract class OmemoElement implements ExtensionElement { /** * Return the payload of the message. * - * @return payload TODO javadoc me please + * @return encrypted payload of the message. */ public byte[] getPayload() { if (payload == null) { diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/CannotEstablishOmemoSessionException.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/CannotEstablishOmemoSessionException.java index e20782632..2d4e65513 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/CannotEstablishOmemoSessionException.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/CannotEstablishOmemoSessionException.java @@ -79,7 +79,8 @@ public class CannotEstablishOmemoSessionException extends Exception { /** * Return true, if there is at least one recipient, which would not be able to decipher the message on any of * their devices. - * @return boolean TODO javadoc me please + * + * @return true if the exception requires to be thrown */ public boolean requiresThrowing() { for (Map.Entry> entry : failures.entrySet()) { diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/MultipleCryptoFailedException.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/MultipleCryptoFailedException.java index 8627823f9..8a890cca0 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/MultipleCryptoFailedException.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/MultipleCryptoFailedException.java @@ -22,9 +22,6 @@ import java.util.List; public final class MultipleCryptoFailedException extends CryptoFailedException { - /** - * - */ private static final long serialVersionUID = 1L; private final List cryptoFailedExceptions; diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/ReadOnlyDeviceException.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/ReadOnlyDeviceException.java index ce69d1a30..cc82bc365 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/ReadOnlyDeviceException.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/ReadOnlyDeviceException.java @@ -44,7 +44,8 @@ public class ReadOnlyDeviceException extends Exception { /** * Return the device in question. - * @return device TODO javadoc me please + * + * @return device that is read-only. */ public OmemoDevice getDevice() { return device; diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/StaleDeviceException.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/StaleDeviceException.java index c3453b99e..d3110f0a8 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/StaleDeviceException.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/exceptions/StaleDeviceException.java @@ -31,8 +31,8 @@ public class StaleDeviceException extends Exception { * This exception gets thrown if a message cannot be encrypted for a device due to the device being inactive for too long (stale). * * @param device OmemoDevice. - * @param lastMessageDate TODO javadoc me please - * @param lastDeviceIdPublicationDate TODO javadoc me please + * @param lastMessageDate date of the last received message from the device. + * @param lastDeviceIdPublicationDate date on which the device ID was last published via pubsub. */ public StaleDeviceException(OmemoDevice device, Date lastMessageDate, Date lastDeviceIdPublicationDate) { this.device = device; diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/internal/CiphertextTuple.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/internal/CiphertextTuple.java index 60fac8469..32483d17c 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/internal/CiphertextTuple.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/internal/CiphertextTuple.java @@ -41,7 +41,7 @@ public class CiphertextTuple { /** * Return the ciphertext. * - * @return ciphertext TODO javadoc me please + * @return ciphertext part of the tuple */ public byte[] getCiphertext() { return ciphertext; @@ -50,7 +50,7 @@ public class CiphertextTuple { /** * Return the messageType. * - * @return messageType TODO javadoc me please + * @return type of the message */ public int getMessageType() { return this.messageType; diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/internal/OmemoDevice.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/internal/OmemoDevice.java index 762494281..11041f0c2 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/internal/OmemoDevice.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/internal/OmemoDevice.java @@ -43,7 +43,7 @@ public class OmemoDevice { /** * Return the BareJid of the device owner. * - * @return bareJid TODO javadoc me please + * @return bare JID of the device owner. */ public BareJid getJid() { return this.jid; @@ -52,7 +52,7 @@ public class OmemoDevice { /** * Return the OMEMO device Id of the device. * - * @return deviceId TODO javadoc me please + * @return OMEMO device ID. */ public int getDeviceId() { return this.deviceId; diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/trust/TrustState.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/trust/TrustState.java index 605298c26..8ad2d2ae0 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/trust/TrustState.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/trust/TrustState.java @@ -17,7 +17,16 @@ package org.jivesoftware.smackx.omemo.trust; public enum TrustState { - undecided, // User has yet to decide, whether the identity is trusted or not. - untrusted, // User decided NOT to trust this device. - trusted // User decided to trust this device. + /** + * User has yet to decide, whether the identity is trusted or not. + */ + undecided, + /** + * User decided NOT to trust this device. + */ + untrusted, + /** + * User decided to trust this device. + */ + trusted } diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/util/OmemoConstants.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/util/OmemoConstants.java index 885260568..f72630bac 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/util/OmemoConstants.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/util/OmemoConstants.java @@ -22,7 +22,6 @@ package org.jivesoftware.smackx.omemo.util; */ public final class OmemoConstants { - // Constants /** * Omemo related namespace. */ diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/util/OmemoKeyUtil.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/util/OmemoKeyUtil.java index 1954246f1..163fb06cf 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/util/OmemoKeyUtil.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/util/OmemoKeyUtil.java @@ -55,7 +55,8 @@ public abstract class OmemoKeyUtil ratchet, String message) throws NoSuchPaddingException, BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, IllegalBlockSizeException, - UnsupportedEncodingException, InvalidAlgorithmParameterException { + InvalidAlgorithmParameterException { this(userDevice, callback, ratchet, generateKey(KEYTYPE, KEYLENGTH), generateIv(), message); } @@ -148,7 +144,6 @@ public class OmemoMessageBuilder Date: Fri, 13 Dec 2019 18:26:40 +0100 Subject: [PATCH 03/30] Avoid returning empty set of deviceIds in caching store --- .../org/jivesoftware/smackx/omemo/CachingOmemoStore.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java index 780951243..766141b5c 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/CachingOmemoStore.java @@ -75,7 +75,13 @@ public class CachingOmemoStore(); //TODO: ? + SortedSet deviceIds = new TreeSet<>(); + for (OmemoDevice device : caches.keySet()) { + if (device.getJid().equals(localUser)) { + deviceIds.add(device.getDeviceId()); + } + } + return deviceIds; } } From 85ff749d89d2d14e038880150dabc05761c7b39b Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Fri, 13 Dec 2019 18:28:09 +0100 Subject: [PATCH 04/30] Use StringBuilder instead of String concatenation --- .../smackx/omemo/element/OmemoBundleElement.java | 16 +++++++++------- .../omemo/element/OmemoDeviceListElement.java | 11 ++++++++--- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoBundleElement.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoBundleElement.java index 060435320..308a35e87 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoBundleElement.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoBundleElement.java @@ -209,15 +209,17 @@ public abstract class OmemoBundleElement implements ExtensionElement { @Override public String toString() { - String out = "OmemoBundleElement[\n"; - out += SIGNED_PRE_KEY_PUB + " " + SIGNED_PRE_KEY_ID + "=" + signedPreKeyId + ": " + signedPreKeyB64 + "\n"; - out += SIGNED_PRE_KEY_SIG + ": " + signedPreKeySignatureB64 + "\n"; - out += IDENTITY_KEY + ": " + identityKeyB64 + "\n"; - out += PRE_KEYS + " (" + preKeysB64.size() + ")\n"; + StringBuilder sb = new StringBuilder("OmemoBundleElement[\n"); + sb.append(SIGNED_PRE_KEY_PUB).append(' ').append(SIGNED_PRE_KEY_ID).append('=').append(signedPreKeyId) + .append(':').append(signedPreKeyB64).append('\n') + .append(SIGNED_PRE_KEY_SIG).append(": ").append(signedPreKeySignatureB64).append('\n') + .append(IDENTITY_KEY).append(": ").append(identityKeyB64).append('\n') + .append(PRE_KEYS).append(" (").append(preKeysB64.size()).append(")\n"); for (Map.Entry e : preKeysB64.entrySet()) { - out += PRE_KEY_PUB + " " + PRE_KEY_ID + "=" + e.getKey() + ": " + e.getValue() + "\n"; + sb.append(PRE_KEY_PUB).append(' ').append(PRE_KEY_ID).append("=").append(e.getKey()).append(": ").append(e.getValue()).append("\n"); } - return out; + sb.append("]"); + return sb.toString(); } @Override diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoDeviceListElement.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoDeviceListElement.java index 2b2515cb4..8644586d0 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoDeviceListElement.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoDeviceListElement.java @@ -18,6 +18,7 @@ package org.jivesoftware.smackx.omemo.element; import java.util.Collections; import java.util.HashSet; +import java.util.Iterator; import java.util.Set; import org.jivesoftware.smack.packet.ExtensionElement; @@ -78,10 +79,14 @@ public abstract class OmemoDeviceListElement implements ExtensionElement { @Override public final String toString() { - String out = "OmemoDeviceListElement["; + StringBuilder sb = new StringBuilder("OmemoDeviceListElement["); + Iterator iterator = deviceIds.iterator(); for (int i : deviceIds) { - out += i + ","; + sb.append(i); + if (iterator.hasNext()) { + sb.append(','); + } } - return out.substring(0, out.length() - 1) + "]"; + return sb.append(']').toString(); } } From 6d0bf04c1eb7f309a568ad99973eea02e8ea692a Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Fri, 13 Dec 2019 18:30:43 +0100 Subject: [PATCH 05/30] Improve Javadoc readability by adding separating lines --- .../omemo/signal/SignalCachingOmemoStore.java | 1 + .../smackx/omemo/OmemoManager.java | 19 ++++++++++++ .../smackx/omemo/OmemoMessage.java | 9 ++++++ .../smackx/omemo/OmemoRatchet.java | 2 ++ .../smackx/omemo/OmemoService.java | 23 +++++++++++++++ .../jivesoftware/smackx/omemo/OmemoStore.java | 29 +++++++++++++++++++ .../exceptions/StaleDeviceException.java | 3 ++ .../UntrustedOmemoIdentityException.java | 1 + .../listener/OmemoMucMessageListener.java | 2 ++ .../smackx/omemo/util/OmemoConstants.java | 1 + .../smackx/omemo/util/OmemoKeyUtil.java | 9 ++++++ .../omemo/util/OmemoMessageBuilder.java | 4 +++ 12 files changed, 103 insertions(+) diff --git a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalCachingOmemoStore.java b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalCachingOmemoStore.java index 084d95f2b..135bd96fb 100644 --- a/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalCachingOmemoStore.java +++ b/smack-omemo-signal/src/main/java/org/jivesoftware/smackx/omemo/signal/SignalCachingOmemoStore.java @@ -44,6 +44,7 @@ public class SignalCachingOmemoStore extends CachingOmemoStore getDevicesOf(BareJid contact) throws IOException { @@ -300,6 +303,7 @@ public final class OmemoManager extends Manager { * @param recipient recipients bareJid * @param message text to encrypt * @return encrypted message + * * @throws CryptoFailedException when something crypto related fails * @throws UndecidedOmemoIdentityException When there are undecided devices * @throws InterruptedException if the calling thread was interrupted. @@ -323,6 +327,7 @@ public final class OmemoManager extends Manager { * @param recipients recipients barejids * @param message text to encrypt * @return encrypted message. + * * @throws CryptoFailedException When something crypto related fails * @throws UndecidedOmemoIdentityException When there are undecided devices. * @throws InterruptedException if the calling thread was interrupted. @@ -349,6 +354,7 @@ public final class OmemoManager extends Manager { * @param muc multiUserChat * @param message message to send * @return encrypted message + * * @throws UndecidedOmemoIdentityException when there are undecided devices. * @throws CryptoFailedException if the OMEMO cryptography failed. * @throws XMPPException.XMPPErrorException if there was an XMPP error returned. @@ -403,6 +409,7 @@ public final class OmemoManager extends Manager { * * @param mamQuery The MAM query * @return list of decrypted OmemoMessages + * * @throws SmackException.NotLoggedInException if the Manager is not authenticated. * @throws IOException if an I/O error occurred. */ @@ -431,6 +438,7 @@ public final class OmemoManager extends Manager { * Distrust the fingerprint/OmemoDevice tuple. * The fingerprint must be the lowercase, hexadecimal fingerprint of the identityKey of the device and must * be of length 64. + * * @param device device * @param fingerprint fingerprint */ @@ -446,6 +454,7 @@ public final class OmemoManager extends Manager { * Returns true, if the fingerprint/OmemoDevice tuple is trusted, otherwise false. * The fingerprint must be the lowercase, hexadecimal fingerprint of the identityKey of the device and must * be of length 64. + * * @param device device * @param fingerprint fingerprint * @return true if this is a trusted OMEMO identity. @@ -462,6 +471,7 @@ public final class OmemoManager extends Manager { * Returns true, if the fingerprint/OmemoDevice tuple is decided by the user. * The fingerprint must be the lowercase, hexadecimal fingerprint of the identityKey of the device and must * be of length 64. + * * @param device device * @param fingerprint fingerprint * @return true if the trust is decided for the identity. @@ -479,6 +489,7 @@ public final class OmemoManager extends Manager { * secrecy. * * @param recipient recipient + * * @throws CorruptedOmemoKeyException When the used identityKeys are corrupted * @throws CryptoFailedException When something fails with the crypto * @throws CannotEstablishOmemoSessionException When we can't establish a session with the recipient @@ -511,6 +522,7 @@ public final class OmemoManager extends Manager { * * @param contact contact * @return true if contact has at least one OMEMO capable device. + * * @throws SmackException.NotConnectedException if the XMPP connection is not connected. * @throws InterruptedException if the calling thread was interrupted. * @throws SmackException.NoResponseException if there was no response from the remote entity. @@ -551,6 +563,7 @@ public final class OmemoManager extends Manager { * @param connection XMPPConnection * @param server domainBareJid of the server to test * @return true if server supports pep + * * @throws XMPPException.XMPPErrorException if there was an XMPP error returned. * @throws SmackException.NotConnectedException if the XMPP connection is not connected. * @throws InterruptedException if the calling thread was interrupted. @@ -614,6 +627,7 @@ public final class OmemoManager extends Manager { /** * Return all OmemoFingerprints of active devices of a contact. * TODO: Make more fail-safe + * * @param contact contact * @return Map of all active devices of the contact and their fingerprints. * @@ -661,6 +675,7 @@ public final class OmemoManager extends Manager { /** * Remove an OmemoMessageListener. + * * @param listener OmemoMessageListener */ public void removeOmemoMessageListener(OmemoMessageListener listener) { @@ -678,6 +693,7 @@ public final class OmemoManager extends Manager { /** * Remove an OmemoMucMessageListener. + * * @param listener OmemoMucMessageListener */ public void removeOmemoMucMessageListener(OmemoMucMessageListener listener) { @@ -688,6 +704,7 @@ public final class OmemoManager extends Manager { * Request a deviceList update from contact contact. * * @param contact contact we want to obtain the deviceList from. + * * @throws InterruptedException if the calling thread was interrupted. * @throws PubSubException.NotALeafNodeException if a PubSub leaf node operation was attempted on a non-leaf node. * @throws XMPPException.XMPPErrorException if there was an XMPP error returned. @@ -750,6 +767,7 @@ public final class OmemoManager extends Manager { /** * Return true, if the given Stanza contains an OMEMO element 'encrypted'. + * * @param stanza stanza * @return true if stanza has extension 'encrypted' */ @@ -812,6 +830,7 @@ public final class OmemoManager extends Manager { /** * Set the deviceId of the manager to nDeviceId. + * * @param nDeviceId new deviceId */ synchronized void setDeviceId(int nDeviceId) { diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoMessage.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoMessage.java index a1486d900..e2eb8635a 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoMessage.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoMessage.java @@ -82,6 +82,7 @@ public class OmemoMessage { /** * Create a new outgoing OMEMO message. + * * @param element OmemoElement * @param key messageKey (or transported key) * @param iv initialization vector belonging to key @@ -97,6 +98,7 @@ public class OmemoMessage { /** * Return a list of all devices the sender originally intended to encrypt the message for. + * * @return list of intended recipients. */ public Set getIntendedDevices() { @@ -105,6 +107,7 @@ public class OmemoMessage { /** * Return a map of all skipped recipients and the reasons for skipping. + * * @return map of skipped recipients and reasons for that. */ public HashMap getSkippedDevices() { @@ -113,6 +116,7 @@ public class OmemoMessage { /** * Determine, if some recipients were skipped during encryption. + * * @return true if recipients were skipped. */ public boolean isMissingRecipients() { @@ -156,6 +160,7 @@ public class OmemoMessage { /** * Create a new incoming OMEMO message. + * * @param element original OmemoElement * @param key message key (or transported key) * @param iv respective initialization vector @@ -174,6 +179,7 @@ public class OmemoMessage { /** * Return the decrypted body of the message. + * * @return decrypted body */ public String getBody() { @@ -182,6 +188,7 @@ public class OmemoMessage { /** * Return the fingerprint of the messages sender device. + * * @return fingerprint of sender */ public OmemoFingerprint getSendersFingerprint() { @@ -199,6 +206,7 @@ public class OmemoMessage { /** * Return true, if this message was sent as a preKeyMessage. + * * @return preKeyMessage or not */ boolean isPreKeyMessage() { @@ -208,6 +216,7 @@ public class OmemoMessage { /** * Return true, if the message was a KeyTransportMessage. * A KeyTransportMessage is a OmemoMessage without a payload. + * * @return keyTransportMessage? */ public boolean isKeyTransportMessage() { diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoRatchet.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoRatchet.java index e00815283..838784806 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoRatchet.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoRatchet.java @@ -86,6 +86,7 @@ public abstract class OmemoRatchet Elliptic Curve PublicKey class * @param Bundle class * @param Cipher class + * * @author Paul Schaub */ public abstract class OmemoService @@ -113,10 +114,12 @@ public abstract class OmemoService> omemoRatchets = new HashMap<>(); protected OmemoService() { + } /** * Return the singleton instance of this class. When no instance is set, throw an IllegalStateException instead. + * * @return instance. */ public static OmemoService getInstance() { @@ -226,6 +229,7 @@ public abstract class OmemoServiceXEP-0384: Sending a key. * * @param managerGuard Initialized OmemoManager. @@ -572,9 +579,11 @@ public abstract class OmemoService getUndecidedDevices(OmemoDevice userDevice, OmemoTrustCallback callback, Set devices) throws IOException { @@ -871,6 +885,7 @@ public abstract class OmemoService Elliptic Curve PublicKey class * @param Bundle class * @param Cipher class + * * @author Paul Schaub */ public abstract class OmemoStore { @@ -68,6 +69,7 @@ public abstract class OmemoStore preKeyHashMap) throws IOException { @@ -449,6 +469,7 @@ public abstract class OmemoStore loadOmemoPreKeys(OmemoDevice userDevice) throws IOException; @@ -473,6 +494,7 @@ public abstract class OmemoStore loadOmemoSignedPreKeys(OmemoDevice userDevice) throws IOException; @@ -497,6 +519,7 @@ public abstract class OmemoStore loadAllRawSessionsOf(OmemoDevice userDevice, BareJid contact) throws IOException; @@ -535,6 +560,7 @@ public abstract class OmemoStore bundles(OmemoBundleElement bundle, OmemoDevice contact) throws CorruptedOmemoKeyException { @@ -138,6 +140,7 @@ public abstract class OmemoKeyUtilOMEMO security audit. * * @param message plaintext message + * * @throws NoSuchPaddingException if the requested padding mechanism is not availble. * @throws InvalidAlgorithmParameterException if the provided arguments are invalid. * @throws InvalidKeyException if the key is invalid. @@ -210,6 +212,7 @@ public class OmemoMessageBuilder Date: Mon, 6 Jan 2020 20:01:04 +0100 Subject: [PATCH 06/30] Improve readability by fixing wrong indentation levels --- .../smackx/omemo/OmemoManager.java | 20 +++++++++---------- .../smackx/omemo/OmemoService.java | 12 +++++------ .../omemo/element/OmemoBundleElement.java | 4 ++-- .../omemo/util/OmemoMessageBuilder.java | 6 +++--- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoManager.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoManager.java index 6b53c68b5..c319df84d 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoManager.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoManager.java @@ -316,9 +316,9 @@ public final class OmemoManager extends Manager { throws CryptoFailedException, UndecidedOmemoIdentityException, InterruptedException, SmackException.NotConnectedException, SmackException.NoResponseException, SmackException.NotLoggedInException, IOException { - Set recipients = new HashSet<>(); - recipients.add(recipient); - return encrypt(recipients, message); + Set recipients = new HashSet<>(); + recipients.add(recipient); + return encrypt(recipients, message); } /** @@ -506,8 +506,8 @@ public final class OmemoManager extends Manager { CryptoFailedException, CannotEstablishOmemoSessionException, IOException { XMPPConnection connection = connection(); MessageBuilder message = connection.getStanzaFactory() - .buildMessageStanza() - .to(recipient.getJid()); + .buildMessageStanza() + .to(recipient.getJid()); OmemoElement element = getOmemoService().createRatchetUpdateElement(new LoggedInOmemoManager(this), recipient); message.addExtension(element); @@ -751,8 +751,8 @@ public final class OmemoManager extends Manager { */ public synchronized void rotateSignedPreKey() throws CorruptedOmemoKeyException, SmackException.NotLoggedInException, XMPPException.XMPPErrorException, - SmackException.NotConnectedException, InterruptedException, SmackException.NoResponseException, - IOException, PubSubException.NotALeafNodeException { + SmackException.NotConnectedException, InterruptedException, SmackException.NoResponseException, + IOException, PubSubException.NotALeafNodeException { if (!connection().isAuthenticated()) { throw new SmackException.NotLoggedInException(); } @@ -1037,7 +1037,7 @@ public final class OmemoManager extends Manager { OmemoDeviceListElement receivedDeviceList = (OmemoDeviceListElement) payloadItem.getPayload(); try { getOmemoService().getOmemoStoreBackend().mergeCachedDeviceList(getOwnDevice(), from, - receivedDeviceList); + receivedDeviceList); if (!from.asBareJid().equals(getOwnJid())) { continue; @@ -1046,8 +1046,8 @@ public final class OmemoManager extends Manager { deviceList = getOmemoService().cleanUpDeviceList(getOwnDevice()); } catch (IOException e) { LOGGER.log(Level.SEVERE, - "IOException while processing OMEMO PEP device updates. Message: " + message, - e); + "IOException while processing OMEMO PEP device updates. Message: " + message, + e); continue; } final OmemoDeviceListElement_VAxolotl newDeviceList = new OmemoDeviceListElement_VAxolotl(deviceList); diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java index 59d56a23f..c4c4066f7 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java @@ -1141,8 +1141,8 @@ public abstract class OmemoService e : preKeysB64.entrySet()) { - sb.append(PRE_KEY_PUB).append(' ').append(PRE_KEY_ID).append("=").append(e.getKey()).append(": ").append(e.getValue()).append("\n"); + sb.append(PRE_KEY_PUB).append(' ').append(PRE_KEY_ID).append('=').append(e.getKey()).append(": ").append(e.getValue()).append('\n'); } - sb.append("]"); + sb.append(']'); return sb.toString(); } diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/util/OmemoMessageBuilder.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/util/OmemoMessageBuilder.java index 8e9f03a85..6e49db945 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/util/OmemoMessageBuilder.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/util/OmemoMessageBuilder.java @@ -152,8 +152,8 @@ public class OmemoMessageBuilder Date: Sat, 11 Apr 2020 12:18:18 +0200 Subject: [PATCH 07/30] sinttest: convert LoginIntegrationTest to Junit5 --- .../smack/LoginIntegrationTest.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smack/LoginIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smack/LoginIntegrationTest.java index f43f18f2b..1458b99a9 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smack/LoginIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smack/LoginIntegrationTest.java @@ -16,8 +16,8 @@ */ package org.jivesoftware.smack; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.IOException; import java.security.KeyManagementException; @@ -25,6 +25,7 @@ import java.security.NoSuchAlgorithmException; import org.jivesoftware.smack.sasl.SASLError; import org.jivesoftware.smack.sasl.SASLErrorException; +import org.jivesoftware.smack.sasl.packet.SaslNonza; import org.jivesoftware.smack.util.StringUtils; import org.igniterealtime.smack.inttest.AbstractSmackLowLevelIntegrationTest; @@ -57,13 +58,11 @@ public class LoginIntegrationTest extends AbstractSmackLowLevelIntegrationTest { AbstractXMPPConnection connection = getUnconnectedConnection(); connection.connect(); - try { - connection.login(nonExistentUserString, invalidPassword); - fail("Exception expected"); - } - catch (SASLErrorException e) { - assertEquals(SASLError.not_authorized, e.getSASLFailure().getSASLError()); - } + SASLErrorException saslErrorException = assertThrows(SASLErrorException.class, + () -> connection.login(nonExistentUserString, invalidPassword)); + + SaslNonza.SASLFailure saslFailure = saslErrorException.getSASLFailure(); + assertEquals(SASLError.not_authorized, saslFailure.getSASLError()); } } From 2c83c73005df0ac17e4820e242575183a8644b0e Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sat, 11 Apr 2020 18:04:15 +0200 Subject: [PATCH 08/30] core: Avoid ClassCastException in getExtension(Class) Ensure that he returned extension element is actually of the correct type. It should not be common, but in theory, Smack's provider architecture would allow for different types to be returned than the ones one may expect. --- .../java/org/jivesoftware/smack/packet/StanzaView.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/packet/StanzaView.java b/smack-core/src/main/java/org/jivesoftware/smack/packet/StanzaView.java index 981898965..9ee3b6933 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/packet/StanzaView.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/packet/StanzaView.java @@ -87,10 +87,14 @@ public interface StanzaView extends XmlLangElement { return false; } - @SuppressWarnings("unchecked") default E getExtension(Class extensionElementClass) { QName qname = XmppElementUtil.getQNameFor(extensionElementClass); - return (E) getExtension(qname); + ExtensionElement extensionElement = getExtension(qname); + if (!extensionElementClass.isInstance(extensionElement)) { + return null; + } + + return extensionElementClass.cast(extensionElement); } /** From 4a99f7252cffff849e8e521abcff3cf53501022b Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sat, 11 Apr 2020 18:06:03 +0200 Subject: [PATCH 09/30] gradle: remove 'java' plugin Only one plugin of 'java' of 'java-library' is required. --- build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/build.gradle b/build.gradle index 6eeea45c5..41d2448b6 100644 --- a/build.gradle +++ b/build.gradle @@ -23,7 +23,6 @@ apply plugin: 'org.kordamp.gradle.markdown' apply from: 'version.gradle' allprojects { - apply plugin: 'java' apply plugin: 'java-library' apply plugin: 'eclipse' apply plugin: 'idea' From b5f9d4d7a370bc8f329327e6f3d06484ee1dfaed Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sat, 11 Apr 2020 21:59:21 +0200 Subject: [PATCH 10/30] 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. --- build.gradle | 13 +++--- config/checkstyle/suppressions.xml | 2 +- smack-core/build.gradle | 26 ++++++----- .../jivesoftware/smack/DummyConnection.java | 1 - .../smack/ThreadedDummyConnection.java | 0 .../smack/sasl/AbstractSaslTest.java | 0 .../smack/sasl/DigestMd5SaslTest.java | 0 .../smack/test/util/CharSequenceEquals.java | 4 +- .../smack/test}/util/MemoryLeakTestUtil.java | 8 ++-- .../smack/test}/util/NetworkUtil.java | 2 +- .../smack/test/util/SmackTestSuite.java | 0 .../smack/test/util/SmackTestUtil.java | 0 .../smack/test/util/TestUtils.java | 0 .../test/util/WaitForPacketListener.java | 0 .../smack/test/util/Whitebox.java | 44 +++++++++++++++++++ .../smack/test/util/XmlUnitUtils.java | 0 smack-debug-slf4j/build.gradle | 1 - smack-debug/build.gradle | 1 - smack-experimental/build.gradle | 4 +- .../jivesoftware/smackx/hashes/HashTest.java | 7 --- smack-extensions/build.gradle | 3 +- .../bytestreams/ibb/CloseListenerTest.java | 4 +- .../bytestreams/ibb/DataListenerTest.java | 4 +- .../InBandBytestreamSessionMessageTest.java | 8 ++-- .../ibb/InBandBytestreamSessionTest.java | 20 ++++----- .../ibb/InitiationListenerTest.java | 4 +- .../socks5/InitiationListenerTest.java | 4 +- .../socks5/Socks5ByteStreamManagerTest.java | 2 +- .../socks5/Socks5ByteStreamRequestTest.java | 2 +- .../bytestreams/socks5/Socks5ClientTest.java | 2 +- .../bytestreams/socks5/Socks5TestProxy.java | 2 +- .../smackx/muc/MucMemoryLeakTest.java | 2 +- .../jivesoftware/smackx/InitExtensions.java | 0 .../jivesoftware/util/ConnectionUtils.java | 0 .../java/org/jivesoftware/util/Protocol.java | 0 .../org/jivesoftware/util/Verification.java | 0 smack-im/build.gradle | 2 +- smack-integration-test/build.gradle | 2 +- smack-java8-full/build.gradle | 3 +- smack-jingle-old/build.gradle | 1 - smack-legacy/build.gradle | 3 +- smack-omemo-signal/build.gradle | 2 +- smack-omemo/build.gradle | 2 +- smack-openpgp/build.gradle | 2 +- smack-repl/build.gradle | 2 - smack-resolver-minidns-dox/build.gradle | 1 - smack-sasl-javax/build.gradle | 3 +- smack-sasl-provided/build.gradle | 3 +- smack-tcp/build.gradle | 3 +- smack-xmlparser-stax/build.gradle | 2 +- smack-xmlparser-xpp3/build.gradle | 2 +- 51 files changed, 123 insertions(+), 80 deletions(-) rename smack-core/src/{test => testFixtures}/java/org/jivesoftware/smack/DummyConnection.java (99%) rename smack-core/src/{test => testFixtures}/java/org/jivesoftware/smack/ThreadedDummyConnection.java (100%) rename smack-core/src/{test => testFixtures}/java/org/jivesoftware/smack/sasl/AbstractSaslTest.java (100%) rename smack-core/src/{test => testFixtures}/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java (100%) rename smack-core/src/{test => testFixtures}/java/org/jivesoftware/smack/test/util/CharSequenceEquals.java (94%) rename smack-core/src/{test/java/org/jivesoftware/smack => testFixtures/java/org/jivesoftware/smack/test}/util/MemoryLeakTestUtil.java (96%) rename smack-core/src/{test/java/org/jivesoftware/smack => testFixtures/java/org/jivesoftware/smack/test}/util/NetworkUtil.java (97%) rename smack-core/src/{test => testFixtures}/java/org/jivesoftware/smack/test/util/SmackTestSuite.java (100%) rename smack-core/src/{test => testFixtures}/java/org/jivesoftware/smack/test/util/SmackTestUtil.java (100%) rename smack-core/src/{test => testFixtures}/java/org/jivesoftware/smack/test/util/TestUtils.java (100%) rename smack-core/src/{test => testFixtures}/java/org/jivesoftware/smack/test/util/WaitForPacketListener.java (100%) create mode 100644 smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/Whitebox.java rename smack-core/src/{test => testFixtures}/java/org/jivesoftware/smack/test/util/XmlUnitUtils.java (100%) rename smack-extensions/src/{test => testFixtures}/java/org/jivesoftware/smackx/InitExtensions.java (100%) rename smack-extensions/src/{test => testFixtures}/java/org/jivesoftware/util/ConnectionUtils.java (100%) rename smack-extensions/src/{test => testFixtures}/java/org/jivesoftware/util/Protocol.java (100%) rename smack-extensions/src/{test => testFixtures}/java/org/jivesoftware/util/Verification.java (100%) diff --git a/build.gradle b/build.gradle index 41d2448b6..d43ecc7d5 100644 --- a/build.gradle +++ b/build.gradle @@ -24,6 +24,7 @@ apply from: 'version.gradle' allprojects { apply plugin: 'java-library' + apply plugin: 'java-test-fixtures' apply plugin: 'eclipse' apply plugin: 'idea' apply plugin: 'jacoco' @@ -130,7 +131,6 @@ allprojects { ':smack-openpgp', ].collect { project(it) } junitVersion = '5.6.0' - powerMockVersion = '2.0.2' commonsIoVersion = '2.6' if (project.hasProperty("useSonatype")) { useSonatype = project.getProperty("useSonatype").toBoolean() @@ -266,10 +266,16 @@ allprojects { } dependencies { - testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion" + testFixturesApi "org.junit.jupiter:junit-jupiter-api:$junitVersion" testImplementation "org.junit.jupiter:junit-jupiter-params:$junitVersion" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitVersion" + // The smack-extensions subproject uses mockito in its fest + // fixtures, and we want to have mockito also available in + // test, so we use API here. + testFixturesApi "org.mockito:mockito-core:3.3.3" + testImplementation 'com.jamesmurty.utils:java-xmlbuilder:1.2' + errorprone 'com.google.errorprone:error_prone_core:2.3.3' errorproneJavac('com.google.errorprone:javac:9+181-r4173-1') } @@ -282,9 +288,6 @@ allprojects { configure (junit4Projects) { dependencies { testImplementation "org.junit.vintage:junit-vintage-engine:$junitVersion" - testImplementation "org.powermock:powermock-module-junit4:$powerMockVersion" - testImplementation "org.powermock:powermock-module-junit4-rule:$powerMockVersion" - testImplementation "org.powermock:powermock-api-mockito2:$powerMockVersion" } } diff --git a/config/checkstyle/suppressions.xml b/config/checkstyle/suppressions.xml index f638dbbf1..2a22f2881 100644 --- a/config/checkstyle/suppressions.xml +++ b/config/checkstyle/suppressions.xml @@ -9,5 +9,5 @@ it disabled until gradle uses a checkstyle version where this is fixed - + diff --git a/smack-core/build.gradle b/smack-core/build.gradle index d9da388b1..acbbba065 100644 --- a/smack-core/build.gradle +++ b/smack-core/build.gradle @@ -10,10 +10,19 @@ dependencies { compile "org.jxmpp:jxmpp-core:$jxmppVersion" compile "org.jxmpp:jxmpp-jid:$jxmppVersion" compile "org.minidns:minidns-core:$miniDnsVersion" - testCompile project(':smack-xmlparser-stax') - testCompile project(':smack-xmlparser-xpp3') - testCompile "org.jxmpp:jxmpp-jid:$jxmppVersion:tests" - testCompile "org.xmlunit:xmlunit-core:$xmlUnitVersion" + + testFixturesImplementation project(':smack-xmlparser-stax') + testFixturesImplementation project(':smack-xmlparser-xpp3') + + // Bouncy Castle is setup by SmackTestSuite. We deliberately use + // 'implementation' here since there is no need to shadow it + // outside of the fixtures compilation classpath. That is, no test + // should ever setup Bouncy Castle as security provider explicitly. + testFixturesImplementation 'org.bouncycastle:bcprov-jdk15on:1.64' + testFixturesImplementation 'org.apache.commons:commons-lang3:3.10' + + testFixturesApi "org.jxmpp:jxmpp-jid:$jxmppVersion:tests" + testFixturesApi "org.xmlunit:xmlunit-core:$xmlUnitVersion" // Explictily add assertj-core which is a dependency of // xmlunit-assertj, but gradle fails to resolves it with: // Execution failed for task ':smack-core:compileTestJava'. @@ -21,12 +30,9 @@ dependencies { // > Could not find org.assertj:assertj-core:. // Required by: // project :smack-core > org.xmlunit:xmlunit-assertj:2.6.2 - testCompile "org.assertj:assertj-core:3.11.1" - testCompile "org.xmlunit:xmlunit-assertj:$xmlUnitVersion" - testCompile 'com.jamesmurty.utils:java-xmlbuilder:1.2' - testCompile 'org.bouncycastle:bcprov-jdk15on:1.64' - testCompile 'com.google.guava:guava:28.2-jre' - testCompile 'org.jgrapht:jgrapht-io:1.3.1' + testFixturesApi "org.assertj:assertj-core:3.11.1" + testFixturesApi "org.xmlunit:xmlunit-assertj:$xmlUnitVersion" + testFixturesApi 'org.hamcrest:hamcrest-library:2.2' } class CreateFileTask extends DefaultTask { diff --git a/smack-core/src/test/java/org/jivesoftware/smack/DummyConnection.java b/smack-core/src/testFixtures/java/org/jivesoftware/smack/DummyConnection.java similarity index 99% rename from smack-core/src/test/java/org/jivesoftware/smack/DummyConnection.java rename to smack-core/src/testFixtures/java/org/jivesoftware/smack/DummyConnection.java index 3dc30cc76..135fd79d0 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/DummyConnection.java +++ b/smack-core/src/testFixtures/java/org/jivesoftware/smack/DummyConnection.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.jivesoftware.smack; import java.io.IOException; diff --git a/smack-core/src/test/java/org/jivesoftware/smack/ThreadedDummyConnection.java b/smack-core/src/testFixtures/java/org/jivesoftware/smack/ThreadedDummyConnection.java similarity index 100% rename from smack-core/src/test/java/org/jivesoftware/smack/ThreadedDummyConnection.java rename to smack-core/src/testFixtures/java/org/jivesoftware/smack/ThreadedDummyConnection.java diff --git a/smack-core/src/test/java/org/jivesoftware/smack/sasl/AbstractSaslTest.java b/smack-core/src/testFixtures/java/org/jivesoftware/smack/sasl/AbstractSaslTest.java similarity index 100% rename from smack-core/src/test/java/org/jivesoftware/smack/sasl/AbstractSaslTest.java rename to smack-core/src/testFixtures/java/org/jivesoftware/smack/sasl/AbstractSaslTest.java diff --git a/smack-core/src/test/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java b/smack-core/src/testFixtures/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java similarity index 100% rename from smack-core/src/test/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java rename to smack-core/src/testFixtures/java/org/jivesoftware/smack/sasl/DigestMd5SaslTest.java diff --git a/smack-core/src/test/java/org/jivesoftware/smack/test/util/CharSequenceEquals.java b/smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/CharSequenceEquals.java similarity index 94% rename from smack-core/src/test/java/org/jivesoftware/smack/test/util/CharSequenceEquals.java rename to smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/CharSequenceEquals.java index 479ba39e7..cefc3e919 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/test/util/CharSequenceEquals.java +++ b/smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/CharSequenceEquals.java @@ -1,6 +1,6 @@ /** * - * Copyright © 2014 Florian Schmaus + * Copyright © 2014-2020 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,6 @@ package org.jivesoftware.smack.test.util; import org.hamcrest.Description; -import org.hamcrest.Factory; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeMatcher; @@ -40,7 +39,6 @@ public class CharSequenceEquals extends TypeSafeMatcher { return charSequenceString.equals(itemString); } - @Factory public static Matcher equalsCharSequence(CharSequence charSequence) { return new CharSequenceEquals(charSequence); } diff --git a/smack-core/src/test/java/org/jivesoftware/smack/util/MemoryLeakTestUtil.java b/smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/MemoryLeakTestUtil.java similarity index 96% rename from smack-core/src/test/java/org/jivesoftware/smack/util/MemoryLeakTestUtil.java rename to smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/MemoryLeakTestUtil.java index 1b453979f..6746e8f13 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/util/MemoryLeakTestUtil.java +++ b/smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/MemoryLeakTestUtil.java @@ -1,6 +1,6 @@ /** * - * Copyright 2019 Florian Schmaus + * Copyright 2019-2020 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jivesoftware.smack.util; +package org.jivesoftware.smack.test.util; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.fail; import java.lang.ref.PhantomReference; @@ -129,7 +129,7 @@ public class MemoryLeakTestUtil { } Reference reference = referenceQueue.poll(); - assertNull("Reference queue is not empty when it should be", reference); + assertNull(reference, "Reference queue is not empty when it should be"); } private static void assertReferencesQueueIsEmpty(ReferenceQueue referenceQueue) { diff --git a/smack-core/src/test/java/org/jivesoftware/smack/util/NetworkUtil.java b/smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/NetworkUtil.java similarity index 97% rename from smack-core/src/test/java/org/jivesoftware/smack/util/NetworkUtil.java rename to smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/NetworkUtil.java index ac58e8790..5b38d9ad0 100644 --- a/smack-core/src/test/java/org/jivesoftware/smack/util/NetworkUtil.java +++ b/smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/NetworkUtil.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.jivesoftware.smack.util; +package org.jivesoftware.smack.test.util; import java.io.IOException; import java.net.BindException; diff --git a/smack-core/src/test/java/org/jivesoftware/smack/test/util/SmackTestSuite.java b/smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/SmackTestSuite.java similarity index 100% rename from smack-core/src/test/java/org/jivesoftware/smack/test/util/SmackTestSuite.java rename to smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/SmackTestSuite.java diff --git a/smack-core/src/test/java/org/jivesoftware/smack/test/util/SmackTestUtil.java b/smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/SmackTestUtil.java similarity index 100% rename from smack-core/src/test/java/org/jivesoftware/smack/test/util/SmackTestUtil.java rename to smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/SmackTestUtil.java diff --git a/smack-core/src/test/java/org/jivesoftware/smack/test/util/TestUtils.java b/smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/TestUtils.java similarity index 100% rename from smack-core/src/test/java/org/jivesoftware/smack/test/util/TestUtils.java rename to smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/TestUtils.java diff --git a/smack-core/src/test/java/org/jivesoftware/smack/test/util/WaitForPacketListener.java b/smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/WaitForPacketListener.java similarity index 100% rename from smack-core/src/test/java/org/jivesoftware/smack/test/util/WaitForPacketListener.java rename to smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/WaitForPacketListener.java diff --git a/smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/Whitebox.java b/smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/Whitebox.java new file mode 100644 index 000000000..6d0cf5814 --- /dev/null +++ b/smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/Whitebox.java @@ -0,0 +1,44 @@ +/** + * + * Copyright 2020 Florian Schmaus + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smack.test.util; + +import java.lang.reflect.Field; + +import org.apache.commons.lang3.reflect.FieldUtils; + +public class Whitebox { + + public static T getInternalState(Object object, String fieldName, Class fieldType) { + Class objectClass = object.getClass(); + + Field field = FieldUtils.getField(objectClass, fieldName, true); + + Object res; + try { + res = field.get(object); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new AssertionError(e); + } + + if (!fieldType.isInstance(res)) { + throw new AssertionError(res + " is not a (sub)type of " + fieldType); + } + + return fieldType.cast(res); + } + +} diff --git a/smack-core/src/test/java/org/jivesoftware/smack/test/util/XmlUnitUtils.java b/smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/XmlUnitUtils.java similarity index 100% rename from smack-core/src/test/java/org/jivesoftware/smack/test/util/XmlUnitUtils.java rename to smack-core/src/testFixtures/java/org/jivesoftware/smack/test/util/XmlUnitUtils.java diff --git a/smack-debug-slf4j/build.gradle b/smack-debug-slf4j/build.gradle index bf1477b6e..fe3456341 100644 --- a/smack-debug-slf4j/build.gradle +++ b/smack-debug-slf4j/build.gradle @@ -6,5 +6,4 @@ Connect your favourite slf4j backend of choice to get output inside of it""" dependencies { compile project(':smack-core') compile 'org.slf4j:slf4j-api:[1.7,1.8)' - testCompile project(path: ":smack-core", configuration: "testRuntime") } diff --git a/smack-debug/build.gradle b/smack-debug/build.gradle index 3cc23ac14..62324392c 100644 --- a/smack-debug/build.gradle +++ b/smack-debug/build.gradle @@ -4,5 +4,4 @@ Inspect the exchanged XMPP stanzas.""" dependencies { compile project(':smack-core') - testCompile project(path: ":smack-core", configuration: "testRuntime") } diff --git a/smack-experimental/build.gradle b/smack-experimental/build.gradle index f64702d10..e3b2d3771 100644 --- a/smack-experimental/build.gradle +++ b/smack-experimental/build.gradle @@ -7,8 +7,8 @@ between patch versions.""" dependencies { compile project(':smack-core') compile project(':smack-extensions') - testCompile project(path: ":smack-core", configuration: "testRuntime") - testCompile project(path: ":smack-extensions", configuration: "testRuntime") compile "org.hsluv:hsluv:0.2" + + testFixturesApi(testFixtures(project(":smack-extensions"))) } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashTest.java index 91a9852e7..355f1a45a 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/hashes/HashTest.java @@ -18,12 +18,9 @@ package org.jivesoftware.smackx.hashes; import static org.junit.jupiter.api.Assertions.assertEquals; -import java.security.Security; - import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.StringUtils; -import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.junit.jupiter.api.Test; /** @@ -33,10 +30,6 @@ import org.junit.jupiter.api.Test; */ public class HashTest extends SmackTestSuite { - static { - Security.addProvider(new BouncyCastleProvider()); - } - private static final String testString = "Hello World!"; private static final String md5sum = "ed076287532e86365e841e92bfc50d8c"; private static final String sha1sum = "2ef7bde608ce5404e97d5f042f95f89f1c232871"; diff --git a/smack-extensions/build.gradle b/smack-extensions/build.gradle index 0083169ae..6f56016ce 100644 --- a/smack-extensions/build.gradle +++ b/smack-extensions/build.gradle @@ -10,5 +10,6 @@ dependencies { // Some implementations need APIs provided by smack-im, // e.g. message delivery receipts the roster compile project(':smack-im') - testCompile project(path: ":smack-core", configuration: "testRuntime") + testFixturesApi(testFixtures(project(":smack-core"))) + //testCompile project(path: ":smack-core", configuration: "testRuntime") } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/CloseListenerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/CloseListenerTest.java index 4671209fd..ef1ffd75f 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/CloseListenerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/CloseListenerTest.java @@ -23,6 +23,7 @@ import static org.mockito.Mockito.verify; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError; +import org.jivesoftware.smack.test.util.Whitebox; import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.bytestreams.ibb.packet.Close; @@ -31,7 +32,6 @@ import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.JidTestUtil; import org.mockito.ArgumentCaptor; -import org.powermock.reflect.Whitebox; /** * Test for the CloseListener class. @@ -59,7 +59,7 @@ public class CloseListenerTest extends InitExtensions { InBandBytestreamManager byteStreamManager = InBandBytestreamManager.getByteStreamManager(connection); // get the CloseListener from InBandByteStreamManager - CloseListener closeListener = Whitebox.getInternalState(byteStreamManager, + CloseListener closeListener = Whitebox.getInternalState(byteStreamManager, "closeListener", CloseListener.class); Close close = new Close("unknownSessionId"); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/DataListenerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/DataListenerTest.java index 7e8d8e34f..f558c3939 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/DataListenerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/DataListenerTest.java @@ -23,6 +23,7 @@ import static org.mockito.Mockito.verify; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError; +import org.jivesoftware.smack.test.util.Whitebox; import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.bytestreams.ibb.packet.Data; @@ -32,7 +33,6 @@ import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; import org.jxmpp.jid.JidTestUtil; import org.mockito.ArgumentCaptor; -import org.powermock.reflect.Whitebox; /** * Test for the CloseListener class. @@ -60,7 +60,7 @@ public class DataListenerTest extends InitExtensions { InBandBytestreamManager byteStreamManager = InBandBytestreamManager.getByteStreamManager(connection); // get the DataListener from InBandByteStreamManager - DataListener dataListener = Whitebox.getInternalState(byteStreamManager, + DataListener dataListener = Whitebox.getInternalState(byteStreamManager, "dataListener", DataListener.class); DataPacketExtension dpe = new DataPacketExtension("unknownSessionID", 0, "Data"); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionMessageTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionMessageTest.java index a327204a8..08a40b344 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionMessageTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionMessageTest.java @@ -32,6 +32,7 @@ import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.StanzaBuilder; +import org.jivesoftware.smack.test.util.Whitebox; import org.jivesoftware.smack.util.stringencoder.Base64; import org.jivesoftware.smackx.InitExtensions; @@ -46,7 +47,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.jxmpp.jid.EntityFullJid; import org.jxmpp.jid.JidTestUtil; -import org.powermock.reflect.Whitebox; /** * Test for InBandBytestreamSession. @@ -262,7 +262,7 @@ public class InBandBytestreamSessionMessageTest extends InitExtensions { InBandBytestreamSession session = new InBandBytestreamSession(connection, initBytestream, initiatorJID); InputStream inputStream = session.getInputStream(); - StanzaListener listener = Whitebox.getInternalState(inputStream, StanzaListener.class); + StanzaListener listener = Whitebox.getInternalState(inputStream, "dataPacketListener", StanzaListener.class); // build invalid packet with out of order sequence String base64Data = Base64.encode("Data"); @@ -303,7 +303,7 @@ public class InBandBytestreamSessionMessageTest extends InitExtensions { InBandBytestreamSession session = new InBandBytestreamSession(connection, initBytestream, initiatorJID); InputStream inputStream = session.getInputStream(); - StanzaListener listener = Whitebox.getInternalState(inputStream, StanzaListener.class); + StanzaListener listener = Whitebox.getInternalState(inputStream, "dataPacketListener", StanzaListener.class); // verify data packet and notify listener for (int i = 0; i < controlData.length / blockSize; i++) { @@ -349,7 +349,7 @@ public class InBandBytestreamSessionMessageTest extends InitExtensions { InBandBytestreamSession session = new InBandBytestreamSession(connection, initBytestream, initiatorJID); InputStream inputStream = session.getInputStream(); - StanzaListener listener = Whitebox.getInternalState(inputStream, StanzaListener.class); + StanzaListener listener = Whitebox.getInternalState(inputStream, "dataPacketListener", StanzaListener.class); // verify data packet and notify listener for (int i = 0; i < controlData.length / blockSize; i++) { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionTest.java index b1cd44c98..f8a6e48b4 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionTest.java @@ -31,6 +31,7 @@ import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError; +import org.jivesoftware.smack.test.util.Whitebox; import org.jivesoftware.smack.util.stringencoder.Base64; import org.jivesoftware.smackx.InitExtensions; @@ -45,7 +46,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.jxmpp.jid.EntityFullJid; import org.jxmpp.jid.JidTestUtil; -import org.powermock.reflect.Whitebox; /** * Test for InBandBytestreamSession. @@ -309,7 +309,7 @@ public class InBandBytestreamSessionTest extends InitExtensions { // insert data to read InputStream inputStream = session.getInputStream(); - StanzaListener listener = Whitebox.getInternalState(inputStream, StanzaListener.class); + StanzaListener listener = Whitebox.getInternalState(inputStream, "dataPacketListener", StanzaListener.class); String base64Data = Base64.encode("Data"); DataPacketExtension dpe = new DataPacketExtension(sessionID, 0, base64Data); Data data = new Data(dpe); @@ -343,7 +343,7 @@ public class InBandBytestreamSessionTest extends InitExtensions { InBandBytestreamSession session = new InBandBytestreamSession(connection, initBytestream, initiatorJID); InputStream inputStream = session.getInputStream(); - StanzaListener listener = Whitebox.getInternalState(inputStream, StanzaListener.class); + StanzaListener listener = Whitebox.getInternalState(inputStream, "dataPacketListener", StanzaListener.class); String base64Data = Base64.encode("Data"); DataPacketExtension dpe = new DataPacketExtension(sessionID, 0, base64Data); @@ -381,7 +381,7 @@ public class InBandBytestreamSessionTest extends InitExtensions { InBandBytestreamSession session = new InBandBytestreamSession(connection, initBytestream, initiatorJID); InputStream inputStream = session.getInputStream(); - StanzaListener listener = Whitebox.getInternalState(inputStream, StanzaListener.class); + StanzaListener listener = Whitebox.getInternalState(inputStream, "dataPacketListener", StanzaListener.class); // build data packets String base64Data = Base64.encode("Data"); @@ -420,7 +420,7 @@ public class InBandBytestreamSessionTest extends InitExtensions { InBandBytestreamSession session = new InBandBytestreamSession(connection, initBytestream, initiatorJID); InputStream inputStream = session.getInputStream(); - StanzaListener listener = Whitebox.getInternalState(inputStream, StanzaListener.class); + StanzaListener listener = Whitebox.getInternalState(inputStream, "dataPacketListener", StanzaListener.class); // build data packets DataPacketExtension dpe = new DataPacketExtension(sessionID, 0, "AA=BB"); @@ -454,7 +454,7 @@ public class InBandBytestreamSessionTest extends InitExtensions { InBandBytestreamSession session = new InBandBytestreamSession(connection, initBytestream, initiatorJID); InputStream inputStream = session.getInputStream(); - StanzaListener listener = Whitebox.getInternalState(inputStream, StanzaListener.class); + StanzaListener listener = Whitebox.getInternalState(inputStream, "dataPacketListener", StanzaListener.class); // build invalid packet with out of order sequence String base64Data = Base64.encode("Data"); @@ -495,7 +495,7 @@ public class InBandBytestreamSessionTest extends InitExtensions { InBandBytestreamSession session = new InBandBytestreamSession(connection, initBytestream, initiatorJID); InputStream inputStream = session.getInputStream(); - StanzaListener listener = Whitebox.getInternalState(inputStream, StanzaListener.class); + StanzaListener listener = Whitebox.getInternalState(inputStream, "dataPacketListener", StanzaListener.class); // set data packet acknowledgment and notify listener for (int i = 0; i < controlData.length / blockSize; i++) { @@ -542,7 +542,7 @@ public class InBandBytestreamSessionTest extends InitExtensions { InBandBytestreamSession session = new InBandBytestreamSession(connection, initBytestream, initiatorJID); InputStream inputStream = session.getInputStream(); - StanzaListener listener = Whitebox.getInternalState(inputStream, StanzaListener.class); + StanzaListener listener = Whitebox.getInternalState(inputStream, "dataPacketListener", StanzaListener.class); // set data packet acknowledgment and notify listener for (int i = 0; i < controlData.length / blockSize; i++) { @@ -583,7 +583,7 @@ public class InBandBytestreamSessionTest extends InitExtensions { InBandBytestreamSession session = new InBandBytestreamSession(connection, initBytestream, initiatorJID); InputStream inputStream = session.getInputStream(); - StanzaListener listener = Whitebox.getInternalState(inputStream, StanzaListener.class); + StanzaListener listener = Whitebox.getInternalState(inputStream, "dataPacketListener", StanzaListener.class); // build data packet String base64Data = Base64.encode("Data"); @@ -626,7 +626,7 @@ public class InBandBytestreamSessionTest extends InitExtensions { InBandBytestreamSession session = new InBandBytestreamSession(connection, initBytestream, initiatorJID); final InputStream inputStream = session.getInputStream(); - StanzaListener listener = Whitebox.getInternalState(inputStream, StanzaListener.class); + StanzaListener listener = Whitebox.getInternalState(inputStream, "dataPacketListener", StanzaListener.class); // build data packet String base64Data = Base64.encode("Data"); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InitiationListenerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InitiationListenerTest.java index 3e8c6212c..5844f3c2f 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InitiationListenerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InitiationListenerTest.java @@ -24,6 +24,7 @@ import static org.mockito.Mockito.verify; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError; +import org.jivesoftware.smack.test.util.Whitebox; import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.bytestreams.BytestreamRequest; @@ -35,7 +36,6 @@ import org.jxmpp.jid.EntityFullJid; import org.jxmpp.jid.JidTestUtil; import org.jxmpp.jid.impl.JidCreate; import org.mockito.ArgumentCaptor; -import org.powermock.reflect.Whitebox; /** * Test for the InitiationListener class. @@ -66,7 +66,7 @@ public class InitiationListenerTest extends InitExtensions { byteStreamManager = InBandBytestreamManager.getByteStreamManager(connection); // get the InitiationListener from InBandByteStreamManager - initiationListener = Whitebox.getInternalState(byteStreamManager, InitiationListener.class); + initiationListener = Whitebox.getInternalState(byteStreamManager, "initiationListener", InitiationListener.class); // create a In-Band Bytestream open packet initBytestream = new Open(sessionID, 4096); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/InitiationListenerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/InitiationListenerTest.java index 5093361b8..3bfe87bca 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/InitiationListenerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/InitiationListenerTest.java @@ -25,6 +25,7 @@ import static org.mockito.Mockito.verify; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError; +import org.jivesoftware.smack.test.util.Whitebox; import org.jivesoftware.smackx.bytestreams.BytestreamRequest; import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; @@ -37,7 +38,6 @@ import org.jxmpp.jid.EntityFullJid; import org.jxmpp.jid.JidTestUtil; import org.jxmpp.jid.impl.JidCreate; import org.mockito.ArgumentCaptor; -import org.powermock.reflect.Whitebox; /** * Test for the InitiationListener class. @@ -75,7 +75,7 @@ public class InitiationListenerTest { byteStreamManager = Socks5BytestreamManager.getBytestreamManager(connection); // get the InitiationListener from Socks5ByteStreamManager - initiationListener = Whitebox.getInternalState(byteStreamManager, InitiationListener.class); + initiationListener = Whitebox.getInternalState(byteStreamManager, "initiationListener", InitiationListener.class); // create a SOCKS5 Bytestream initiation packet initBytestream = Socks5PacketUtils.createBytestreamInitiation(initiatorJID, targetJID, diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ByteStreamManagerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ByteStreamManagerTest.java index e25dd3d17..c2b748686 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ByteStreamManagerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ByteStreamManagerTest.java @@ -41,8 +41,8 @@ import org.jivesoftware.smack.XMPPException.XMPPErrorException; import org.jivesoftware.smack.packet.ErrorIQ; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError; +import org.jivesoftware.smack.test.util.NetworkUtil; import org.jivesoftware.smack.util.ExceptionUtil; -import org.jivesoftware.smack.util.NetworkUtil; import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream.StreamHost; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ByteStreamRequestTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ByteStreamRequestTest.java index e8aa92f9f..5b764da5a 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ByteStreamRequestTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ByteStreamRequestTest.java @@ -31,7 +31,7 @@ import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.Stanza; import org.jivesoftware.smack.packet.StanzaError; -import org.jivesoftware.smack.util.NetworkUtil; +import org.jivesoftware.smack.test.util.NetworkUtil; import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientTest.java index 4f7a2810b..af2623e1d 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5ClientTest.java @@ -28,7 +28,7 @@ import java.net.Socket; import java.nio.charset.StandardCharsets; import org.jivesoftware.smack.SmackException; -import org.jivesoftware.smack.util.NetworkUtil; +import org.jivesoftware.smack.test.util.NetworkUtil; import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream.StreamHost; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5TestProxy.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5TestProxy.java index 3d32ebd40..9788fba02 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5TestProxy.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5TestProxy.java @@ -19,7 +19,7 @@ package org.jivesoftware.smackx.bytestreams.socks5; import java.io.IOException; import java.net.ServerSocket; -import org.jivesoftware.smack.util.NetworkUtil; +import org.jivesoftware.smack.test.util.NetworkUtil; /** * Simple SOCKS5 proxy for testing purposes. It is almost the same as the Socks5Proxy class but the diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/muc/MucMemoryLeakTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/muc/MucMemoryLeakTest.java index d9e35fefd..602a60aaa 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/muc/MucMemoryLeakTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/muc/MucMemoryLeakTest.java @@ -16,8 +16,8 @@ */ package org.jivesoftware.smackx.muc; +import org.jivesoftware.smack.test.util.MemoryLeakTestUtil; import org.jivesoftware.smack.test.util.SmackTestSuite; -import org.jivesoftware.smack.util.MemoryLeakTestUtil; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/InitExtensions.java b/smack-extensions/src/testFixtures/java/org/jivesoftware/smackx/InitExtensions.java similarity index 100% rename from smack-extensions/src/test/java/org/jivesoftware/smackx/InitExtensions.java rename to smack-extensions/src/testFixtures/java/org/jivesoftware/smackx/InitExtensions.java diff --git a/smack-extensions/src/test/java/org/jivesoftware/util/ConnectionUtils.java b/smack-extensions/src/testFixtures/java/org/jivesoftware/util/ConnectionUtils.java similarity index 100% rename from smack-extensions/src/test/java/org/jivesoftware/util/ConnectionUtils.java rename to smack-extensions/src/testFixtures/java/org/jivesoftware/util/ConnectionUtils.java diff --git a/smack-extensions/src/test/java/org/jivesoftware/util/Protocol.java b/smack-extensions/src/testFixtures/java/org/jivesoftware/util/Protocol.java similarity index 100% rename from smack-extensions/src/test/java/org/jivesoftware/util/Protocol.java rename to smack-extensions/src/testFixtures/java/org/jivesoftware/util/Protocol.java diff --git a/smack-extensions/src/test/java/org/jivesoftware/util/Verification.java b/smack-extensions/src/testFixtures/java/org/jivesoftware/util/Verification.java similarity index 100% rename from smack-extensions/src/test/java/org/jivesoftware/util/Verification.java rename to smack-extensions/src/testFixtures/java/org/jivesoftware/util/Verification.java diff --git a/smack-im/build.gradle b/smack-im/build.gradle index 6c8fd90d1..f89202c2a 100644 --- a/smack-im/build.gradle +++ b/smack-im/build.gradle @@ -7,5 +7,5 @@ Roster, Chat and other functionality.""" // sourceSet.test of the core subproject dependencies { compile project(':smack-core') - testCompile project(path: ":smack-core", configuration: "testRuntime") + testImplementation(testFixtures(project(":smack-core"))) } diff --git a/smack-integration-test/build.gradle b/smack-integration-test/build.gradle index 27e983dd4..b7bc586d0 100644 --- a/smack-integration-test/build.gradle +++ b/smack-integration-test/build.gradle @@ -20,7 +20,7 @@ dependencies { compile 'junit:junit:4.12' // Add Junit 5 API for e.g. assertThrows() implementation "org.junit.jupiter:junit-jupiter-api:$junitVersion" - testCompile project(path: ":smack-core", configuration: "testRuntime") + testFixturesApi(testFixtures(project(":smack-core"))) testCompile "org.jxmpp:jxmpp-jid:$jxmppVersion:tests" } diff --git a/smack-java8-full/build.gradle b/smack-java8-full/build.gradle index 8bf5dfe6a..5ba426c3b 100644 --- a/smack-java8-full/build.gradle +++ b/smack-java8-full/build.gradle @@ -15,7 +15,8 @@ dependencies { api project(':smack-resolver-minidns-dox') api project(':smack-tcp') - testImplementation project(path: ":smack-core", configuration: "testRuntime") + testImplementation 'com.google.guava:guava:28.2-jre' + testImplementation 'org.jgrapht:jgrapht-io:1.3.1' } task printModularXmppClientToServerConnectionStateGraph(type: JavaExec) { diff --git a/smack-jingle-old/build.gradle b/smack-jingle-old/build.gradle index f73c62913..7dff7e80e 100644 --- a/smack-jingle-old/build.gradle +++ b/smack-jingle-old/build.gradle @@ -7,5 +7,4 @@ dependencies { compile project(':smack-extensions') compile 'javax.media:jmf:2.1.1e' compile files('libs/jspeex-0.9.7-jfcom.jar', 'libs/jstun.jar', 'libs/Speex.jar') - testCompile project(path: ":smack-core", configuration: "testRuntime") } diff --git a/smack-legacy/build.gradle b/smack-legacy/build.gradle index 98c828ea4..b89dbdcc8 100644 --- a/smack-legacy/build.gradle +++ b/smack-legacy/build.gradle @@ -6,5 +6,6 @@ Usually XEPs in the state 'retracted', 'rejected', 'deprecated', dependencies { compile project(':smack-core') compile project(':smack-extensions') - testCompile project(path: ":smack-core", configuration: "testRuntime") + + testFixturesApi(testFixtures(project(":smack-core"))) } diff --git a/smack-omemo-signal/build.gradle b/smack-omemo-signal/build.gradle index 3c81d2c9d..16af5ba86 100644 --- a/smack-omemo-signal/build.gradle +++ b/smack-omemo-signal/build.gradle @@ -8,6 +8,6 @@ dependencies { compile project(":smack-omemo") compile 'org.whispersystems:signal-protocol-java:2.6.2' - testCompile project(path: ":smack-core", configuration: "testRuntime") + testFixturesApi(testFixtures(project(":smack-core"))) testCompile project(path: ":smack-omemo", configuration: "testRuntime") } diff --git a/smack-omemo/build.gradle b/smack-omemo/build.gradle index 89ec8a473..d1b45b005 100644 --- a/smack-omemo/build.gradle +++ b/smack-omemo/build.gradle @@ -7,5 +7,5 @@ dependencies { compile project(":smack-extensions") compile project(":smack-experimental") - testCompile project(path: ":smack-core", configuration: "testRuntime") + testFixturesApi(testFixtures(project(":smack-core"))) } diff --git a/smack-openpgp/build.gradle b/smack-openpgp/build.gradle index 665f141d2..4c835f116 100644 --- a/smack-openpgp/build.gradle +++ b/smack-openpgp/build.gradle @@ -10,6 +10,6 @@ dependencies { compile 'org.pgpainless:pgpainless-core:0.0.1-alpha7' - testCompile project(path: ":smack-core", configuration: "testRuntime") + testFixturesApi(testFixtures(project(":smack-core"))) testCompile group: 'commons-io', name: 'commons-io', version: "$commonsIoVersion" } diff --git a/smack-repl/build.gradle b/smack-repl/build.gradle index dc691a89c..3176e1985 100644 --- a/smack-repl/build.gradle +++ b/smack-repl/build.gradle @@ -17,8 +17,6 @@ dependencies { compile "org.scala-lang:scala-library:$scalaVersion" compile "com.lihaoyi:ammonite_$scalaVersion:1.3.2" - - testCompile project(path: ":smack-core", configuration: "testRuntime") } scalaStyle { diff --git a/smack-resolver-minidns-dox/build.gradle b/smack-resolver-minidns-dox/build.gradle index 3d070c5bd..62c973774 100644 --- a/smack-resolver-minidns-dox/build.gradle +++ b/smack-resolver-minidns-dox/build.gradle @@ -4,5 +4,4 @@ DNS over XMPP (DoX) support using MiniDNS.""" dependencies { compile project(path: ':smack-resolver-minidns') compile project(path: ':smack-experimental') - testCompile project(path: ":smack-core", configuration: "testRuntime") } diff --git a/smack-sasl-javax/build.gradle b/smack-sasl-javax/build.gradle index d45511565..f2275f363 100644 --- a/smack-sasl-javax/build.gradle +++ b/smack-sasl-javax/build.gradle @@ -4,5 +4,6 @@ Use javax.security.sasl for SASL.""" dependencies { compile project(':smack-core') - testCompile project(path: ":smack-core", configuration: "testRuntime") + + testFixturesApi(testFixtures(project(":smack-core"))) } diff --git a/smack-sasl-provided/build.gradle b/smack-sasl-provided/build.gradle index 3e3b2d64f..d7391664c 100644 --- a/smack-sasl-provided/build.gradle +++ b/smack-sasl-provided/build.gradle @@ -4,5 +4,6 @@ Use Smack provided code for SASL.""" dependencies { compile project(':smack-core') - testCompile project(path: ":smack-core", configuration: "testRuntime") + + testFixturesApi(testFixtures(project(":smack-core"))) } diff --git a/smack-tcp/build.gradle b/smack-tcp/build.gradle index 1c174288a..74ec76eb8 100644 --- a/smack-tcp/build.gradle +++ b/smack-tcp/build.gradle @@ -3,5 +3,6 @@ Smack for standard XMPP connections over TCP.""" dependencies { compile project(':smack-core') - testCompile project(path: ":smack-core", configuration: "testRuntime") + + testFixturesApi(testFixtures(project(":smack-core"))) } diff --git a/smack-xmlparser-stax/build.gradle b/smack-xmlparser-stax/build.gradle index 03c727630..d4e21ba8f 100644 --- a/smack-xmlparser-stax/build.gradle +++ b/smack-xmlparser-stax/build.gradle @@ -3,5 +3,5 @@ Smack XML parser using Stax.""" dependencies { compile project(':smack-xmlparser') - testCompile project(path: ":smack-xmlparser", configuration: "testRuntime") + //testCompile project(path: ":smack-xmlparser", configuration: "testRuntime") } diff --git a/smack-xmlparser-xpp3/build.gradle b/smack-xmlparser-xpp3/build.gradle index fb647f0bc..a0afd7c4a 100644 --- a/smack-xmlparser-xpp3/build.gradle +++ b/smack-xmlparser-xpp3/build.gradle @@ -9,5 +9,5 @@ dependencies { api "xpp3:xpp3_min:$xpp3Version" implementation "xpp3:xpp3:$xpp3Version" api project(':smack-xmlparser') - testCompile project(path: ":smack-xmlparser", configuration: "testRuntime") + //testCompile project(path: ":smack-xmlparser", configuration: "testRuntime") } From 4ccced906e2819effa1de51ec66dcc6d4691f45b Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sat, 11 Apr 2020 22:07:16 +0200 Subject: [PATCH 11/30] core: add SuppressWarnings("static-method") to getReactor() --- .../main/java/org/jivesoftware/smack/AbstractXMPPConnection.java | 1 + 1 file changed, 1 insertion(+) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java index 3c20fce8b..66ebb1916 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java @@ -2154,6 +2154,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection { CACHED_EXECUTOR_SERVICE.execute(runnable); } + @SuppressWarnings("static-method") protected final SmackReactor getReactor() { return SMACK_REACTOR; } From 463dfac48d56f3827113a7df2642a85007df9707 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sat, 11 Apr 2020 22:10:19 +0200 Subject: [PATCH 12/30] extensions: finish conversion to JUnit5, drop JUnit4 --- build.gradle | 1 - .../smackx/attention/AttentionElementTest.java | 2 +- .../org/jivesoftware/smackx/nick/NickTest.java | 18 ++++++++++-------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index d43ecc7d5..03237bbdf 100644 --- a/build.gradle +++ b/build.gradle @@ -123,7 +123,6 @@ allprojects { androidJavadocOffline = { getAndroidJavadocOffline() } junit4Projects = [ ':smack-core', - ':smack-extensions', ':smack-im', ':smack-integration-test', ':smack-omemo', diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/attention/AttentionElementTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/attention/AttentionElementTest.java index 52be8b713..dd01b7331 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/attention/AttentionElementTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/attention/AttentionElementTest.java @@ -20,7 +20,7 @@ import static org.jivesoftware.smack.test.util.XmlUnitUtils.assertXmlSimilar; import org.jivesoftware.smackx.attention.packet.AttentionExtension; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class AttentionElementTest { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/nick/NickTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/nick/NickTest.java index 9819642f0..77cf1a7cb 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/nick/NickTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/nick/NickTest.java @@ -17,9 +17,9 @@ package org.jivesoftware.smackx.nick; import static org.jivesoftware.smack.test.util.XmlUnitUtils.assertXmlSimilar; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThrows; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.IOException; @@ -29,7 +29,7 @@ import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.nick.packet.Nick; import org.jivesoftware.smackx.nick.provider.NickProvider; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.EnumSource; @@ -41,14 +41,16 @@ public class NickTest { @Test public void disallowEmptyNickTest() { - assertThrows("Empty String as argument MUST cause IllegalArgumentException.", - IllegalArgumentException.class, () -> new Nick("")); + assertThrows(IllegalArgumentException.class, + () -> new Nick(""), + "Empty String as argument MUST cause IllegalArgumentException."); } @Test public void disallowNullNickTest() { - assertThrows("Null argument MUST cause IllegalArgumentException.", - IllegalArgumentException.class, () -> new Nick(null)); + assertThrows(IllegalArgumentException.class, + () -> new Nick(null), + "Null argument MUST cause IllegalArgumentException."); } From 28e763f93880da3a62f7d4443ba5e44939a388af Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 12 Apr 2020 09:33:14 +0200 Subject: [PATCH 13/30] extensions/experimental: line separator according to import order --- .../smackx/httpfileupload/HttpFileUploadManager.java | 1 + .../src/main/java/org/jivesoftware/smackx/mam/MamManager.java | 1 + .../org/jivesoftware/smackx/bytestreams/ibb/packet/OpenTest.java | 1 - .../src/test/java/org/jivesoftware/smackx/nick/NickTest.java | 1 + 4 files changed, 3 insertions(+), 1 deletion(-) diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadManager.java index 2977f8601..eadbaff94 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadManager.java @@ -46,6 +46,7 @@ import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPConnectionRegistry; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.XMPPException.XMPPErrorException; + import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; import org.jivesoftware.smackx.disco.packet.DiscoverInfo; import org.jivesoftware.smackx.httpfileupload.UploadService.Version; diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/MamManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/MamManager.java index f3477bdd4..9bbbe301e 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/MamManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/MamManager.java @@ -43,6 +43,7 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.Stanza; import org.jivesoftware.smack.util.Objects; import org.jivesoftware.smack.util.StringUtils; + import org.jivesoftware.smackx.commands.AdHocCommandManager; import org.jivesoftware.smackx.commands.RemoteCommand; import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/OpenTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/OpenTest.java index 5d196fbb6..09cbe7310 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/OpenTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/OpenTest.java @@ -29,7 +29,6 @@ import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamManager.StanzaType; import com.jamesmurty.utils.XMLBuilder; - import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/nick/NickTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/nick/NickTest.java index 77cf1a7cb..61c7b70eb 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/nick/NickTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/nick/NickTest.java @@ -26,6 +26,7 @@ import java.io.IOException; import org.jivesoftware.smack.parsing.SmackParsingException; import org.jivesoftware.smack.test.util.SmackTestUtil; import org.jivesoftware.smack.xml.XmlPullParserException; + import org.jivesoftware.smackx.nick.packet.Nick; import org.jivesoftware.smackx.nick.provider.NickProvider; From 516c68bdb4a0cedc63379cf2cfdb7639c5b59769 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 12 Apr 2020 09:34:08 +0200 Subject: [PATCH 14/30] test: remove InitExtensions And replace it with SmackTestSuite. --- .../jivesoftware/smackx/mam/MamManager.java | 1 + .../org/jivesoftware/smackx/mam/MamTest.java | 4 +-- .../bytestreams/ibb/CloseListenerTest.java | 4 +-- .../bytestreams/ibb/DataListenerTest.java | 4 +-- .../ibb/InBandBytestreamManagerTest.java | 4 +-- .../ibb/InBandBytestreamRequestTest.java | 4 +-- .../InBandBytestreamSessionMessageTest.java | 4 +-- .../ibb/InBandBytestreamSessionTest.java | 4 +-- .../ibb/InitiationListenerTest.java | 4 +-- .../bytestreams/ibb/packet/CloseTest.java | 5 ++-- .../ibb/packet/DataPacketExtensionTest.java | 4 +-- .../bytestreams/ibb/packet/DataTest.java | 5 ++-- .../bytestreams/ibb/packet/OpenTest.java | 4 +-- .../ibb/provider/OpenIQProviderTest.java | 4 +-- .../smackx/caps/EntityCapsManagerTest.java | 4 +-- .../provider/CapsExtensionProviderTest.java | 4 +-- .../delay/provider/DelayInformationTest.java | 4 +-- .../FileTransferNegotiatorTest.java | 4 +-- .../smackx/geoloc/packet/GeoLocationTest.java | 4 +-- .../provider/GeoLocationProviderTest.java | 4 +-- .../smackx/iqlast/LastActivityTest.java | 4 +-- .../smackx/iqversion/VersionTest.java | 4 +-- .../JivePropertiesExtensionTest.java | 4 +-- .../jivesoftware/smackx/ping/PingTest.java | 4 +-- .../privacy/provider/PrivacyProviderTest.java | 4 +-- .../smackx/pubsub/ConfigureFormTest.java | 4 +-- .../smackx/pubsub/ItemValidationTest.java | 4 +-- .../smackx/receipts/DeliveryReceiptTest.java | 4 +-- .../rsm/provider/RSMSetProviderTest.java | 4 +-- .../smackx/time/packet/TimeTest.java | 4 +-- .../smackx/vcardtemp/VCardTest.java | 4 +-- .../jivesoftware/smackx/InitExtensions.java | 28 ------------------- 32 files changed, 61 insertions(+), 90 deletions(-) delete mode 100644 smack-extensions/src/testFixtures/java/org/jivesoftware/smackx/InitExtensions.java diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/MamManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/MamManager.java index 9bbbe301e..d1d17984f 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/MamManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/MamManager.java @@ -49,6 +49,7 @@ import org.jivesoftware.smackx.commands.RemoteCommand; import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; import org.jivesoftware.smackx.disco.packet.DiscoverItems; import org.jivesoftware.smackx.forward.packet.Forwarded; +import org.jivesoftware.smackx.mam.MamManager.MamQueryArgs; import org.jivesoftware.smackx.mam.element.MamElements; import org.jivesoftware.smackx.mam.element.MamElements.MamResultExtension; import org.jivesoftware.smackx.mam.element.MamFinIQ; diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamTest.java index 9c79c34e3..6dd2f8e73 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/mam/MamTest.java @@ -21,13 +21,13 @@ import java.lang.reflect.Method; import org.jivesoftware.smack.DummyConnection; import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.test.util.SmackTestSuite; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.xdata.packet.DataForm; import org.junit.jupiter.api.BeforeAll; -public class MamTest extends InitExtensions { +public class MamTest extends SmackTestSuite { protected static XMPPConnection connection; protected static String queryId; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/CloseListenerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/CloseListenerTest.java index ef1ffd75f..081afe58b 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/CloseListenerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/CloseListenerTest.java @@ -23,9 +23,9 @@ import static org.mockito.Mockito.verify; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.Whitebox; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.bytestreams.ibb.packet.Close; import org.junit.jupiter.api.Test; @@ -38,7 +38,7 @@ import org.mockito.ArgumentCaptor; * * @author Henning Staib */ -public class CloseListenerTest extends InitExtensions { +public class CloseListenerTest extends SmackTestSuite { private static final Jid initiatorJID = JidTestUtil.DUMMY_AT_EXAMPLE_ORG_SLASH_DUMMYRESOURCE; private static final Jid targetJID = JidTestUtil.FULL_JID_1_RESOURCE_1; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/DataListenerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/DataListenerTest.java index f558c3939..effffd1c0 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/DataListenerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/DataListenerTest.java @@ -23,9 +23,9 @@ import static org.mockito.Mockito.verify; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.Whitebox; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.bytestreams.ibb.packet.Data; import org.jivesoftware.smackx.bytestreams.ibb.packet.DataPacketExtension; @@ -39,7 +39,7 @@ import org.mockito.ArgumentCaptor; * * @author Henning Staib */ -public class DataListenerTest extends InitExtensions { +public class DataListenerTest extends SmackTestSuite { private static final Jid initiatorJID = JidTestUtil.DUMMY_AT_EXAMPLE_ORG_SLASH_DUMMYRESOURCE; private static final Jid targetJID = JidTestUtil.FULL_JID_1_RESOURCE_1; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManagerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManagerTest.java index bf3da6cae..36e62af46 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManagerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManagerTest.java @@ -29,8 +29,8 @@ import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.XMPPException.XMPPErrorException; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError; +import org.jivesoftware.smack.test.util.SmackTestSuite; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamManager.StanzaType; import org.jivesoftware.smackx.bytestreams.ibb.packet.Open; @@ -47,7 +47,7 @@ import org.jxmpp.jid.JidTestUtil; * * @author Henning Staib */ -public class InBandBytestreamManagerTest extends InitExtensions { +public class InBandBytestreamManagerTest extends SmackTestSuite { // settings private static final EntityFullJid initiatorJID = JidTestUtil.DUMMY_AT_EXAMPLE_ORG_SLASH_DUMMYRESOURCE; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamRequestTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamRequestTest.java index 9eb9d1e7f..fe58b7fc3 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamRequestTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamRequestTest.java @@ -25,8 +25,8 @@ import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError; +import org.jivesoftware.smack.test.util.SmackTestSuite; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.bytestreams.ibb.packet.Open; import org.junit.jupiter.api.BeforeEach; @@ -40,7 +40,7 @@ import org.mockito.ArgumentCaptor; * * @author Henning Staib */ -public class InBandBytestreamRequestTest extends InitExtensions { +public class InBandBytestreamRequestTest extends SmackTestSuite { private static final Jid initiatorJID = JidTestUtil.DUMMY_AT_EXAMPLE_ORG_SLASH_DUMMYRESOURCE; private static final Jid targetJID = JidTestUtil.FULL_JID_1_RESOURCE_1; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionMessageTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionMessageTest.java index 08a40b344..678ede38f 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionMessageTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionMessageTest.java @@ -32,10 +32,10 @@ import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.StanzaBuilder; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.Whitebox; import org.jivesoftware.smack.util.stringencoder.Base64; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamManager.StanzaType; import org.jivesoftware.smackx.bytestreams.ibb.packet.DataPacketExtension; import org.jivesoftware.smackx.bytestreams.ibb.packet.Open; @@ -55,7 +55,7 @@ import org.jxmpp.jid.JidTestUtil; * * @author Henning Staib */ -public class InBandBytestreamSessionMessageTest extends InitExtensions { +public class InBandBytestreamSessionMessageTest extends SmackTestSuite { // settings private static final EntityFullJid initiatorJID = JidTestUtil.DUMMY_AT_EXAMPLE_ORG_SLASH_DUMMYRESOURCE; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionTest.java index f8a6e48b4..8a861cc32 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamSessionTest.java @@ -31,10 +31,10 @@ import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.Whitebox; import org.jivesoftware.smack.util.stringencoder.Base64; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.bytestreams.ibb.packet.Data; import org.jivesoftware.smackx.bytestreams.ibb.packet.DataPacketExtension; import org.jivesoftware.smackx.bytestreams.ibb.packet.Open; @@ -55,7 +55,7 @@ import org.jxmpp.jid.JidTestUtil; * * @author Henning Staib */ -public class InBandBytestreamSessionTest extends InitExtensions { +public class InBandBytestreamSessionTest extends SmackTestSuite { // settings private static final EntityFullJid initiatorJID = JidTestUtil.DUMMY_AT_EXAMPLE_ORG_SLASH_DUMMYRESOURCE; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InitiationListenerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InitiationListenerTest.java index 5844f3c2f..3f4591212 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InitiationListenerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/InitiationListenerTest.java @@ -24,9 +24,9 @@ import static org.mockito.Mockito.verify; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StanzaError; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.Whitebox; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.bytestreams.BytestreamRequest; import org.jivesoftware.smackx.bytestreams.ibb.packet.Open; @@ -42,7 +42,7 @@ import org.mockito.ArgumentCaptor; * * @author Henning Staib */ -public class InitiationListenerTest extends InitExtensions { +public class InitiationListenerTest extends SmackTestSuite { private static final EntityFullJid initiatorJID = JidTestUtil.DUMMY_AT_EXAMPLE_ORG_SLASH_DUMMYRESOURCE; private static final EntityFullJid targetJID = JidTestUtil.FULL_JID_1_RESOURCE_1; diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/CloseTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/CloseTest.java index 4b5866d80..8fbb488fc 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/CloseTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/CloseTest.java @@ -24,8 +24,7 @@ import java.util.Properties; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StreamOpen; - -import org.jivesoftware.smackx.InitExtensions; +import org.jivesoftware.smack.test.util.SmackTestSuite; import com.jamesmurty.utils.XMLBuilder; import org.junit.jupiter.api.Test; @@ -36,7 +35,7 @@ import org.jxmpp.jid.impl.JidCreate; * * @author Henning Staib */ -public class CloseTest extends InitExtensions { +public class CloseTest extends SmackTestSuite { @Test public void shouldNotInstantiateWithInvalidArguments1() { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataPacketExtensionTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataPacketExtensionTest.java index 4d2638ea7..3042ae07a 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataPacketExtensionTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataPacketExtensionTest.java @@ -24,7 +24,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import java.nio.charset.StandardCharsets; import java.util.Properties; -import org.jivesoftware.smackx.InitExtensions; +import org.jivesoftware.smack.test.util.SmackTestSuite; import com.jamesmurty.utils.XMLBuilder; import org.junit.jupiter.api.Test; @@ -34,7 +34,7 @@ import org.junit.jupiter.api.Test; * * @author Henning Staib */ -public class DataPacketExtensionTest extends InitExtensions { +public class DataPacketExtensionTest extends SmackTestSuite { @Test public void shouldNotInstantiateWithInvalidArgument1() { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataTest.java index 453dd9ddd..aa24c043d 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/DataTest.java @@ -25,10 +25,9 @@ import java.util.Properties; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StreamOpen; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.stringencoder.Base64; -import org.jivesoftware.smackx.InitExtensions; - import com.jamesmurty.utils.XMLBuilder; import org.junit.jupiter.api.Test; import org.jxmpp.jid.impl.JidCreate; @@ -38,7 +37,7 @@ import org.jxmpp.jid.impl.JidCreate; * * @author Henning Staib */ -public class DataTest extends InitExtensions { +public class DataTest extends SmackTestSuite { @Test public void shouldNotInstantiateWithInvalidArgument() { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/OpenTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/OpenTest.java index 09cbe7310..8206efbf2 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/OpenTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/packet/OpenTest.java @@ -24,8 +24,8 @@ import java.util.Properties; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.StreamOpen; +import org.jivesoftware.smack.test.util.SmackTestSuite; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamManager.StanzaType; import com.jamesmurty.utils.XMLBuilder; @@ -37,7 +37,7 @@ import org.jxmpp.jid.impl.JidCreate; * * @author Henning Staib */ -public class OpenTest extends InitExtensions { +public class OpenTest extends SmackTestSuite { @Test public void shouldNotInstantiateWithInvalidArguments1() { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProviderTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProviderTest.java index ff39972a1..967b765a8 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProviderTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/ibb/provider/OpenIQProviderTest.java @@ -20,10 +20,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.Properties; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.bytestreams.ibb.InBandBytestreamManager.StanzaType; import org.jivesoftware.smackx.bytestreams.ibb.packet.Open; @@ -35,7 +35,7 @@ import org.junit.jupiter.api.Test; * * @author Henning Staib */ -public class OpenIQProviderTest extends InitExtensions { +public class OpenIQProviderTest extends SmackTestSuite { private static final Properties outputProperties = new Properties(); { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/caps/EntityCapsManagerTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/caps/EntityCapsManagerTest.java index dc58aa304..bd3985a17 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/caps/EntityCapsManagerTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/caps/EntityCapsManagerTest.java @@ -26,11 +26,11 @@ import java.util.Collection; import java.util.LinkedList; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.util.stringencoder.Base32; import org.jivesoftware.smack.util.stringencoder.StringEncoder; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.caps.cache.EntityCapsPersistentCache; import org.jivesoftware.smackx.caps.cache.SimpleDirectoryPersistentCache; import org.jivesoftware.smackx.disco.packet.DiscoverInfo; @@ -43,7 +43,7 @@ import org.jxmpp.jid.impl.JidCreate; import org.jxmpp.stringprep.XmppStringprepException; -public class EntityCapsManagerTest extends InitExtensions { +public class EntityCapsManagerTest extends SmackTestSuite { /** * XEP- diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProviderTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProviderTest.java index 98bed5d3f..26f1c2dce 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProviderTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/caps/provider/CapsExtensionProviderTest.java @@ -18,15 +18,15 @@ package org.jivesoftware.smackx.caps.provider; import static org.junit.jupiter.api.Assertions.assertNotNull; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.SmackTestUtil; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.caps.packet.CapsExtension; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.EnumSource; -public class CapsExtensionProviderTest extends InitExtensions { +public class CapsExtensionProviderTest extends SmackTestSuite { @ParameterizedTest @EnumSource(SmackTestUtil.XmlPullParserKind.class) diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/delay/provider/DelayInformationTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/delay/provider/DelayInformationTest.java index c94c20055..afb45a63e 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/delay/provider/DelayInformationTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/delay/provider/DelayInformationTest.java @@ -31,11 +31,11 @@ import java.util.TimeZone; import javax.xml.parsers.FactoryConfigurationError; import org.jivesoftware.smack.packet.Presence; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.delay.DelayInformationManager; import org.jivesoftware.smackx.delay.packet.DelayInformation; @@ -43,7 +43,7 @@ import com.jamesmurty.utils.XMLBuilder; import org.junit.jupiter.api.Test; import org.jxmpp.util.XmppDateTime; -public class DelayInformationTest extends InitExtensions { +public class DelayInformationTest extends SmackTestSuite { private static final Calendar calendar = new GregorianCalendar(2002, 9 - 1, 10, 23, 8, 25); private static Properties outputProperties = new Properties(); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/filetransfer/FileTransferNegotiatorTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/filetransfer/FileTransferNegotiatorTest.java index b4a7164f2..065b8b589 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/filetransfer/FileTransferNegotiatorTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/filetransfer/FileTransferNegotiatorTest.java @@ -21,8 +21,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import org.jivesoftware.smack.DummyConnection; import org.jivesoftware.smack.SmackException.NoResponseException; import org.jivesoftware.smack.packet.Stanza; +import org.jivesoftware.smack.test.util.SmackTestSuite; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; import org.junit.jupiter.api.AfterEach; @@ -30,7 +30,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.jxmpp.jid.JidTestUtil; -public class FileTransferNegotiatorTest extends InitExtensions { +public class FileTransferNegotiatorTest extends SmackTestSuite { private DummyConnection connection; @BeforeEach diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/geoloc/packet/GeoLocationTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/geoloc/packet/GeoLocationTest.java index ec03015c2..f8af5da0b 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/geoloc/packet/GeoLocationTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/geoloc/packet/GeoLocationTest.java @@ -24,9 +24,9 @@ import java.util.Calendar; import java.util.TimeZone; import org.jivesoftware.smack.packet.Message; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.PacketParserUtils; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.time.packet.Time; import org.junit.jupiter.api.Test; @@ -37,7 +37,7 @@ import org.jxmpp.util.XmppDateTime; * * @author Ishan Khanna */ -public class GeoLocationTest extends InitExtensions { +public class GeoLocationTest extends SmackTestSuite { @Test public void negativeTimezoneTest() { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/geoloc/provider/GeoLocationProviderTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/geoloc/provider/GeoLocationProviderTest.java index 605e09dc7..01738fa3e 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/geoloc/provider/GeoLocationProviderTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/geoloc/provider/GeoLocationProviderTest.java @@ -23,15 +23,15 @@ import static org.junit.jupiter.api.Assertions.assertNull; import java.net.URI; import org.jivesoftware.smack.packet.Message; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.PacketParserUtils; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.geoloc.packet.GeoLocation; import org.junit.jupiter.api.Test; import org.jxmpp.util.XmppDateTime; -public class GeoLocationProviderTest extends InitExtensions { +public class GeoLocationProviderTest extends SmackTestSuite { @Test public void testGeoLocationProviderWithNoDatumSet() throws Exception { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/iqlast/LastActivityTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/iqlast/LastActivityTest.java index eaa62f110..b44d8c892 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/iqlast/LastActivityTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/iqlast/LastActivityTest.java @@ -22,15 +22,15 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import org.jivesoftware.smack.DummyConnection; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.Stanza; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.PacketParserUtils; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.iqlast.packet.LastActivity; import com.jamesmurty.utils.XMLBuilder; import org.junit.jupiter.api.Test; -public class LastActivityTest extends InitExtensions { +public class LastActivityTest extends SmackTestSuite { @Test public void checkProvider() throws Exception { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/iqversion/VersionTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/iqversion/VersionTest.java index 66e41362b..ff4d59390 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/iqversion/VersionTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/iqversion/VersionTest.java @@ -24,14 +24,14 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import org.jivesoftware.smack.DummyConnection; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.Stanza; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.PacketParserUtils; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.iqversion.packet.Version; import org.junit.jupiter.api.Test; -public class VersionTest extends InitExtensions { +public class VersionTest extends SmackTestSuite { @Test public void checkProvider() throws Exception { // @formatter:off diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jiveproperties/JivePropertiesExtensionTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jiveproperties/JivePropertiesExtensionTest.java index b2b06cb86..57e459605 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jiveproperties/JivePropertiesExtensionTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jiveproperties/JivePropertiesExtensionTest.java @@ -20,16 +20,16 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import org.jivesoftware.smack.packet.Message; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.PacketParserUtils; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.jiveproperties.packet.JivePropertiesExtension; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -public class JivePropertiesExtensionTest extends InitExtensions { +public class JivePropertiesExtensionTest extends SmackTestSuite { @BeforeEach public void setUp() { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/ping/PingTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/ping/PingTest.java index 09a5038b8..5de06a190 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/ping/PingTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/ping/PingTest.java @@ -33,14 +33,14 @@ import org.jivesoftware.smack.ThreadedDummyConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.Stanza; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.PacketParserUtils; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.ping.packet.Ping; import org.junit.jupiter.api.Test; -public class PingTest extends InitExtensions { +public class PingTest extends SmackTestSuite { @Test public void checkProvider() throws Exception { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/privacy/provider/PrivacyProviderTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/privacy/provider/PrivacyProviderTest.java index c5c810124..7b2f65d0b 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/privacy/provider/PrivacyProviderTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/privacy/provider/PrivacyProviderTest.java @@ -23,15 +23,15 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.PacketParserUtils; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.privacy.packet.Privacy; import org.jivesoftware.smackx.privacy.packet.PrivacyItem; import org.junit.jupiter.api.Test; -public class PrivacyProviderTest extends InitExtensions { +public class PrivacyProviderTest extends SmackTestSuite { @Test public void parsePrivacyList() throws Exception { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ConfigureFormTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ConfigureFormTest.java index cd43ad887..efdb6dae0 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ConfigureFormTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ConfigureFormTest.java @@ -31,8 +31,8 @@ import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.IQ.Type; import org.jivesoftware.smack.packet.StanzaError; import org.jivesoftware.smack.packet.StanzaError.Condition; +import org.jivesoftware.smack.test.util.SmackTestSuite; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.disco.packet.DiscoverInfo; import org.jivesoftware.smackx.disco.packet.DiscoverInfo.Identity; import org.jivesoftware.smackx.disco.packet.DiscoverInfoBuilder; @@ -46,7 +46,7 @@ import org.junit.jupiter.api.Test; * @author Robin Collier * */ -public class ConfigureFormTest extends InitExtensions { +public class ConfigureFormTest extends SmackTestSuite { @Test public void checkChildrenAssocPolicy() { ConfigureForm form = new ConfigureForm(DataForm.Type.submit); diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ItemValidationTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ItemValidationTest.java index a0f0eaedc..9dafb5334 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ItemValidationTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/pubsub/ItemValidationTest.java @@ -24,10 +24,10 @@ import org.jivesoftware.smack.ThreadedDummyConnection; import org.jivesoftware.smack.packet.ExtensionElement; import org.jivesoftware.smack.packet.NamedElement; import org.jivesoftware.smack.packet.Stanza; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.pubsub.packet.PubSubNamespace; import org.junit.jupiter.api.AfterEach; @@ -39,7 +39,7 @@ import org.junit.jupiter.api.Test; * @author Robin Collier * */ -public class ItemValidationTest extends InitExtensions { +public class ItemValidationTest extends SmackTestSuite { private ThreadedDummyConnection connection; @BeforeEach diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/receipts/DeliveryReceiptTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/receipts/DeliveryReceiptTest.java index 814d5c9a7..af11468a3 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/receipts/DeliveryReceiptTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/receipts/DeliveryReceiptTest.java @@ -30,18 +30,18 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.MessageBuilder; import org.jivesoftware.smack.packet.Stanza; import org.jivesoftware.smack.packet.StanzaBuilder; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.test.util.WaitForPacketListener; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.receipts.DeliveryReceiptManager.AutoReceiptMode; import com.jamesmurty.utils.XMLBuilder; import org.junit.jupiter.api.Test; import org.jxmpp.jid.Jid; -public class DeliveryReceiptTest extends InitExtensions { +public class DeliveryReceiptTest extends SmackTestSuite { private static Properties outputProperties = new Properties(); static { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/rsm/provider/RSMSetProviderTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/rsm/provider/RSMSetProviderTest.java index 5c27f281c..1bc67a716 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/rsm/provider/RSMSetProviderTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/rsm/provider/RSMSetProviderTest.java @@ -20,14 +20,14 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import org.jivesoftware.smack.packet.IQ; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.PacketParserUtils; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.rsm.packet.RSMSet; import org.junit.jupiter.api.Test; -public class RSMSetProviderTest extends InitExtensions { +public class RSMSetProviderTest extends SmackTestSuite { @Test public void testRsmSetProvider() throws Exception { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/time/packet/TimeTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/time/packet/TimeTest.java index 76901233b..e9156ecf3 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/time/packet/TimeTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/time/packet/TimeTest.java @@ -22,11 +22,11 @@ import java.util.Calendar; import java.util.Date; import java.util.TimeZone; -import org.jivesoftware.smackx.InitExtensions; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.junit.jupiter.api.Test; -public class TimeTest extends InitExtensions { +public class TimeTest extends SmackTestSuite { @Test public void parseCurrentTimeTest() { diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/vcardtemp/VCardTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/vcardtemp/VCardTest.java index 40891c3aa..f5be6b1fd 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/vcardtemp/VCardTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/vcardtemp/VCardTest.java @@ -21,15 +21,15 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Arrays; +import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.util.stringencoder.Base64; -import org.jivesoftware.smackx.InitExtensions; import org.jivesoftware.smackx.vcardtemp.packet.VCard; import org.junit.jupiter.api.Test; -public class VCardTest extends InitExtensions { +public class VCardTest extends SmackTestSuite { @Test public void testParseFullVCardIQStanza() throws Throwable { diff --git a/smack-extensions/src/testFixtures/java/org/jivesoftware/smackx/InitExtensions.java b/smack-extensions/src/testFixtures/java/org/jivesoftware/smackx/InitExtensions.java deleted file mode 100644 index d4c6b0350..000000000 --- a/smack-extensions/src/testFixtures/java/org/jivesoftware/smackx/InitExtensions.java +++ /dev/null @@ -1,28 +0,0 @@ -/** - * - * Copyright 2014 Florian Schmaus - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jivesoftware.smackx; - -import org.jivesoftware.smack.extensions.ExtensionsInitializer; -import org.jivesoftware.smack.test.util.SmackTestSuite; - -public class InitExtensions extends SmackTestSuite { - - static { - new ExtensionsInitializer().initialize(); - } - -} From c10a56dc8485cbb6906670995beab35614c41840 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 12 Apr 2020 12:06:00 +0200 Subject: [PATCH 15/30] mam: remove unused import --- .../src/main/java/org/jivesoftware/smackx/mam/MamManager.java | 1 - 1 file changed, 1 deletion(-) diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/MamManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/MamManager.java index d1d17984f..9bbbe301e 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/MamManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/MamManager.java @@ -49,7 +49,6 @@ import org.jivesoftware.smackx.commands.RemoteCommand; import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; import org.jivesoftware.smackx.disco.packet.DiscoverItems; import org.jivesoftware.smackx.forward.packet.Forwarded; -import org.jivesoftware.smackx.mam.MamManager.MamQueryArgs; import org.jivesoftware.smackx.mam.element.MamElements; import org.jivesoftware.smackx.mam.element.MamElements.MamResultExtension; import org.jivesoftware.smackx.mam.element.MamFinIQ; From 8c4513a618d6025235f5ba993d168bd55024b295 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 12 Apr 2020 12:06:18 +0200 Subject: [PATCH 16/30] dox: make setDefaultDnsOverXmppResolver() static --- .../java/org/jivesoftware/smackx/dox/DnsOverXmppManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/DnsOverXmppManager.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/DnsOverXmppManager.java index 1ffba5597..92bd0b555 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/DnsOverXmppManager.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/dox/DnsOverXmppManager.java @@ -60,7 +60,7 @@ public final class DnsOverXmppManager extends Manager { private static DnsOverXmppResolver defaultResolver; - public void setDefaultDnsOverXmppResolver(DnsOverXmppResolver resolver) { + public static void setDefaultDnsOverXmppResolver(DnsOverXmppResolver resolver) { defaultResolver = resolver; } From e63ba07e5cdb44bc3a715f3da552e288cc6bbe6a Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 12 Apr 2020 12:07:02 +0200 Subject: [PATCH 17/30] Cast with generic declared --- .../src/main/java/org/jivesoftware/smackx/mood/MoodManager.java | 2 +- .../org/jivesoftware/smackx/mood/provider/MoodProvider.java | 2 +- .../main/java/org/jivesoftware/smackx/ox/OpenPgpManager.java | 2 +- .../java/org/jivesoftware/smackx/ox/util/OpenPgpPubSubUtil.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodManager.java index a341bffcc..27f270ae8 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/MoodManager.java @@ -91,7 +91,7 @@ public final class MoodManager extends Manager { @Override public void run() { ItemsExtension items = (ItemsExtension) event.getExtensions().get(0); - PayloadItem payload = (PayloadItem) items.getItems().get(0); + PayloadItem payload = (PayloadItem) items.getItems().get(0); MoodElement mood = (MoodElement) payload.getPayload(); for (MoodListener listener : moodListeners) { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodProvider.java index c9814b091..e23234d69 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/mood/provider/MoodProvider.java @@ -57,7 +57,7 @@ public class MoodProvider extends ExtensionElementProvider { if (!MoodElement.NAMESPACE.equals(namespace)) { LOGGER.log(Level.FINE, "Foreign namespace " + namespace + " detected. Try to find suitable MoodConcretisationProvider."); - MoodConcretisationProvider provider = (MoodConcretisationProvider) ProviderManager.getExtensionProvider(name, namespace); + MoodConcretisationProvider provider = (MoodConcretisationProvider) ProviderManager.getExtensionProvider(name, namespace); if (provider != null) { concretisation = provider.parse(parser); } else { diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/OpenPgpManager.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/OpenPgpManager.java index bc8184799..d16296a05 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/OpenPgpManager.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/OpenPgpManager.java @@ -512,7 +512,7 @@ public final class OpenPgpManager extends Manager { @Override public void run() { ItemsExtension items = (ItemsExtension) event.getExtensions().get(0); - PayloadItem payload = (PayloadItem) items.getItems().get(0); + PayloadItem payload = (PayloadItem) items.getItems().get(0); PublicKeysListElement listElement = (PublicKeysListElement) payload.getPayload(); processPublicKeysListElement(from, listElement); diff --git a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/OpenPgpPubSubUtil.java b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/OpenPgpPubSubUtil.java index cbe0bd4c2..89be5eb65 100644 --- a/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/OpenPgpPubSubUtil.java +++ b/smack-openpgp/src/main/java/org/jivesoftware/smackx/ox/util/OpenPgpPubSubUtil.java @@ -430,7 +430,7 @@ public class OpenPgpPubSubUtil { // Get access to the PubSubManager's nodeMap Field field = pubSubManager.getClass().getDeclaredField("nodeMap"); field.setAccessible(true); - Map nodeMap = (Map) field.get(pubSubManager); + Map nodeMap = (Map) field.get(pubSubManager); // Check, if the node already exists Node existingNode = nodeMap.get(nodeName); From de0f3cd06c715872ac40e8af5df5a102327e4f08 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 12 Apr 2020 12:07:32 +0200 Subject: [PATCH 18/30] extensions: comment out unfinished jingle util test --- .../smackx/jingle/JingleUtilTest.java | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java index 3c26003ae..7859a55cc 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/jingle/JingleUtilTest.java @@ -16,24 +16,16 @@ */ package org.jivesoftware.smackx.jingle; -import org.jivesoftware.smack.DummyConnection; -import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.test.util.SmackTestSuite; -import org.jivesoftware.smackx.jingle.element.Jingle; -import org.jivesoftware.smackx.jingle.element.JingleContent; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.jxmpp.jid.FullJid; -import org.jxmpp.jid.impl.JidCreate; -import org.jxmpp.stringprep.XmppStringprepException; - /** * Test the JingleUtil class. */ public class JingleUtilTest extends SmackTestSuite { + // TODO: Finish the test. + + /* private XMPPConnection connection; private JingleUtil jutil; @@ -102,4 +94,5 @@ public class JingleUtilTest extends SmackTestSuite { ""; // TODO: Finish test } + */ } From 0479a75d1d266024c3316157b8a1d771c4b07847 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 12 Apr 2020 12:07:59 +0200 Subject: [PATCH 19/30] Remove unnecessarily suppressed warnings --- .../org/jivesoftware/smackx/muclight/MultiUserChatLight.java | 1 - .../src/main/java/org/jivesoftware/smackx/pubsub/LeafNode.java | 1 - 2 files changed, 2 deletions(-) diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/MultiUserChatLight.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/MultiUserChatLight.java index 6ada795b3..ba001f38c 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/MultiUserChatLight.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/MultiUserChatLight.java @@ -147,7 +147,6 @@ public class MultiUserChatLight { * for the newly created chat. * @return new Chat for sending private messages to a given room occupant. */ - @SuppressWarnings("deprecation") @Deprecated // Do not re-use Chat API, which was designed for XMPP-IM 1:1 chats and not MUClight private chats. public org.jivesoftware.smack.chat.Chat createPrivateChat(EntityJid occupant, ChatMessageListener listener) { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/LeafNode.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/LeafNode.java index be658275e..a6eb39650 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/LeafNode.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/LeafNode.java @@ -236,7 +236,6 @@ public class LeafNode extends Node { * @throws NoResponseException if there was no response from the remote entity. * @deprecated use {@link #publish(Item)} instead. */ - @SuppressWarnings("unchecked") @Deprecated public void send(T item) throws NotConnectedException, InterruptedException, NoResponseException, XMPPErrorException { publish(item); From 9879dea0bf8311ba0f797bae5000dfd2e5c91c95 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 12 Apr 2020 12:08:31 +0200 Subject: [PATCH 20/30] Refer to static fields by their declaring type --- .../provider/JingleFileTransferProvider.java | 3 ++- .../provider/MarkupElementProvider.java | 19 ++++++++++--------- .../smackx/sid/provider/OriginIdProvider.java | 3 ++- .../smackx/sid/provider/StanzaIdProvider.java | 3 ++- .../provider/JingleS5BTransportProvider.java | 3 ++- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferProvider.java index 1eba4075a..ea590d825 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/jingle_filetransfer/provider/JingleFileTransferProvider.java @@ -28,6 +28,7 @@ import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.hashes.element.HashElement; import org.jivesoftware.smackx.hashes.provider.HashElementProvider; +import org.jivesoftware.smackx.jingle.element.JingleContentDescription; import org.jivesoftware.smackx.jingle.element.JingleContentDescriptionChildElement; import org.jivesoftware.smackx.jingle.provider.JingleContentDescriptionProvider; import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransfer; @@ -101,7 +102,7 @@ public class JingleFileTransferProvider builder = JingleFileTransferChild.getBuilder(); break; - case JingleFileTransfer.ELEMENT: + case JingleContentDescription.ELEMENT: return new JingleFileTransfer(payloads); } break; diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/message_markup/provider/MarkupElementProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/message_markup/provider/MarkupElementProvider.java index c7aae6ce1..58210c59a 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/message_markup/provider/MarkupElementProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/message_markup/provider/MarkupElementProvider.java @@ -32,6 +32,7 @@ import org.jivesoftware.smackx.message_markup.element.BlockQuoteElement; import org.jivesoftware.smackx.message_markup.element.CodeBlockElement; import org.jivesoftware.smackx.message_markup.element.ListElement; import org.jivesoftware.smackx.message_markup.element.MarkupElement; +import org.jivesoftware.smackx.message_markup.element.MarkupElement.MarkupChildElement; import org.jivesoftware.smackx.message_markup.element.SpanElement; public class MarkupElementProvider extends ExtensionElementProvider { @@ -55,26 +56,26 @@ public class MarkupElementProvider extends ExtensionElementProvider(); - spanStart = ParserUtils.getIntegerAttributeOrThrow(parser, SpanElement.ATTR_START, + spanStart = ParserUtils.getIntegerAttributeOrThrow(parser, MarkupChildElement.ATTR_START, "Message Markup SpanElement MUST contain a 'start' attribute."); - spanEnd = ParserUtils.getIntegerAttributeOrThrow(parser, SpanElement.ATTR_END, + spanEnd = ParserUtils.getIntegerAttributeOrThrow(parser, MarkupChildElement.ATTR_END, "Message Markup SpanElement MUST contain a 'end' attribute."); break; @@ -92,14 +93,14 @@ public class MarkupElementProvider extends ExtensionElementProvider(); - listStart = ParserUtils.getIntegerAttributeOrThrow(parser, ListElement.ATTR_START, + listStart = ParserUtils.getIntegerAttributeOrThrow(parser, MarkupChildElement.ATTR_START, "Message Markup ListElement MUST contain a 'start' attribute."); - listEnd = ParserUtils.getIntegerAttributeOrThrow(parser, ListElement.ATTR_END, + listEnd = ParserUtils.getIntegerAttributeOrThrow(parser, MarkupChildElement.ATTR_END, "Message Markup ListElement MUST contain a 'end' attribute."); break; case ListElement.ELEM_LI: - start = ParserUtils.getIntegerAttributeOrThrow(parser, ListElement.ATTR_START, + start = ParserUtils.getIntegerAttributeOrThrow(parser, MarkupChildElement.ATTR_START, "Message Markup ListElement 'li' MUST contain a 'start' attribute."); lis.add(new ListElement.ListEntryElement(start)); break; diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/OriginIdProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/OriginIdProvider.java index 166c7d630..6b8a851c5 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/OriginIdProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/OriginIdProvider.java @@ -21,6 +21,7 @@ import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smackx.sid.element.OriginIdElement; +import org.jivesoftware.smackx.sid.element.StableAndUniqueIdElement; public class OriginIdProvider extends ExtensionElementProvider { @@ -32,6 +33,6 @@ public class OriginIdProvider extends ExtensionElementProvider @Override public OriginIdElement parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) { - return new OriginIdElement(parser.getAttributeValue(null, OriginIdElement.ATTR_ID)); + return new OriginIdElement(parser.getAttributeValue(null, StableAndUniqueIdElement.ATTR_ID)); } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/StanzaIdProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/StanzaIdProvider.java index a45d34289..21d451a76 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/StanzaIdProvider.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/provider/StanzaIdProvider.java @@ -20,6 +20,7 @@ import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.provider.ExtensionElementProvider; import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smackx.sid.element.StableAndUniqueIdElement; import org.jivesoftware.smackx.sid.element.StanzaIdElement; public class StanzaIdProvider extends ExtensionElementProvider { @@ -28,7 +29,7 @@ public class StanzaIdProvider extends ExtensionElementProvider @Override public StanzaIdElement parse(XmlPullParser parser, int initialDepth, XmlEnvironment xmlEnvironment) { - String id = parser.getAttributeValue(null, StanzaIdElement.ATTR_ID); + String id = parser.getAttributeValue(null, StableAndUniqueIdElement.ATTR_ID); String by = parser.getAttributeValue(null, StanzaIdElement.ATTR_BY); return new StanzaIdElement(id, by); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/provider/JingleS5BTransportProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/provider/JingleS5BTransportProvider.java index 153fee447..7f85961db 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/provider/JingleS5BTransportProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jingle/transports/jingle_s5b/provider/JingleS5BTransportProvider.java @@ -32,6 +32,7 @@ import org.jivesoftware.smack.xml.XmlPullParser; import org.jivesoftware.smack.xml.XmlPullParserException; import org.jivesoftware.smackx.jingle.element.JingleContentTransport; +import org.jivesoftware.smackx.jingle.element.JingleContentTransportCandidate; import org.jivesoftware.smackx.jingle.provider.JingleContentTransportProvider; import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransport; import org.jivesoftware.smackx.jingle.transports.jingle_s5b.elements.JingleS5BTransportCandidate; @@ -66,7 +67,7 @@ public class JingleS5BTransportProvider extends JingleContentTransportProvider Date: Sun, 12 Apr 2020 12:09:04 +0200 Subject: [PATCH 21/30] Rename Stanza.getExtension(String, String) to getExtensionElement() --- .../java/org/jivesoftware/smack/packet/Stanza.java | 4 ++-- .../smackx/carbons/packet/CarbonExtension.java | 4 ++-- .../jivesoftware/smackx/hints/element/NoCopyHint.java | 2 +- .../smackx/hints/element/NoPermanentStoreHint.java | 2 +- .../jivesoftware/smackx/hints/element/NoStoreHint.java | 2 +- .../jivesoftware/smackx/mam/element/MamElements.java | 2 +- .../smackx/muclight/element/MUCLightElements.java | 2 +- .../smackx/sid/element/OriginIdElement.java | 2 +- .../org/jivesoftware/smackx/spoiler/SpoilerTest.java | 6 +++--- .../jivesoftware/smackx/bob/element/BoBExtension.java | 2 +- .../java/org/jivesoftware/smackx/muc/Occupant.java | 2 +- .../main/java/org/jivesoftware/smackx/pubsub/Node.java | 6 +++--- .../org/jivesoftware/smackx/pubsub/PubSubManager.java | 2 +- .../org/jivesoftware/smackx/pubsub/packet/PubSub.java | 2 +- .../org/jivesoftware/smackx/pubsub/util/NodeUtils.java | 2 +- .../org/jivesoftware/smackx/rsm/packet/RSMSet.java | 2 +- .../org/jivesoftware/smackx/xhtmlim/XHTMLManager.java | 2 +- .../smackx/workgroup/agent/AgentRoster.java | 2 +- .../smackx/workgroup/agent/AgentSession.java | 10 +++++----- .../jivesoftware/smackx/workgroup/user/Workgroup.java | 8 ++++---- .../smackx/xevent/MessageEventManager.java | 2 +- .../smackx/xroster/RosterExchangeManager.java | 2 +- .../org/jivesoftware/smackx/omemo/OmemoService.java | 8 ++++---- 23 files changed, 39 insertions(+), 39 deletions(-) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java b/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java index 833ff041a..e55f746da 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java @@ -338,7 +338,7 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement { /** * Returns the first extension of this stanza that has the given namespace. *

- * When possible, use {@link #getExtension(String, String)} instead. + * When possible, use {@link #getExtensionElement(String, String)} instead. *

* * @param namespace the namespace of the extension that is desired. @@ -358,7 +358,7 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement { * @param namespace the XML element namespace of the extension. * @return the extension, or null if it doesn't exist. */ - public final ExtensionElement getExtension(String elementName, String namespace) { + public final ExtensionElement getExtensionElement(String elementName, String namespace) { if (namespace == null) { return null; } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/packet/CarbonExtension.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/packet/CarbonExtension.java index 6fb49ce39..960922d07 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/packet/CarbonExtension.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/packet/CarbonExtension.java @@ -114,9 +114,9 @@ public class CarbonExtension implements ExtensionElement { * @return a Carbon if available, null otherwise. */ public static CarbonExtension from(Message msg) { - CarbonExtension cc = (CarbonExtension) msg.getExtension(Direction.received.name(), NAMESPACE); + CarbonExtension cc = (CarbonExtension) msg.getExtensionElement(Direction.received.name(), NAMESPACE); if (cc == null) - cc = (CarbonExtension) msg.getExtension(Direction.sent.name(), NAMESPACE); + cc = (CarbonExtension) msg.getExtensionElement(Direction.sent.name(), NAMESPACE); return cc; } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/element/NoCopyHint.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/element/NoCopyHint.java index 393fe55fe..a29ae0473 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/element/NoCopyHint.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/element/NoCopyHint.java @@ -48,7 +48,7 @@ public final class NoCopyHint extends MessageProcessingHint { } public static NoCopyHint from(Message message) { - return (NoCopyHint) message.getExtension(ELEMENT, NAMESPACE); + return (NoCopyHint) message.getExtensionElement(ELEMENT, NAMESPACE); } public static boolean hasHint(Message message) { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/element/NoPermanentStoreHint.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/element/NoPermanentStoreHint.java index 63aea7699..4b0bc7100 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/element/NoPermanentStoreHint.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/element/NoPermanentStoreHint.java @@ -48,7 +48,7 @@ public final class NoPermanentStoreHint extends MessageProcessingHint { } public static NoPermanentStoreHint from(Message message) { - return (NoPermanentStoreHint) message.getExtension(ELEMENT, NAMESPACE); + return (NoPermanentStoreHint) message.getExtensionElement(ELEMENT, NAMESPACE); } public static boolean hasHint(Message message) { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/element/NoStoreHint.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/element/NoStoreHint.java index 72bc4ff44..b6b9e2a25 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/element/NoStoreHint.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/hints/element/NoStoreHint.java @@ -48,7 +48,7 @@ public final class NoStoreHint extends MessageProcessingHint { } public static NoStoreHint from(Message message) { - return (NoStoreHint) message.getExtension(ELEMENT, NAMESPACE); + return (NoStoreHint) message.getExtensionElement(ELEMENT, NAMESPACE); } public static boolean hasHint(Message message) { diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/element/MamElements.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/element/MamElements.java index 540ffe774..034245a5a 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/element/MamElements.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/mam/element/MamElements.java @@ -140,7 +140,7 @@ public class MamElements { } public static MamResultExtension from(Message message) { - return (MamResultExtension) message.getExtension(ELEMENT, NAMESPACE); + return (MamResultExtension) message.getExtensionElement(ELEMENT, NAMESPACE); } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/element/MUCLightElements.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/element/MUCLightElements.java index ba14e5f62..33861b29e 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/element/MUCLightElements.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/muclight/element/MUCLightElements.java @@ -233,7 +233,7 @@ public abstract class MUCLightElements { } public static ConfigurationsChangeExtension from(Message message) { - return (ConfigurationsChangeExtension) message.getExtension(ConfigurationsChangeExtension.ELEMENT, ConfigurationsChangeExtension.NAMESPACE); + return (ConfigurationsChangeExtension) message.getExtensionElement(ConfigurationsChangeExtension.ELEMENT, ConfigurationsChangeExtension.NAMESPACE); } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/element/OriginIdElement.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/element/OriginIdElement.java index 10282b70b..585be47a6 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/element/OriginIdElement.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/sid/element/OriginIdElement.java @@ -82,7 +82,7 @@ public class OriginIdElement extends StableAndUniqueIdElement { * @return origin-id element */ public static OriginIdElement getOriginId(Message message) { - return (OriginIdElement) message.getExtension(OriginIdElement.ELEMENT, StableUniqueStanzaIdManager.NAMESPACE); + return (OriginIdElement) message.getExtensionElement(OriginIdElement.ELEMENT, StableUniqueStanzaIdManager.NAMESPACE); } @Override diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/spoiler/SpoilerTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/spoiler/SpoilerTest.java index 33104f575..165c4be40 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/spoiler/SpoilerTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/spoiler/SpoilerTest.java @@ -44,7 +44,7 @@ public class SpoilerTest extends SmackTestSuite { Message message = StanzaBuilder.buildMessage().build(); SpoilerElement.addSpoiler(message); - SpoilerElement empty = (SpoilerElement) message.getExtension(SpoilerElement.ELEMENT, SpoilerManager.NAMESPACE_0); + SpoilerElement empty = (SpoilerElement) message.getExtensionElement(SpoilerElement.ELEMENT, SpoilerManager.NAMESPACE_0); assertNull(empty.getHint()); assertNull(empty.getLanguage()); @@ -63,7 +63,7 @@ public class SpoilerTest extends SmackTestSuite { Message message = StanzaBuilder.buildMessage().build(); SpoilerElement.addSpoiler(message, "Love story end"); - SpoilerElement withHint = (SpoilerElement) message.getExtension(SpoilerElement.ELEMENT, SpoilerManager.NAMESPACE_0); + SpoilerElement withHint = (SpoilerElement) message.getExtensionElement(SpoilerElement.ELEMENT, SpoilerManager.NAMESPACE_0); assertEquals("Love story end", withHint.getHint()); assertNull(withHint.getLanguage()); @@ -83,7 +83,7 @@ public class SpoilerTest extends SmackTestSuite { Message message = StanzaBuilder.buildMessage().build(); SpoilerElement.addSpoiler(message, "de", "Der Kuchen ist eine Lüge!"); - SpoilerElement i18nHint = (SpoilerElement) message.getExtension(SpoilerElement.ELEMENT, SpoilerManager.NAMESPACE_0); + SpoilerElement i18nHint = (SpoilerElement) message.getExtensionElement(SpoilerElement.ELEMENT, SpoilerManager.NAMESPACE_0); assertEquals("Der Kuchen ist eine Lüge!", i18nHint.getHint()); assertEquals("de", i18nHint.getLanguage()); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/element/BoBExtension.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/element/BoBExtension.java index a0ee8af9e..442474fa1 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/element/BoBExtension.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/element/BoBExtension.java @@ -91,7 +91,7 @@ public class BoBExtension extends XHTMLExtension { } public static BoBExtension from(Message message) { - return (BoBExtension) message.getExtension(ELEMENT, NAMESPACE); + return (BoBExtension) message.getExtensionElement(ELEMENT, NAMESPACE); } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/Occupant.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/Occupant.java index babce3829..3e8884c64 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/Occupant.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/Occupant.java @@ -53,7 +53,7 @@ public class Occupant { } Occupant(Presence presence) { - MUCUser mucUser = (MUCUser) presence.getExtension("x", + MUCUser mucUser = (MUCUser) presence.getExtensionElement("x", "http://jabber.org/protocol/muc#user"); MUCItem item = mucUser.getItem(); this.jid = item.getJid(); diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Node.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Node.java index 2a43636b2..88decd520 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Node.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Node.java @@ -686,7 +686,7 @@ public abstract class Node { @Override @SuppressWarnings({ "rawtypes", "unchecked" }) public void processStanza(Stanza packet) { - EventElement event = (EventElement) packet.getExtension("event", PubSubNamespace.event.getXmlns()); + EventElement event = (EventElement) packet.getExtensionElement("event", PubSubNamespace.event.getXmlns()); ItemsExtension itemsElem = (ItemsExtension) event.getEvent(); ItemPublishEvent eventItems = new ItemPublishEvent(itemsElem.getNode(), itemsElem.getItems(), getSubscriptionIds(packet), DelayInformationManager.getDelayTimestamp(packet)); // TODO: Use AsyncButOrdered (with Node as Key?) @@ -710,7 +710,7 @@ public abstract class Node { @Override public void processStanza(Stanza packet) { // CHECKSTYLE:OFF - EventElement event = (EventElement) packet.getExtension("event", PubSubNamespace.event.getXmlns()); + EventElement event = (EventElement) packet.getExtensionElement("event", PubSubNamespace.event.getXmlns()); List extList = event.getExtensions(); @@ -749,7 +749,7 @@ public abstract class Node { @Override public void processStanza(Stanza packet) { - EventElement event = (EventElement) packet.getExtension("event", PubSubNamespace.event.getXmlns()); + EventElement event = (EventElement) packet.getExtensionElement("event", PubSubNamespace.event.getXmlns()); ConfigurationEvent config = (ConfigurationEvent) event.getEvent(); // TODO: Use AsyncButOrdered (with Node as Key?) diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/PubSubManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/PubSubManager.java index 420c36f5a..7d91e41ca 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/PubSubManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/PubSubManager.java @@ -503,7 +503,7 @@ public final class PubSubManager extends Manager { */ public List getSubscriptions() throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException { Stanza reply = sendPubsubPacket(Type.get, new NodeExtension(PubSubElementType.SUBSCRIPTIONS), null); - SubscriptionsExtension subElem = (SubscriptionsExtension) reply.getExtension(PubSubElementType.SUBSCRIPTIONS.getElementName(), PubSubElementType.SUBSCRIPTIONS.getNamespace().getXmlns()); + SubscriptionsExtension subElem = (SubscriptionsExtension) reply.getExtensionElement(PubSubElementType.SUBSCRIPTIONS.getElementName(), PubSubElementType.SUBSCRIPTIONS.getNamespace().getXmlns()); return subElem.getSubscriptions(); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/packet/PubSub.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/packet/PubSub.java index e8a6f4749..a71410139 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/packet/PubSub.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/packet/PubSub.java @@ -51,7 +51,7 @@ public class PubSub extends IQ { @SuppressWarnings("unchecked") public PE getExtension(PubSubElementType elem) { - return (PE) getExtension(elem.getElementName(), elem.getNamespace().getXmlns()); + return (PE) getExtensionElement(elem.getElementName(), elem.getNamespace().getXmlns()); } /** diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/util/NodeUtils.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/util/NodeUtils.java index 7b0d7e7f8..9d386e609 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/util/NodeUtils.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/util/NodeUtils.java @@ -37,7 +37,7 @@ public class NodeUtils { * @return The configuration form */ public static ConfigureForm getFormFromPacket(Stanza packet, PubSubElementType elem) { - FormNode config = (FormNode) packet.getExtension(elem.getElementName(), elem.getNamespace().getXmlns()); + FormNode config = (FormNode) packet.getExtensionElement(elem.getElementName(), elem.getNamespace().getXmlns()); Form formReply = config.getForm(); return new ConfigureForm(formReply); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/packet/RSMSet.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/packet/RSMSet.java index e96f74bea..cd3703938 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/packet/RSMSet.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/packet/RSMSet.java @@ -151,7 +151,7 @@ public class RSMSet implements ExtensionElement { } public static RSMSet from(Stanza packet) { - return (RSMSet) packet.getExtension(ELEMENT, NAMESPACE); + return (RSMSet) packet.getExtensionElement(ELEMENT, NAMESPACE); } public static RSMSet newAfter(String after) { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/XHTMLManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/XHTMLManager.java index 6a72b855c..de2def875 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/XHTMLManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/XHTMLManager.java @@ -89,7 +89,7 @@ public class XHTMLManager { * @return a boolean indicating whether the message is an XHTML message */ public static boolean isXHTMLMessage(Message message) { - return message.getExtension(XHTMLExtension.ELEMENT, XHTMLExtension.NAMESPACE) != null; + return message.getExtensionElement(XHTMLExtension.ELEMENT, XHTMLExtension.NAMESPACE) != null; } /** diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentRoster.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentRoster.java index ab7187b2e..fb970d8fd 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentRoster.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentRoster.java @@ -317,7 +317,7 @@ public class AgentRoster { // for a particular user a map with the presence packets saved for each resource. if (presence.getType() == Presence.Type.available) { // Ignore the presence packet unless it has an agent status extension. - AgentStatus agentStatus = (AgentStatus) presence.getExtension( + AgentStatus agentStatus = (AgentStatus) presence.getExtensionElement( AgentStatus.ELEMENT_NAME, AgentStatus.NAMESPACE); if (agentStatus == null) { return; diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentSession.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentSession.java index 0b8022dfc..a090c5705 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentSession.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentSession.java @@ -784,7 +784,7 @@ public class AgentSession { } // QueueOverview packet extensions contain basic information about a queue. - QueueOverview queueOverview = (QueueOverview) presence.getExtension(QueueOverview.ELEMENT_NAME, QueueOverview.NAMESPACE); + QueueOverview queueOverview = (QueueOverview) presence.getExtensionElement(QueueOverview.ELEMENT_NAME, QueueOverview.NAMESPACE); if (queueOverview != null) { if (queueOverview.getStatus() == null) { queue.setStatus(WorkgroupQueue.Status.CLOSED); @@ -803,7 +803,7 @@ public class AgentSession { // QueueDetails packet extensions contain information about the users in // a queue. - QueueDetails queueDetails = (QueueDetails) packet.getExtension(QueueDetails.ELEMENT_NAME, QueueDetails.NAMESPACE); + QueueDetails queueDetails = (QueueDetails) packet.getExtensionElement(QueueDetails.ELEMENT_NAME, QueueDetails.NAMESPACE); if (queueDetails != null) { queue.setUsers(queueDetails.getUsers()); // Fire event. @@ -812,7 +812,7 @@ public class AgentSession { } // Notify agent packets gives an overview of agent activity in a queue. - StandardExtensionElement notifyAgents = (StandardExtensionElement) presence.getExtension("notify-agents", "http://jabber.org/protocol/workgroup"); + StandardExtensionElement notifyAgents = (StandardExtensionElement) presence.getExtensionElement("notify-agents", "http://jabber.org/protocol/workgroup"); if (notifyAgents != null) { int currentChats = Integer.parseInt(notifyAgents.getFirstElement("current-chats", "http://jabber.org/protocol/workgroup").getText()); int maxChats = Integer.parseInt(notifyAgents.getFirstElement("max-chats", "http://jabber.org/protocol/workgroup").getText()); @@ -833,13 +833,13 @@ public class AgentSession { String sessionID = null; Map> metaData = null; - SessionID sessionIDExt = (SessionID) message.getExtension(SessionID.ELEMENT_NAME, + SessionID sessionIDExt = (SessionID) message.getExtensionElement(SessionID.ELEMENT_NAME, SessionID.NAMESPACE); if (sessionIDExt != null) { sessionID = sessionIDExt.getSessionID(); } - MetaData metaDataExt = (MetaData) message.getExtension(MetaData.ELEMENT_NAME, + MetaData metaDataExt = (MetaData) message.getExtensionElement(MetaData.ELEMENT_NAME, MetaData.NAMESPACE); if (metaDataExt != null) { metaData = metaDataExt.getMetaData(); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/user/Workgroup.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/user/Workgroup.java index cf6da6015..c4ad8134c 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/user/Workgroup.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/user/Workgroup.java @@ -515,8 +515,8 @@ public class Workgroup { if (packet instanceof Message) { Message msg = (Message) packet; // Check to see if the user left the queue. - ExtensionElement pe = msg.getExtension("depart-queue", "http://jabber.org/protocol/workgroup"); - ExtensionElement queueStatus = msg.getExtension("queue-status", "http://jabber.org/protocol/workgroup"); + ExtensionElement pe = msg.getExtensionElement("depart-queue", "http://jabber.org/protocol/workgroup"); + ExtensionElement queueStatus = msg.getExtensionElement("queue-status", "http://jabber.org/protocol/workgroup"); if (pe != null) { fireQueueDepartedEvent(); @@ -539,13 +539,13 @@ public class Workgroup { String sessionID = null; Map> metaData = null; - pe = msg.getExtension(SessionID.ELEMENT_NAME, + pe = msg.getExtensionElement(SessionID.ELEMENT_NAME, SessionID.NAMESPACE); if (pe != null) { sessionID = ((SessionID) pe).getSessionID(); } - pe = msg.getExtension(MetaData.ELEMENT_NAME, + pe = msg.getExtensionElement(MetaData.ELEMENT_NAME, MetaData.NAMESPACE); if (pe != null) { metaData = ((MetaData) pe).getMetaData(); diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/MessageEventManager.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/MessageEventManager.java index 267c5e39a..1d74bc69b 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/MessageEventManager.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/xevent/MessageEventManager.java @@ -82,7 +82,7 @@ public final class MessageEventManager extends Manager { @Override public void processStanza(Stanza packet) { Message message = (Message) packet; - MessageEvent messageEvent = (MessageEvent) message.getExtension("x", "jabber:x:event"); + MessageEvent messageEvent = (MessageEvent) message.getExtensionElement("x", "jabber:x:event"); if (messageEvent.isMessageEventRequest()) { // Fire event for requests of message events for (String eventType : messageEvent.getEventTypes()) diff --git a/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/RosterExchangeManager.java b/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/RosterExchangeManager.java index eabcd40ad..baac6db8c 100644 --- a/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/RosterExchangeManager.java +++ b/smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/RosterExchangeManager.java @@ -84,7 +84,7 @@ public class RosterExchangeManager { @Override public void processStanza(Stanza packet) { Message message = (Message) packet; - RosterExchange rosterExchange = (RosterExchange) message.getExtension(ELEMENT, NAMESPACE); + RosterExchange rosterExchange = (RosterExchange) message.getExtensionElement(ELEMENT, NAMESPACE); // Fire event for roster exchange listeners fireRosterExchangeListeners(message.getFrom(), rosterExchange.getRosterEntries()); } diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java index 372579b61..e3a502251 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/OmemoService.java @@ -1051,7 +1051,7 @@ public abstract class OmemoService Date: Sun, 12 Apr 2020 12:12:57 +0200 Subject: [PATCH 22/30] core: fix javadoc of Stanza.getExtensionElement(String, String) The element name must not be null or empty. --- .../src/main/java/org/jivesoftware/smack/packet/Stanza.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java b/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java index e55f746da..2e8123ec8 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java @@ -350,11 +350,10 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement { /** * Returns the first extension that matches the specified element name and - * namespace, or null if it doesn't exist. If the provided elementName is null, - * only the namespace is matched. Extensions are + * namespace, or null if it doesn't exist. Extensions are * are arbitrary XML elements in standard XMPP stanzas. * - * @param elementName the XML element name of the extension. (May be null) + * @param elementName the XML element name of the extension. * @param namespace the XML element namespace of the extension. * @return the extension, or null if it doesn't exist. */ From d498cd849918b14218f8c922f525e2cf23bf01b2 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 12 Apr 2020 12:13:32 +0200 Subject: [PATCH 23/30] core: re-add Stanza.getExtension(String, String) and mark deprecated This method was removed with 07da9ffb4 ("Do not have Stanza.getExtension(String, String) return a generic type"). In order to aide migration to the newer API, this commit re-adds the method and marks it as deprecated. --- .../org/jivesoftware/smack/packet/Stanza.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java b/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java index 2e8123ec8..2422db010 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java @@ -369,6 +369,22 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement { return packetExtension; } + /** + * This method is deprecated. Use preferably {@link #getExtension(Class)} or {@link #getExtensionElement(String, String)}. + * + * @param the type to cast to. + * @param elementName the XML element name of the extension. (May be null) + * @param namespace the XML element namespace of the extension. + * @return the extension, or null if it doesn't exist. + * @deprecated use {@link #getExtension(Class)} or {@link #getExtensionElement(String, String)} isntead. + */ + // TODO: Remove in Smack 4.5. + @SuppressWarnings("unchecked") + @Deprecated + public final E getExtension(String elementName, String namespace) { + return (E) getExtensionElement(elementName, namespace); + } + @Override public final ExtensionElement getExtension(QName qname) { synchronized (extensionElements) { From 5438fb7b332ae6c7f1b81a19f6c17b6d7c9e6fbb Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 12 Apr 2020 12:16:36 +0200 Subject: [PATCH 24/30] core: add hint towards StanzaView.getExtension(Class) --- .../src/main/java/org/jivesoftware/smack/packet/Stanza.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java b/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java index 2422db010..bedcad481 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java @@ -352,6 +352,10 @@ public abstract class Stanza implements StanzaView, TopLevelStreamElement { * Returns the first extension that matches the specified element name and * namespace, or null if it doesn't exist. Extensions are * are arbitrary XML elements in standard XMPP stanzas. + *

+ * Note that it is recommended to use {@link #getExtension(Class)} instead of this method. + * The {@link #getExtension(Class)} is more robust, as it is type safe. + *

* * @param elementName the XML element name of the extension. * @param namespace the XML element namespace of the extension. From e8fef260e613dccad2628bdc3dee487f2f6a1d76 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 12 Apr 2020 21:54:18 +0200 Subject: [PATCH 25/30] 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. --- build.gradle | 1 - smack-integration-test/build.gradle | 9 +--- .../SmackIntegrationTestFramework.java | 5 ++- .../smack/inttest/annotations/AfterClass.java | 30 +++++++++++++ .../inttest/annotations/BeforeClass.java | 30 +++++++++++++ .../SmackIntegrationTest.java | 2 +- .../inttest/annotations/package-info.java | 21 +++++++++ .../java/org/jivesoftware/smack/ChatTest.java | 44 +++++++++---------- .../smack/LoginIntegrationTest.java | 2 +- .../smack/StreamManagementTest.java | 6 +-- .../WaitForClosingStreamElementTest.java | 4 +- .../smack/XmppConnectionIntegrationTest.java | 2 +- ...rverConnectionLowLevelIntegrationTest.java | 2 +- ...ncomingMessageListenerIntegrationTest.java | 2 +- ...utgoingMessageListenerIntegrationTest.java | 2 +- .../roster/LowLevelRosterIntegrationTest.java | 2 +- .../smack/roster/RosterIntegrationTest.java | 4 +- .../smackx/caps/EntityCapsTest.java | 17 +++---- .../chatstate/ChatStateIntegrationTest.java | 6 +-- .../FileTransferIntegrationTest.java | 2 +- .../GeolocationIntegrationTest.java | 7 ++- .../HttpFileUploadIntegrationTest.java | 4 +- .../smackx/iot/IoTControlIntegrationTest.java | 4 +- .../smackx/iot/IoTDataIntegrationTest.java | 6 +-- .../iot/IoTDiscoveryIntegrationTest.java | 4 +- .../iqversion/VersionIntegrationTest.java | 6 +-- .../smackx/mam/MamIntegrationTest.java | 8 ++-- .../smackx/mood/MoodIntegrationTest.java | 4 +- .../muc/MultiUserChatIntegrationTest.java | 6 +-- .../MultiUserChatLowLevelIntegrationTest.java | 4 +- .../AbstractTwoUsersOmemoIntegrationTest.java | 10 ++--- .../MessageEncryptionIntegrationTest.java | 18 ++++---- .../smackx/omemo/OmemoMamDecryptionTest.java | 4 +- .../smackx/omemo/OmemoManagerSetupHelper.java | 7 ++- .../omemo/ReadOnlyDeviceIntegrationTest.java | 8 ++-- .../SessionRenegotiationIntegrationTest.java | 2 +- .../ox/OXSecretKeyBackupIntegrationTest.java | 29 +++--------- .../OXInstantMessagingIntegrationTest.java | 35 +++------------ .../smackx/ping/PingIntegrationTest.java | 4 +- .../smackx/pubsub/PubSubIntegrationTest.java | 6 +-- .../usertune/UserTuneIntegrationTest.java | 4 +- .../jivesoftware/smackx/xdata/FormTest.java | 39 +++++++--------- .../SmackIntegrationTestFrameWorkTest.java | 8 ++-- ...egrationTestXmppConnectionManagerTest.java | 4 +- ...SmackIntegrationTestFrameworkUnitTest.java | 30 +++++++------ .../inttest/util/ResultSyncPointTest.java | 11 ++--- .../smack/smackrepl/SmackReplTest.java | 4 +- 47 files changed, 248 insertions(+), 221 deletions(-) create mode 100644 smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/annotations/AfterClass.java create mode 100644 smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/annotations/BeforeClass.java rename smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/{ => annotations}/SmackIntegrationTest.java (95%) create mode 100644 smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/annotations/package-info.java diff --git a/build.gradle b/build.gradle index 03237bbdf..b0a81ba9f 100644 --- a/build.gradle +++ b/build.gradle @@ -124,7 +124,6 @@ allprojects { junit4Projects = [ ':smack-core', ':smack-im', - ':smack-integration-test', ':smack-omemo', ':smack-omemo-signal', ':smack-openpgp', diff --git a/smack-integration-test/build.gradle b/smack-integration-test/build.gradle index b7bc586d0..c3e6602d4 100644 --- a/smack-integration-test/build.gradle +++ b/smack-integration-test/build.gradle @@ -12,14 +12,7 @@ dependencies { compile 'org.reflections:reflections:0.9.11' compile 'eu.geekplace.javapinning:java-pinning-java7:1.1.0-alpha1' compile group: 'commons-io', name: 'commons-io', version: "$commonsIoVersion" - // Note that the junit-vintage-engine runtime dependency is not - // directly required, but it declares a dependency to - // junit:junit:4.12, which we currently need in sinttest, since it - // (ab)uses @Before from org.junit - compile "org.junit.vintage:junit-vintage-engine:$junitVersion" - compile 'junit:junit:4.12' - // Add Junit 5 API for e.g. assertThrows() - implementation "org.junit.jupiter:junit-jupiter-api:$junitVersion" + api "org.junit.jupiter:junit-jupiter-api:$junitVersion" testFixturesApi(testFixtures(project(":smack-core"))) testCompile "org.jxmpp:jxmpp-jid:$jxmppVersion:tests" } diff --git a/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/SmackIntegrationTestFramework.java b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/SmackIntegrationTestFramework.java index a8c541d8f..e96ca0a7e 100644 --- a/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/SmackIntegrationTestFramework.java +++ b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/SmackIntegrationTestFramework.java @@ -65,8 +65,9 @@ import org.jivesoftware.smackx.debugger.EnhancedDebuggerWindow; import org.jivesoftware.smackx.iqregister.AccountManager; import org.igniterealtime.smack.inttest.Configuration.AccountRegistration; -import org.junit.AfterClass; -import org.junit.BeforeClass; +import org.igniterealtime.smack.inttest.annotations.AfterClass; +import org.igniterealtime.smack.inttest.annotations.BeforeClass; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.reflections.Reflections; import org.reflections.scanners.MethodAnnotationsScanner; import org.reflections.scanners.MethodParameterScanner; diff --git a/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/annotations/AfterClass.java b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/annotations/AfterClass.java new file mode 100644 index 000000000..3e567131d --- /dev/null +++ b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/annotations/AfterClass.java @@ -0,0 +1,30 @@ +/** + * + * Copyright 2020 Florian Schmaus + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.igniterealtime.smack.inttest.annotations; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Documented +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.METHOD) +public @interface AfterClass { + +} diff --git a/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/annotations/BeforeClass.java b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/annotations/BeforeClass.java new file mode 100644 index 000000000..49f159e9b --- /dev/null +++ b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/annotations/BeforeClass.java @@ -0,0 +1,30 @@ +/** + * + * Copyright 2020 Florian Schmaus + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.igniterealtime.smack.inttest.annotations; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Documented +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.METHOD) +public @interface BeforeClass { + +} diff --git a/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/SmackIntegrationTest.java b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/annotations/SmackIntegrationTest.java similarity index 95% rename from smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/SmackIntegrationTest.java rename to smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/annotations/SmackIntegrationTest.java index bcbfb8e35..173b4d2e9 100644 --- a/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/SmackIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/annotations/SmackIntegrationTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.igniterealtime.smack.inttest; +package org.igniterealtime.smack.inttest.annotations; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; diff --git a/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/annotations/package-info.java b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/annotations/package-info.java new file mode 100644 index 000000000..11723cd94 --- /dev/null +++ b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/annotations/package-info.java @@ -0,0 +1,21 @@ +/** + * + * Copyright 2020 Florian Schmaus + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Java annotations for Smack's Integration Test Framework. + */ +package org.igniterealtime.smack.inttest.annotations; diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smack/ChatTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smack/ChatTest.java index ff058b8e8..d956c92ee 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smack/ChatTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smack/ChatTest.java @@ -19,9 +19,9 @@ package org.jivesoftware.smack; import static org.jivesoftware.smackx.jiveproperties.JivePropertiesManager.addProperty; import static org.jivesoftware.smackx.jiveproperties.JivePropertiesManager.getProperty; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Date; @@ -34,10 +34,10 @@ import org.jivesoftware.smack.packet.StanzaBuilder; import org.jivesoftware.smackx.jiveproperties.JivePropertiesManager; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; -import org.junit.AfterClass; -import org.junit.BeforeClass; +import org.igniterealtime.smack.inttest.annotations.AfterClass; +import org.igniterealtime.smack.inttest.annotations.BeforeClass; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; /** * Tests for Chat Manager and for Chat Manager Listener. @@ -87,33 +87,33 @@ public class ChatTest extends AbstractSmackIntegrationTest { newChat.sendMessage(msg); Message msg2 = collector.nextResult(2000); - assertNotNull("No message was received", msg2); - assertEquals("Subjects are different", msg.getSubject(), msg2.getSubject()); - assertEquals("Bodies are different", msg.getBody(), msg2.getBody()); + assertNotNull(msg2, "No message was received"); + assertEquals(msg.getSubject(), msg2.getSubject(), "Subjects are different"); + assertEquals(msg.getBody(), msg2.getBody(), "Bodies are different"); assertEquals( - "favoriteColors are different", getProperty(msg, "favoriteColor"), - getProperty(msg2, "favoriteColor")); + getProperty(msg2, "favoriteColor"), + "favoriteColors are different"); assertEquals( - "ages are different", getProperty(msg, "age"), - getProperty(msg2, "age")); + getProperty(msg2, "age"), + "ages are different"); assertEquals( - "distances are different", getProperty(msg, "distance"), - getProperty(msg2, "distance")); + getProperty(msg2, "distance"), + "distances are different"); assertEquals( - "weights are different", getProperty(msg, "weight"), - getProperty(msg2, "weight")); + getProperty(msg2, "weight"), + "weights are different"); assertEquals( - "males are different", getProperty(msg, "male"), - getProperty(msg2, "male")); + getProperty(msg2, "male"), + "males are different"); assertEquals( - "birthdates are different", getProperty(msg, "birthdate"), - getProperty(msg2, "birthdate")); + getProperty(msg2, "birthdate"), + "birthdates are different"); } @SuppressWarnings("deprecation") @@ -131,7 +131,7 @@ public class ChatTest extends AbstractSmackIntegrationTest { chatManagerOne.addChatListener(listener); chatManagerOne.createChat(conTwo.getUser()); - assertTrue("TestChatManagerListener wasn't invoked", invoked); + assertTrue(invoked, "TestChatManagerListener wasn't invoked"); } finally { chatManagerOne.removeChatListener(listener); diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smack/LoginIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smack/LoginIntegrationTest.java index 1458b99a9..47c299671 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smack/LoginIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smack/LoginIntegrationTest.java @@ -29,8 +29,8 @@ import org.jivesoftware.smack.sasl.packet.SaslNonza; import org.jivesoftware.smack.util.StringUtils; import org.igniterealtime.smack.inttest.AbstractSmackLowLevelIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; public class LoginIntegrationTest extends AbstractSmackLowLevelIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smack/StreamManagementTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smack/StreamManagementTest.java index e5e77e4b0..c9ca9095b 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smack/StreamManagementTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smack/StreamManagementTest.java @@ -16,8 +16,8 @@ */ package org.jivesoftware.smack; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.io.IOException; @@ -29,9 +29,9 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.tcp.XMPPTCPConnection; import org.igniterealtime.smack.inttest.AbstractSmackSpecificLowLevelIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; public class StreamManagementTest extends AbstractSmackSpecificLowLevelIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smack/WaitForClosingStreamElementTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smack/WaitForClosingStreamElementTest.java index 50ddf0123..65bf5a5a4 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smack/WaitForClosingStreamElementTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smack/WaitForClosingStreamElementTest.java @@ -16,13 +16,13 @@ */ package org.jivesoftware.smack; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.lang.reflect.Field; import org.igniterealtime.smack.inttest.AbstractSmackLowLevelIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; public class WaitForClosingStreamElementTest extends AbstractSmackLowLevelIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smack/XmppConnectionIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smack/XmppConnectionIntegrationTest.java index 29dc527e6..4ec185c12 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smack/XmppConnectionIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smack/XmppConnectionIntegrationTest.java @@ -25,8 +25,8 @@ import org.igniterealtime.smack.XmppConnectionStressTest; import org.igniterealtime.smack.XmppConnectionStressTest.StressTestFailedException.ErrorsWhileSendingOrReceivingException; import org.igniterealtime.smack.XmppConnectionStressTest.StressTestFailedException.NotAllMessagesReceivedException; import org.igniterealtime.smack.inttest.AbstractSmackLowLevelIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; public class XmppConnectionIntegrationTest extends AbstractSmackLowLevelIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smack/c2s/ModularXmppClientToServerConnectionLowLevelIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smack/c2s/ModularXmppClientToServerConnectionLowLevelIntegrationTest.java index c5a1564c6..5d6e67bd0 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smack/c2s/ModularXmppClientToServerConnectionLowLevelIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smack/c2s/ModularXmppClientToServerConnectionLowLevelIntegrationTest.java @@ -27,8 +27,8 @@ import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.XMPPException.XMPPErrorException; import org.igniterealtime.smack.inttest.AbstractSmackSpecificLowLevelIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; public class ModularXmppClientToServerConnectionLowLevelIntegrationTest extends AbstractSmackSpecificLowLevelIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smack/chat2/IncomingMessageListenerIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smack/chat2/IncomingMessageListenerIntegrationTest.java index ca76ab280..7d536f072 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smack/chat2/IncomingMessageListenerIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smack/chat2/IncomingMessageListenerIntegrationTest.java @@ -19,8 +19,8 @@ package org.jivesoftware.smack.chat2; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.util.StringUtils; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint; import org.jxmpp.jid.EntityBareJid; diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smack/chat2/OutgoingMessageListenerIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smack/chat2/OutgoingMessageListenerIntegrationTest.java index 6118d2ed2..0b0109e98 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smack/chat2/OutgoingMessageListenerIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smack/chat2/OutgoingMessageListenerIntegrationTest.java @@ -20,8 +20,8 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.MessageBuilder; import org.jivesoftware.smack.util.StringUtils; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint; import org.jxmpp.jid.EntityBareJid; diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smack/roster/LowLevelRosterIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smack/roster/LowLevelRosterIntegrationTest.java index 8b73081be..305e9ae47 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smack/roster/LowLevelRosterIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smack/roster/LowLevelRosterIntegrationTest.java @@ -22,8 +22,8 @@ import org.jivesoftware.smack.AbstractXMPPConnection; import org.jivesoftware.smack.packet.Presence; import org.igniterealtime.smack.inttest.AbstractSmackLowLevelIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.igniterealtime.smack.inttest.util.IntegrationTestRosterUtil; import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint; import org.jxmpp.jid.FullJid; diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smack/roster/RosterIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smack/roster/RosterIntegrationTest.java index 6f2d0a8fb..55aad5c12 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smack/roster/RosterIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smack/roster/RosterIntegrationTest.java @@ -16,7 +16,7 @@ */ package org.jivesoftware.smack.roster; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Collection; import java.util.concurrent.TimeoutException; @@ -26,8 +26,8 @@ import org.jivesoftware.smack.roster.packet.RosterPacket.ItemType; import org.jivesoftware.smack.util.StringUtils; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.igniterealtime.smack.inttest.util.IntegrationTestRosterUtil; import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint; import org.jxmpp.jid.BareJid; diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/caps/EntityCapsTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/caps/EntityCapsTest.java index 8a4946e51..0a0110882 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/caps/EntityCapsTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/caps/EntityCapsTest.java @@ -16,10 +16,10 @@ */ package org.jivesoftware.smackx.caps; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.HashSet; import java.util.Set; @@ -45,11 +45,11 @@ import org.jivesoftware.smackx.disco.ServiceDiscoveryManager; import org.jivesoftware.smackx.disco.packet.DiscoverInfo; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.AfterClass; +import org.igniterealtime.smack.inttest.annotations.BeforeClass; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint; -import org.junit.AfterClass; -import org.junit.BeforeClass; public class EntityCapsTest extends AbstractSmackIntegrationTest { @@ -169,7 +169,8 @@ public class EntityCapsTest extends AbstractSmackIntegrationTest { DiscoverInfo info = sdmOne.discoverInfo(conTwo.getUser()); // that discovery should cause a disco#info assertTrue(discoInfoSend.get()); - assertTrue("The info response '" + info + "' does not contain the expected feature '" + dummyFeature + '\'', info.containsFeature(dummyFeature)); + assertTrue(info.containsFeature(dummyFeature), + "The info response '" + info + "' does not contain the expected feature '" + dummyFeature + '\''); discoInfoSend.set(false); // discover that diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/chatstate/ChatStateIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/chatstate/ChatStateIntegrationTest.java index 539bdb03d..6b153b3a2 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/chatstate/ChatStateIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/chatstate/ChatStateIntegrationTest.java @@ -25,10 +25,10 @@ import org.jivesoftware.smackx.chatstates.ChatStateListener; import org.jivesoftware.smackx.chatstates.ChatStateManager; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.AfterClass; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint; -import org.junit.After; public class ChatStateIntegrationTest extends AbstractSmackIntegrationTest { @@ -83,7 +83,7 @@ public class ChatStateIntegrationTest extends AbstractSmackIntegrationTest { activeSyncPoint.waitForResult(timeout); } - @After + @AfterClass public void cleanup() { ChatStateManager manTwo = ChatStateManager.getInstance(conTwo); manTwo.removeChatStateListener(composingListener); diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferIntegrationTest.java index 4a0af1d50..5d536aedb 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferIntegrationTest.java @@ -28,8 +28,8 @@ import org.jivesoftware.smack.XMPPException.XMPPErrorException; import org.jivesoftware.smack.util.StringUtils; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.igniterealtime.smack.inttest.util.ResultSyncPoint; public class FileTransferIntegrationTest extends AbstractSmackIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/geolocation/GeolocationIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/geolocation/GeolocationIntegrationTest.java index 0c4c9f863..3909cee88 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/geolocation/GeolocationIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/geolocation/GeolocationIntegrationTest.java @@ -24,18 +24,17 @@ import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.SmackException.NotLoggedInException; import org.jivesoftware.smack.XMPPException.XMPPErrorException; import org.jivesoftware.smack.packet.Message; + import org.jivesoftware.smackx.geoloc.GeoLocationListener; import org.jivesoftware.smackx.geoloc.GeoLocationManager; import org.jivesoftware.smackx.geoloc.packet.GeoLocation; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.AfterClass; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.igniterealtime.smack.inttest.util.IntegrationTestRosterUtil; import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint; - -import org.junit.AfterClass; - import org.jxmpp.jid.BareJid; import org.jxmpp.util.XmppDateTime; diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadIntegrationTest.java index 1d2e06914..7736c0657 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/httpfileupload/HttpFileUploadIntegrationTest.java @@ -16,7 +16,7 @@ */ package org.jivesoftware.smackx.httpfileupload; -import static org.junit.Assert.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; @@ -33,9 +33,9 @@ import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.XMPPException.XMPPErrorException; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; public class HttpFileUploadIntegrationTest extends AbstractSmackIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/iot/IoTControlIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/iot/IoTControlIntegrationTest.java index 4a346479b..498493b5b 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/iot/IoTControlIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/iot/IoTControlIntegrationTest.java @@ -16,7 +16,7 @@ */ package org.jivesoftware.smackx.iot; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.util.Collection; import java.util.concurrent.TimeoutException; @@ -31,8 +31,8 @@ import org.jivesoftware.smackx.iot.control.element.SetBoolData; import org.jivesoftware.smackx.iot.control.element.SetData; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.igniterealtime.smack.inttest.util.IntegrationTestRosterUtil; import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint; import org.jxmpp.jid.Jid; diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/iot/IoTDataIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/iot/IoTDataIntegrationTest.java index dc6fc538e..858eae9a7 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/iot/IoTDataIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/iot/IoTDataIntegrationTest.java @@ -16,8 +16,8 @@ */ package org.jivesoftware.smackx.iot; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Collections; import java.util.List; @@ -35,8 +35,8 @@ import org.jivesoftware.smackx.iot.data.element.NodeElement; import org.jivesoftware.smackx.iot.data.element.TimestampElement; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.igniterealtime.smack.inttest.util.IntegrationTestRosterUtil; public class IoTDataIntegrationTest extends AbstractSmackIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/iot/IoTDiscoveryIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/iot/IoTDiscoveryIntegrationTest.java index 92c950a86..df6bf345e 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/iot/IoTDiscoveryIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/iot/IoTDiscoveryIntegrationTest.java @@ -16,7 +16,7 @@ */ package org.jivesoftware.smackx.iot; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.SmackException.NoResponseException; @@ -31,9 +31,9 @@ import org.jivesoftware.smackx.iot.discovery.ThingState; import org.jivesoftware.smackx.iot.discovery.element.IoTClaimed; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.jxmpp.jid.Jid; public class IoTDiscoveryIntegrationTest extends AbstractSmackIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/iqversion/VersionIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/iqversion/VersionIntegrationTest.java index 577819e11..9e903bbb8 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/iqversion/VersionIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/iqversion/VersionIntegrationTest.java @@ -16,8 +16,8 @@ */ package org.jivesoftware.smackx.iqversion; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.jivesoftware.smack.SmackException.NoResponseException; import org.jivesoftware.smack.SmackException.NotConnectedException; @@ -26,8 +26,8 @@ import org.jivesoftware.smack.XMPPException.XMPPErrorException; import org.jivesoftware.smackx.iqversion.packet.Version; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; public class VersionIntegrationTest extends AbstractSmackIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/mam/MamIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/mam/MamIntegrationTest.java index b0cc99584..cb4751d21 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/mam/MamIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/mam/MamIntegrationTest.java @@ -16,9 +16,9 @@ */ package org.jivesoftware.smackx.mam; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.ArrayList; import java.util.List; @@ -38,9 +38,9 @@ import org.jivesoftware.smackx.mam.MamManager.MamQuery; import org.jivesoftware.smackx.mam.MamManager.MamQueryArgs; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint; import org.jxmpp.jid.EntityBareJid; diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/mood/MoodIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/mood/MoodIntegrationTest.java index afac2dd12..3338bc4f2 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/mood/MoodIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/mood/MoodIntegrationTest.java @@ -20,11 +20,11 @@ import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPException; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.AfterClass; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.igniterealtime.smack.inttest.util.IntegrationTestRosterUtil; import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint; -import org.junit.AfterClass; public class MoodIntegrationTest extends AbstractSmackIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatIntegrationTest.java index aee855f6a..7ba0c1d1e 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatIntegrationTest.java @@ -16,8 +16,8 @@ */ package org.jivesoftware.smackx.muc; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; @@ -35,9 +35,9 @@ import org.jivesoftware.smackx.muc.MultiUserChatException.NotAMucServiceExceptio import org.jivesoftware.smackx.muc.packet.MUCUser; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.igniterealtime.smack.inttest.util.ResultSyncPoint; import org.jxmpp.jid.DomainBareJid; import org.jxmpp.jid.EntityBareJid; diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatLowLevelIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatLowLevelIntegrationTest.java index ba4abd160..e0f476306 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatLowLevelIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatLowLevelIntegrationTest.java @@ -16,7 +16,7 @@ */ package org.jivesoftware.smackx.muc; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; @@ -30,9 +30,9 @@ import org.jivesoftware.smackx.muc.MultiUserChat.MucCreateConfigFormHandle; import org.jivesoftware.smackx.muc.bookmarkautojoin.MucBookmarkAutojoinManager; import org.igniterealtime.smack.inttest.AbstractSmackLowLevelIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.jxmpp.jid.DomainBareJid; import org.jxmpp.jid.impl.JidCreate; import org.jxmpp.jid.parts.Localpart; diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/AbstractTwoUsersOmemoIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/AbstractTwoUsersOmemoIntegrationTest.java index 1e324b77c..1057e695c 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/AbstractTwoUsersOmemoIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/AbstractTwoUsersOmemoIntegrationTest.java @@ -16,20 +16,19 @@ */ package org.jivesoftware.smackx.omemo; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; import java.io.IOException; -import java.util.logging.Level; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPException; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; +import org.igniterealtime.smack.inttest.annotations.AfterClass; +import org.igniterealtime.smack.inttest.annotations.BeforeClass; import org.igniterealtime.smack.inttest.util.IntegrationTestRosterUtil; -import org.junit.AfterClass; -import org.junit.BeforeClass; /** * Abstract OMEMO integration test framing, which creates and initializes two OmemoManagers (for conOne and conTwo). @@ -51,7 +50,6 @@ public abstract class AbstractTwoUsersOmemoIntegrationTest extends AbstractOmemo alice = OmemoManagerSetupHelper.prepareOmemoManager(conOne); bob = OmemoManagerSetupHelper.prepareOmemoManager(conTwo); - LOGGER.log(Level.FINE, "Alice: " + alice.getOwnDevice() + " Bob: " + bob.getOwnDevice()); assertFalse(alice.getDeviceId().equals(bob.getDeviceId())); // Subscribe presences diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/MessageEncryptionIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/MessageEncryptionIntegrationTest.java index 26ba5ab08..2efd1fb1a 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/MessageEncryptionIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/MessageEncryptionIntegrationTest.java @@ -16,8 +16,8 @@ */ package org.jivesoftware.smackx.omemo; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPConnection; @@ -26,9 +26,9 @@ import org.jivesoftware.smack.packet.MessageBuilder; import org.jivesoftware.smackx.omemo.element.OmemoBundleElement; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; /** * Simple OMEMO message encryption integration test. @@ -85,8 +85,8 @@ public class MessageEncryptionIntegrationTest extends AbstractTwoUsersOmemoInteg b2 = bob.getOmemoService().getOmemoStoreBackend().packOmemoBundle(bob.getOwnDevice()); } - assertEquals("Alice sent bob a preKeyMessage, so her bundle MUST still be the same.", a1, a1_); - assertNotEquals("Bob just received a preKeyMessage from alice, so his bundle must have changed.", b1, b2); + assertEquals(a1, a1_, "Alice sent bob a preKeyMessage, so her bundle MUST still be the same."); + assertNotEquals(b1, b2, "Bob just received a preKeyMessage from alice, so his bundle must have changed."); // Message B -> A final String body3 = "The german words for 'leek' and 'wimp' are the same."; @@ -103,9 +103,9 @@ public class MessageEncryptionIntegrationTest extends AbstractTwoUsersOmemoInteg OmemoBundleElement a1__ = alice.getOmemoService().getOmemoStoreBackend().packOmemoBundle(alice.getOwnDevice()); OmemoBundleElement b2_ = bob.getOmemoService().getOmemoStoreBackend().packOmemoBundle(bob.getOwnDevice()); - assertEquals("Since alice initiated the session with bob, at no time he sent a preKeyMessage, " + - "so her bundle MUST still be the same.", a1_, a1__); - assertEquals("Bob changed his bundle earlier, but at this point his bundle must be equal to " + - "after the first change.", b2, b2_); + assertEquals(a1_, a1__, "Since alice initiated the session with bob, at no time he sent a preKeyMessage, " + + "so her bundle MUST still be the same."); + assertEquals(b2, b2_, "Bob changed his bundle earlier, but at this point his bundle must be equal to " + + "after the first change."); } } diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/OmemoMamDecryptionTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/OmemoMamDecryptionTest.java index ee39eec90..442643071 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/OmemoMamDecryptionTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/OmemoMamDecryptionTest.java @@ -16,7 +16,7 @@ */ package org.jivesoftware.smackx.omemo; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; import java.util.List; @@ -32,9 +32,9 @@ import org.jivesoftware.smackx.omemo.exceptions.CryptoFailedException; import org.jivesoftware.smackx.omemo.exceptions.UndecidedOmemoIdentityException; import org.jivesoftware.smackx.omemo.util.MessageOrOmemoMessage; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; /** * This test sends a message from Alice to Bob, while Bob has automatic decryption disabled. diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/OmemoManagerSetupHelper.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/OmemoManagerSetupHelper.java index f330880ad..467650409 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/OmemoManagerSetupHelper.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/OmemoManagerSetupHelper.java @@ -16,9 +16,9 @@ */ package org.jivesoftware.smackx.omemo; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.util.HashMap; @@ -40,7 +40,6 @@ import org.jivesoftware.smackx.pubsub.PubSubManager; import com.google.common.collect.Maps; - public class OmemoManagerSetupHelper { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/ReadOnlyDeviceIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/ReadOnlyDeviceIntegrationTest.java index bed2b014d..94c671962 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/ReadOnlyDeviceIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/ReadOnlyDeviceIntegrationTest.java @@ -16,9 +16,9 @@ */ package org.jivesoftware.smackx.omemo; -import static junit.framework.TestCase.assertEquals; -import static junit.framework.TestCase.assertFalse; -import static junit.framework.TestCase.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; @@ -29,9 +29,9 @@ import org.jivesoftware.smackx.omemo.exceptions.CryptoFailedException; import org.jivesoftware.smackx.omemo.exceptions.ReadOnlyDeviceException; import org.jivesoftware.smackx.omemo.exceptions.UndecidedOmemoIdentityException; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; public class ReadOnlyDeviceIntegrationTest extends AbstractTwoUsersOmemoIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/SessionRenegotiationIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/SessionRenegotiationIntegrationTest.java index 3b4391ba3..c4a649911 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/SessionRenegotiationIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/omemo/SessionRenegotiationIntegrationTest.java @@ -21,9 +21,9 @@ import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.MessageBuilder; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; public class SessionRenegotiationIntegrationTest extends AbstractTwoUsersOmemoIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox/OXSecretKeyBackupIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox/OXSecretKeyBackupIntegrationTest.java index e5e33f39b..6ee03ddaf 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox/OXSecretKeyBackupIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox/OXSecretKeyBackupIntegrationTest.java @@ -16,10 +16,10 @@ */ package org.jivesoftware.smackx.ox; -import static junit.framework.TestCase.assertEquals; -import static junit.framework.TestCase.assertNotNull; -import static junit.framework.TestCase.assertNull; -import static junit.framework.TestCase.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; import java.io.IOException; @@ -44,19 +44,16 @@ import org.jivesoftware.smackx.ox.exception.MissingUserIdOnKeyException; import org.jivesoftware.smackx.ox.exception.NoBackupFoundException; import org.jivesoftware.smackx.ox.store.definition.OpenPgpStore; import org.jivesoftware.smackx.ox.store.filebased.FileBasedOpenPgpStore; -import org.jivesoftware.smackx.ox.util.OpenPgpPubSubUtil; import org.jivesoftware.smackx.pubsub.PubSubException; import org.bouncycastle.openpgp.PGPException; import org.bouncycastle.openpgp.PGPPublicKeyRing; import org.bouncycastle.openpgp.PGPSecretKeyRing; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; +import org.igniterealtime.smack.inttest.annotations.AfterClass; +import org.igniterealtime.smack.inttest.annotations.BeforeClass; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.pgpainless.key.OpenPgpV4Fingerprint; import org.pgpainless.key.protection.UnprotectedKeysProtector; @@ -115,18 +112,6 @@ public class OXSecretKeyBackupIntegrationTest extends AbstractOpenPgpIntegration org.apache.commons.io.FileUtils.deleteDirectory(beforePath); } - @After - @Before - public void cleanUp() - throws XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException, - SmackException.NoResponseException { - OpenPgpPubSubUtil.deleteSecretKeyNode(alicePepManager); - - if (openPgpManager != null) { - openPgpManager.stopMetadataListener(); - } - } - @SmackIntegrationTest public void test() throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, NoSuchProviderException, IOException, InterruptedException, PubSubException.NotALeafNodeException, diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingIntegrationTest.java index 4ca076c2b..b6c5325b2 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/ox_im/OXInstantMessagingIntegrationTest.java @@ -16,8 +16,8 @@ */ package org.jivesoftware.smackx.ox_im; -import static junit.framework.TestCase.assertFalse; -import static junit.framework.TestCase.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; import java.io.IOException; @@ -34,15 +34,13 @@ import org.jivesoftware.smackx.ox.OpenPgpManager; import org.jivesoftware.smackx.ox.crypto.PainlessOpenPgpProvider; import org.jivesoftware.smackx.ox.element.SigncryptElement; import org.jivesoftware.smackx.ox.store.filebased.FileBasedOpenPgpStore; -import org.jivesoftware.smackx.ox.util.OpenPgpPubSubUtil; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; +import org.igniterealtime.smack.inttest.annotations.AfterClass; +import org.igniterealtime.smack.inttest.annotations.BeforeClass; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.BeforeClass; import org.pgpainless.decryption_verification.OpenPgpMetadata; import org.pgpainless.key.OpenPgpV4Fingerprint; import org.pgpainless.key.protection.UnprotectedKeysProtector; @@ -98,7 +96,6 @@ public class OXInstantMessagingIntegrationTest extends AbstractOpenPgpIntegratio @BeforeClass @AfterClass public static void deleteStore() throws IOException { - LOGGER.log(Level.INFO, "Deleting storage directories..."); org.apache.commons.io.FileUtils.deleteDirectory(aliceStorePath); org.apache.commons.io.FileUtils.deleteDirectory(bobStorePath); } @@ -165,26 +162,4 @@ public class OXInstantMessagingIntegrationTest extends AbstractOpenPgpIntegratio bobReceivedMessage.waitForResult(timeout); } - @After - public void deleteKeyMetadata() - throws XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException, - SmackException.NoResponseException { - OpenPgpPubSubUtil.deletePubkeysListNode(alicePepManager); - OpenPgpPubSubUtil.deletePubkeysListNode(bobPepManager); - - if (aliceFingerprint != null) { - OpenPgpPubSubUtil.deletePublicKeyNode(alicePepManager, aliceFingerprint); - } - if (bobFingerprint != null) { - OpenPgpPubSubUtil.deletePublicKeyNode(bobPepManager, bobFingerprint); - } - - if (aliceOpenPgp != null) { - aliceOpenPgp.stopMetadataListener(); - } - - if (bobOpenPgp != null) { - bobOpenPgp.stopMetadataListener(); - } - } } diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/ping/PingIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/ping/PingIntegrationTest.java index 6bb73b8c1..65c683093 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/ping/PingIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/ping/PingIntegrationTest.java @@ -16,7 +16,7 @@ */ package org.jivesoftware.smackx.ping; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.ArrayList; import java.util.Arrays; @@ -33,8 +33,8 @@ import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.XMPPConnection; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.jxmpp.jid.Jid; public class PingIntegrationTest extends AbstractSmackIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/pubsub/PubSubIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/pubsub/PubSubIntegrationTest.java index a0e0bff6c..61e66fa96 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/pubsub/PubSubIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/pubsub/PubSubIntegrationTest.java @@ -16,8 +16,8 @@ */ package org.jivesoftware.smackx.pubsub; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; import org.jivesoftware.smack.SmackConfiguration; @@ -28,9 +28,9 @@ import org.jivesoftware.smack.packet.StandardExtensionElement; import org.jivesoftware.smack.packet.StanzaError; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.TestNotPossibleException; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.jxmpp.jid.DomainBareJid; public class PubSubIntegrationTest extends AbstractSmackIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/usertune/UserTuneIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/usertune/UserTuneIntegrationTest.java index b8492529b..cae6c1d8d 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/usertune/UserTuneIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/usertune/UserTuneIntegrationTest.java @@ -26,11 +26,11 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smackx.usertune.element.UserTuneElement; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.AfterClass; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; import org.igniterealtime.smack.inttest.util.IntegrationTestRosterUtil; import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint; -import org.junit.AfterClass; import org.jxmpp.jid.BareJid; public class UserTuneIntegrationTest extends AbstractSmackIntegrationTest { diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/xdata/FormTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/xdata/FormTest.java index af49c251a..f4b2de824 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/xdata/FormTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/xdata/FormTest.java @@ -14,12 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.jivesoftware.smackx.xdata; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.StanzaCollector; @@ -31,8 +30,8 @@ import org.jivesoftware.smackx.xdata.FormField.Type; import org.jivesoftware.smackx.xdata.packet.DataForm; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; /** * Tests the DataForms extensions. @@ -109,23 +108,17 @@ public class FormTest extends AbstractSmackIntegrationTest { // Get the message with the form to fill out Message msg2 = collector2.nextResult(); - assertNotNull("Message not found", msg2); + assertNotNull(msg2, "Message not found"); // Retrieve the form to fill out Form formToRespond = Form.getFormFrom(msg2); assertNotNull(formToRespond); assertNotNull(formToRespond.getField("name")); assertNotNull(formToRespond.getField("description")); // Obtain the form to send with the replies - Form completedForm = formToRespond.createAnswerForm(); + final Form completedForm = formToRespond.createAnswerForm(); assertNotNull(completedForm.getField("hidden_var")); // Check that a field of type String does not accept booleans - try { - completedForm.setAnswer("name", true); - fail("A boolean value was set to a field of type String"); - } - catch (IllegalArgumentException e) { - // This exception is expected. - } + assertThrows(IllegalArgumentException.class, () -> completedForm.setAnswer("name", true)); completedForm.setAnswer("name", "Credit card number invalid"); completedForm.setAnswer( "description", @@ -146,18 +139,18 @@ public class FormTest extends AbstractSmackIntegrationTest { // Get the message with the completed form Message msg3 = collector.nextResult(); - assertNotNull("Message not found", msg3); + assertNotNull(msg3, "Message not found"); // Retrieve the completed form - completedForm = Form.getFormFrom(msg3); - assertNotNull(completedForm); - assertNotNull(completedForm.getField("name")); - assertNotNull(completedForm.getField("description")); + final Form completedForm2 = Form.getFormFrom(msg3); + assertNotNull(completedForm2); + assertNotNull(completedForm2.getField("name")); + assertNotNull(completedForm2.getField("description")); assertEquals( - completedForm.getField("name").getValues().get(0).toString(), + completedForm2.getField("name").getValues().get(0).toString(), "Credit card number invalid"); - assertNotNull(completedForm.getField("time")); - assertNotNull(completedForm.getField("age")); - assertEquals("The age is bad", "20", completedForm.getField("age").getValues().get(0).toString()); + assertNotNull(completedForm2.getField("time")); + assertNotNull(completedForm2.getField("age")); + assertEquals("20", completedForm2.getField("age").getValues().get(0).toString(), "The age is bad"); } finally { diff --git a/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/SmackIntegrationTestFrameWorkTest.java b/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/SmackIntegrationTestFrameWorkTest.java index 71ba75ac3..94e7ad3c8 100644 --- a/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/SmackIntegrationTestFrameWorkTest.java +++ b/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/SmackIntegrationTestFrameWorkTest.java @@ -1,6 +1,6 @@ /** * - * Copyright 2019 Florian Schmaus + * Copyright 2019-2020 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,15 +16,15 @@ */ package org.igniterealtime.smack.inttest; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.lang.reflect.Method; import java.util.List; import org.jivesoftware.smack.AbstractXMPPConnection; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class SmackIntegrationTestFrameWorkTest { diff --git a/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/SmackIntegrationTestXmppConnectionManagerTest.java b/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/SmackIntegrationTestXmppConnectionManagerTest.java index 1709f2a58..7a2de6097 100644 --- a/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/SmackIntegrationTestXmppConnectionManagerTest.java +++ b/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/SmackIntegrationTestXmppConnectionManagerTest.java @@ -16,7 +16,7 @@ */ package org.igniterealtime.smack.inttest; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.lang.reflect.InvocationTargetException; import java.security.KeyManagementException; @@ -26,7 +26,7 @@ import org.jivesoftware.smack.c2s.ModularXmppClientToServerConnection; import org.jivesoftware.smack.c2s.ModularXmppClientToServerConnectionConfiguration; import org.jivesoftware.smack.tcp.XmppTcpTransportModuleDescriptor; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.jxmpp.stringprep.XmppStringprepException; public class SmackIntegrationTestXmppConnectionManagerTest { diff --git a/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/unittest/SmackIntegrationTestFrameworkUnitTest.java b/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/unittest/SmackIntegrationTestFrameworkUnitTest.java index 9df166d51..e1398e73b 100644 --- a/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/unittest/SmackIntegrationTestFrameworkUnitTest.java +++ b/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/unittest/SmackIntegrationTestFrameworkUnitTest.java @@ -17,10 +17,10 @@ package org.igniterealtime.smack.inttest.unittest; import static org.igniterealtime.smack.inttest.SmackIntegrationTestUnitTestUtil.getFrameworkForUnitTest; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.lang.reflect.InvocationTargetException; @@ -38,25 +38,27 @@ import org.jivesoftware.smack.packet.StanzaError; import org.igniterealtime.smack.inttest.AbstractSmackIntegrationTest; import org.igniterealtime.smack.inttest.DummySmackIntegrationTestFramework; import org.igniterealtime.smack.inttest.FailedTest; -import org.igniterealtime.smack.inttest.SmackIntegrationTest; import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment; import org.igniterealtime.smack.inttest.SmackIntegrationTestFramework; import org.igniterealtime.smack.inttest.SmackIntegrationTestFramework.TestRunResult; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.igniterealtime.smack.inttest.annotations.AfterClass; +import org.igniterealtime.smack.inttest.annotations.BeforeClass; +import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; public class SmackIntegrationTestFrameworkUnitTest { private static boolean beforeClassInvoked; private static boolean afterClassInvoked; - @BeforeClass + @BeforeAll public static void prepareSinttestUnitTest() { SmackIntegrationTestFramework.SINTTEST_UNIT_TEST = true; } - @AfterClass + @AfterAll public static void disallowSinntestUnitTest() { SmackIntegrationTestFramework.SINTTEST_UNIT_TEST = false; } @@ -125,8 +127,8 @@ public class SmackIntegrationTestFrameworkUnitTest { DummySmackIntegrationTestFramework sinttest = getFrameworkForUnitTest(BeforeAfterClassTest.class); sinttest.run(); - assertTrue("A before class method should have been executed to this time", beforeClassInvoked); - assertTrue("A after class method should have been executed to this time", afterClassInvoked); + assertTrue(beforeClassInvoked, "A before class method should have been executed to this time"); + assertTrue(afterClassInvoked, "A after class method should have been executed to this time"); } public static class BeforeAfterClassTest extends AbstractSmackIntegrationTest { @@ -147,8 +149,8 @@ public class SmackIntegrationTestFrameworkUnitTest { @SmackIntegrationTest public void test() { - assertTrue("A before class method should have been executed to this time", beforeClassInvoked); - assertFalse("A after class method shouldn't have been executed to this time", afterClassInvoked); + assertTrue(beforeClassInvoked, "A before class method should have been executed to this time"); + assertFalse(afterClassInvoked, "A after class method shouldn't have been executed to this time"); } } } diff --git a/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/util/ResultSyncPointTest.java b/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/util/ResultSyncPointTest.java index 414a66fe7..589880204 100644 --- a/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/util/ResultSyncPointTest.java +++ b/smack-integration-test/src/test/java/org/igniterealtime/smack/inttest/util/ResultSyncPointTest.java @@ -1,6 +1,6 @@ /** * - * Copyright 2015 Florian Schmaus + * Copyright 2015-2020 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,14 +16,15 @@ */ package org.igniterealtime.smack.inttest.util; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; import org.jivesoftware.smack.util.Async; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ResultSyncPointTest { @@ -44,7 +45,7 @@ public class ResultSyncPointTest { assertEquals(result, receivedResult); } - @Test(expected = TestException.class) + @Test public void exceptionTestResultSyncPoint() throws Exception { final CyclicBarrier barrier = new CyclicBarrier(2); final ResultSyncPoint rsp = new ResultSyncPoint<>(); @@ -56,7 +57,7 @@ public class ResultSyncPointTest { } }); barrier.await(); - rsp.waitForResult(60 * 1000); + assertThrows(TestException.class, () -> rsp.waitForResult(60 * 1000)); } private static class TestException extends Exception { diff --git a/smack-repl/src/test/java/org/igniterealtime/smack/smackrepl/SmackReplTest.java b/smack-repl/src/test/java/org/igniterealtime/smack/smackrepl/SmackReplTest.java index 1e8227014..54250f100 100644 --- a/smack-repl/src/test/java/org/igniterealtime/smack/smackrepl/SmackReplTest.java +++ b/smack-repl/src/test/java/org/igniterealtime/smack/smackrepl/SmackReplTest.java @@ -1,6 +1,6 @@ /** * - * Copyright 2016 Florian Schmaus + * Copyright 2016-2020 Florian Schmaus * * This file is part of smack-repl. * @@ -20,7 +20,7 @@ */ package org.igniterealtime.smack.smackrepl; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class SmackReplTest { /** From 5d10afbb1156293cf44ccfffc9d3aab0ac5c2c5c Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 12 Apr 2020 22:14:05 +0200 Subject: [PATCH 26/30] resolver-dnsjava: change description The recommended resolver on Android is MiniDNS. --- smack-resolver-dnsjava/build.gradle | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/smack-resolver-dnsjava/build.gradle b/smack-resolver-dnsjava/build.gradle index 3649a2d58..d2bed2af6 100644 --- a/smack-resolver-dnsjava/build.gradle +++ b/smack-resolver-dnsjava/build.gradle @@ -1,7 +1,6 @@ description = """\ DNS SRV with dnsjava -Use dnsjava for DNS SRV lookups. For platforms that don't provide the -javax.naming API (e.g. Android).""" +Use dnsjava for DNS SRV lookups.""" dependencies { compile project(':smack-core') From 268425854ad443e26259b317d4a2024dcb2f0578 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 12 Apr 2020 22:14:26 +0200 Subject: [PATCH 27/30] resolver-dnsjava: bump to dnsjava 3.0 series --- smack-resolver-dnsjava/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smack-resolver-dnsjava/build.gradle b/smack-resolver-dnsjava/build.gradle index d2bed2af6..c718abba9 100644 --- a/smack-resolver-dnsjava/build.gradle +++ b/smack-resolver-dnsjava/build.gradle @@ -4,5 +4,5 @@ Use dnsjava for DNS SRV lookups.""" dependencies { compile project(':smack-core') - compile 'dnsjava:dnsjava:[2.1,2.2)' + compile 'dnsjava:dnsjava:[3.0.0,3.0.9999]' } From 2b41a67028b46d034e9c334776d9e0c2a029a7a3 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sun, 12 Apr 2020 22:17:12 +0200 Subject: [PATCH 28/30] sinttest: only append subdescriptions if there are any --- .../smack/inttest/SmackIntegrationTestFramework.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/SmackIntegrationTestFramework.java b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/SmackIntegrationTestFramework.java index e96ca0a7e..006aa61d8 100644 --- a/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/SmackIntegrationTestFramework.java +++ b/smack-integration-test/src/main/java/org/igniterealtime/smack/inttest/SmackIntegrationTestFramework.java @@ -746,8 +746,10 @@ public class SmackIntegrationTestFramework { .append(method.getName()) .append(" (") .append(testType.name()); - sb.append(", "); - StringUtils.appendTo(Arrays.asList(subdescriptons), sb); + if (subdescriptons != null) { + sb.append(", "); + StringUtils.appendTo(Arrays.asList(subdescriptons), sb); + } sb.append(')'); stringCache = sb.toString(); From 5d5fd1a9645f09f82e65caafdff38f7ae6a71232 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Mon, 13 Apr 2020 10:47:03 +0200 Subject: [PATCH 29/30] omemo: fix javadoc issue with OracleJDK8 CI runs fail using OracleJDK8 with /home/travis/build/igniterealtime/Smack/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoBundleElement_VAxolotl.java:30: warning - Tag @see: missing final '>': "XEP-0384: OMEMO Encryption (Example 3)
." Other JDKs do not report such an error. --- .../smackx/omemo/element/OmemoBundleElement_VAxolotl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoBundleElement_VAxolotl.java b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoBundleElement_VAxolotl.java index 736afa37d..bcf616111 100644 --- a/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoBundleElement_VAxolotl.java +++ b/smack-omemo/src/main/java/org/jivesoftware/smackx/omemo/element/OmemoBundleElement_VAxolotl.java @@ -23,7 +23,7 @@ import java.util.HashMap; /** * OMEMO device bundle as described by the protocol. * - * @see XEP-0384: OMEMO Encryption (Example 3). + * @see XEP-0384: OMEMO Encryption (Example 3) * * @author Paul Schaub */ From 32ae0d88268184efe105300cdef0aab0abf285fd Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Mon, 13 Apr 2020 10:52:58 +0200 Subject: [PATCH 30/30] geoloc: make global setter static --- .../java/org/jivesoftware/smackx/geoloc/GeoLocationManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationManager.java index 858d1a83a..3dbee6589 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/GeoLocationManager.java @@ -188,7 +188,7 @@ public final class GeoLocationManager extends Manager { pepManager.publish(GeoLocation.NAMESPACE, new PayloadItem(GeoLocation.EMPTY_GEO_LOCATION)); } - public void setGeoLocationNotificationsEnabledByDefault(boolean bool) { + public static void setGeoLocationNotificationsEnabledByDefault(boolean bool) { ENABLE_USER_LOCATION_NOTIFICATIONS_BY_DEFAULT = bool; }