/* * (C) Copyright 2006-2011 Nuxeo SA (http://nuxeo.com/) and others. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Contributors: * Nuxeo - initial API and implementation * * $Id$ */ package org.nuxeo.ecm.core.management.events; import org.nuxeo.ecm.core.event.EventServiceAdmin; import org.nuxeo.ecm.core.event.impl.EventListenerDescriptor; import org.nuxeo.ecm.core.event.impl.EventListenerList; import org.nuxeo.runtime.api.Framework; /** * Monitoring MBean implementation. * * @author Thierry Delprat */ public class EventMonitoring implements EventMonitoringMBean { private static EventServiceAdmin getAdminService() { return Framework.getLocalService(EventServiceAdmin.class); } @Override public boolean isAsyncHandlersTrackingEnabled() { return EventStatsHolder.isCollectAsyncHandlersExecTime(); } @Override public void setAsyncHandlersTrackingEnabled(boolean collectAsyncHandlersExecTime) { EventStatsHolder.setCollectAsyncHandlersExecTime(collectAsyncHandlersExecTime); } @Override public boolean isSyncHandlersTrackingEnabled() { return EventStatsHolder.isCollectSyncHandlersExecTime(); } @Override public void setSyncHandlersTrackingEnabled(boolean collectSyncHandlersExecTime) { EventStatsHolder.setCollectSyncHandlersExecTime(collectSyncHandlersExecTime); } @Override public int getActiveThreadsCount() { return getAdminService().getActiveThreadsCount(); } @Override public int getEventsInQueueCount() { return getAdminService().getEventsInQueueCount(); } @Override public String getAsyncHandlersExecTime() { return EventStatsHolder.getAsyncHandlersExecTime(); } @Override public String getSyncHandlersExecTime() { return EventStatsHolder.getSyncHandlersExecTime(); } @Override public boolean isBlockAsyncHandlers() { return getAdminService().isBlockAsyncHandlers(); } @Override public void setBlockAsyncHandlers(boolean blockAsyncHandlers) { getAdminService().setBlockAsyncHandlers(blockAsyncHandlers); } @Override public boolean isBlockSyncPostCommitHandlers() { return getAdminService().isBlockSyncPostCommitHandlers(); } @Override public void setBlockSyncPostCommitHandlers(boolean blockSyncPostCommitHandlers) { getAdminService().setBlockSyncPostCommitHandlers(blockSyncPostCommitHandlers); } @Override public void resetHandlersExecTime() { EventStatsHolder.resetHandlersExecTime(); } @Override public String getListenersConfig() { EventListenerList listenerList = getAdminService().getListenerList(); StringBuilder sb = new StringBuilder(); for (EventListenerDescriptor desc : listenerList.getAsyncPostCommitListenersDescriptors()) { sb.append(desc.getName()); sb.append(" - Async PostCommit - "); sb.append(desc.isEnabled()); sb.append("\n"); } for (EventListenerDescriptor desc : listenerList.getSyncPostCommitListenersDescriptors()) { sb.append(desc.getName()); sb.append(" - Sync PostCommit - "); sb.append(desc.isEnabled()); sb.append("\n"); } for (EventListenerDescriptor desc : listenerList.getInlineListenersDescriptors()) { sb.append(desc.getName()); sb.append(" - Synchronous - "); sb.append(desc.isEnabled()); sb.append("\n"); } return sb.toString(); } @Override public void setListenerEnabledFlag(String listenerName, boolean enabled) { getAdminService().setListenerEnabledFlag(listenerName, enabled); } @Override public boolean isBulkModeEnabled() { return getAdminService().isBulkModeEnabled(); } @Override public void setBulkModeEnabled(boolean bulkModeEnabled) { getAdminService().setBulkModeEnabled(bulkModeEnabled); } }