diff --git a/documentation/extensions/consistent_colors.md b/documentation/extensions/consistent_colors.md
new file mode 100644
index 000000000..ea59716b2
--- /dev/null
+++ b/documentation/extensions/consistent_colors.md
@@ -0,0 +1,37 @@
+Consistent Colors
+=================
+
+[Back](index.md)
+
+Since XMPP can be used on multiple platforms at the same time,
+it might be a good idea to render given Strings like nicknames in the same
+color on all platforms to provide a consistent user experience.
+
+The utility class `ConsistentColor` allows the generation of colors to a given
+string following the specification of [XEP-0392](https://xmpp.org/extensions/xep-0392.html).
+
+##Usage
+To generate a consistent color for a given string, call
+```
+float[] rgb = ConsistentColor.RGBFrom(input);
+```
+The resulting float array contains values for RGB in the range of 0 to 1.
+
+##Color Deficiency Corrections
+Some users might suffer from color vision deficiencies. To compensate those deficiencies,
+the API allows for color correction. The color correction mode is a static value, which can be changed at any time.
+
+To correct colors for users with red-green color deficiency use the following code:
+```
+ConsistentColor.activateRedGreenBlindnessCorrection();
+```
+
+For color correction for users with blue-blindness, call
+```
+ConsistentColor.activateBlueBlindnessCorrection();
+```
+
+To deactivate color vision deficiency correction, call
+```
+ConsistenColor.deactivateDeficiencyCorrection();
+```
\ No newline at end of file
diff --git a/documentation/extensions/index.md b/documentation/extensions/index.md
index 6b8fca9d9..4a40168e8 100644
--- a/documentation/extensions/index.md
+++ b/documentation/extensions/index.md
@@ -96,6 +96,7 @@ Experimental Smack Extensions and currently supported XEPs of smack-experimental
| HTTP File Upload | [XEP-0363](http://xmpp.org/extensions/xep-0363.html) | Protocol to request permissions to upload a file to an HTTP server and get a shareable URL. |
| [Multi-User Chat Light](muclight.md) | [XEP-xxxx](http://mongooseim.readthedocs.io/en/latest/open-extensions/xeps/xep-muc-light.html) | Multi-User Chats for mobile XMPP applications and specific enviroment. |
| [OMEMO Multi End Message and Object Encryption](omemo.md) | [XEP-XXXX](https://conversations.im/omemo/xep-omemo.html) | Encrypt messages using OMEMO encryption (currently only with smack-omemo-signal -> GPLv3). |
+| [Consistent Color Generation](consistent_colors.md) | [XEP-0392](http://xmpp.org/extensions/xep-0392.html) | Generate consistent colors for identifiers like usernames to provide a consistent user experience. |
| Google GCM JSON payload | n/a | Semantically the same as XEP-0335: JSON Containers |
diff --git a/documentation/processing.md b/documentation/processing.md
index 5688590e1..d97f7f2e4 100644
--- a/documentation/processing.md
+++ b/documentation/processing.md
@@ -49,7 +49,7 @@ filters includes:
* `StanzaIdFilter` -- filters for packets with a particular packet ID.
* `ThreadFilter` -- filters for message packets with a particular thread ID.
* `ToContainsFilter` -- filters for packets that are sent to a particular address.
- * `FromContainsFilter` -- filters for packets that are sent to a particular address.
+ * `FromContainsFilter` -- filters for packets that are sent from a particular address.
* `StanzaExtensionFilter` -- filters for packets that have a particular packet extension.
* `AndFilter` -- implements the logical AND operation over two filters.
* `OrFilter` -- implements the logical OR operation over two filters.
diff --git a/smack-android-extensions/src/main/java/org/jivesoftware/smackx/ping/android/package-info.java b/smack-android-extensions/src/main/java/org/jivesoftware/smackx/ping/android/package-info.java
index 9db7284cf..3bdff8b53 100644
--- a/smack-android-extensions/src/main/java/org/jivesoftware/smackx/ping/android/package-info.java
+++ b/smack-android-extensions/src/main/java/org/jivesoftware/smackx/ping/android/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Android classes for XEP-0199: XMPP Ping.
*/
package org.jivesoftware.smackx.ping.android;
diff --git a/smack-android/src/main/java/org/jivesoftware/smackx/debugger/android/package-info.java b/smack-android/src/main/java/org/jivesoftware/smackx/debugger/android/package-info.java
index 8156cce8c..9b581a6ff 100644
--- a/smack-android/src/main/java/org/jivesoftware/smackx/debugger/android/package-info.java
+++ b/smack-android/src/main/java/org/jivesoftware/smackx/debugger/android/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Android classes for debugging purposes.
*/
package org.jivesoftware.smackx.debugger.android;
diff --git a/smack-android/src/main/java/org/jivesoftware/smackx/debugger/package-info.java b/smack-android/src/main/java/org/jivesoftware/smackx/debugger/package-info.java
index fd29184c8..a6e02ba25 100644
--- a/smack-android/src/main/java/org/jivesoftware/smackx/debugger/package-info.java
+++ b/smack-android/src/main/java/org/jivesoftware/smackx/debugger/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smack optional Debuggers.
*/
package org.jivesoftware.smackx.debugger;
diff --git a/smack-core/src/main/java/org/jivesoftware/smack/compression/package-info.java b/smack-core/src/main/java/org/jivesoftware/smack/compression/package-info.java
index d0332b1b8..cbfa6c101 100644
--- a/smack-core/src/main/java/org/jivesoftware/smack/compression/package-info.java
+++ b/smack-core/src/main/java/org/jivesoftware/smack/compression/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smack classes for compression.
*/
package org.jivesoftware.smack.compression;
diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/Provider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/Provider.java
index 225ff3079..87250c50f 100644
--- a/smack-core/src/main/java/org/jivesoftware/smack/provider/Provider.java
+++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/Provider.java
@@ -1,6 +1,6 @@
/**
*
- * Copyright © 2014 Florian Schmaus
+ * Copyright © 2014-2018 Florian Schmaus
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,6 +22,17 @@ import org.jivesoftware.smack.util.ParserUtils;
import org.xmlpull.v1.XmlPullParser;
+/**
+ * Smack provider are the parsers used to deserialize raw XMPP into the according Java {@link Element}s.
+ *
+ * At any time when {@link #parse(XmlPullParser, int)} is invoked any type of exception can be thrown. If the parsed
+ * element does not follow the specification, for example by putting a string where only integers are allowed, then a
+ * {@link org.jivesoftware.smack.SmackException} should be thrown.
+ *
+ *
+ * @author Florian Schmaus
+ * @param the type of the resulting element.
+ */
public abstract class Provider {
public final E parse(XmlPullParser parser) throws Exception {
diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/package-info.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/package-info.java
index 930fcda8f..581a4fa76 100644
--- a/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/package-info.java
+++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Smack's API for XEP-280: Message Carbons.
+ * Smack's API for XEP-0280: Message Carbons.
*/
package org.jivesoftware.smackx.carbons;
diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/packet/package-info.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/packet/package-info.java
index f497b5d42..fbb8f6468 100644
--- a/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/packet/package-info.java
+++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Stanzas and extension elements for XEP-280: Message Carbons.
+ * Stanzas and extension elements for XEP-0280: Message Carbons.
*/
package org.jivesoftware.smackx.carbons.packet;
diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/provider/package-info.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/provider/package-info.java
index 3288764a8..608274230 100644
--- a/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/provider/package-info.java
+++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/carbons/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Provider for XEP-280: Message Carbons.
+ * Provider for XEP-0280: Message Carbons.
*/
package org.jivesoftware.smackx.carbons.provider;
diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/colors/ConsistentColor.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/colors/ConsistentColor.java
new file mode 100644
index 000000000..aec73b8d0
--- /dev/null
+++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/colors/ConsistentColor.java
@@ -0,0 +1,218 @@
+/**
+ *
+ * Copyright © 2018 Paul Schaub
+ *
+ * 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.colors;
+
+import org.jivesoftware.smack.util.Objects;
+import org.jivesoftware.smack.util.SHA1;
+
+public class ConsistentColor {
+
+ private static final ConsistentColorSettings DEFAULT_SETTINGS = new ConsistentColorSettings();
+
+ // See XEP-0392 §13.1 Constants for YCbCr (BT.601)
+ private static final double KR = 0.299;
+ private static final double KG = 0.587;
+ private static final double KB = 0.114;
+
+ // See XEP-0392 §5.4 CbCr to RGB
+ private static final double Y = 0.732;
+
+ public enum Deficiency {
+ /**
+ * Do not apply measurements for color vision deficiency correction.
+ */
+ none,
+
+ /**
+ * Activate color correction for users suffering from red-green-blindness.
+ */
+ redGreenBlindness,
+
+ /**
+ * Activate color correction for users suffering from blue-blindness.
+ */
+ blueBlindness
+ }
+
+ /**
+ * Generate an angle in the CbCr plane from the input string.
+ * @see §5.1: Angle generation
+ *
+ * @param input input string
+ * @return output angle
+ */
+ private static double createAngle(CharSequence input) {
+ byte[] h = SHA1.bytes(input.toString());
+ double v = u(h[0]) + (256 * u(h[1]));
+ double d = v / 65536;
+ return d * 2 * Math.PI;
+ }
+
+ /**
+ * Apply correction for color vision deficiencies to an angle in the CbCr plane.
+ * @see §5.2: Corrections for Color Vision Deficiencies
+ *
+ * @param angle angle in CbCr plane
+ * @param deficiency type of vision deficiency
+ * @return corrected angle in CbCr plane
+ */
+ private static double applyColorDeficiencyCorrection(double angle, Deficiency deficiency) {
+ switch (deficiency) {
+ case none:
+ break;
+ case redGreenBlindness:
+ angle %= Math.PI;
+ break;
+ case blueBlindness:
+ angle -= Math.PI / 2;
+ angle %= Math.PI;
+ angle += Math.PI / 2;
+ break;
+ }
+ return angle;
+ }
+
+ /**
+ * Convert an angle in the CbCr plane to values cb,cr in the YCbCr color space.
+ * @see §5.3: CbCr generation
+ *
+ * @param angle angel in CbCr plane.
+ * @return value pair cb,cr
+ */
+ private static double[] angleToCbCr(double angle) {
+ double cb = Math.cos(angle);
+ double cr = Math.sin(angle);
+
+ double acb = Math.abs(cb);
+ double acr = Math.abs(cr);
+ double factor;
+ if (acr > acb) {
+ factor = 0.5 / acr;
+ } else {
+ factor = 0.5 / acb;
+ }
+
+ cb *= factor;
+ cr *= factor;
+
+ return new double[] {cb, cr};
+ }
+
+ /**
+ * Convert a value pair cb,cr in the YCbCr color space to RGB.
+ * @see §5.4: CbCr to RGB
+ *
+ * @param cbcr value pair from the YCbCr color space
+ * @return RGB value triple (R,G,B in [0,1])
+ */
+ private static float[] CbCrToRGB(double[] cbcr, double y) {
+ double cb = cbcr[0];
+ double cr = cbcr[1];
+
+ double r = 2 * (1 - KR) * cr + y;
+ double b = 2 * (1 - KB) * cb + y;
+ double g = (y - KR * r - KB * b) / KG;
+
+ // Clip values to [0,1]
+ r = clip(r);
+ g = clip(g);
+ b = clip(b);
+
+ return new float[] {(float) r, (float) g, (float) b};
+ }
+
+ /**
+ * Clip values to stay in range(0,1).
+ *
+ * @param value input
+ * @return input clipped to stay in boundaries from 0 to 1.
+ */
+ private static double clip(double value) {
+ double out = value;
+
+ if (value < 0) {
+ out = 0;
+ }
+
+ if (value > 1) {
+ out = 1;
+ }
+
+ return out;
+ }
+
+ /**
+ * Treat a signed java byte as unsigned to get its numerical value.
+ *
+ * @param b signed java byte
+ * @return integer value of its unsigned representation
+ */
+ private static int u(byte b) {
+ // Get unsigned value of signed byte as an integer.
+ return b & 0xFF;
+ }
+
+ /**
+ * Return the consistent RGB color value of the input.
+ * This method uses the default {@link ConsistentColorSettings}.
+ *
+ * @param input input string (for example username)
+ * @return consistent color of that username as RGB values in range [0,1].
+ * @see #RGBFrom(CharSequence, ConsistentColorSettings)
+ */
+ public static float[] RGBFrom(CharSequence input) {
+ return RGBFrom(input, DEFAULT_SETTINGS);
+ }
+
+ /**
+ * Return the consistent RGB color value for the input.
+ * This method respects the color vision deficiency mode set by the user.
+ *
+ * @param input input string (for example username)
+ * @param settings the settings for consistent color creation.
+ * @return consistent color of that username as RGB values in range [0,1].
+ */
+ public static float[] RGBFrom(CharSequence input, ConsistentColorSettings settings) {
+ double angle = createAngle(input);
+ double correctedAngle = applyColorDeficiencyCorrection(angle, settings.getDeficiency());
+ double[] CbCr = angleToCbCr(correctedAngle);
+ float[] rgb = CbCrToRGB(CbCr, Y);
+ return rgb;
+ }
+
+ public static class ConsistentColorSettings {
+
+ private final Deficiency deficiency;
+
+ public ConsistentColorSettings() {
+ this(Deficiency.none);
+ }
+
+ public ConsistentColorSettings(Deficiency deficiency) {
+ this.deficiency = Objects.requireNonNull(deficiency, "Deficiency must be given");
+ }
+
+ /**
+ * Return the deficiency setting.
+ *
+ * @return deficiency setting.
+ */
+ public Deficiency getDeficiency() {
+ return deficiency;
+ }
+ }
+}
diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/colors/package-info.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/colors/package-info.java
new file mode 100644
index 000000000..62a57ce2c
--- /dev/null
+++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/colors/package-info.java
@@ -0,0 +1,21 @@
+/**
+ *
+ * Copyright © 2018 Paul Schaub
+ *
+ * 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.
+ */
+
+/**
+ * Smack's API for XEP-0392: Consistent Color Generation.
+ */
+package org.jivesoftware.smackx.colors;
diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/csi/package-info.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/csi/package-info.java
index 067263ee5..afd90ab81 100644
--- a/smack-experimental/src/main/java/org/jivesoftware/smackx/csi/package-info.java
+++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/csi/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Smack's API for XEP-352: Client State Indication.
+ * Smack's API for XEP-0352: Client State Indication.
*/
package org.jivesoftware.smackx.csi;
diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/csi/packet/package-info.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/csi/packet/package-info.java
index 934a86845..18f7c6bb9 100644
--- a/smack-experimental/src/main/java/org/jivesoftware/smackx/csi/packet/package-info.java
+++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/csi/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Plain stream elements for XEP-352: Client State Indication.
+ * Plain stream elements for XEP-0352: Client State Indication.
*/
package org.jivesoftware.smackx.csi.packet;
diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/csi/provider/package-info.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/csi/provider/package-info.java
index 52dee86be..ed119a840 100644
--- a/smack-experimental/src/main/java/org/jivesoftware/smackx/csi/provider/package-info.java
+++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/csi/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Provider for XEP-352: Client State Indication.
+ * Provider for XEP-0352: Client State Indication.
*/
package org.jivesoftware.smackx.csi.provider;
diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/package-info.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/package-info.java
index cda888049..1f5940a4d 100644
--- a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/package-info.java
+++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Smack's API for XEP-332: HTTP over XMPP transport.
+ * Smack's API for XEP-0332: HTTP over XMPP transport.
*/
package org.jivesoftware.smackx.hoxt;
diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/packet/package-info.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/packet/package-info.java
index 10cd303b3..13d242dd0 100644
--- a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/packet/package-info.java
+++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Stanzas and extension elements for XEP-332: HTTP over XMPP transport.
+ * Stanzas and extension elements for XEP-0332: HTTP over XMPP transport.
*/
package org.jivesoftware.smackx.hoxt.packet;
diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/package-info.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/package-info.java
index 91495b763..38572ad4e 100644
--- a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/package-info.java
+++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Providers for XEP-332: HTTP over XMPP transport.
+ * Providers for XEP-0332: HTTP over XMPP transport.
*/
package org.jivesoftware.smackx.hoxt.provider;
diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/json/packet/package-info.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/json/packet/package-info.java
index 7833b2139..e9e1e9f5a 100644
--- a/smack-experimental/src/main/java/org/jivesoftware/smackx/json/packet/package-info.java
+++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/json/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Extension elements for XEP-295: JSON Encodings for XMPP.
+ * Extension elements for XEP-0295: JSON Encodings for XMPP.
*/
package org.jivesoftware.smackx.json.packet;
diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/json/provider/package-info.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/json/provider/package-info.java
index e6189937d..5e5257e80 100644
--- a/smack-experimental/src/main/java/org/jivesoftware/smackx/json/provider/package-info.java
+++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/json/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Providers for XEP-295: JSON Encodings for XMPP.
+ * Providers for XEP-0295: JSON Encodings for XMPP.
*/
package org.jivesoftware.smackx.json.provider;
diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/colors/ConsistentColorsTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/colors/ConsistentColorsTest.java
new file mode 100644
index 000000000..debdfa0e7
--- /dev/null
+++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/colors/ConsistentColorsTest.java
@@ -0,0 +1,152 @@
+/**
+ *
+ * Copyright © 2018 Paul Schaub
+ *
+ * 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.colors;
+
+import static junit.framework.TestCase.assertEquals;
+import static junit.framework.TestCase.assertTrue;
+
+import org.jivesoftware.smack.test.util.SmackTestSuite;
+
+import org.jivesoftware.smackx.colors.ConsistentColor.Deficiency;
+
+import org.junit.Test;
+
+public class ConsistentColorsTest extends SmackTestSuite {
+
+ // Margin of error we allow due to floating point arithmetic
+ private static final float EPS = 0.001f;
+
+ private static final ConsistentColor.ConsistentColorSettings noDeficiency = new ConsistentColor.ConsistentColorSettings(Deficiency.none);
+ private static final ConsistentColor.ConsistentColorSettings redGreenDeficiency = new ConsistentColor.ConsistentColorSettings(Deficiency.redGreenBlindness);
+ private static final ConsistentColor.ConsistentColorSettings blueBlindnessDeficiency = new ConsistentColor.ConsistentColorSettings(Deficiency.blueBlindness);
+
+ /*
+ Below tests check the test vectors from XEP-0392 §13.2.
+ */
+
+ @Test
+ public void romeoNoDeficiencyTest() {
+ String value = "Romeo";
+ float[] expected = new float[] {0.281f, 0.790f, 1.000f};
+ float[] actual = ConsistentColor.RGBFrom(value, noDeficiency);
+ assertRGBEquals(expected, actual, EPS);
+ }
+
+ @Test
+ public void romeoRedGreenBlindnessTest() {
+ String value = "Romeo";
+ float[] expected = new float[] {1.000f, 0.674f, 0.000f};
+ float[] actual = ConsistentColor.RGBFrom(value, redGreenDeficiency);
+ assertRGBEquals(expected, actual, EPS);
+ }
+
+ @Test
+ public void romeoBlueBlindnessTest() {
+ String value = "Romeo";
+ float[] expected = new float[] {1.000f, 0.674f, 0.000f};
+ float[] actual = ConsistentColor.RGBFrom(value, blueBlindnessDeficiency);
+ assertRGBEquals(expected, actual, EPS);
+ }
+
+ @Test
+ public void julietNoDeficiencyTest() {
+ String value = "juliet@capulet.lit";
+ float[] expected = new float[] {0.337f, 1.000f, 0.000f};
+ float[] actual = ConsistentColor.RGBFrom(value, noDeficiency);
+ assertRGBEquals(expected, actual, EPS);
+ }
+
+ @Test
+ public void julietRedGreenBlindnessTest() {
+ String value = "juliet@capulet.lit";
+ float[] expected = new float[] {1.000f, 0.359f, 1.000f};
+ float[] actual = ConsistentColor.RGBFrom(value, redGreenDeficiency);
+ assertRGBEquals(expected, actual, EPS);
+ }
+
+ @Test
+ public void julietBlueBlindnessTest() {
+ String value = "juliet@capulet.lit";
+ float[] expected = new float[] {0.337f, 1.000f, 0.000f};
+ float[] actual = ConsistentColor.RGBFrom(value, blueBlindnessDeficiency);
+ assertRGBEquals(expected, actual, EPS);
+ }
+
+ @Test
+ public void emojiNoDeficiencyTest() {
+ String value = "\uD83D\uDE3A";
+ float[] expected = new float[] {0.347f, 0.756f, 1.000f};
+ float[] actual = ConsistentColor.RGBFrom(value, noDeficiency);
+ assertRGBEquals(expected, actual, EPS);
+ }
+
+ @Test
+ public void emojiRedGreenBlindnessTest() {
+ String value = "\uD83D\uDE3A";
+ float[] expected = new float[] {1.000f, 0.708f, 0.000f};
+ float[] actual = ConsistentColor.RGBFrom(value, redGreenDeficiency);
+ assertRGBEquals(expected, actual, EPS);
+ }
+
+ @Test
+ public void emojiBlueBlindnessTest() {
+ String value = "\uD83D\uDE3A";
+ float[] expected = new float[] {1.000f, 0.708f, 0.000f};
+ float[] actual = ConsistentColor.RGBFrom(value, blueBlindnessDeficiency);
+ assertRGBEquals(expected, actual, EPS);
+ }
+
+ @Test
+ public void councilNoDeficiencyTest() {
+ String value = "council";
+ float[] expected = new float[] {0.732f, 0.560f, 1.000f};
+ float[] actual = ConsistentColor.RGBFrom(value, noDeficiency);
+ assertRGBEquals(expected, actual, EPS);
+ }
+
+ @Test
+ public void councilRedGreenBlindnessTest() {
+ String value = "council";
+ float[] expected = new float[] {0.732f, 0.904f, 0.000f};
+ float[] actual = ConsistentColor.RGBFrom(value, redGreenDeficiency);
+ assertRGBEquals(expected, actual, EPS);
+ }
+
+ @Test
+ public void councilBlueBlindnessTest() {
+ String value = "council";
+ float[] expected = new float[] {0.732f, 0.904f, 0.000f};
+ float[] actual = ConsistentColor.RGBFrom(value, blueBlindnessDeficiency);
+ assertRGBEquals(expected, actual, EPS);
+ }
+
+ /**
+ * Check, whether the values of two float arrays of size 3 are pairwise equal with an allowed error of eps.
+ *
+ * @param expected expected values
+ * @param actual actual values
+ * @param eps allowed error
+ */
+ private static void assertRGBEquals(float[] expected, float[] actual, float eps) {
+ assertEquals(3, expected.length);
+ assertEquals(3, actual.length);
+
+ for (int i = 0; i < actual.length; i++) {
+ assertTrue(Math.abs(expected[i] - actual[i]) < eps);
+ }
+ }
+}
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smack/extensions/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smack/extensions/package-info.java
index 1237c97e3..50d555d43 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smack/extensions/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smack/extensions/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks initializer for extensions.
*/
package org.jivesoftware.smack.extensions;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/address/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/address/package-info.java
index f9c0b1e56..2a1318ff5 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/address/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/address/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Smack's API for XEP-33: Extended Stanza Addressing.
+ * Smack's API for XEP-0033: Extended Stanza Addressing.
*/
package org.jivesoftware.smackx.address;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/address/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/address/packet/package-info.java
index f90f49356..c1c61f32a 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/address/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/address/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Stanzas and extension elements for XEP-33: Extended Stanzas Addressing.
+ * Stanzas and extension elements for XEP-0033: Extended Stanzas Addressing.
*/
package org.jivesoftware.smackx.address.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/address/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/address/provider/package-info.java
index 70a2e9f1d..8b461f973 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/address/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/address/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Providers for XEP-33: Extended Stanza Addressing.
+ * Providers for XEP-0033: Extended Stanza Addressing.
*/
package org.jivesoftware.smackx.address.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/admin/ServiceAdministrationManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/admin/ServiceAdministrationManager.java
index e133bc805..ebc17dd29 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/admin/ServiceAdministrationManager.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/admin/ServiceAdministrationManager.java
@@ -85,7 +85,7 @@ public class ServiceAdministrationManager extends Manager {
FormField passwordVerifyField = answerForm.getField("password-verify");
passwordVerifyField.addValue(password);
- command.next(answerForm);
+ command.execute(answerForm);
assert (command.isCompleted());
}
@@ -113,7 +113,7 @@ public class ServiceAdministrationManager extends Manager {
FormField accountJids = answerForm.getField("accountjids");
accountJids.addValues(JidUtil.toStringList(jidsToDelete));
- command.next(answerForm);
+ command.execute(answerForm);
assert (command.isCompleted());
}
}
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/package-info.java
index c48fe252f..eeece3621 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Smack's API for XEP-79: Advanced Message Processing.
+ * Smack's API for XEP-0079: Advanced Message Processing.
*/
package org.jivesoftware.smackx.amp;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/packet/package-info.java
index 9ce68f0f7..c4d3b88f2 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Stanzas and extension elements for XEP-79: Advanced Message Processing.
+ * Stanzas and extension elements for XEP-0079: Advanced Message Processing.
*/
package org.jivesoftware.smackx.amp.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/provider/package-info.java
index 733ab2922..6725d155a 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/amp/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Providers for XEP-79: Advanced Message Processing.
+ * Providers for XEP-0079: Advanced Message Processing.
*/
package org.jivesoftware.smackx.amp.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/package-info.java
index 8c4795415..4457bb922 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Smack's API for XEP-224: Attention.
+ * Smack's API for XEP-0224: Attention.
*/
package org.jivesoftware.smackx.attention;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/package-info.java
index 61ab8fbc0..b015b31a0 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/attention/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Stanzas and extension elements for XEP-224: Attention.
+ * Stanzas and extension elements for XEP-0224: Attention.
*/
package org.jivesoftware.smackx.attention.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/package-info.java
index 1e03acf76..08a072b5c 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bob/package-info.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
/**
- * Classes and interfaces of Bits of Binary.
+ * Classes and interfaces of XEP-0231: Bits of Binary.
*
* @author Fernando Ramirez
* @see XEP-0231: Bits of
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/package-info.java
index ca0170f0b..2498e4279 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bookmarks/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Smack's API for XEP-48: Bookmarks.
+ * Smack's API for XEP-0048: Bookmarks.
*/
package org.jivesoftware.smackx.bookmarks;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/package-info.java
index 76c811e14..1a9b1c1d8 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Smack's API for XEP-47: In-Band Bytestreams.
+ * Smack's API for XEP-0047: In-Band Bytestreams.
*/
package org.jivesoftware.smackx.bytestreams.ibb;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/packet/package-info.java
index 66e14aa6c..16ad5c337 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Stanzas and extension elements for XEP-47: In-Band Bytestreams.
+ * Stanzas and extension elements for XEP-0047: In-Band Bytestreams.
*/
package org.jivesoftware.smackx.bytestreams.ibb.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/package-info.java
index 60a5e57ec..5c529ec9e 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Providers for XEP-47: In-Band Bytestreams.
+ * Providers for XEP-0047: In-Band Bytestreams.
*/
package org.jivesoftware.smackx.bytestreams.ibb.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/package-info.java
index 2bb04769d..e379dd48e 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Smack's API for XEP-65: SOCKS5 Bytestreams.
+ * Smack's API for XEP-0065: SOCKS5 Bytestreams, as well as XEP-0047: In-Band Bytestreams.
*/
package org.jivesoftware.smackx.bytestreams;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/package-info.java
index 0a41e6bb6..718872aff 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Smack's API for XEP-65: SOCKS5 Bytestreams.
+ * Smack's API for XEP-0065: SOCKS5 Bytestreams.
*/
package org.jivesoftware.smackx.bytestreams.socks5;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/packet/package-info.java
index 8484383b4..beb41ce9e 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Stanzas and extension elements for XEP-65: SOCKS5 Bytestreams.
+ * Stanzas and extension elements for XEP-0065: SOCKS5 Bytestreams.
*/
package org.jivesoftware.smackx.bytestreams.socks5.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/provider/package-info.java
index 17e7cbdb0..783ac6ae1 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Providers for XEP-65: SOCKS5 Bytestreams.
+ * Providers for XEP-0065: SOCKS5 Bytestreams.
*/
package org.jivesoftware.smackx.bytestreams.socks5.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/cache/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/cache/package-info.java
index 38e375ca8..972a9f6cc 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/cache/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/cache/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Cache classes for XEP-0115: Entity Capabilities.
*/
package org.jivesoftware.smackx.caps.cache;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/package-info.java
index 4524ad5e9..1c6e66aea 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0115: Entity Capabilities.
*/
package org.jivesoftware.smackx.caps;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/packet/package-info.java
index 0f7dd1f6d..5e958174d 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0115: Entity Capabilities.
*/
package org.jivesoftware.smackx.caps.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/package-info.java
index bfbf35337..e0d962818 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0115: Entity Capabilities.
*/
package org.jivesoftware.smackx.caps.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/package-info.java
index 5b2d476aa..049af49ff 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0085: Chat State Notifications.
*/
package org.jivesoftware.smackx.chatstates;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/packet/package-info.java
index 739ce9029..c72b9363c 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0085: Chat State Notifications.
*/
package org.jivesoftware.smackx.chatstates.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/provider/package-info.java
index 81c818453..b4e68bf6c 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/chatstates/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Provider classes for Chat State Notifications (XEP-0085).
+ * Provider classes for XEP-0085: Chat State Notifications.
*/
package org.jivesoftware.smackx.chatstates.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/package-info.java
index 51307e3b2..75e6bd7d3 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0050: Ad-Hoc Commands.
*/
package org.jivesoftware.smackx.commands;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/packet/package-info.java
index e031f651c..db1aa9ab1 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0050: Ad-Hoc Commands.
*/
package org.jivesoftware.smackx.commands.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/provider/package-info.java
index a3bc6c4aa..1ee46e325 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/commands/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0050: Ad-Hoc Commands.
*/
package org.jivesoftware.smackx.commands.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/filter/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/filter/package-info.java
index f9db39ee1..65844c224 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/filter/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/filter/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * StanzaFilter classes for XEP-0203: Delayed Delivery, as well as XEP-0091: Legacy Delayed Delivery.
*/
package org.jivesoftware.smackx.delay.filter;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/package-info.java
index 4630ba37b..f74397b88 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0203: Delayed Delivery, as well as XEP-0091: Legacy Delayed Delivery.
*/
package org.jivesoftware.smackx.delay;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/packet/package-info.java
index 4249162b2..8b5282c8a 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0203: Delayed Delivery, as well as XEP-0091: Legacy Delayed Delivery.
*/
package org.jivesoftware.smackx.delay.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/provider/package-info.java
index d1e399543..49a194ffa 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/delay/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0203: Delayed Delivery, as well as XEP-0091: Legacy Delayed Delivery.
*/
package org.jivesoftware.smackx.delay.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/ServiceDiscoveryManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/ServiceDiscoveryManager.java
index 0b861eaf1..e4dc18f3c 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/ServiceDiscoveryManager.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/ServiceDiscoveryManager.java
@@ -1,6 +1,6 @@
/**
*
- * Copyright 2003-2007 Jive Software.
+ * Copyright 2003-2007 Jive Software, 2018 Florian Schmaus.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -43,6 +43,7 @@ import org.jivesoftware.smack.packet.IQ;
import org.jivesoftware.smack.packet.Stanza;
import org.jivesoftware.smack.packet.XMPPError;
import org.jivesoftware.smack.util.Objects;
+import org.jivesoftware.smack.util.StringUtils;
import org.jivesoftware.smackx.caps.EntityCapsManager;
import org.jivesoftware.smackx.disco.packet.DiscoverInfo;
@@ -66,6 +67,7 @@ import org.jxmpp.util.cache.ExpirationCache;
*
*
* @author Gaston Dombiak
+ * @author Florian Schmaus
*/
public final class ServiceDiscoveryManager extends Manager {
@@ -875,20 +877,26 @@ public final class ServiceDiscoveryManager extends Manager {
public DomainBareJid findService(String feature, boolean useCache, String category, String type)
throws NoResponseException, XMPPErrorException, NotConnectedException,
InterruptedException {
- List services = findServicesDiscoverInfo(feature, true, useCache);
+ boolean noCategory = StringUtils.isNullOrEmpty(category);
+ boolean noType = StringUtils.isNullOrEmpty(type);
+ if (noType != noCategory) {
+ throw new IllegalArgumentException("Must specify either both, category and type, or none");
+ }
+
+ List services = findServicesDiscoverInfo(feature, false, useCache);
if (services.isEmpty()) {
return null;
}
- DiscoverInfo info = services.get(0);
- if (category != null && type != null) {
- if (!info.hasIdentity(category, type)) {
- return null;
+
+ if (!noCategory && !noType) {
+ for (DiscoverInfo info : services) {
+ if (info.hasIdentity(category, type)) {
+ return info.getFrom().asDomainBareJid();
+ }
}
}
- else if (category != null || type != null) {
- throw new IllegalArgumentException("Must specify either both, category and type, or none");
- }
- return info.getFrom().asDomainBareJid();
+
+ return services.get(0).getFrom().asDomainBareJid();
}
public DomainBareJid findService(String feature, boolean useCache) throws NoResponseException,
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/package-info.java
index 0aa4cee77..00bf2ec0a 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0030: Service Discovery.
*/
package org.jivesoftware.smackx.disco;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/packet/package-info.java
index 960f07e18..b175ae463 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0030: Service Discovery.
*/
package org.jivesoftware.smackx.disco.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/package-info.java
index e4b88df25..c2ac1ff48 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/disco/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0030: Service Discovery.
*/
package org.jivesoftware.smackx.disco.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/package-info.java
index 8d52af604..b31a88347 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * File Transfers via XEP-0095: Stream Initialization.
*/
package org.jivesoftware.smackx.filetransfer;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/package-info.java
index ef2295172..06aeb9c0a 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0297: Stanza Forwarding.
*/
package org.jivesoftware.smackx.forward;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/packet/package-info.java
index 9a2b14fef..a4675fc67 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0297: Stanza Forwarding.
*/
package org.jivesoftware.smackx.forward.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/provider/package-info.java
index dec015fdb..f00bb93f6 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/forward/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0297: Stanza Forwarding.
*/
package org.jivesoftware.smackx.forward.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/package-info.java
index 9ad53c2c3..6f37dbec0 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0080: User Location.
*/
package org.jivesoftware.smackx.geoloc;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/packet/package-info.java
index c86f84faa..f7edcecae 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0080: User Location.
*/
package org.jivesoftware.smackx.geoloc.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/provider/package-info.java
index ac07726df..9b84d1e3d 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/geoloc/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0080: User Location.
*/
package org.jivesoftware.smackx.geoloc.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/package-info.java
index 4e4499bcc..51beec6b3 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0012: Last Activity.
*/
package org.jivesoftware.smackx.iqlast;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/packet/package-info.java
index f0f136a3c..a8c93b62a 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqlast/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0012: Last Activity.
*/
package org.jivesoftware.smackx.iqlast.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/package-info.java
index 436b03162..58227edac 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0049: Private XML Storage.
*/
package org.jivesoftware.smackx.iqprivate;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/packet/package-info.java
index 529549b6a..17a1c0b2f 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0049: Private XML Storage.
*/
package org.jivesoftware.smackx.iqprivate.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/provider/package-info.java
index e9346f4ca..6b6b46abb 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqprivate/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0049: Private XML Storage.
*/
package org.jivesoftware.smackx.iqprivate.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/package-info.java
index 923a098e1..080c03c9f 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0077: In-Band Registration.
*/
package org.jivesoftware.smackx.iqregister;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/packet/package-info.java
index 25e189216..2492c2c50 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0077: In-Band Registration.
*/
package org.jivesoftware.smackx.iqregister.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/package-info.java
index 0688eaefd..b03fd6a52 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqregister/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0077: In-Band Registration.
*/
package org.jivesoftware.smackx.iqregister.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/package-info.java
index a864122f0..03f33d1fd 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0092: Software Version.
*/
package org.jivesoftware.smackx.iqversion;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/packet/package-info.java
index c96b9c7fa..4a82db59f 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0092: Software Version.
*/
package org.jivesoftware.smackx.iqversion.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/provider/package-info.java
index c3f6020ec..ffebf0e1b 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/iqversion/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0092: Software Version.
*/
package org.jivesoftware.smackx.iqversion.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jiveproperties/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jiveproperties/package-info.java
index 2887946aa..50cc7a927 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jiveproperties/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jiveproperties/package-info.java
@@ -16,6 +16,7 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation for attaching arbitrary properties to packets according to
+ * https://docs.jivesoftware.com/smack/latest/documentation/properties.html.
*/
package org.jivesoftware.smackx.jiveproperties;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jiveproperties/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jiveproperties/packet/package-info.java
index c0779f31d..144997cd1 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jiveproperties/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jiveproperties/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes.
*/
package org.jivesoftware.smackx.jiveproperties.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/jiveproperties/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/jiveproperties/provider/package-info.java
index e5e98261a..3a96deecd 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/jiveproperties/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/jiveproperties/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes.
*/
package org.jivesoftware.smackx.jiveproperties.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/package-info.java
index 225a76d12..6d32305ab 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/package-info.java
@@ -14,4 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+/**
+ * XMPP stream element providers for Last Message Correction as defined in XEP-0308.
+ */
package org.jivesoftware.smackx.message_correct.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/package-info.java
index d7218640e..9861e03c4 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Classes and Interfaces that implement Multi-User Chat (MUC) as defined in XEP-45.
+ * Classes and Interfaces that implement Multi-User Chat (MUC) as defined in XEP-0045.
*/
package org.jivesoftware.smackx.muc;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/package-info.java
index 91b470c5f..d64426712 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0045: Multi-User Chat.
*/
package org.jivesoftware.smackx.muc.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/package-info.java
index 1a55577a9..933224c3f 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0045: Multi-User Chat.
*/
package org.jivesoftware.smackx.muc.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/package-info.java
index 4612a7f8b..1bff3a2dc 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0172: User Nickname.
*/
package org.jivesoftware.smackx.nick;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/packet/package-info.java
index 9cbb6dd68..20086fdde 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/nick/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0172: User Nickname.
*/
package org.jivesoftware.smackx.nick.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/package-info.java
index 96bf174a6..96f3a883a 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0013: Flexible Offline Message Retrieval.
*/
package org.jivesoftware.smackx.offline;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/package-info.java
index bf5b5aa78..07a337109 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/offline/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0013: Flexible Offline Message Retrieval.
*/
package org.jivesoftware.smackx.offline.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/package-info.java
index 01e4ee051..b7b3f868f 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Integration tests.
*/
package org.jivesoftware.smackx;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pep/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pep/package-info.java
index 97c8ed74d..8b5a66864 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pep/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pep/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation XEP-0163: Personal Eventing Protocol.
*/
package org.jivesoftware.smackx.pep;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/package-info.java
index 92e6a80e4..49e29068b 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0199: XMPP Ping.
*/
package org.jivesoftware.smackx.ping;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/packet/package-info.java
index 02d1e5a26..910b79c09 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0199: XMPP Ping.
*/
package org.jivesoftware.smackx.ping.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/provider/package-info.java
index 32502d020..7a394eb1c 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0199: XMPP Ping.
*/
package org.jivesoftware.smackx.ping.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/filter/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/filter/package-info.java
index c0686af98..146123bd4 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/filter/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/filter/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Filters for XEP-0016: Privacy Lists.
*/
package org.jivesoftware.smackx.privacy.filter;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/package-info.java
index 4f6fb475f..5e55cb94c 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0016: Privacy Lists.
*/
package org.jivesoftware.smackx.privacy;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/packet/package-info.java
index 6b5b44948..95a125821 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0016: Privacy Lists.
*/
package org.jivesoftware.smackx.privacy.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/provider/package-info.java
index 00845b8f1..3a61a02ef 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/privacy/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0016: Privacy Lists.
*/
package org.jivesoftware.smackx.privacy.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/package-info.java
index ae9bd4777..18f3ea8c5 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Smack's API for XEP-60: Publish-Subscribe.
+ * Smack's API for XEP-0060: Publish-Subscribe.
*/
package org.jivesoftware.smackx.pubsub;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/package-info.java
index 0dbb81966..c6c72660d 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * XEP-0184: Message Delivery Receipts.
*/
package org.jivesoftware.smackx.receipts;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/package-info.java
index a1cf9a464..053f0cb08 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * XEP-0059: Result Set Management.
*/
package org.jivesoftware.smackx.rsm;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/packet/package-info.java
index 1d40ab28e..31d5e9873 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes of XEP-0059: Result Set Management.
*/
package org.jivesoftware.smackx.rsm.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/provider/package-info.java
index 1544de9a5..353b2d03d 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/rsm/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Providers for XEP-0059: Result Set Management.
*/
package org.jivesoftware.smackx.rsm.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/search/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/search/package-info.java
index 042c2ec6c..085c54be4 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/search/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/search/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0055: Jabber Search.
*/
package org.jivesoftware.smackx.search;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/package-info.java
index ea042fe6e..d45f14dcb 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Implementation of shared groups. Will only work with Wildfire!
*/
package org.jivesoftware.smackx.sharedgroups;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/packet/package-info.java
index ed413c396..2c0c34008 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/sharedgroups/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes of shared groups.
*/
package org.jivesoftware.smackx.sharedgroups.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/package-info.java
index 43c2e352d..fb6c462c4 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0131: Stanza Headers and Internet Metadata.
*/
package org.jivesoftware.smackx.shim;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/packet/package-info.java
index aab9002d4..2eaa8723f 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0131: Stanza Headers and Internet Metadata.
*/
package org.jivesoftware.smackx.shim.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/provider/package-info.java
index dbf303457..30de36bb5 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/shim/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes of XEP-0131: Stanza Headers and Internet Metadata.
*/
package org.jivesoftware.smackx.shim.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/si/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/si/package-info.java
index 188747f7a..6853b4509 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/si/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/si/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0095: Stream Initiation.
*/
package org.jivesoftware.smackx.si;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/si/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/si/packet/package-info.java
index 1999006c6..da6d40610 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/si/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/si/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0095: Stream Initiation.
*/
package org.jivesoftware.smackx.si.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/si/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/si/provider/package-info.java
index afd8a34dd..b4fc1b917 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/si/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/si/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0095: Stream Initiation.
*/
package org.jivesoftware.smackx.si.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/time/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/time/package-info.java
index adbd1a9ef..a58ba8b5c 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/time/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/time/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0202: Entity Time.
*/
package org.jivesoftware.smackx.time;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/time/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/time/packet/package-info.java
index 388a72643..aea56184a 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/time/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/time/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes of XEP-0202: Entity Time.
*/
package org.jivesoftware.smackx.time.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/time/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/time/provider/package-info.java
index 1e1d03665..0bb4a3850 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/time/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/time/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes of XEP-0202: Entity Time.
*/
package org.jivesoftware.smackx.time.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/package-info.java
index 9715b1268..6e86ce57b 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0054: vcard-temp.
*/
package org.jivesoftware.smackx.vcardtemp;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/packet/package-info.java
index 8ddf6c0a3..8ccd2494a 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0054: vcard-temp.
*/
package org.jivesoftware.smackx.vcardtemp.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/package-info.java
index 2db3900e9..e8f4f8415 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0054: vcard-temp.
*/
package org.jivesoftware.smackx.vcardtemp.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/package-info.java
index 12c9a7ff9..1c6665572 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0004: Data Forms.
*/
package org.jivesoftware.smackx.xdata;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/packet/package-info.java
index 2399b5453..141554c9b 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0004: Data Forms.
*/
package org.jivesoftware.smackx.xdata.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/provider/package-info.java
index 8f5049657..97b82a224 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdata/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0004: Data Forms.
*/
package org.jivesoftware.smackx.xdata.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/package-info.java
index cef89929c..bd6be54bd 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0141: Data Forms Layout.
*/
package org.jivesoftware.smackx.xdatalayout;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/packet/package-info.java
index b68819803..c6282a494 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0141: Data Forms Layout.
*/
package org.jivesoftware.smackx.xdatalayout.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/provider/package-info.java
index 18a935e40..0297bfcac 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatalayout/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0141: Data Forms Layout.
*/
package org.jivesoftware.smackx.xdatalayout.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/package-info.java
index d6e6200ce..ccfca4a32 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0122: Data Forms Validation.
*/
package org.jivesoftware.smackx.xdatavalidation;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/package-info.java
index 887f15b7a..f9e52b73b 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0122: Data Forms Validation.
*/
package org.jivesoftware.smackx.xdatavalidation.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/package-info.java
index fc673aef8..e1a37225e 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xdatavalidation/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0122: Data Forms Validation.
*/
package org.jivesoftware.smackx.xdatavalidation.provider;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/package-info.java
index 86986ac31..99c3f7b08 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks implementation of XEP-0071: XHTML-IM.
*/
package org.jivesoftware.smackx.xhtmlim;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/packet/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/packet/package-info.java
index 6c27815b4..5539eff48 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/packet/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for XEP-0071: XHTML-IM.
*/
package org.jivesoftware.smackx.xhtmlim.packet;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/provider/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/provider/package-info.java
index 67cdd3ecd..d368bb23e 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/provider/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/xhtmlim/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for XEP-0071: XHTML-IM.
*/
package org.jivesoftware.smackx.xhtmlim.provider;
diff --git a/smack-im/src/main/java/org/jivesoftware/smack/chat/package-info.java b/smack-im/src/main/java/org/jivesoftware/smack/chat/package-info.java
index 1c1af838d..6061532c3 100644
--- a/smack-im/src/main/java/org/jivesoftware/smack/chat/package-info.java
+++ b/smack-im/src/main/java/org/jivesoftware/smack/chat/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks legacy API for 1:1 chats.
*/
package org.jivesoftware.smack.chat;
diff --git a/smack-im/src/main/java/org/jivesoftware/smack/im/package-info.java b/smack-im/src/main/java/org/jivesoftware/smack/im/package-info.java
index 84123ebdd..2185b2053 100644
--- a/smack-im/src/main/java/org/jivesoftware/smack/im/package-info.java
+++ b/smack-im/src/main/java/org/jivesoftware/smack/im/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Internal classes for smack-im.
*/
package org.jivesoftware.smack.im;
diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/package-info.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/package-info.java
index 306e1128d..cfc810e09 100644
--- a/smack-im/src/main/java/org/jivesoftware/smack/roster/package-info.java
+++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks API for Rosters.
*/
package org.jivesoftware.smack.roster;
diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/packet/package-info.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/packet/package-info.java
index aa1582f6e..5ff0b19bd 100644
--- a/smack-im/src/main/java/org/jivesoftware/smack/roster/packet/package-info.java
+++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Element classes for Rosters.
*/
package org.jivesoftware.smack.roster.packet;
diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/package-info.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/package-info.java
index 338f94980..14849d967 100644
--- a/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/package-info.java
+++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Provider classes for Rosters.
*/
package org.jivesoftware.smack.roster.provider;
diff --git a/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/package-info.java b/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/package-info.java
index 22e47665b..e3de0397d 100644
--- a/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/package-info.java
+++ b/smack-im/src/main/java/org/jivesoftware/smack/roster/rosterstore/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Persistence classes for Rosters.
*/
package org.jivesoftware.smack.roster.rosterstore;
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 8b389f335..412abe1e4 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
@@ -46,6 +46,7 @@ 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.util.SimpleResultSyncPoint;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -131,7 +132,7 @@ public class EntityCapsTest extends AbstractSmackIntegrationTest {
*
*/
@SmackIntegrationTest
- public void testPreventDiscoInfo() throws XMPPException, NoResponseException, NotConnectedException, InterruptedException {
+ public void testPreventDiscoInfo() throws Exception {
final String dummyFeature = getNewDummyFeature();
conOne.addPacketSendingListener(new StanzaListener() {
@@ -142,9 +143,27 @@ public class EntityCapsTest extends AbstractSmackIntegrationTest {
}, new AndFilter(new StanzaTypeFilter(DiscoverInfo.class), IQTypeFilter.GET));
+ final SimpleResultSyncPoint presenceReceivedSyncPoint = new SimpleResultSyncPoint();
+ final StanzaListener presenceListener = new StanzaListener() {
+ @Override
+ public void processStanza(Stanza packet) {
+ presenceReceivedSyncPoint.signal();
+ }
+ };
+
+ // Add a stanzaListener to listen for incoming presence
+ conOne.addAsyncStanzaListener(presenceListener, PresenceTypeFilter.AVAILABLE);
+
// add a bogus feature so that con1 ver won't match con0's
sdmTwo.addFeature(dummyFeature);
+ try {
+ // wait for the dummy feature to get sent via presence
+ presenceReceivedSyncPoint.waitForResult(timeout);
+ } finally {
+ conOne.removeAsyncStanzaListener(presenceListener);
+ }
+
dropCapsCache();
// discover that
DiscoverInfo info = sdmOne.discoverInfo(conTwo.getUser());
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 91546842b..403535d9f 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
@@ -1,6 +1,6 @@
/**
*
- * Copyright 2015 Florian Schmaus
+ * Copyright 2015-2018 Florian Schmaus
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -52,8 +52,15 @@ public class PubSubIntegrationTest extends AbstractSmackIntegrationTest {
public void simplePubSubNodeTest() throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
final String nodename = "sinttest-simple-nodename-" + testRunId;
final String itemId = "sintest-simple-itemid-" + testRunId;
- LeafNode leafNode = pubSubManagerOne.createNode(nodename);
+ ConfigureForm defaultConfiguration = pubSubManagerOne.getDefaultConfiguration();
+ ConfigureForm config = new ConfigureForm(defaultConfiguration.createAnswerForm());
+ // Configure the node as "Notification-Only Node", which in turn means that
+ // items do not need payload, to prevent payload-required error responses when
+ // publishing the item.
+ config.setDeliverPayloads(false);
+ Node node = pubSubManagerOne.createNode(nodename, config);
try {
+ LeafNode leafNode = (LeafNode) node;
leafNode.publish(new Item(itemId));
List- items = leafNode.getItems();
assertEquals(1, items.size());
diff --git a/smack-java7/src/main/java/org/jivesoftware/smack/java7/package-info.java b/smack-java7/src/main/java/org/jivesoftware/smack/java7/package-info.java
index 22e71eb20..cc0201cd0 100644
--- a/smack-java7/src/main/java/org/jivesoftware/smack/java7/package-info.java
+++ b/smack-java7/src/main/java/org/jivesoftware/smack/java7/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Java7 related classes.
*/
package org.jivesoftware.smack.java7;
diff --git a/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/java7/package-info.java b/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/java7/package-info.java
index e7d8bbaee..881ea961b 100644
--- a/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/java7/package-info.java
+++ b/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/java7/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Java7 related classes for Smacks Base64 implementation.
*/
package org.jivesoftware.smack.util.stringencoder.java7;
diff --git a/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/package-info.java b/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/package-info.java
index 8609a8018..bf6407aba 100644
--- a/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/package-info.java
+++ b/smack-java7/src/main/java/org/jivesoftware/smack/util/stringencoder/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Java7 related classes for Smacks StringEncoder.
*/
package org.jivesoftware.smack.util.stringencoder;
diff --git a/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/dns/dnsjava/package-info.java b/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/dns/dnsjava/package-info.java
index dbb112a6b..f2b9ebdc1 100644
--- a/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/dns/dnsjava/package-info.java
+++ b/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/dns/dnsjava/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * A Java DNS resolver implementation for Smack.
*/
package org.jivesoftware.smack.util.dns.dnsjava;
diff --git a/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/dns/package-info.java b/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/dns/package-info.java
index 6c37a108c..4461efc1e 100644
--- a/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/dns/package-info.java
+++ b/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/dns/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks DNS resolvers.
*/
package org.jivesoftware.smack.util.dns;
diff --git a/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/package-info.java b/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/package-info.java
index 9ad9b1354..41218a37d 100644
--- a/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/package-info.java
+++ b/smack-resolver-dnsjava/src/main/java/org/jivesoftware/smack/util/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smack util classes.
*/
package org.jivesoftware.smack.util;
diff --git a/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/package-info.java b/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/package-info.java
index 304f12765..2d4eb60b4 100644
--- a/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/package-info.java
+++ b/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * A javax DNS resolver implementation for Smack.
*/
package org.jivesoftware.smack.util.dns.javax;
diff --git a/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/package-info.java b/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/package-info.java
index 6c37a108c..4461efc1e 100644
--- a/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/package-info.java
+++ b/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks DNS resolvers.
*/
package org.jivesoftware.smack.util.dns;
diff --git a/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/package-info.java b/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/package-info.java
index 9ad9b1354..41218a37d 100644
--- a/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/package-info.java
+++ b/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smack util classes.
*/
package org.jivesoftware.smack.util;
diff --git a/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/package-info.java b/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/package-info.java
index 6cc36fc16..7ea895064 100644
--- a/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/package-info.java
+++ b/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/minidns/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * A MiniDNS resolver implementation for Smack.
*/
package org.jivesoftware.smack.util.dns.minidns;
diff --git a/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/package-info.java b/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/package-info.java
index 6c37a108c..4461efc1e 100644
--- a/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/package-info.java
+++ b/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/dns/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smacks DNS resolvers.
*/
package org.jivesoftware.smack.util.dns;
diff --git a/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/package-info.java b/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/package-info.java
index 9ad9b1354..41218a37d 100644
--- a/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/package-info.java
+++ b/smack-resolver-minidns/src/main/java/org/jivesoftware/smack/util/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * Smack util classes.
*/
package org.jivesoftware.smack.util;
diff --git a/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/package-info.java b/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/package-info.java
index eefb2c4d6..aa0462a72 100644
--- a/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/package-info.java
+++ b/smack-sasl-javax/src/main/java/org/jivesoftware/smack/sasl/javax/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * A javax SASL implementation for Smack.
*/
package org.jivesoftware.smack.sasl.javax;
diff --git a/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/package-info.java b/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/package-info.java
index 0e53eb49e..fd5c96d91 100644
--- a/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/package-info.java
+++ b/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * A SASL implementation for Smack.
*/
package org.jivesoftware.smack.sasl.provided;
diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/sm/package-info.java b/smack-tcp/src/main/java/org/jivesoftware/smack/sm/package-info.java
index bc703f228..25369e59c 100644
--- a/smack-tcp/src/main/java/org/jivesoftware/smack/sm/package-info.java
+++ b/smack-tcp/src/main/java/org/jivesoftware/smack/sm/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Smack's implementation of XEP-198: Stream Management.
+ * Smack's implementation of XEP-0198: Stream Management.
*/
package org.jivesoftware.smack.sm;
diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/sm/packet/package-info.java b/smack-tcp/src/main/java/org/jivesoftware/smack/sm/packet/package-info.java
index eb9e6f5ff..1c0009131 100644
--- a/smack-tcp/src/main/java/org/jivesoftware/smack/sm/packet/package-info.java
+++ b/smack-tcp/src/main/java/org/jivesoftware/smack/sm/packet/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Plain stream elements for XEP-198: Stream Management.
+ * Plain stream elements for XEP-0198: Stream Management.
*/
package org.jivesoftware.smack.sm.packet;
diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/package-info.java b/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/package-info.java
index 48e212580..a700200bb 100644
--- a/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/package-info.java
+++ b/smack-tcp/src/main/java/org/jivesoftware/smack/sm/provider/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Providers for XEP-198: Stream Management.
+ * Providers for XEP-0198: Stream Management.
*/
package org.jivesoftware.smack.sm.provider;
diff --git a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/package-info.java b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/package-info.java
index ef6cb1870..9d2ac84f5 100644
--- a/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/package-info.java
+++ b/smack-tcp/src/main/java/org/jivesoftware/smack/tcp/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * TODO describe me.
+ * TCP-IP related classes for Smack.
*/
package org.jivesoftware.smack.tcp;