package org.quartz.management; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import org.quartz.core.QuartzScheduler; import org.quartz.management.resource.SchedulerEntity; import org.quartz.management.service.EntityResourceFactory; import org.quartz.management.service.SamplerRepositoryService; import org.terracotta.management.resource.AgentEntity; public class DfltSamplerRepositoryService implements EntityResourceFactory, SamplerRepositoryService { private final Map<String, QuartzScheduler> cacheManagerSamplerRepo = new HashMap<String, QuartzScheduler>(); @Override public Collection<SchedulerEntity> createSchedulerEntities(Set<String> schedulerNames, Set<String> attributes) { Collection<SchedulerEntity> schedulerEntities = new ArrayList<SchedulerEntity>(); if (schedulerNames == null) { for (Entry<String, QuartzScheduler> scheduler : cacheManagerSamplerRepo.entrySet()) { SchedulerEntity schedulerEntity = new SchedulerEntity(); schedulerEntity.setName(scheduler.getKey()); schedulerEntity.setAgentId(AgentEntity.EMBEDDED_AGENT_ID); schedulerEntities.add(schedulerEntity); } } return schedulerEntities; } @Override public void register(QuartzScheduler quartzScheduler) { this.cacheManagerSamplerRepo.put(quartzScheduler.getSchedulerName(), quartzScheduler); } @Override public void unregister(QuartzScheduler quartzScheduler) { this.cacheManagerSamplerRepo.remove(quartzScheduler.getSchedulerName()); } @Override public boolean hasRegistered() { return !this.cacheManagerSamplerRepo.isEmpty(); } }