001/* 002 * Copyright (c) 2006-2011 Nuxeo SA (http://nuxeo.com/) and others. 003 * 004 * All rights reserved. This program and the accompanying materials 005 * are made available under the terms of the Eclipse Public License v1.0 006 * which accompanies this distribution, and is available at 007 * http://www.eclipse.org/legal/epl-v10.html 008 * 009 * Contributors: 010 * Nuxeo - initial API and implementation 011 * 012 * $Id$ 013 */ 014package org.nuxeo.ecm.core.management.events; 015 016import org.nuxeo.ecm.core.event.EventServiceAdmin; 017import org.nuxeo.ecm.core.event.impl.EventListenerDescriptor; 018import org.nuxeo.ecm.core.event.impl.EventListenerList; 019import org.nuxeo.runtime.api.Framework; 020 021/** 022 * Monitoring MBean implementation. 023 * 024 * @author Thierry Delprat 025 */ 026public class EventMonitoring implements EventMonitoringMBean { 027 028 private static EventServiceAdmin getAdminService() { 029 return Framework.getLocalService(EventServiceAdmin.class); 030 } 031 032 @Override 033 public boolean isAsyncHandlersTrackingEnabled() { 034 return EventStatsHolder.isCollectAsyncHandlersExecTime(); 035 } 036 037 @Override 038 public void setAsyncHandlersTrackingEnabled(boolean collectAsyncHandlersExecTime) { 039 EventStatsHolder.setCollectAsyncHandlersExecTime(collectAsyncHandlersExecTime); 040 } 041 042 @Override 043 public boolean isSyncHandlersTrackingEnabled() { 044 return EventStatsHolder.isCollectSyncHandlersExecTime(); 045 } 046 047 @Override 048 public void setSyncHandlersTrackingEnabled(boolean collectSyncHandlersExecTime) { 049 EventStatsHolder.setCollectSyncHandlersExecTime(collectSyncHandlersExecTime); 050 } 051 052 @Override 053 public int getActiveThreadsCount() { 054 return getAdminService().getActiveThreadsCount(); 055 } 056 057 @Override 058 public int getEventsInQueueCount() { 059 return getAdminService().getEventsInQueueCount(); 060 } 061 062 @Override 063 public String getAsyncHandlersExecTime() { 064 return EventStatsHolder.getAsyncHandlersExecTime(); 065 } 066 067 @Override 068 public String getSyncHandlersExecTime() { 069 return EventStatsHolder.getSyncHandlersExecTime(); 070 } 071 072 @Override 073 public boolean isBlockAsyncHandlers() { 074 return getAdminService().isBlockAsyncHandlers(); 075 } 076 077 @Override 078 public void setBlockAsyncHandlers(boolean blockAsyncHandlers) { 079 getAdminService().setBlockAsyncHandlers(blockAsyncHandlers); 080 } 081 082 @Override 083 public boolean isBlockSyncPostCommitHandlers() { 084 return getAdminService().isBlockSyncPostCommitHandlers(); 085 } 086 087 @Override 088 public void setBlockSyncPostCommitHandlers(boolean blockSyncPostCommitHandlers) { 089 getAdminService().setBlockSyncPostCommitHandlers(blockSyncPostCommitHandlers); 090 } 091 092 @Override 093 public void resetHandlersExecTime() { 094 EventStatsHolder.resetHandlersExecTime(); 095 } 096 097 @Override 098 public String getListenersConfig() { 099 100 EventListenerList listenerList = getAdminService().getListenerList(); 101 StringBuilder sb = new StringBuilder(); 102 for (EventListenerDescriptor desc : listenerList.getAsyncPostCommitListenersDescriptors()) { 103 sb.append(desc.getName()); 104 sb.append(" - Async PostCommit - "); 105 sb.append(desc.isEnabled()); 106 sb.append("\n"); 107 } 108 for (EventListenerDescriptor desc : listenerList.getSyncPostCommitListenersDescriptors()) { 109 sb.append(desc.getName()); 110 sb.append(" - Sync PostCommit - "); 111 sb.append(desc.isEnabled()); 112 sb.append("\n"); 113 } 114 for (EventListenerDescriptor desc : listenerList.getInlineListenersDescriptors()) { 115 sb.append(desc.getName()); 116 sb.append(" - Synchronous - "); 117 sb.append(desc.isEnabled()); 118 sb.append("\n"); 119 } 120 return sb.toString(); 121 } 122 123 @Override 124 public void setListenerEnabledFlag(String listenerName, boolean enabled) { 125 getAdminService().setListenerEnabledFlag(listenerName, enabled); 126 } 127 128 @Override 129 public boolean isBulkModeEnabled() { 130 return getAdminService().isBulkModeEnabled(); 131 } 132 133 @Override 134 public void setBulkModeEnabled(boolean bulkModeEnabled) { 135 getAdminService().setBulkModeEnabled(bulkModeEnabled); 136 } 137 138}