diff --git a/documentation/extensions/index.md b/documentation/extensions/index.md
index 9ddd37c92..3bb98ce32 100644
--- a/documentation/extensions/index.md
+++ b/documentation/extensions/index.md
@@ -66,6 +66,7 @@ Smack Extensions and currently supported XEPs of smack-extensions
| Delayed Delivery | [XEP-0203](http://xmpp.org/extensions/xep-0203.html) | Extension for communicating the fact that an XML stanza has been delivered with a delay. |
| XMPP Over BOSH | [XEP-0206](http://xmpp.org/extensions/xep-0206.html) | Use Bidirectional-streams Over Synchronous HTTP (BOSH) to transport XMPP stanzas. |
| Attention | [XEP-0224](http://xmpp.org/extensions/xep-0224.html) | Getting attention of another user. |
+| Last Message Correction | [XEP-0308](http://xmpp.org/extensions/xep-0308.html) | Provides a method for indicating that a message is a correction of the last sent message. |
| [Group Chat Invitations](invitation.md) | n/a | Send invitations to other users to join a group chat room. |
| [Jive Properties](properties.md) | n/a | TODO |
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/MessageCorrectExtension.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/element/MessageCorrectExtension.java
similarity index 79%
rename from smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/MessageCorrectExtension.java
rename to smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/element/MessageCorrectExtension.java
index 30910d801..fe2f50adf 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/MessageCorrectExtension.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/element/MessageCorrectExtension.java
@@ -14,10 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.jivesoftware.smackx.message_correct;
+package org.jivesoftware.smackx.message_correct.element;
import org.jivesoftware.smack.packet.ExtensionElement;
import org.jivesoftware.smack.packet.Message;
+import org.jivesoftware.smack.util.StringUtils;
import org.jivesoftware.smack.util.XmlStringBuilder;
/**
@@ -51,35 +52,21 @@ public class MessageCorrectExtension implements ExtensionElement {
/**
* The id of the message to correct.
*/
- private String idInitialMessage;
+ private final String idInitialMessage;
public MessageCorrectExtension(String idInitialMessage) {
- this.setIdInitialMessage(idInitialMessage);
+ this.idInitialMessage = StringUtils.requireNotNullOrEmpty(idInitialMessage, "idInitialMessage must not be null");
}
public String getIdInitialMessage() {
return idInitialMessage;
}
- public void setIdInitialMessage(String idInitialMessage) {
- this.idInitialMessage = idInitialMessage;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.jivesoftware.smack.packet.PacketExtension#getElementName()
- */
@Override
public String getElementName() {
return ELEMENT;
}
- /*
- * (non-Javadoc)
- *
- * @see org.jivesoftware.smack.packet.PacketExtension#toXML()
- */
@Override
public XmlStringBuilder toXML() {
XmlStringBuilder xml = new XmlStringBuilder(this);
@@ -88,11 +75,6 @@ public class MessageCorrectExtension implements ExtensionElement {
return xml;
}
- /*
- * (non-Javadoc)
- *
- * @see org.jivesoftware.smack.packet.PacketExtension#getNamespace()
- */
@Override
public String getNamespace() {
return NAMESPACE;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/package-info.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/element/package-info.java
similarity index 81%
rename from smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/package-info.java
rename to smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/element/package-info.java
index 2070625f9..0a3ab347e 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/package-info.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/element/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Classes and Interfaces that implement Last Message Correction as defined in XEP-0308.
+ * XMPP stream elements for Last Message Correction as defined in XEP-0308.
*/
-package org.jivesoftware.smackx.message_correct;
+package org.jivesoftware.smackx.message_correct.element;
diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/MessageCorrectProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/MessageCorrectProvider.java
index 271305670..c0df1739c 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/MessageCorrectProvider.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/message_correct/provider/MessageCorrectProvider.java
@@ -20,7 +20,7 @@ import java.io.IOException;
import org.jivesoftware.smack.SmackException;
import org.jivesoftware.smack.provider.ExtensionElementProvider;
-import org.jivesoftware.smackx.message_correct.MessageCorrectExtension;
+import org.jivesoftware.smackx.message_correct.element.MessageCorrectExtension;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
diff --git a/smack-extensions/src/main/resources/org.jivesoftware.smack.extensions/extensions.providers b/smack-extensions/src/main/resources/org.jivesoftware.smack.extensions/extensions.providers
index df1330907..2257b04d0 100644
--- a/smack-extensions/src/main/resources/org.jivesoftware.smack.extensions/extensions.providers
+++ b/smack-extensions/src/main/resources/org.jivesoftware.smack.extensions/extensions.providers
@@ -507,4 +507,12 @@
http://jabber.org/protocol/geoloc
org.jivesoftware.smackx.geoloc.provider.GeoLocationProvider
+
+
+
+ replace
+ urn:xmpp:message-correct:0
+ org.jivesoftware.smackx.message_correct.provider.MessageCorrectProvider
+
+
diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/message_correct/MessageCorrectExtensionTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/message_correct/MessageCorrectExtensionTest.java
index 97216a285..1f224facb 100644
--- a/smack-extensions/src/test/java/org/jivesoftware/smackx/message_correct/MessageCorrectExtensionTest.java
+++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/message_correct/MessageCorrectExtensionTest.java
@@ -18,13 +18,12 @@ package org.jivesoftware.smackx.message_correct;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.util.PacketParserUtils;
+import org.jivesoftware.smackx.message_correct.element.MessageCorrectExtension;
import org.junit.Assert;
import org.junit.Test;
public class MessageCorrectExtensionTest {
- private Message initialMessage;
-
private final String idInitialMessage = "bad1";
private final String initialMessageXml = ""
@@ -38,7 +37,7 @@ public class MessageCorrectExtensionTest {
@Test
public void checkStanzas() throws Exception {
- initialMessage = (Message) PacketParserUtils.parseStanza(initialMessageXml);
+ Message initialMessage = (Message) PacketParserUtils.parseStanza(initialMessageXml);
MessageCorrectExtension messageCorrectExtension = new MessageCorrectExtension(idInitialMessage);
Assert.assertEquals(messageCorrectExtension.toXML().toString(), messageCorrectionXml);