mirror of
https://github.com/vanitasvitae/Smack.git
synced 2025-09-10 17:49:38 +02:00
Merged the 3.2 branch back into trunk.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@12588 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
commit
3f89df061d
16 changed files with 383 additions and 240 deletions
|
@ -32,8 +32,9 @@ import java.util.LinkedList;
|
|||
* use than a {@link PacketListener} when you need to wait for a specific
|
||||
* result.<p>
|
||||
*
|
||||
* Each packet collector will queue up to 2^16 packets for processing before
|
||||
* older packets are automatically dropped.
|
||||
* Each packet collector will queue up a configured number of packets for processing before
|
||||
* older packets are automatically dropped. The default number is retrieved by
|
||||
* {@link SmackConfiguration#getPacketCollectorSize()}.
|
||||
*
|
||||
* @see Connection#createPacketCollector(PacketFilter)
|
||||
* @author Matt Tucker
|
||||
|
@ -45,7 +46,7 @@ public class PacketCollector {
|
|||
* reached, older packets will be automatically dropped from the queue as
|
||||
* new packets are added.
|
||||
*/
|
||||
private static final int MAX_PACKETS = 65536;
|
||||
private int maxPackets = SmackConfiguration.getPacketCollectorSize();
|
||||
|
||||
private PacketFilter packetFilter;
|
||||
private LinkedList<Packet> resultQueue;
|
||||
|
@ -65,6 +66,19 @@ public class PacketCollector {
|
|||
this.resultQueue = new LinkedList<Packet>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new packet collector. If the packet filter is <tt>null</tt>, then
|
||||
* all packets will match this collector.
|
||||
*
|
||||
* @param conection the connection the collector is tied to.
|
||||
* @param packetFilter determines which packets will be returned by this collector.
|
||||
* @param maxSize the maximum number of packets that will be stored in the collector.
|
||||
*/
|
||||
protected PacketCollector(Connection conection, PacketFilter packetFilter, int maxSize) {
|
||||
this(conection, packetFilter);
|
||||
maxPackets = maxSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Explicitly cancels the packet collector so that no more results are
|
||||
* queued up. Once a packet collector has been cancelled, it cannot be
|
||||
|
@ -180,7 +194,7 @@ public class PacketCollector {
|
|||
}
|
||||
if (packetFilter == null || packetFilter.accept(packet)) {
|
||||
// If the max number of packets has been reached, remove the oldest one.
|
||||
if (resultQueue.size() == MAX_PACKETS) {
|
||||
if (resultQueue.size() == maxPackets) {
|
||||
resultQueue.removeLast();
|
||||
}
|
||||
// Add the new packet.
|
||||
|
|
|
@ -44,14 +44,15 @@ import java.util.*;
|
|||
*/
|
||||
public final class SmackConfiguration {
|
||||
|
||||
private static final String SMACK_VERSION = "3.2.0";
|
||||
private static final String SMACK_VERSION = "3.2.1";
|
||||
|
||||
private static int packetReplyTimeout = 5000;
|
||||
private static int keepAliveInterval = 30000;
|
||||
private static Vector<String> defaultMechs = new Vector<String>();
|
||||
|
||||
private static boolean localSocks5ProxyEnabled = true;
|
||||
private static int localSocks5ProxyPort = 7777;
|
||||
private static int localSocks5ProxyPort = 7778;
|
||||
private static int packetCollectorSize = 5000;
|
||||
|
||||
private SmackConfiguration() {
|
||||
}
|
||||
|
@ -85,20 +86,22 @@ public final class SmackConfiguration {
|
|||
parseClassToLoad(parser);
|
||||
}
|
||||
else if (parser.getName().equals("packetReplyTimeout")) {
|
||||
packetReplyTimeout =
|
||||
parseIntProperty(parser, packetReplyTimeout);
|
||||
packetReplyTimeout = parseIntProperty(parser, packetReplyTimeout);
|
||||
}
|
||||
else if (parser.getName().equals("keepAliveInterval")) {
|
||||
keepAliveInterval = parseIntProperty(parser, keepAliveInterval);
|
||||
}
|
||||
else if (parser.getName().equals("mechName")) {
|
||||
defaultMechs.add(parser.nextText());
|
||||
} else if (parser.getName().equals("localSocks5ProxyEnabled")) {
|
||||
localSocks5ProxyEnabled = Boolean.parseBoolean(parser
|
||||
.nextText());
|
||||
} else if (parser.getName().equals("localSocks5ProxyPort")) {
|
||||
localSocks5ProxyPort = parseIntProperty(parser,
|
||||
localSocks5ProxyPort);
|
||||
}
|
||||
else if (parser.getName().equals("localSocks5ProxyEnabled")) {
|
||||
localSocks5ProxyEnabled = Boolean.parseBoolean(parser.nextText());
|
||||
}
|
||||
else if (parser.getName().equals("localSocks5ProxyPort")) {
|
||||
localSocks5ProxyPort = parseIntProperty(parser, localSocks5ProxyPort);
|
||||
}
|
||||
else if (parser.getName().equals("packetCollectorSize")) {
|
||||
packetCollectorSize = parseIntProperty(parser, packetCollectorSize);
|
||||
}
|
||||
}
|
||||
eventType = parser.next();
|
||||
|
@ -184,6 +187,26 @@ public final class SmackConfiguration {
|
|||
keepAliveInterval = interval;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the default max size of a packet collector before it will delete
|
||||
* the older packets.
|
||||
*
|
||||
* @return The number of packets to queue before deleting older packets.
|
||||
*/
|
||||
public static int getPacketCollectorSize() {
|
||||
return packetCollectorSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the default max size of a packet collector before it will delete
|
||||
* the older packets.
|
||||
*
|
||||
* @param The number of packets to queue before deleting older packets.
|
||||
*/
|
||||
public static void setPacketCollectorSize(int collectorSize) {
|
||||
packetCollectorSize = collectorSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a SASL mechanism to the list to be used.
|
||||
*
|
||||
|
|
|
@ -419,7 +419,7 @@ public class XMPPConnection extends Connection {
|
|||
saslAuthentication.init();
|
||||
}
|
||||
|
||||
public void disconnect(Presence unavailablePresence) {
|
||||
public synchronized void disconnect(Presence unavailablePresence) {
|
||||
// If not connected, ignore this request.
|
||||
if (packetReader == null || packetWriter == null) {
|
||||
return;
|
||||
|
|
|
@ -115,7 +115,7 @@ public class ServiceDiscoveryManager {
|
|||
/**
|
||||
* Returns the type of client that will be returned when asked for the client identity in a
|
||||
* disco request. The valid types are defined by the category client. Follow this link to learn
|
||||
* the possible types: <a href="http://www.jabber.org/registrar/disco-categories.html#client">Jabber::Registrar</a>.
|
||||
* the possible types: <a href="http://xmpp.org/registrar/disco-categories.html#client">Jabber::Registrar</a>.
|
||||
*
|
||||
* @return the type of client that will be returned when asked for the client identity in a
|
||||
* disco request.
|
||||
|
@ -127,7 +127,7 @@ public class ServiceDiscoveryManager {
|
|||
/**
|
||||
* Sets the type of client that will be returned when asked for the client identity in a
|
||||
* disco request. The valid types are defined by the category client. Follow this link to learn
|
||||
* the possible types: <a href="http://www.jabber.org/registrar/disco-categories.html#client">Jabber::Registrar</a>.
|
||||
* the possible types: <a href="http://xmpp.org/registrar/disco-categories.html#client">Jabber::Registrar</a>.
|
||||
*
|
||||
* @param type the type of client that will be returned when asked for the client identity in a
|
||||
* disco request.
|
||||
|
|
|
@ -131,7 +131,7 @@ public class XHTMLText {
|
|||
*
|
||||
*/
|
||||
public void appendBrTag() {
|
||||
text.append("<br>");
|
||||
text.append("<br/>");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -326,10 +326,7 @@ public class EnhancedDebugger implements SmackDebugger {
|
|||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
for(int i=0; i< messagesTable.getRowCount();i++)
|
||||
{
|
||||
messagesTable.removeRow(i);
|
||||
}
|
||||
messagesTable.setRowCount(0);
|
||||
|
||||
}
|
||||
});
|
||||
|
|
|
@ -324,7 +324,8 @@ public class FileTransferNegotiator {
|
|||
throw new XMPPException(error.getMessage(), error);
|
||||
}
|
||||
|
||||
if (isByteStream && isIBB && field.getType().equals(FormField.TYPE_LIST_MULTI)) {
|
||||
//if (isByteStream && isIBB && field.getType().equals(FormField.TYPE_LIST_MULTI)) {
|
||||
if (isByteStream && isIBB) {
|
||||
return new FaultTolerantNegotiator(connection,
|
||||
byteStreamTransferManager,
|
||||
inbandTransferManager);
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
package org.jivesoftware.smackx.muc;
|
||||
|
||||
import org.jivesoftware.smack.SmackConfiguration;
|
||||
import org.jivesoftware.smack.packet.Packet;
|
||||
|
||||
import java.util.LinkedList;
|
||||
|
@ -38,7 +39,7 @@ class ConnectionDetachedPacketCollector {
|
|||
* reached, older packets will be automatically dropped from the queue as
|
||||
* new packets are added.
|
||||
*/
|
||||
private static final int MAX_PACKETS = 65536;
|
||||
private int maxPackets = SmackConfiguration.getPacketCollectorSize();
|
||||
|
||||
private LinkedList<Packet> resultQueue;
|
||||
|
||||
|
@ -50,6 +51,15 @@ class ConnectionDetachedPacketCollector {
|
|||
this.resultQueue = new LinkedList<Packet>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new packet collector. If the packet filter is <tt>null</tt>, then
|
||||
* all packets will match this collector.
|
||||
*/
|
||||
public ConnectionDetachedPacketCollector(int maxSize) {
|
||||
this.resultQueue = new LinkedList<Packet>();
|
||||
maxPackets = maxSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Polls to see if a packet is currently available and returns it, or
|
||||
* immediately returns <tt>null</tt> if no packets are currently in the
|
||||
|
@ -124,7 +134,7 @@ class ConnectionDetachedPacketCollector {
|
|||
return;
|
||||
}
|
||||
// If the max number of packets has been reached, remove the oldest one.
|
||||
if (resultQueue.size() == MAX_PACKETS) {
|
||||
if (resultQueue.size() == maxPackets) {
|
||||
resultQueue.removeLast();
|
||||
}
|
||||
// Add the new packet.
|
||||
|
|
|
@ -60,7 +60,7 @@ class RoomListenerMultiplexor implements ConnectionListener {
|
|||
*/
|
||||
public static RoomListenerMultiplexor getRoomMultiplexor(Connection conn) {
|
||||
synchronized (monitors) {
|
||||
if (!monitors.containsKey(conn)) {
|
||||
if (!monitors.containsKey(conn) || monitors.get(conn).get() == null) {
|
||||
RoomListenerMultiplexor rm = new RoomListenerMultiplexor(conn, new RoomMultiplexFilter(),
|
||||
new RoomMultiplexListener());
|
||||
|
||||
|
|
|
@ -13,11 +13,10 @@
|
|||
*/
|
||||
package org.jivesoftware.smackx.pubsub;
|
||||
|
||||
import org.jivesoftware.smack.packet.Message;
|
||||
import org.jivesoftware.smack.packet.PacketExtension;
|
||||
import org.jivesoftware.smackx.pubsub.provider.ItemProvider;
|
||||
|
||||
import com.sun.corba.se.impl.protocol.giopmsgheaders.Message;
|
||||
|
||||
/**
|
||||
* This class represents an item that has been, or will be published to a
|
||||
* pubsub node. An <tt>Item</tt> has several properties that are dependent
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue