org.jasig.portal.services.stats
Class ThreadFiringStatsRecorder

java.lang.Object
  extended by org.jasig.portal.services.stats.ThreadFiringStatsRecorder
All Implemented Interfaces:
IStatsRecorder, org.springframework.beans.factory.InitializingBean

public final class ThreadFiringStatsRecorder
extends java.lang.Object
implements IStatsRecorder, org.springframework.beans.factory.InitializingBean

Stats recorder implementation which on receipt of each stats recording event fires a new thread tasked with notifying the child recorder of the event. This accomplishes processing stats recording in a new thread rather than in the thread in which the event was generated. This IStatsRecorder just fires the threads - it requires a target IStatsRecorder which the threads will invoke. You inject this target via the setTargetStatsRecorder() setter method.

Since:
uPortal 2.5.1
Version:
$Revision: 1.1.2.1 $ $Date: 2005/07/15 21:25:39 $

Field Summary
private  org.apache.commons.logging.Log log
           
private  IStatsRecorder targetStatsRecorder
           
private  edu.emory.mathcs.backport.java.util.concurrent.ExecutorService threadPool
           
 
Constructor Summary
ThreadFiringStatsRecorder(int initialThreads, int maxThreads, int threadPriority)
          Constructor specifying configurating of our thread pool.
 
Method Summary
 void afterPropertiesSet()
           
private  void executeStatsRecorderEvent(StatsRecorderWorkerTask task)
           
 IStatsRecorder getTargetStatsRecorder()
          Get the target IStatsRecorder which the threads we fire will invoke when they awake.
 void recordChannelAddedToLayout(IPerson person, UserProfile profile, IUserLayoutChannelDescription channelDesc)
          Called when a channel is being added to a user layout
 void recordChannelDefinitionModified(IPerson person, ChannelDefinition channelDef)
          Called when a user modifies an existing channel
 void recordChannelDefinitionPublished(IPerson person, ChannelDefinition channelDef)
          Called when a user publishes a channel
 void recordChannelDefinitionRemoved(IPerson person, ChannelDefinition channelDef)
          Called when a user removes an existing channel
 void recordChannelInstantiated(IPerson person, UserProfile profile, IUserLayoutChannelDescription channelDesc)
          Called when a channel is being instantiated
 void recordChannelMovedInLayout(IPerson person, UserProfile profile, IUserLayoutChannelDescription channelDesc)
          Called when a channel is being moved in a user layout
 void recordChannelRemovedFromLayout(IPerson person, UserProfile profile, IUserLayoutChannelDescription channelDesc)
          Called when a channel is being removed from a user layout
 void recordChannelRendered(IPerson person, UserProfile profile, IUserLayoutChannelDescription channelDesc)
          Called when a channel is being rendered
 void recordChannelTargeted(IPerson person, UserProfile profile, IUserLayoutChannelDescription channelDesc)
          Called when a channel is being targeted
 void recordChannelUpdatedInLayout(IPerson person, UserProfile profile, IUserLayoutChannelDescription channelDesc)
          Called when a channel is being updated in a user layout
 void recordFolderAddedToLayout(IPerson person, UserProfile profile, IUserLayoutFolderDescription folderDesc)
          Called when a folder is being added to a user layout
 void recordFolderMovedInLayout(IPerson person, UserProfile profile, IUserLayoutFolderDescription folderDesc)
          Called when a folder is being moved in a user layout
 void recordFolderRemovedFromLayout(IPerson person, UserProfile profile, IUserLayoutFolderDescription folderDesc)
          Called when a folder is being removed from a user layout
 void recordFolderUpdatedInLayout(IPerson person, UserProfile profile, IUserLayoutFolderDescription folderDesc)
          Called when a folder is being updated in a user layout
 void recordLogin(IPerson person)
          Called when user authenticates successfully.
 void recordLogout(IPerson person)
          Called when user logs out.
 void recordSessionCreated(IPerson person)
          Called when a new session is created for a user.
 void recordSessionDestroyed(IPerson person)
          Called when the user's session is destroyed.
 void setTargetStatsRecorder(IStatsRecorder targetStatsRecorder)
          Set the child IStatsRecorder which the threads we fire will invoke when they awake.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

