Jive Forums API (5.5.20.2-oracle) Developer Javadocs

com.jivesoftware.base
Interface JiveManager

All Known Subinterfaces:
ConnectionManager, DraftManager, EmailTokenManager, TagManager
All Known Implementing Classes:
AbstractConnectionManager, AcceptManager, AvatarManagerFactory, CronTaskManager, DbAnnouncementManager, DbArchiveManager, DbAttachmentManager, DbDraftManager, DbEmailTokenManager, DbInterceptorManager, DbPermissionsManager, DbPresenceManager, DbPrivateMessageManager, DbReadTracker, DbSearchManager, DbTagManager, DbWatchManager, DefaultGatewayManager, DraftManagerProxy, EmailManager, GroupManagerFactory, JiveRenderManager, NNTPConnectionManager, NNTPServer, PluginManager, PollManagerFactory, ProfileSearchManagerImpl, SessionManager, StatusLevelManagerFactory, TagManagerFactory, UserManagerFactory, VirusScanManager, WatchSettingsManagerImpl

public interface JiveManager

An interface that all Jive Managers should implement. This interface is designed to solve some intriguing startup issues with clustering by seperating the loading of the core Jive managers and factories from their initialization phase. By doing this we solve many possible deadlock situations where Jive classes are being initialized at the same time that Coherence is starting up and populating caches in seperate threads.

The general contract that any implementing manager must follow is as follows: implementations should not access, either through an instance or via static calls, any other class that could possibly (directly or indirectly) either access one of the main Factory classes or any caches until initialize() is called. This restriction includes static class variables.

Not following this contract can cause deadlocks and possible clustering issues during startup.


Method Summary
 void destroy()
          Notifies the manager to release any resources that may be holding on too.
 void initialize()
          Initialize the manager.
 

Method Detail

initialize

void initialize()
Initialize the manager. It is within this method that it is ok to create, access and/or otherwise use external classes (including caches). Until this method is called implementation should not access any external classes that could possibly either access one of the main Factory classes or any caches since doing so can cause deadlocks and possible clustering issues during startup.

This method is used internally by Jive during application startup and should not be called during normal usage of the class.


destroy

void destroy()
Notifies the manager to release any resources that may be holding on too. This could also be used to clear out the managers caches, etc.

This method is used internally by Jive during application startup and should not be called during normal usage of the class.


Jive Forums Project Page

Copyright © 1999-2006 Jive Software.