Commit d6203ac2 authored by Matt Tucker's avatar Matt Tucker Committed by matt

Initial work on faster offline presence.

git-svn-id: http://svn.igniterealtime.org/svn/repos/wildfire/trunk@6351 b35dd754-fafc-0310-a699-88a17e54d16e
parent 2990f865
......@@ -40,6 +40,12 @@ CREATE TABLE jiveOffline (
CONSTRAINT jiveOffline_pk PRIMARY KEY (username, messageID)
);
CREATE TABLE jivePresence (
username VARCHAR(64) NOT NULL,
offlinePresence LONGVARCHAR,
lastActivity VARCHAR(15),
CONSTRAINT jivePresence_pk PRIMARY KEY (username)
);
CREATE TABLE jiveRoster (
rosterID BIGINT NOT NULL,
......
......@@ -16,6 +16,8 @@ import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.jivesoftware.util.LocaleUtils;
import org.jivesoftware.util.Log;
import org.jivesoftware.util.Cache;
import org.jivesoftware.util.CacheManager;
import org.jivesoftware.wildfire.*;
import org.jivesoftware.wildfire.auth.UnauthorizedException;
import org.jivesoftware.wildfire.component.InternalComponentManager;
......@@ -58,6 +60,9 @@ public class PresenceManagerImpl extends BasicModule implements PresenceManager
private InternalComponentManager componentManager;
private Cache lastActivityCache;
private Cache offlinePresenceCache;
public PresenceManagerImpl() {
super("Presence manager");
......@@ -378,6 +383,10 @@ public class PresenceManagerImpl extends BasicModule implements PresenceManager
public void initialize(XMPPServer server) {
super.initialize(server);
this.server = server;
offlinePresenceCache = CacheManager.initializeCache("Offline Presence Cache", "offlinePresence", 512*1024);
lastActivityCache = CacheManager.initializeCache("Last Activity Cache", "lastActivity", 128*1024);
deliverer = server.getPacketDeliverer();
sessionManager = server.getSessionManager();
userManager = server.getUserManager();
......@@ -385,6 +394,12 @@ public class PresenceManagerImpl extends BasicModule implements PresenceManager
rosterManager = server.getRosterManager();
}
public void stop() {
// Clear the caches when stopping the module.
offlinePresenceCache.clear();
lastActivityCache.clear();
}
private Component getComponent(JID probee) {
// Check for registered components
Component component = componentManager.getComponent(probee);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment