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
013package org.nuxeo.ecm.core.management.statuses;
014
015import java.io.Serializable;
016import java.util.HashMap;
017import java.util.Map;
018
019import org.nuxeo.ecm.core.api.SimplePrincipal;
020import org.nuxeo.ecm.core.api.security.SecurityConstants;
021import org.nuxeo.ecm.core.event.Event;
022import org.nuxeo.ecm.core.event.EventContext;
023import org.nuxeo.ecm.core.event.EventProducer;
024import org.nuxeo.ecm.core.event.impl.InlineEventContext;
025import org.nuxeo.ecm.core.management.api.AdministrativeStatusManager;
026import org.nuxeo.runtime.api.Framework;
027
028public class CoreEventNotifier implements Notifier {
029
030    @Override
031    public void notifyEvent(String eventName, String instanceIdentifier, String serviceIdentifier) {
032
033        Map<String, Serializable> eventProperties = new HashMap<String, Serializable>();
034
035        eventProperties.put("category", AdministrativeStatusManager.ADMINISTRATIVE_EVENT_CATEGORY);
036        eventProperties.put(AdministrativeStatusManager.ADMINISTRATIVE_EVENT_INSTANCE, instanceIdentifier);
037        eventProperties.put(AdministrativeStatusManager.ADMINISTRATIVE_EVENT_SERVICE, serviceIdentifier);
038
039        EventContext ctx = new InlineEventContext(new SimplePrincipal(SecurityConstants.SYSTEM_USERNAME),
040                eventProperties);
041
042        Event event = ctx.newEvent(eventName);
043        Framework.getService(EventProducer.class).fireEvent(event);
044    }
045
046}