use of io.nosqlbench.nb.api.config.standard.NBConfigurable in project nosqlbench by nosqlbench.
the class ActivityTypeLoader method getDriverAdapter.
private Optional<ActivityType> getDriverAdapter(String activityTypeName, ActivityDef activityDef) {
Optional<DriverAdapter> oda = DRIVERADAPTER_SPI_FINDER.getOptionally(activityTypeName);
if (oda.isPresent()) {
DriverAdapter<?, ?> driverAdapter = oda.get();
activityDef.getParams().remove("driver");
if (driverAdapter instanceof NBConfigurable) {
NBConfigModel cfgModel = ((NBConfigurable) driverAdapter).getConfigModel();
Optional<String> op_yaml_loc = activityDef.getParams().getOptionalString("yaml", "workload");
if (op_yaml_loc.isPresent()) {
Map<String, Object> disposable = new LinkedHashMap<>(activityDef.getParams());
StmtsDocList workload = StatementsLoader.loadPath(logger, op_yaml_loc.get(), disposable, "activities");
cfgModel = cfgModel.add(workload.getConfigModel());
}
NBConfiguration cfg = cfgModel.apply(activityDef.getParams());
((NBConfigurable) driverAdapter).applyConfig(cfg);
}
ActivityType activityType = new StandardActivityType<>(driverAdapter, activityDef);
return Optional.of(activityType);
} else {
return Optional.empty();
}
}
use of io.nosqlbench.nb.api.config.standard.NBConfigurable in project nosqlbench by nosqlbench.
the class Annotators method init.
/**
* Initialize the active annotators. This method must be called before any others.
*
* @param annotatorsConfig A (possibly empty) set of annotator configurations, in any form
* supported by {@link ConfigLoader}
*/
public static synchronized void init(String annotatorsConfig) {
ConfigLoader loader = new ConfigLoader();
annotators = new ArrayList<>();
LinkedHashMap<String, ServiceLoader.Provider<Annotator>> providers = getProviders();
List<Map> configs = loader.load(annotatorsConfig, Map.class);
if (configs != null) {
for (Map cmap : configs) {
Object typeObj = cmap.remove("type");
String typename = typeObj.toString();
ServiceLoader.Provider<Annotator> annotatorProvider = providers.get(typename);
if (annotatorProvider == null) {
throw new RuntimeException("Annotation provider with selector '" + typename + "' was not found.");
}
Annotator annotator = annotatorProvider.get();
if (annotator instanceof NBMapConfigurable) {
NBMapConfigurable NBMapConfigurable = (NBMapConfigurable) annotator;
NBMapConfigurable.applyConfig(cmap);
}
if (annotator instanceof NBConfigurable) {
NBConfigurable nbConfigurable = (NBConfigurable) annotator;
NBConfiguration cfg = nbConfigurable.getConfigModel().apply(cmap);
nbConfigurable.applyConfig(cfg);
}
annotators.add(annotator);
}
}
logger.debug("Initialized " + Annotators.annotators.size() + " annotators, since the configuration is empty.");
}
Aggregations