package com.intrbiz.bergamot.queue; import com.intrbiz.bergamot.model.message.health.HealthCheckMessage; import com.intrbiz.bergamot.queue.impl.RabbitHealthCheckQueue; import com.intrbiz.queue.Consumer; import com.intrbiz.queue.DeliveryHandler; import com.intrbiz.queue.Producer; import com.intrbiz.queue.QueueAdapter; import com.intrbiz.queue.QueueManager; import com.intrbiz.queue.name.NullKey; /** * Publish and consume internal health check events * */ public abstract class HealthCheckQueue extends QueueAdapter { static { RabbitHealthCheckQueue.register(); } public static HealthCheckQueue open() { return QueueManager.getInstance().queueAdapter(HealthCheckQueue.class); } // control events public abstract Producer<HealthCheckMessage> publishHealthCheckEvents(); public abstract Producer<HealthCheckMessage> publishHealthCheckControlEvents(); public abstract Consumer<HealthCheckMessage, NullKey> consumeHealthCheckEvents(DeliveryHandler<HealthCheckMessage> handler); public abstract Consumer<HealthCheckMessage, NullKey> consumeHealthCheckControlEvents(DeliveryHandler<HealthCheckMessage> handler); }