Class Hierarchy for Portal Events. Events in red are abstract base classes. The list in brackets for each event type are the data fields that event adds to the hierarchy.
- PortalEvent- abstract base class for all portal events. [serverId, eventSessionId, userName, timestamp]
- LayoutPortalEvent- abstract base class for all layout related portal events. [layoutId, layoutOwner]
- FolderAddedToLayoutPortalEvent - fired when a new folder (tab, column) is added to the user's layout. [newFolderId]
- FolderDeletedFromLayoutPortalEvent - fired when a folder is deleted from the user's layout. [oldParentFolderId, deletedFolderId, deletedFolderName]
- FolderMovedInLayoutPortalEvent - fired when a folder is moved within the user's layout. [oldParentFolderId, movedFolderId]
- PortletAddedToLayoutPortalEvent - fired when a portlet is added to the user's layout. [parentFolderId, fname]
- PortletDeletedFromLayoutPortalEvent - fired when a portlet is deleted from the user's layout. [oldParentFolderId, fname]
- PortletMovedInLayoutPortalEvent - fired when a portlet is moved within the user's layout. [oldParentFolderId, newParentFolderId, fname]
- LoginEvent - fired when a user logs in to the portal. [groups, attributes]
- LogoutEvent - fired when a user explicitly logs out of the portal.
- PortalRenderEvent - fired when a portal page renders (generally equal to rendering a tab). [requestPath, urlState, urlType, parameters, targetLayoutNodeId]
- PortletExecutionEvent- abstract base class for all portlet execution events. [fname, executionTimeNano, parameters]
- PortletActionExecutionEvent - fired after a portlet action completes
- LayoutPortalEvent- abstract base class for all layout related portal events. [layoutId, layoutOwner]
Event Class | Summary | Data Summary1 |
---|---|---|
FolderAddedToLayoutPortalEvent | Fired when a user adds a folder to their layout | Layout ID, new folder node ID |
FolderDeletedFromLayoutPortalEvent | Fired when a user deletes a folder from their layout | Layout ID, old parent node ID, deleted folder node ID, deleted folder name |
FolderMovedInLayoutPortalEvent | Fired when a user moves a folder in their layout | Layout ID, old parent node ID, moved folder node ID |
PortletAddedToLayoutPortalEvent | Fired when a user adds a portlet to their layout | Layout ID, parent node ID, portlet fname |
PortletDeletedFromLayoutPortalEvent | Fired when a user deletes a portlet from their layout | Layout ID, old parent node ID, portlet fname |
PortletMovedInLayoutPortalEvent | Fired when a user moves a portlet in their layout | Layout ID, old parent node ID, new parent node ID, portlet fname |
LoginEvent | Fired when a user authenticates with the portal | Group keys the user is a member of, user attributes |
LogoutEvent | Fired when a user explicitly logs out of the portal | |
PortalRenderEvent | Fired when a user renders a page | Request path info, url state2, url type3, request parameters, targeted layout node ID, execution time (ms) |
PortletActionExecutionEvent | Fired when a portlet action request is executed | Portlet fname, execution time, request parameters |
PortletEventExecutionEvent | Fired when a portlet event request is executed | Portlet fname, execution time, request parameters, event QName |
PortletRenderExecutionEvent | Fired when a portlet render request is executed | Portlet fname, execution time, request parameters, targeted flag, rendered from cache flag |
PortletRenderHeaderExecutionEvent | Fired when a portlet render header request is executed | Portlet fname, execution time, request parameters, targeted flag |
PortletResourceExecutionEvent | Fired when a portlet resource request is executed | Portlet fname, execution time, request parameters, resource ID, rendered from cache flag |
- All events track time, server name, username, and event session in addition to the data listed in the summary column
- See the org.jasig.portal.url.UrlState enum (NORMAL, MAX, DETACHED, EXCLUSIVE)
- See the org.jasig.portal.url.UrlType enum (RENDER, ACTION, RESOURCE)
Example using Portal Events
- Open for editing uportal-war/src/main/resources/properties/contexts/applicationContext.xml
- Add the loggingEventHandler bean (see below)
<bean id="loggingEventHandler" class="org.jasig.portal.spring.context.LoggingEventHandler"> <property name="logCategory" value="STATS_CAT"/> <property name="applicationEventFilters"> <list> <bean class="org.jasig.portal.spring.context.ClassFilteringApplicationListener"> <property name="supportedEvents"> <list> <value>org.jasig.portal.events.FolderAddedToLayoutPortalEvent</value> <value>org.jasig.portal.events.FolderDeletedFromLayoutPortalEvent</value> <value>org.jasig.portal.events.FolderMovedInLayoutPortalEvent</value> <!-- All layout node related events --> <value>org.jasig.portal.events.LayoutPortalEvent</value> <!-- Explicitly list login/logout events --> <value>org.jasig.portal.events.LoginEvent</value> <value>org.jasig.portal.events.LogoutEvent</value> <value>org.springframework.security.authentication.event.AuthenticationSuccessEvent</value> </list> </property> </bean> </list> </property> </bean>
- You can view the results of the events above by adding the following to the uportal-war/src/main/webapp/WEB-INF/log4j.properties file. (see below)
... log4j.category.STATS_CAT=INFO,STATS log4j.additivity.STATS_CAT=false log4j.appender.STATS=org.apache.log4j.RollingFileAppender log4j.appender.STATS.File=${environment.build.logging.dir}/stats/stats.log log4j.appender.STATS.Append=true log4j.appender.STATS.MaxFileSize=20MB log4j.appender.STATS.MaxBackupIndex=45 log4j.appender.STATS.layout=org.apache.log4j.PatternLayout log4j.appender.STATS.layout.ConversionPattern=%d [%t] %p %c - %m %n ...