001/*******************************************************************************
002 * Copyright (c) 2013 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 *******************************************************************************/
009package org.nuxeo.ecm.core.management.works;
010
011import org.nuxeo.ecm.core.work.api.WorkManager;
012import org.nuxeo.runtime.api.Framework;
013import org.nuxeo.runtime.management.AbstractResourceFactory;
014import org.nuxeo.runtime.management.ObjectNameFactory;
015
016public class WorksMonitoringFactory extends AbstractResourceFactory {
017
018    protected WorkManager manager() {
019        return Framework.getLocalService(WorkManager.class);
020    }
021
022    @Override
023    public void registerResources() {
024        WorkManager mgr = manager();
025        service.registerResource("works",
026                ObjectNameFactory.formatQualifiedName("org.nuxeo", "service", WorkManager.class.getName()),
027                WorksMonitoringMBean.class, new WorksMonitoring());
028        for (String eachId : mgr.getWorkQueueIds()) {
029            service.registerResource(
030                    eachId,
031                    ObjectNameFactory.formatQualifiedName("org.nuxeo", "service", WorkManager.class.getName() + "."
032                            + eachId), WorksQueueMonitoringMBean.class, new WorksQueueMonitoring(eachId));
033        }
034    }
035
036}