/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.runtime.core.context.notification;
import org.mule.runtime.core.api.MuleContext;
import org.mule.runtime.core.api.context.notification.SynchronousServerEvent;
import org.mule.runtime.core.api.context.notification.ServerNotification;
/**
* <code>MuleContextNotification</code> is fired when an event such as the mule context starting occurs. The payload of this event
* will always be a reference to the muleContext.
*/
public class MuleContextNotification extends ServerNotification implements SynchronousServerEvent {
/**
* Serial version
*/
private static final long serialVersionUID = -3246036188011581121L;
public static final int CONTEXT_INITIALISING = CONTEXT_EVENT_ACTION_START_RANGE + 1;
public static final int CONTEXT_INITIALISED = CONTEXT_EVENT_ACTION_START_RANGE + 2;
public static final int CONTEXT_STARTING = CONTEXT_EVENT_ACTION_START_RANGE + 3;
public static final int CONTEXT_STARTED = CONTEXT_EVENT_ACTION_START_RANGE + 4;
public static final int CONTEXT_STOPPING = CONTEXT_EVENT_ACTION_START_RANGE + 5;
public static final int CONTEXT_STOPPED = CONTEXT_EVENT_ACTION_START_RANGE + 6;
public static final int CONTEXT_DISPOSING = CONTEXT_EVENT_ACTION_START_RANGE + 7;
public static final int CONTEXT_DISPOSED = CONTEXT_EVENT_ACTION_START_RANGE + 8;
static {
registerAction("mule context initialising", CONTEXT_INITIALISING);
registerAction("mule context initialised", CONTEXT_INITIALISED);
registerAction("mule context starting", CONTEXT_STARTING);
registerAction("mule context started", CONTEXT_STARTED);
registerAction("mule context stopping", CONTEXT_STOPPING);
registerAction("mule context stopped", CONTEXT_STOPPED);
registerAction("mule context disposing", CONTEXT_DISPOSING);
registerAction("mule context disposed", CONTEXT_DISPOSED);
}
private String clusterId;
private String domain;
private transient MuleContext muleContext;
public MuleContextNotification(MuleContext context, String action) {
this(context, getActionId(action));
}
public MuleContextNotification(MuleContext context, int action) {
super(context.getId(), action);
this.muleContext = context;
this.resourceIdentifier = context.getConfiguration().getId();
this.clusterId = context.getClusterId();
this.domain = context.getConfiguration().getDomainId();
}
public String getClusterId() {
return clusterId;
}
public String getDomain() {
return domain;
}
public MuleContext getMuleContext() {
return this.muleContext;
}
@Override
public String toString() {
return EVENT_NAME + "{" + "action=" + getActionName(action) + ", resourceId=" + resourceIdentifier + ", timestamp="
+ timestamp + "}";
}
}