001
014
015 package com.liferay.portal.monitoring.statistics.portlet;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019 import com.liferay.portal.kernel.util.GroupThreadLocal;
020 import com.liferay.portal.kernel.util.StringBundler;
021 import com.liferay.portal.kernel.util.WebKeys;
022 import com.liferay.portal.model.Portlet;
023 import com.liferay.portal.monitoring.MonitorNames;
024 import com.liferay.portal.monitoring.statistics.BaseDataSample;
025 import com.liferay.portal.theme.ThemeDisplay;
026 import com.liferay.portal.util.PortalUtil;
027 import com.liferay.portlet.PortletResponseImpl;
028
029 import javax.portlet.PortletRequest;
030 import javax.portlet.PortletResponse;
031
032 import javax.servlet.http.HttpServletRequest;
033
034
039 public class PortletRequestDataSample extends BaseDataSample {
040
041 public PortletRequestDataSample(
042 PortletRequestType requestType, PortletRequest portletRequest,
043 PortletResponse portletResponse) {
044
045 _requestType = requestType;
046
047 PortletResponseImpl portletResponseImpl =
048 (PortletResponseImpl)portletResponse;
049
050 Portlet portlet = portletResponseImpl.getPortlet();
051
052 setCompanyId(portlet.getCompanyId());
053 setGroupId(portletRequest);
054 setName(portlet.getPortletName());
055 setNamespace(MonitorNames.PORTLET);
056 setUser(portletRequest.getRemoteUser());
057
058 _displayName = portlet.getDisplayName();
059 _portletId = portlet.getPortletId();
060 }
061
062 public String getDisplayName() {
063 return _displayName;
064 }
065
066 public String getPortletId() {
067 return _portletId;
068 }
069
070 public PortletRequestType getRequestType() {
071 return _requestType;
072 }
073
074 @Override
075 public String toString() {
076 StringBundler sb = new StringBundler(9);
077
078 sb.append("{displayName=");
079 sb.append(_displayName);
080 sb.append(", portletId=");
081 sb.append(_portletId);
082 sb.append(", requestType=");
083 sb.append(_requestType);
084 sb.append(", ");
085 sb.append(super.toString());
086 sb.append("}");
087
088 return sb.toString();
089 }
090
091 protected void setGroupId(PortletRequest portletRequest) {
092 long groupId = GroupThreadLocal.getGroupId();
093
094 if (groupId != 0) {
095 setGroupId(groupId);
096
097 return;
098 }
099
100 HttpServletRequest httpServletRequest =
101 PortalUtil.getHttpServletRequest(portletRequest);
102
103 ThemeDisplay themeDisplay =
104 (ThemeDisplay)httpServletRequest.getAttribute(
105 WebKeys.THEME_DISPLAY);
106
107 if (themeDisplay != null) {
108 groupId = themeDisplay.getScopeGroupId();
109
110 setGroupId(groupId);
111
112 return;
113 }
114
115 try {
116 groupId = PortalUtil.getScopeGroupId(portletRequest);
117
118 setGroupId(groupId);
119 }
120 catch (Exception e) {
121 if (_log.isDebugEnabled()) {
122 _log.debug("Unable to obtain scope group ID", e);
123 }
124 }
125 }
126
127 private static Log _log = LogFactoryUtil.getLog(
128 PortletRequestDataSample.class);
129
130 private final String _displayName;
131 private final String _portletId;
132 private final PortletRequestType _requestType;
133
134 }