/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.portal.monitoring.internal.jmx;
import com.liferay.portal.configuration.metatype.bnd.util.ConfigurableUtil;
import com.liferay.portal.kernel.monitoring.Level;
import com.liferay.portal.kernel.monitoring.MethodSignature;
import com.liferay.portal.kernel.monitoring.MonitoringControl;
import com.liferay.portal.kernel.monitoring.PortalMonitoringControl;
import com.liferay.portal.kernel.monitoring.PortletMonitoringControl;
import com.liferay.portal.kernel.monitoring.ServiceMonitoringControl;
import com.liferay.portal.monitoring.configuration.MonitoringConfiguration;
import java.util.Map;
import java.util.Set;
import javax.management.DynamicMBean;
import javax.management.NotCompliantMBeanException;
import javax.management.StandardMBean;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Modified;
import org.osgi.service.component.annotations.Reference;
/**
* @author Michael C. Han
* @author Brian Wing Shun Chan
*/
@Component(
configurationPid = "com.liferay.portal.monitoring.configuration.MonitoringConfiguration",
enabled = false, immediate = true,
property = {
"jmx.objectname=com.liferay.portal.monitoring:classification=monitoring_service,name=MonitoringConfigurationManager",
"jmx.objectname.cache.key=MonitoringProcessorManager"
},
service = DynamicMBean.class
)
public class MonitoringConfigurationManager
extends StandardMBean implements MonitoringConfigurationManagerMBean {
public MonitoringConfigurationManager() throws NotCompliantMBeanException {
super(MonitoringConfigurationManagerMBean.class);
}
@Override
public void addServiceClass(String className) {
_serviceMonitoringControl.addServiceClass(className);
}
@Override
public void addServiceClassMethod(
String className, String methodName, String[] parameterTypes) {
_serviceMonitoringControl.addServiceClassMethod(
className, methodName, parameterTypes);
}
@Override
public String getLevel(String namespace) {
Level level = _monitoringControl.getLevel(namespace);
if (level == null) {
level = Level.OFF;
}
return level.toString();
}
@Override
public String[] getNamespaces() {
Set<String> namespaces = _monitoringControl.getNamespaces();
return namespaces.toArray(new String[namespaces.size()]);
}
@Override
public Set<String> getServiceClasses() {
return _serviceMonitoringControl.getServiceClasses();
}
@Override
public Set<MethodSignature> getServiceClassMethods() {
return _serviceMonitoringControl.getServiceClassMethods();
}
@Override
public boolean isInclusiveMode() {
return _serviceMonitoringControl.isInclusiveMode();
}
@Override
public boolean isMonitorPortalRequest() {
return _portalMonitoringControl.isMonitorPortalRequest();
}
@Override
public boolean isMonitorPortletActionRequest() {
return _portletMonitoringControl.isMonitorPortletActionRequest();
}
@Override
public boolean isMonitorPortletEventRequest() {
return _portletMonitoringControl.isMonitorPortletEventRequest();
}
@Override
public boolean isMonitorPortletRenderRequest() {
return _portletMonitoringControl.isMonitorPortletRenderRequest();
}
@Override
public boolean isMonitorPortletResourceRequest() {
return _portletMonitoringControl.isMonitorPortletResourceRequest();
}
@Override
public boolean isMonitorServiceRequest() {
return _serviceMonitoringControl.isMonitorServiceRequest();
}
@Override
public void setInclusiveMode(boolean inclusiveMode) {
_serviceMonitoringControl.setInclusiveMode(inclusiveMode);
}
@Override
public void setLevel(String namespace, String levelName) {
Level level = Level.valueOf(levelName);
_monitoringControl.setLevel(namespace, level);
}
@Override
public void setMonitorPortalRequest(boolean monitorPortalRequest) {
_portalMonitoringControl.setMonitorPortalRequest(monitorPortalRequest);
}
@Override
public void setMonitorPortletActionRequest(
boolean monitorPortletActionRequest) {
_portletMonitoringControl.setMonitorPortletActionRequest(
monitorPortletActionRequest);
}
@Override
public void setMonitorPortletEventRequest(
boolean monitorPortletEventRequest) {
_portletMonitoringControl.setMonitorPortletEventRequest(
monitorPortletEventRequest);
}
@Override
public void setMonitorPortletRenderRequest(
boolean monitorPortletRenderRequest) {
_portletMonitoringControl.setMonitorPortletRenderRequest(
monitorPortletRenderRequest);
}
@Override
public void setMonitorPortletRequests(boolean monitorPortletRequests) {
setMonitorPortletActionRequest(monitorPortletRequests);
setMonitorPortletEventRequest(monitorPortletRequests);
setMonitorPortletRenderRequest(monitorPortletRequests);
setMonitorPortletResourceRequest(monitorPortletRequests);
}
@Override
public void setMonitorPortletResourceRequest(
boolean monitorPortletResourceRequest) {
_portletMonitoringControl.setMonitorPortletResourceRequest(
monitorPortletResourceRequest);
}
@Override
public void setMonitorServiceRequest(boolean monitorServiceRequest) {
_serviceMonitoringControl.setMonitorServiceRequest(
monitorServiceRequest);
}
@Activate
@Modified
protected void activate(Map<String, Object> properties) {
_monitoringConfiguration = ConfigurableUtil.createConfigurable(
MonitoringConfiguration.class, properties);
setMonitorPortalRequest(
_monitoringConfiguration.monitorPortalRequest());
setMonitorPortletActionRequest(
_monitoringConfiguration.monitorPortletActionRequest());
setMonitorPortletEventRequest(
_monitoringConfiguration.monitorPortletEventRequest());
setMonitorPortletRenderRequest(
_monitoringConfiguration.monitorPortletRenderRequest());
setMonitorPortletResourceRequest(
_monitoringConfiguration.monitorPortletResourceRequest());
setMonitorServiceRequest(
_monitoringConfiguration.monitorServiceRequest());
}
@Reference(unbind = "-")
protected void setMonitoringControl(MonitoringControl monitoringControl) {
_monitoringControl = monitoringControl;
}
@Reference(unbind = "-")
protected void setPortalMonitoringControl(
PortalMonitoringControl portalMonitoringControl) {
_portalMonitoringControl = portalMonitoringControl;
}
@Reference(unbind = "-")
protected void setPortletMonitoringControl(
PortletMonitoringControl portletMonitoringControl) {
_portletMonitoringControl = portletMonitoringControl;
}
@Reference(unbind = "-")
protected void setServiceMonitoringControl(
ServiceMonitoringControl serviceMonitoringControl) {
_serviceMonitoringControl = serviceMonitoringControl;
}
private volatile MonitoringConfiguration _monitoringConfiguration;
private MonitoringControl _monitoringControl;
private PortalMonitoringControl _portalMonitoringControl;
private PortletMonitoringControl _portletMonitoringControl;
private ServiceMonitoringControl _serviceMonitoringControl;
}