/** * Unregister storage from producer registry. */ public void unregister() { ProducerRegistryFactory.getProducerRegistryInstance().unregisterProducer(this); }
@Override public List<IntervalInfo> getPresentIntervals() { if (_cachedIntervalInfos==null) createIntervalList(); return _cachedIntervalInfos; }
/** * Creates the ProducerRegistryImpl singleton instance. */ ProducerRegistryImpl() { reset(); }
@Override public void initialize() { globalRequestProcessorProducer = new GlobalRequestProcessorProducer(); ProducerRegistryFactory.getProducerRegistryInstance().registerProducer(globalRequestProcessorProducer); }
/** * Creates and sets up the ProducerRegistryAPIImpl. ProducerRegistryAPIImpl is meant to be a singleton. */ ProducerRegistryAPIImpl(){ _cachedProducerList = null; _cachedProducerMap = null; _cachedIntervalInfos = null; registry = ProducerRegistryFactory.getProducerRegistryInstance(); registry.addListener(this); intervalRegistry = IntervalRegistry.getInstance(); }
private SamplingEngine(){ producerRegistry = ProducerRegistryFactory.getProducerRegistryInstance(); }
@Override public IStatsProducer getProducer(String producerId) { if (_cachedProducerList==null) buildProducerCacheFromScratch(); synchronized(cacheLock){ ProducerReference ref = _cachedProducerMap.get(producerId); if (ref==null) throw new NoSuchProducerException(producerId); return ref.get(); } }
@Override public List<IStatsProducer> getProducers(IProducerFilter... filters) { if (_cachedProducerList==null) buildProducerCacheFromScratch(); List <IStatsProducer> ret = new ArrayList<>(); @SuppressWarnings("unchecked") List<ProducerReference> workCopy = (List<ProducerReference>)((ArrayList<ProducerReference>)_cachedProducerList).clone(); for (ProducerReference p : workCopy){ IStatsProducer pp = p.get(); boolean fit = true; if (pp==null) continue; for(IProducerFilter filter: filters) if (!filter.doesFit(pp)){ fit = false; break; } if(fit) ret.add(pp); } return ret; }
/** * Rebuilds the caches upon change. */ private void buildProducerCacheFromScratch(){ log.debug("rebuilding producer cache"); synchronized(cacheLock){ if (_cachedProducerList!=null) return; rebuildProducerCache(registry.getProducers()); } }
@Override public List<IStatsProducer> getAllProducersByCategory(String category) { return getProducers(new CategoryFilter(category)); }
@Override public List<IStatsProducer> getAllProducersBySubsystem(String subsystem) { return getProducers(new SubsystemFilter(subsystem)); }
@Override public List<IStatsProducer> getAllProducers() { if (_cachedProducerList==null) buildProducerCacheFromScratch(); List<IStatsProducer> ret = new ArrayList<>(); for (ProducerReference pr : _cachedProducerList){ if (pr.get()!=null) ret.add(pr.get()); } return ret; }
@Override public Collection<IStatsProducer> getProducers() { List<IStatsProducer> ret = new ArrayList<>(); for (ProducerReference r : getProducerReferences()) { if (r.get() != null) ret.add(r.get()); } return ret; }
@Override public void intervalUpdated(Interval aCaller) { IntervalInfo dummy = new IntervalInfo(aCaller); synchronized(intervalLock){ int index = _cachedIntervalInfos.indexOf(dummy); if (index==-1) return; _cachedIntervalInfos.get(index).update(); } }
public IProducerRegistryAPI createProducerRegistryAPIForUnitTest(){ return new ProducerRegistryAPIImpl(); }
@Override public String toString(){ return "PR->"+get(); } }
@Override public void intervalCreated(Interval aInterval) { synchronized(intervalLock){ _cachedIntervalInfos.add(new IntervalInfo(aInterval)); } }
@Override public void deInitialize() { ProducerRegistryFactory.getProducerRegistryInstance().unregisterProducer(globalRequestProcessorProducer); } }
public TieableRepository() { ProducerRegistryFactory.getProducerRegistryInstance().addListener(this); listeners.put("default", defaultListener); UpdateTriggerServiceFactory.getUpdateTriggerService().addUpdateable(this, 60); }
public static void resetForUnitTest() { ProducerRegistryAPIFactoryHolder.instance = new ProducerRegistryAPIImpl(); }