summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/isode/stroke/elements/DiscoInfo.java3
-rw-r--r--src/com/isode/stroke/muc/MUCImpl.java8
-rw-r--r--src/com/isode/stroke/queries/requests/EnableCarbonsRequest.java22
-rw-r--r--src/com/isode/stroke/serializer/payloadserializers/CarbonsEnableSerializer.java4
4 files changed, 31 insertions, 6 deletions
diff --git a/src/com/isode/stroke/elements/DiscoInfo.java b/src/com/isode/stroke/elements/DiscoInfo.java
index 78e43ff..83a36b4 100644
--- a/src/com/isode/stroke/elements/DiscoInfo.java
+++ b/src/com/isode/stroke/elements/DiscoInfo.java
@@ -3,7 +3,7 @@
* All rights reserved.
*/
/*
- * Copyright (c) 2010-2016, Isode Limited, London, England.
+ * Copyright (c) 2010-2017, Isode Limited, London, England.
* All rights reserved.
*/
package com.isode.stroke.elements;
@@ -34,6 +34,7 @@ public class DiscoInfo extends Payload {
public static final String Bytestream = "http://jabber.org/protocol/bytestreams";
public static final String MessageDeliveryReceiptsFeature = "urn:xmpp:receipts";
public static final String WhiteboardFeature = "http://swift.im/whiteboard";
+ public static final String MessageCarbonsFeature = "urn:xmpp:carbons:2";
public static class Identity implements Comparable<Identity> {
private final String name_;
diff --git a/src/com/isode/stroke/muc/MUCImpl.java b/src/com/isode/stroke/muc/MUCImpl.java
index 26be309..2a45926 100644
--- a/src/com/isode/stroke/muc/MUCImpl.java
+++ b/src/com/isode/stroke/muc/MUCImpl.java
@@ -106,7 +106,9 @@ public class MUCImpl extends MUC {
/**
* Change the affiliation of the given Jabber ID.
* It must be called with the real JID, not the room JID.
- * @param jid real jabber ID, not null
+ * @param jid real jabber ID, not null. NOTE: This method does not
+ strip any resource from the JID, as expected by XEP-0045. Callers
+ wanting to be strictly XEP-0045 conformant should pass in a bare JID
* @param affiliation new affiliation, not null
*/
@Override
@@ -114,7 +116,9 @@ public class MUCImpl extends MUC {
final MUCAdminPayload mucPayload = new MUCAdminPayload();
MUCItem item = new MUCItem();
item.affiliation = affiliation;
- item.realJID = jid.toBare();
+ // According to XEP-0045 the JID should be bare, but this isn't being done here because
+ // to provide support for applications where we do want to set affilations on a per resource basis
+ item.realJID = jid;
mucPayload.addItem(item);
GenericRequest<MUCAdminPayload> request = new GenericRequest<MUCAdminPayload>(
IQ.Type.Set, getJID(), mucPayload, iqRouter_);
diff --git a/src/com/isode/stroke/queries/requests/EnableCarbonsRequest.java b/src/com/isode/stroke/queries/requests/EnableCarbonsRequest.java
new file mode 100644
index 0000000..cbc8109
--- /dev/null
+++ b/src/com/isode/stroke/queries/requests/EnableCarbonsRequest.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2016-2017, Isode Limited, London, England.
+ * All rights reserved.
+ */
+package com.isode.stroke.queries.requests;
+
+import com.isode.stroke.elements.CarbonsEnable;
+import com.isode.stroke.elements.IQ;
+import com.isode.stroke.jid.JID;
+import com.isode.stroke.queries.GenericRequest;
+import com.isode.stroke.queries.IQRouter;
+
+public class EnableCarbonsRequest extends GenericRequest<CarbonsEnable> {
+
+ public EnableCarbonsRequest(IQRouter router) {
+ super(IQ.Type.Set, new JID(), new CarbonsEnable(), router);
+ }
+
+ public static EnableCarbonsRequest create(IQRouter router) {
+ return new EnableCarbonsRequest(router);
+ }
+} \ No newline at end of file
diff --git a/src/com/isode/stroke/serializer/payloadserializers/CarbonsEnableSerializer.java b/src/com/isode/stroke/serializer/payloadserializers/CarbonsEnableSerializer.java
index f88e461..10c483a 100644
--- a/src/com/isode/stroke/serializer/payloadserializers/CarbonsEnableSerializer.java
+++ b/src/com/isode/stroke/serializer/payloadserializers/CarbonsEnableSerializer.java
@@ -11,11 +11,9 @@
package com.isode.stroke.serializer.payloadserializers;
+import com.isode.stroke.elements.CarbonsEnable;
import com.isode.stroke.serializer.GenericPayloadSerializer;
-import com.isode.stroke.serializer.xml.XMLTextNode;
import com.isode.stroke.serializer.xml.XMLElement;
-import com.isode.stroke.elements.CarbonsEnable;
-import com.isode.stroke.base.NotNull;
public class CarbonsEnableSerializer extends GenericPayloadSerializer<CarbonsEnable> {