1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2025-12-16 10:01:08 +01:00

Merge branch '4.1'

Conflicts:
	smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java
	smack-core/src/main/java/org/jivesoftware/smack/PacketCollector.java
	smack-core/src/main/java/org/jivesoftware/smack/PacketListener.java
	smack-core/src/main/java/org/jivesoftware/smack/XMPPConnection.java
	smack-core/src/main/java/org/jivesoftware/smack/debugger/SmackDebugger.java
	smack-core/src/main/java/org/jivesoftware/smack/packet/Packet.java
	smack-core/src/main/java/org/jivesoftware/smack/util/XmlStringBuilder.java
	smack-core/src/test/java/org/jivesoftware/smack/ThreadedDummyConnection.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/address/provider/MultipleAddressesProvider.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/DataListener.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FaultTolerantNegotiator.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/IBBTransferNegotiator.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/StreamNegotiator.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/LeafNode.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/Node.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/PubSubManager.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/pubsub/packet/PubSub.java
	smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/VCardManager.java
	smack-extensions/src/test/java/org/jivesoftware/smackx/receipts/DeliveryReceiptTest.java
	smack-im/src/main/java/org/jivesoftware/smack/chat/ChatManager.java
	smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSession.java
	smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/provider/JingleProvider.java
	smack-legacy/src/main/java/org/jivesoftware/smackx/workgroup/packet/UserID.java
	smack-legacy/src/main/java/org/jivesoftware/smackx/xroster/provider/RosterExchangeProvider.java
	smack-tcp/src/main/java/org/jivesoftware/smack/tcp/XMPPTCPConnection.java
	version.gradle
This commit is contained in:
Florian Schmaus 2015-03-04 22:42:36 +01:00
commit 701aa7d9c4
298 changed files with 2402 additions and 1562 deletions

View file

