/** * Get ledger manager factory class. * * @return ledger manager factory class */ public Class<? extends LedgerManagerFactory> getLedgerManagerFactoryClass() throws ConfigurationException { return ReflectionUtils.getClass(this, LEDGER_MANAGER_FACTORY_CLASS, null, LedgerManagerFactory.class, DEFAULT_LOADER); }
/** * Get Ensemble Placement Policy Class. * * @return ensemble placement policy class. */ public Class<? extends EnsemblePlacementPolicy> getEnsemblePlacementPolicy() throws ConfigurationException { return ReflectionUtils.getClass(this, ENSEMBLE_PLACEMENT_POLICY, RackawareEnsemblePlacementPolicy.class, EnsemblePlacementPolicy.class, DEFAULT_LOADER); }
/** * Get ledger id formatter class. * * @return LedgerIdFormatter class */ public Class<? extends LedgerIdFormatter> getLedgerIdFormatterClass() throws ConfigurationException { return ReflectionUtils.getClass(this, LEDGERID_FORMATTER_CLASS, DEFAULT_LEDGERID_FORMATTER, LedgerIdFormatter.class, DEFAULT_LOADER); }
/** * Get entry formatter class. * * @return EntryFormatter class */ public Class<? extends EntryFormatter> getEntryFormatterClass() throws ConfigurationException { return ReflectionUtils.getClass(this, ENTRY_FORMATTER_CLASS, DEFAULT_ENTRY_FORMATTER, EntryFormatter.class, DEFAULT_LOADER); }
/** * Get the stats provider used by bookie. * * @return stats provider class * @throws ConfigurationException */ public Class<? extends StatsProvider> getStatsProviderClass() throws ConfigurationException { return ReflectionUtils.getClass(this, STATS_PROVIDER_CLASS, NullStatsProvider.class, StatsProvider.class, DEFAULT_LOADER); }
/** * Get feature provider class. * * @return feature provider class. * @throws ConfigurationException */ public Class<? extends FeatureProvider> getFeatureProviderClass() throws ConfigurationException { return ReflectionUtils.getClass(this, BKDL_FEATURE_PROVIDER_CLASS, DefaultFeatureProvider.class, FeatureProvider.class, FeatureProvider.class.getClassLoader()); }
/** * Get Registration Manager Class. * * @return registration manager class. * @deprecated since 4.7.0, in favor of using {@link #getMetadataServiceUri()} */ @Deprecated public Class<? extends RegistrationManager> getRegistrationManagerClass() throws ConfigurationException { return ReflectionUtils.getClass(this, REGISTRATION_MANAGER_CLASS, ZKRegistrationManager.class, RegistrationManager.class, DEFAULT_LOADER); }
/** * Get Registration Client Class. * * @return registration manager class. * @deprecated since 4.7.0 */ @Deprecated public Class<? extends RegistrationClient> getRegistrationClientClass() throws ConfigurationException { return ReflectionUtils.getClass(this, REGISTRATION_CLIENT_CLASS, ZKRegistrationClient.class, RegistrationClient.class, DEFAULT_LOADER); }
/** * Get the DNS resolver class for bookkeeper ensemble placement. * * <p>By default, {@link DNSResolverForRacks} will be used if * {@link #getRowAwareEnsemblePlacementEnabled()} is disabled and * {@link DNSResolverForRows} will be used if {@link #getRowAwareEnsemblePlacementEnabled()} * is enabled. * * @return dns resolver class for bookkeeper ensemble placement. * @throws ConfigurationException * @see #getRowAwareEnsemblePlacementEnabled() */ public Class<? extends DNSToSwitchMapping> getEnsemblePlacementDnsResolverClass() throws ConfigurationException { Class<? extends DNSToSwitchMapping> defaultResolverCls; if (getRowAwareEnsemblePlacementEnabled()) { defaultResolverCls = DNSResolverForRows.class; } else { defaultResolverCls = DNSResolverForRacks.class; } return ReflectionUtils.getClass(this, BKDL_ENSEMBLE_PLACEMENT_DNS_RESOLVER_CLASS, defaultResolverCls, DNSToSwitchMapping.class, defaultLoader); }
throws ConfigurationException { try { Class<?> theCls = getClass(conf, name, defaultValue, classLoader); if (null != theCls && !xface.isAssignableFrom(theCls)) { throw new ConfigurationException(theCls + " not " + xface.getName());
/** * Retrieve the setting from the configuration <tt>conf</tt> as a {@link Class} value. * * @param conf configuration to retrieve the setting * @return the value as a class */ @SuppressWarnings("unchecked") public Class<?> getClass(Configuration conf) { checkArgument(type() == Type.CLASS, "'" + name() + "' is NOT a CLASS setting"); try { Class<?> defaultClass = (Class<?>) defaultValue(); return ReflectionUtils.getClass(conf, name(), defaultClass, getClass().getClassLoader()); } catch (ConfigurationException e) { throw new IllegalArgumentException("Invalid class is set to setting '" + name() + "': ", e); } }
/** * Retrieve the setting from the configuration <tt>conf</tt> as a {@link Class} value. * * @param conf configuration to retrieve the setting * @return the value as a class */ @SuppressWarnings("unchecked") public <T> Class<? extends T> getClass(Configuration conf, Class<T> interfaceCls) { checkArgument(type() == Type.CLASS, "'" + name() + "' is NOT a CLASS setting"); try { Class<? extends T> defaultClass = (Class<? extends T>) defaultValue(); return ReflectionUtils.getClass(conf, name(), defaultClass, interfaceCls, getClass().getClassLoader()); } catch (ConfigurationException e) { throw new IllegalArgumentException("Invalid class is set to setting '" + name() + "': ", e); } }