private org.apache.commons.logging.Log log

targetStatsRecorder

private IStatsRecorder targetStatsRecorder

threadPool

private edu.emory.mathcs.backport.java.util.concurrent.ExecutorService threadPool
Constructor Detail

ThreadFiringStatsRecorder

public ThreadFiringStatsRecorder(int initialThreads,
                                 int maxThreads,
                                 int threadPriority)
Constructor specifying configurating of our thread pool.

Parameters:
initialThreads - initial number of threads in the thread pool
maxThreads - maximum number of threads to allow in the thread pool
threadPriority - priority for the threads.
Method Detail

recordLogin

public void recordLogin(IPerson person)
Description copied from interface: IStatsRecorder
Called when user authenticates successfully.

Specified by:
recordLogin in interface IStatsRecorder
Parameters:
person - the IPerson object

recordLogout

public void recordLogout(IPerson person)
Description copied from interface: IStatsRecorder
Called when user logs out.

Specified by:
recordLogout in interface IStatsRecorder
Parameters:
person - the IPerson object

recordSessionCreated

public void recordSessionCreated(IPerson person)
Description copied from interface: IStatsRecorder
Called when a new session is created for a user.

Specified by:
recordSessionCreated in interface IStatsRecorder
Parameters:
person - the IPerson object

recordSessionDestroyed

public void recordSessionDestroyed(IPerson person)
Description copied from interface: IStatsRecorder
Called when the user's session is destroyed. This occurs when the user logs out or his/her session simply times out.

Specified by:
recordSessionDestroyed in interface IStatsRecorder
Parameters:
person - the IPerson object

recordChannelDefinitionPublished

public void recordChannelDefinitionPublished(IPerson person,
                                             ChannelDefinition channelDef)
Description copied from interface: IStatsRecorder
Called when a user publishes a channel

Specified by:
recordChannelDefinitionPublished in interface IStatsRecorder
Parameters:
person - the person pubishing the channel
channelDef - the channel being published

recordChannelDefinitionModified

public void recordChannelDefinitionModified(IPerson person,
                                            ChannelDefinition channelDef)
Description copied from interface: IStatsRecorder
Called when a user modifies an existing channel

Specified by:
recordChannelDefinitionModified in interface IStatsRecorder
Parameters:
person - the person modifying the channel
channelDef - the channel being modified

recordChannelDefinitionRemoved

public void recordChannelDefinitionRemoved(IPerson person,
                                           ChannelDefinition channelDef)
Description copied from interface: IStatsRecorder
Called when a user removes an existing channel

Specified by:
recordChannelDefinitionRemoved in interface IStatsRecorder
Parameters:
person - the person removing the channel
channelDef - the channel being removed

recordChannelAddedToLayout

public void recordChannelAddedToLayout(IPerson person,
                                       UserProfile profile,
                                       IUserLayoutChannelDescription channelDesc)
Description copied from interface: IStatsRecorder
Called when a channel is being added to a user layout

Specified by:
recordChannelAddedToLayout in interface IStatsRecorder
Parameters:
person - the person adding the channel
profile - the profile of the layout to which the channel is added
channelDesc - the channel being subscribed to

recordChannelUpdatedInLayout

public void recordChannelUpdatedInLayout(IPerson person,
                                         UserProfile profile,
                                         IUserLayoutChannelDescription channelDesc)
Description copied from interface: IStatsRecorder
Called when a channel is being updated in a user layout

Specified by:
recordChannelUpdatedInLayout in interface IStatsRecorder
Parameters:
person - the person updating the channel
profile - the profile of the layout in which the channel is updated
channelDesc - the channel being updated

recordChannelMovedInLayout

public void recordChannelMovedInLayout(IPerson person,
                                       UserProfile profile,
                                       IUserLayoutChannelDescription channelDesc)
Description copied from interface: IStatsRecorder
Called when a channel is being moved in a user layout

Specified by:
recordChannelMovedInLayout in interface IStatsRecorder
Parameters:
person - the person moving the channel
profile - the profile of the layout in which the channel is moved
channelDesc - the channel being moved

recordChannelRemovedFromLayout

public void recordChannelRemovedFromLayout(IPerson person,
                                           UserProfile profile,
                                           IUserLayoutChannelDescription channelDesc)
