blob: 66a35e7478acb3062b5eb4521a5b82c264212376 [file] [log] [blame]
package org.apache.stratos.autoscaler.applications.topic;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.messaging.broker.publish.EventPublisher;
import org.apache.stratos.messaging.broker.publish.EventPublisherPool;
import org.apache.stratos.messaging.domain.applications.*;
import org.apache.stratos.messaging.event.Event;
import org.apache.stratos.messaging.event.applications.*;
import org.apache.stratos.messaging.event.topology.ApplicationUndeployedEvent;
import org.apache.stratos.messaging.message.receiver.applications.ApplicationManager;
import org.apache.stratos.messaging.util.Constants;
import java.util.Set;
/**
* This will publish application related events to application status topic.
*/
public class ApplicationsEventPublisher {
private static final Log log = LogFactory.getLog(ApplicationsEventPublisher.class);
public static void sendCompleteApplicationsEvent (Applications completeApplications) {
publishEvent(new CompleteApplicationsEvent(completeApplications));
}
public static void sendApplicationCreatedEvent (Application application) {
publishEvent(new ApplicationCreatedEvent(application));
}
public static void sendApplicationUndeployedEvent (String appId, Set<ClusterDataHolder> clusterData) {
publishEvent(new ApplicationUndeployedEvent(appId, clusterData));
}
public static void sendGroupCreatedEvent(String appId, String groupId) {
if (log.isInfoEnabled()) {
log.info("Publishing Group created event for [application]: " + appId +
" [group]: " + groupId);
}
GroupResetEvent groupCreatedEvent =
new GroupResetEvent(appId, groupId);
publishEvent(groupCreatedEvent);
}
public static void sendGroupActivatedEvent(String appId, String groupId) {
if (log.isInfoEnabled()) {
log.info("Publishing Group activated event for [application]: " + appId +
" [group]: " + groupId);
}
GroupActivatedEvent groupActivatedEvent =
new GroupActivatedEvent(appId, groupId);
publishEvent(groupActivatedEvent);
}
public static void sendGroupInActivateEvent(String appId, String groupId) {
if (log.isInfoEnabled()) {
log.info("Publishing Group in-activate event for [application]: " + appId +
" [group]: " + groupId);
}
AppStatusGroupInactivateEvent appStatusGroupInactivateEvent = new
AppStatusGroupInactivateEvent(appId, groupId);
publishEvent(appStatusGroupInactivateEvent);
}
public static void sendGroupTerminatingEvent(String appId, String groupId) {
if (log.isInfoEnabled()) {
log.info("Publishing Group terminating event for [application]: " + appId +
" [group]: " + groupId);
}
GroupTerminatingEvent groupInTerminatingEvent =
new GroupTerminatingEvent(appId, groupId);
publishEvent(groupInTerminatingEvent);
}
public static void sendGroupTerminatedEvent(String appId, String groupId) {
if (log.isInfoEnabled()) {
log.info("Publishing Group terminated event for [application]: " + appId +
" [group]: " + groupId);
}
GroupTerminatedEvent groupInTerminatedEvent =
new GroupTerminatedEvent(appId, groupId);
publishEvent(groupInTerminatedEvent);
}
public static void sendApplicationActivatedEvent(String appId) {
if (log.isInfoEnabled()) {
log.info("Publishing Application activated event for [application]: " + appId);
}
ApplicationActivatedEvent applicationActivatedEvent =
new ApplicationActivatedEvent(appId);
publishEvent(applicationActivatedEvent);
}
public static void sendApplicationInactivatedEvent(String appId) {
if (log.isInfoEnabled()) {
log.info("Publishing Application In-activated event for [application]: " + appId);
}
ApplicationInactivatedEvent applicationInActivatedEvent =
new ApplicationInactivatedEvent(appId);
publishEvent(applicationInActivatedEvent);
}
public static void sendApplicationTerminatingEvent(String appId) {
if (log.isInfoEnabled()) {
log.info("Publishing Application terminated event for [application]: " + appId);
}
ApplicationTerminatingEvent applicationTerminatingEvent =
new ApplicationTerminatingEvent(appId);
publishEvent(applicationTerminatingEvent);
}
public static void sendApplicationTerminatedEvent(String appId, Set<ClusterDataHolder> clusterData) {
if (log.isInfoEnabled()) {
log.info("Publishing Application terminated event for [application]: " + appId);
}
ApplicationTerminatedEvent applicationTerminatedEvent =
new ApplicationTerminatedEvent(appId, clusterData);
publishEvent(applicationTerminatedEvent);
}
public static void publishEvent(Event event) {
//publishing events to application status topic
EventPublisher eventPublisher = EventPublisherPool.getPublisher(Constants.APPLICATIONS_TOPIC);
eventPublisher.publish(event);
}
}