...
Code Block | ||
---|---|---|
| ||
399820,userLayoutRootNode,system1activeTab=1userLayoutRoot=rootnewNodeID=authenticated=true(folder:s10087: 50%,)(folder:s10057:50%,)(folder:s10083:50%,)(folder:s10101:50%,)(folder:s10080:50%,)(folder:s10075:50%,)( folder:s10099:50%,)(folder:s10097:50%,)(folder:s10070:50%,)(folder:s10095:50%,)(folder:s10064:50%,)(folder: s10091:50%,)userName=JohnDoeskin=spring(channel:n10077:false,)(channel:n10058:false,)7885417921252830597 |
Code Block | |||||||
---|---|---|---|---|---|---|---|
| |||||||
<person-id><comma><req-method-node-id><comma><upref-cache-key><ulayout-mgr-cache-key> |
...
How each value is obtained:
1. <person-id>: 399820
- an integer identifier - obtained from the UserInstance instance:
getPerson().getID()
2. <req-method-node-id>: userLayoutRootNode
- obtained as follows:
(new UPFileSpec(req)).getMethodNodeId()
where the req is the HttpServletRequest. For example:
...
3. <upref-cache-key>: system1activeTab=1userLayoutRoot=rootnewNodeID=authenticated=true(folder:s10087:50%,)(folder:s10057:50%,)(fold
er:s10083:50%,)(folder:s10101:50%,)(folder:s10080:50%,)(folder:s10075:50%,)(folder:s10099:50%,)(folder:s10097:
50%,)(folder:s10070:50%,)(folder:s10095:50%,)(folder:s10064:50%,)(folder:s10091:50%,)userName=John Doeskin=spring(channel:n10077:false,)(channel:n10058:false,)
- definition in UserPreferences.java, obtained by:
uPreferencesManager.getUserPreferences().getCacheKey()
defined as follows:
[UPC:system]<profile-id><structure-upref><theme-upref>
...
a. [UPC:system] an optional String value ("system") prepended to System profiles
b. <profile-id>
- integer defined in UserProfile.getProfileId()
c. <structure-upref>
- a concatentation of cache keys from StructureStylesheetUserPreferences.getCacheKey()
and it's super-classes:
<str-stylesh-upref><str-theme-stylesh-upref><str-struct-stylesh-upref>
i. <str-stylesh-upref>: activeTab=1userLayoutRoot=rootnewNodeID=authenticated=true
- defined in: StylesheetUserPreferences.getCacheKey()
ii. <str-theme-stylesh-upref>: (None found in example: otherwise, would look like (channel:nnnnn:false,)
- defined in: ThemeStylesheetUserPreferences.getCacheKey()
iii. <str-struct-stylesh-upref>:
(folder:s10087:50%,)(folder:s10057:50%,)(folder:s10083:50%,)(folder:s10101:50%,)(folder:s10080:50%,)(folder:
s10075:50%,)(folder:s10099:50%,)(folder:s10097:50%,)(folder:s10070:50%,)(folder:s10095:50%,)(folder:s10064:
50%,)(folder:s10091:50%,)
- defined in: StructureStylesheetUserPreferences.getCacheKey()
d. <theme-upref>
- a concatenation of cache keys from ThemeStylesheetUserPreferences.getCacheKey()
<thm-stylesh-upref><thm-theme-stylesh-upref>
i. <thm-stylesh-upref>: userName=John Doeskin=spring
- defined in: StylesheetUserPreferences.getCacheKey()
ii. <thm-theme-stylesh-upref>: (channel:n10077:false,)(channel:n10058:false,)
- defined in: ThemeStylesheetUserPreferences.getCacheKey()
4. <ulayout-mgr-cache-key>: 7885417921252830597
- defined in SimpleUserLayoutManager.getCacheKey() - it is a random long
Notes
I believe there are thread contention issues with these two variables (systemCache UP-1145 and systemCharacterCache) since both are not synchronized and reads and updates are not made within the synchronized blocks either.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="en" xml:lang="en"><head><title>myRutgers</title><meta content="text/html; charset=iso-8859-1" http-equiv="content-type" /><link type="image/x-icon" href="favicon.ico" rel="Shortcut Icon" /><link type="text/css" href="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/skin/myrutgers1.css" rel="stylesheet" /></head><body><div id="portal-page-header"><div id="logo"><img alt="myRutgers Logo" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/institutional/uportal_logo_grid.gif" height="60" width="255" /></div> <div id="tabs"><ul><li><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=root&uP_sparam=activeTab&activeTab=1"><span>Everyday</span></a></li><li><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=root&uP_sparam=activeTab&activeTab=2"><span>Libraries</span></a></li><li id="active-tab"><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=root&uP_sparam=activeTab&activeTab=3"><span>Campus Life</span></a></li><li><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=root&uP_sparam=activeTab&activeTab=4"><span>Administration</span></a></li><li><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=root&uP_sparam=activeTab&activeTab=5"><span>Reporting Tools</span></a></li><li><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=root&uP_sparam=activeTab&activeTab=6"><span>myTab</span></a></li></ul></div></div><div id="portal-page-body"><table width="100%" cellspacing="15" cellpadding="0"><tr><td valign="top" width="50%"><div class="portlet-toolbar"><div><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_tcattr=minimized&minimized_channelId=n10081&minimized_n10081_value=true#n10081"><img title="shade" alt="shade" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/max.gif" /></a><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=n10081"><img title="maximize" alt="maximize" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/focus.gif" /></a><a onclick="return confirm('Are you sure you want to remove this channel?')" href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_remove_target=n10081"><img title="remove" alt="remove" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/remove.gif" /></a></div><a name="n10081"><h2 id="n10081">Maps and Buildings</h2></a></div><div class="portlet clearfix"> </div><div class="portlet-toolbar"><div><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_tcattr=minimized&minimized_channelId=n10082&minimized_n10082_value=true#n10082"><img title="shade" alt="shade" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/max.gif" /></a><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=n10082"><img title="maximize" alt="maximize" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/focus.gif" /></a><a onclick="return confirm('Are you sure you want to remove this channel?')" href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_remove_target=n10082"><img title="remove" alt="remove" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/remove.gif" /></a></div><a name="n10082"><h2 id="n10082">Athletics</h2></a></div><div class="portlet clearfix"> </div></td><td valign="top" width="50%"><div class="portlet-toolbar"><div><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_tcattr=minimized&minimized_channelId=n10084&minimized_n10084_value=true#n10084"><img title="shade" alt="shade" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/max.gif" /></a><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=n10084"><img title="maximize" alt="maximize" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/focus.gif" /></a><a onclick="return confirm('Are you sure you want to remove this channel?')" href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_remove_target=n10084"><img title="remove" alt="remove" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/remove.gif" /></a></div><a name="n10084"><h2 id="n10084">Parking/Transportation</h2></a></div><div class="portlet clearfix"> </div><div class="portlet-toolbar"><div><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_tcattr=minimized&minimized_channelId=n10085&minimized_n10085_value=true#n10085"><img title="shade" alt="shade" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/max.gif" /></a><a href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_root=n10085"><img title="maximize" alt="maximize" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/focus.gif" /></a><a onclick="return confirm('Are you sure you want to remove this channel?')" href="tag.90299c0feb91b440.render.userLayoutRootNode.uP?uP_remove_target=n10085"><img title="remove" alt="remove" height="19" width="19" src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers1/controls/remove.gif" /></a></div><a name="n10085"><h2 id="n10085">Buses/Shuttles</h2></a></div><div class="portlet clearfix"> </div></td></tr></table></div><div id="portal-page-footer"><div><a href="http://www.rutgers.edu/" target="_blank"><img src="media/edu/rutgers/acs/portal/layout/tab-column/rutgers-theme/myrutgers/institutional/rutgers_footer_logo.gif" title="Go to Rutgers home page" alt="Rutgers Logo" height="30" width="99" /></a></div><p> Links to campus web sites: <a href="http://camden-www.rutgers.edu/" target="_blank">Camden</a>, <a href="http://rutgers-newark.rutgers.edu/" target="_blank">Newark</a>, <a href="http://nbp.rutgers.edu/" target="_blank">New Brunswick/Piscataway</a>, <a href="http://www.rutgers.edu/" target="_blank">Rutgers University</a>. <br /> For assistance, contact the Help Desks in: <a href="http://rucs.camden.rutgers.edu/" target="_blank">Camden</a>, <a href="http://www.ncs.rutgers.edu/helpdesk/" target="_blank">Newark</a>, or <a href="http://www.nbcs.rutgers.edu/helpdesk/hdnew/" target="_blank">New Brunswick/Piscataway</a>. </p></div></body></html> |