@ -19,8 +19,8 @@ package org.jivesoftware.smackx.receipts;
import java.util.List;
import java.util.Map;
import org.jivesoftware.smack.packet.Stanza;
import org.jivesoftware.smack.packet.PacketExtension;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.ExtensionElement;
import org.jivesoftware.smack.provider.EmbeddedExtensionProvider;
import org.jivesoftware.smack.util.XmlStringBuilder;
@ -30,7 +30,7 @@ import org.jivesoftware.smack.util.XmlStringBuilder;
*
* @author Georg Lukas
*/
public class DeliveryReceipt implements PacketExtension
public class DeliveryReceipt implements ExtensionElement
{
public static final String NAMESPACE = "urn:xmpp:receipts";
public static final String ELEMENT = "received";
@ -76,21 +76,21 @@ public class DeliveryReceipt implements PacketExtension
*
* @param p the packet
* @return the {@link DeliveryReceipt} extension or {@code null}
* @deprecated use {@link #from(Stanza)} instead
* @deprecated use {@link #from(Message)} instead
*/
@Deprecated
public static DeliveryReceipt getFrom(Stanza p) {
public static DeliveryReceipt getFrom(Message p) {
return from(p);
}
/**
* Get the {@link DeliveryReceipt} extension of the packet, if any.
* Get the {@link DeliveryReceipt} extension of the message, if any.
*
* @param packet the packet
* @param message the message.
* @return the {@link DeliveryReceipt} extension or {@code null}
*/
public static DeliveryReceipt from(Stanza packet) {
return packet.getExtension(ELEMENT, NAMESPACE);
public static DeliveryReceipt from(Message message) {
return message.getExtension(ELEMENT, NAMESPACE);
}
/**
@ -101,7 +101,7 @@ public class DeliveryReceipt implements PacketExtension
@Override
protected DeliveryReceipt createReturnExtension(String currentElement, String currentNamespace,
Map<String, String> attributeMap, List<? extends PacketExtension> content)
Map<String, String> attributeMap, List<? extends ExtensionElement> content)
{
return new DeliveryReceipt(attributeMap.get("id"));
}

View file

@ -26,14 +26,14 @@ import org.jivesoftware.smack.SmackException.NotConnectedException;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.ConnectionCreationListener;
import org.jivesoftware.smack.Manager;
import org.jivesoftware.smack.PacketListener;
import org.jivesoftware.smack.StanzaListener;
import org.jivesoftware.smack.XMPPConnectionRegistry;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.filter.AndFilter;
import org.jivesoftware.smack.filter.MessageTypeFilter;
import org.jivesoftware.smack.filter.PacketExtensionFilter;
import org.jivesoftware.smack.filter.PacketFilter;
import org.jivesoftware.smack.filter.PacketTypeFilter;
import org.jivesoftware.smack.filter.StanzaFilter;
import org.jivesoftware.smack.filter.StanzaExtensionFilter;
import org.jivesoftware.smack.filter.StanzaTypeFilter;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Stanza;
import org.jivesoftware.smack.roster.Roster;
@ -57,7 +57,7 @@ import org.jxmpp.jid.Jid;
* });
* Message message =
* DeliveryReceiptRequest.addTo(message);
* connection.sendPacket(message);
* connection.sendStanza(message);
* </pre>
*
* DeliveryReceiptManager can be configured to automatically add delivery receipt requests to every
@ -68,10 +68,10 @@ import org.jxmpp.jid.Jid;
*/
public class DeliveryReceiptManager extends Manager {
private static final PacketFilter MESSAGES_WITH_DEVLIERY_RECEIPT_REQUEST = new AndFilter(PacketTypeFilter.MESSAGE,
new PacketExtensionFilter(new DeliveryReceiptRequest()));
private static final PacketFilter MESSAGES_WITH_DELIVERY_RECEIPT = new AndFilter(PacketTypeFilter.MESSAGE,
new PacketExtensionFilter(DeliveryReceipt.ELEMENT, DeliveryReceipt.NAMESPACE));
private static final StanzaFilter MESSAGES_WITH_DEVLIERY_RECEIPT_REQUEST = new AndFilter(StanzaTypeFilter.MESSAGE,
new StanzaExtensionFilter(new DeliveryReceiptRequest()));
private static final StanzaFilter MESSAGES_WITH_DELIVERY_RECEIPT = new AndFilter(StanzaTypeFilter.MESSAGE,
new StanzaExtensionFilter(DeliveryReceipt.ELEMENT, DeliveryReceipt.NAMESPACE));
private static Map<XMPPConnection, DeliveryReceiptManager> instances = new WeakHashMap<XMPPConnection, DeliveryReceiptManager>();
@ -128,10 +128,10 @@ public class DeliveryReceiptManager extends Manager {
sdm.addFeature(DeliveryReceipt.NAMESPACE);
// Add the packet listener to handling incoming delivery receipts
connection.addAsyncPacketListener(new PacketListener() {
connection.addAsyncStanzaListener(new StanzaListener() {
@Override
public void processPacket(Stanza packet) throws NotConnectedException {
DeliveryReceipt dr = DeliveryReceipt.from(packet);
DeliveryReceipt dr = DeliveryReceipt.from((Message) packet);
// notify listeners of incoming receipt
for (ReceiptReceivedListener l : receiptReceivedListeners) {
l.onReceiptReceived(packet.getFrom(), packet.getTo(), dr.getId(), packet);
@ -140,7 +140,7 @@ public class DeliveryReceiptManager extends Manager {
}, MESSAGES_WITH_DELIVERY_RECEIPT);
// Add the packet listener to handle incoming delivery receipt requests
connection.addAsyncPacketListener(new PacketListener() {
connection.addAsyncStanzaListener(new StanzaListener() {
@Override
public void processPacket(Stanza packet) throws NotConnectedException, InterruptedException {
final Jid from = packet.getFrom();
@ -157,9 +157,9 @@ public class DeliveryReceiptManager extends Manager {
break;
}
Message ack = new Message(from, Message.Type.normal);
ack.addExtension(new DeliveryReceipt(packet.getStanzaId()));
connection.sendPacket(ack);
final Message messageWithReceiptRequest = (Message) packet;
Message ack = receiptMessageFor(messageWithReceiptRequest);
connection.sendStanza(ack);
}
}, MESSAGES_WITH_DEVLIERY_RECEIPT_REQUEST);
}
@ -234,7 +234,7 @@ public class DeliveryReceiptManager extends Manager {
receiptReceivedListeners.remove(listener);
}
private static final PacketListener AUTO_ADD_DELIVERY_RECEIPT_REQUESTS_LISTENER = new PacketListener() {
private static final StanzaListener AUTO_ADD_DELIVERY_RECEIPT_REQUESTS_LISTENER = new StanzaListener() {
@Override
public void processPacket(Stanza packet) throws NotConnectedException {
Message message = (Message) packet;
@ -288,4 +288,17 @@ public class DeliveryReceiptManager extends Manager {
public static String addDeliveryReceiptRequest(Message m) {
return DeliveryReceiptRequest.addTo(m);
}
/**
* Create and return a new message including a delivery receipt extension for the given message.
*
* @param messageWithReceiptRequest the given message with a receipt request extension.
* @return a new message with a receipt.
* @since 4.1
*/
public static Message receiptMessageFor(Message messageWithReceiptRequest) {
Message message = new Message(messageWithReceiptRequest.getFrom(), messageWithReceiptRequest.getType());
message.addExtension(new DeliveryReceipt(messageWithReceiptRequest.getStanzaId()));
return message;
}
}

View file

@ -20,9 +20,9 @@ import java.io.IOException;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Stanza;
import org.jivesoftware.smack.packet.PacketExtension;
import org.jivesoftware.smack.packet.ExtensionElement;
import org.jivesoftware.smack.packet.id.StanzaIdUtil;
import org.jivesoftware.smack.provider.PacketExtensionProvider;
import org.jivesoftware.smack.provider.ExtensionElementProvider;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@ -32,7 +32,7 @@ import org.xmlpull.v1.XmlPullParserException;
*
* @author Georg Lukas
*/
public class DeliveryReceiptRequest implements PacketExtension
public class DeliveryReceiptRequest implements ExtensionElement
{
public static final String ELEMENT = "request";
@ -93,7 +93,7 @@ public class DeliveryReceiptRequest implements PacketExtension
/**
* This Provider parses and returns DeliveryReceiptRequest packets.
*/
public static class Provider extends PacketExtensionProvider<DeliveryReceiptRequest> {
public static class Provider extends ExtensionElementProvider<DeliveryReceiptRequest> {
@Override
public DeliveryReceiptRequest parse(XmlPullParser parser,
int initialDepth) throws XmlPullParserException,