private static ConcurrentOpenHashMap<String, ConfigField> prepareDynamicConfigurationMap() { ConcurrentOpenHashMap<String, ConfigField> dynamicConfigurationMap = new ConcurrentOpenHashMap<>(); for (Field field : ServiceConfiguration.class.getDeclaredFields()) { if (field != null && field.isAnnotationPresent(FieldContext.class)) { field.setAccessible(true); if (((FieldContext) field.getAnnotation(FieldContext.class)).dynamic()) { dynamicConfigurationMap.put(field.getName(), new ConfigField(field)); } } } return dynamicConfigurationMap; }
log.debug("Validating configuration field '{}' = '{}'", field.getName(), value); boolean isRequired = ((FieldContext) field.getAnnotation(FieldContext.class)).required(); long minValue = ((FieldContext) field.getAnnotation(FieldContext.class)).minValue(); long maxValue = ((FieldContext) field.getAnnotation(FieldContext.class)).maxValue(); if (isRequired && isEmpty(value)) { error.append(String.format("Required %s is null,", field.getName()));
@FieldContext(required = true) private String clusterName;
@FieldContext(required = true) private String zookeeperServers; @FieldContext(required = false) private String globalZookeeperServers; @FieldContext(required = false) private String configurationStoreServers; private int brokerServicePort = 6650; @FieldContext(required = true) private String clusterName; @FieldContext(dynamic = true) private boolean failureDomainsEnabled = false; @FieldContext(dynamic = true) private long brokerShutdownTimeoutMs = 60000; @FieldContext(dynamic = true) private boolean clientLibraryVersionCheckEnabled = false; @FieldContext(dynamic = true) private int dispatchThrottlingRatePerTopicInMsg = 0; @FieldContext(dynamic = true) private long dispatchThrottlingRatePerTopicInByte = 0; @FieldContext(dynamic = true)