Description copied from interface: IStatsRecorder
Called when a channel is being removed from a user layout

Specified by:
recordChannelRemovedFromLayout in interface IStatsRecorder
Parameters:
person - the person removing the channel
profile - the profile of the layout to which the channel is removed
channelDesc - the channel being removed from a user layout

recordFolderAddedToLayout

public void recordFolderAddedToLayout(IPerson person,
                                      UserProfile profile,
                                      IUserLayoutFolderDescription folderDesc)
Description copied from interface: IStatsRecorder
Called when a folder is being added to a user layout

Specified by:
recordFolderAddedToLayout in interface IStatsRecorder
Parameters:
person - the person adding the folder
profile - the profile of the layout to which the folder is added
folderDesc - the folder being subscribed to

recordFolderUpdatedInLayout

public void recordFolderUpdatedInLayout(IPerson person,
                                        UserProfile profile,
                                        IUserLayoutFolderDescription folderDesc)
Description copied from interface: IStatsRecorder
Called when a folder is being updated in a user layout

Specified by:
recordFolderUpdatedInLayout in interface IStatsRecorder
Parameters:
person - the person updating the folder
profile - the profile of the layout in which the folder is updated
folderDesc - the folder being updated

recordFolderMovedInLayout

public void recordFolderMovedInLayout(IPerson person,
                                      UserProfile profile,
                                      IUserLayoutFolderDescription folderDesc)
Description copied from interface: IStatsRecorder
Called when a folder is being moved in a user layout

Specified by:
recordFolderMovedInLayout in interface IStatsRecorder
Parameters:
person - the person moving the folder
profile - the profile of the layout in which the folder is moved
folderDesc - the folder being moved

recordFolderRemovedFromLayout

public void recordFolderRemovedFromLayout(IPerson person,
                                          UserProfile profile,
                                          IUserLayoutFolderDescription folderDesc)
Description copied from interface: IStatsRecorder
Called when a folder is being removed from a user layout

Specified by:
recordFolderRemovedFromLayout in interface IStatsRecorder
Parameters:
person - the person removing the folder
profile - the profile of the layout to which the folder is removed
folderDesc - the folder being removed from a user layout

recordChannelInstantiated

public void recordChannelInstantiated(IPerson person,
                                      UserProfile profile,
                                      IUserLayoutChannelDescription channelDesc)
Description copied from interface: IStatsRecorder
Called when a channel is being instantiated

Specified by:
recordChannelInstantiated in interface IStatsRecorder
Parameters:
person - the person instantiating the channel
profile - the profile of the layout in which this channel is instantiated
channelDesc - the channel being instantiated

recordChannelRendered

public void recordChannelRendered(IPerson person,
                                  UserProfile profile,
                                  IUserLayoutChannelDescription channelDesc)
Description copied from interface: IStatsRecorder
Called when a channel is being rendered

Specified by:
recordChannelRendered in interface IStatsRecorder
Parameters:
person - the person rendering the channel
profile - the profile of the layout in which this channel is rendered
channelDesc - the channel being rendered

recordChannelTargeted

public void recordChannelTargeted(IPerson person,
                                  UserProfile profile,
                                  IUserLayoutChannelDescription channelDesc)
Description copied from interface: IStatsRecorder
Called when a channel is being targeted

Specified by:
recordChannelTargeted in interface IStatsRecorder
Parameters:
person - the person interacting with the channel
profile - the profile of the layout in which this channel resides
channelDesc - the channel being targeted

executeStatsRecorderEvent

private void executeStatsRecorderEvent(StatsRecorderWorkerTask task)

getTargetStatsRecorder

public IStatsRecorder getTargetStatsRecorder()
Get the target IStatsRecorder which the threads we fire will invoke when they awake.

Returns:
Returns the targetStatsRecorder.

setTargetStatsRecorder

public void setTargetStatsRecorder(IStatsRecorder targetStatsRecorder)
Set the child IStatsRecorder which the threads we fire will invoke when they awake.

Parameters:
targetStatsRecorder - The targetStatsRecorder to set.

afterPropertiesSet

public void afterPropertiesSet()
                        throws java.lang.Exception
Specified by:
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
Throws:
java.lang.Exception