package com.rayo.server; import java.util.concurrent.atomic.AtomicLong; import org.springframework.jmx.export.annotation.ManagedAttribute; import org.springframework.jmx.export.annotation.ManagedResource; import com.rayo.server.jmx.MixerStatisticsMXBean; @ManagedResource(objectName="com.rayo:Type=MixerStatistics", description="Mixer Statistics") public class MixerStatistics implements MixerStatisticsMXBean { private AtomicLong totalMixers = new AtomicLong(0); private MixerRegistry mixerRegistry; public void mixerCreated() { totalMixers.incrementAndGet(); } @Override @ManagedAttribute(description="Active Mixers Count") public long getActiveMixersCount() { return mixerRegistry.getActiveMixers().size(); } @Override @ManagedAttribute(description="Total Mixers") public long getTotalMixers() { return totalMixers.longValue(); } public void setMixerRegistry(MixerRegistry mixerRegistry) { this.mixerRegistry = mixerRegistry; } }