/** * Registers new (custom) backend factory within the Rrd4j framework. * * @param factory Factory to be registered */ public static void registerFactory(RrdBackendFactory factory) { String name = factory.getName(); if (!factories.containsKey(name)) { factories.put(name, factory); } else { throw new IllegalArgumentException("Backend factory '" + name + "' cannot be registered twice"); } }
/** * Registers new (custom) backend factory within the Rrd4j framework. * * @deprecated Uses active factory instead * @param factory Factory to be registered */ @Deprecated public static synchronized void registerFactory(RrdBackendFactory factory) { String name = factory.getName(); if (!Registry.factories.containsKey(name)) { Registry.factories.put(name, factory); } else { throw new IllegalArgumentException("Backend factory '" + name + "' cannot be registered twice"); } }
/** * Registers new (custom) backend factory within the Rrd4j framework and sets this * factory as the default. * * @deprecated Uses {@link #setActiveFactories(RrdBackendFactory...)} instead. * @param factory Factory to be registered and set as default */ @Deprecated public static synchronized void registerAndSetAsDefaultFactory(RrdBackendFactory factory) { registerFactory(factory); setDefaultFactory(factory.getName()); }
/** * Registers new (custom) backend factory within the Rrd4j framework and sets this * factory as the default. * * @param factory Factory to be registered and set as default */ public static void registerAndSetAsDefaultFactory(RrdBackendFactory factory) { registerFactory(factory); setDefaultFactory(factory.getName()); }
protected RrdBackendFactory() { RrdBackendAnnotation annotation = getClass().getAnnotation(RrdBackendAnnotation.class); if (annotation != null) { name = annotation.name(); cachingAllowed = annotation.cachingAllowed(); if (annotation.scheme() != null && ! annotation.scheme().isEmpty()) { scheme = annotation.scheme(); } else { scheme = name.toLowerCase(Locale.ENGLISH); } validateHeader = annotation.shouldValidateHeader(); } else { name = getName(); cachingAllowed = RrdBackendAnnotation.DEFAULT_CACHING_ALLOWED; scheme = getName().toLowerCase(Locale.ENGLISH); validateHeader = true; } }
public static final void prepare(String backend) { usepool = false; if(backend != null) { StoreOpener.backend = RrdBackendFactory.getFactory(backend); logger.trace(Util.delayedFormatString("Store backend set to %s", backend)); } else StoreOpener.backend = RrdBackendFactory.getDefaultFactory(); logger.debug(Util.delayedFormatString("Store backend used is %s", StoreOpener.backend.getName())); logger.debug(Util.delayedFormatString("use pool: %b", usepool)); }
@Override public void start() { super.start(); boolean filebasedbackend = backendFactory instanceof RrdFileBackendFactory; if(usepool || filebasedbackend) { try { String backendName = backendFactory.getName(); RrdBackendFactory.setDefaultFactory(backendName); logger.trace(Util.delayedFormatString("Store backend set to %s", backendName)); } catch (IllegalStateException e) { logger.warn("Trying to change default backend, a restart is needed"); } catch (Exception e) { throw new RuntimeException("Failed to configure RrdDbStoreFactory:" + e.getMessage(), e); } try { instance = RrdDbPool.getInstance(); instance.setCapacity(dbPoolSize); usepool = true; } catch (Exception e) { logger.warn("Trying to change rrd pool size, a restart is needed"); } } }
backendFactory = factoryClass.getConstructor().newInstance(); try { RrdBackendFactory.getFactory(backendFactory.getName()); } catch (IllegalArgumentException e) { RrdBackendFactory.registerFactory(backendFactory); backendName = backendFactory.getName(); } catch (Exception e) { throw new RuntimeException("Failed to configure RrdDbStoreFactory:" + e.getMessage(), e);
public static final void prepare(String backend, int dbPoolSize) { usepool = false; if(backend != null) { try { RrdBackendFactory.setDefaultFactory(backend); logger.trace(Util.delayedFormatString("Store backend set to %s", backend)); } catch (IllegalArgumentException e) { logger.fatal("Backend not configured: " + e.getMessage()); } catch (IllegalStateException e) { logger.warn("Trying to change default backend, a restart is needed"); } } StoreOpener.backend = RrdBackendFactory.getDefaultFactory(); if(StoreOpener.backend instanceof RrdFileBackendFactory && dbPoolSize != 0) { try { instance = RrdDbPool.getInstance(); instance.setCapacity(dbPoolSize); usepool = true; } catch (Exception e) { } } logger.debug(Util.delayedFormatString("Store backend used is %s", StoreOpener.backend.getName())); logger.debug(Util.delayedFormatString("use pool: %b %d", usepool, dbPoolSize)); }