private final String defaultAppConfigFileName;
private final String appConfigBindingClassName;
private final String appConfigListKeyValue;
+ private final UpdateStrategy appConfigUpdateStrategy;
private final AtomicBoolean readingInitialAppConfig = new AtomicBoolean(true);
private volatile BindingContext bindingContext;
public DataStoreAppConfigMetadata(@Nonnull String id, @Nonnull String appConfigBindingClassName,
@Nullable String appConfigListKeyValue, @Nullable String defaultAppConfigFileName,
- @Nullable Element defaultAppConfigElement) {
+ @Nonnull UpdateStrategy updateStrategyValue, @Nullable Element defaultAppConfigElement) {
super(id);
this.defaultAppConfigElement = defaultAppConfigElement;
this.defaultAppConfigFileName = defaultAppConfigFileName;
this.appConfigBindingClassName = appConfigBindingClassName;
this.appConfigListKeyValue = appConfigListKeyValue;
+ this.appConfigUpdateStrategy = updateStrategyValue;
}
@Override
if(!setInitialAppConfig(Optional.of(newAppConfig)) &&
!Objects.equals(currentAppConfig, newAppConfig)) {
- LOG.debug("App config was updated - scheduling container for restart");
+ LOG.debug("App config was updated");
- restartContainer();
+ if(appConfigUpdateStrategy == UpdateStrategy.RELOAD) {
+ restartContainer();
+ }
}
} else if(type == ModificationType.DELETE) {
- LOG.debug("App config was deleted - scheduling container for restart");
+ LOG.debug("App config was deleted");
- restartContainer();
+ if(appConfigUpdateStrategy == UpdateStrategy.RELOAD) {
+ restartContainer();
+ }
}
}
}