diff --git a/driver-stdout/src/main/java/io/nosqlbench/adapters/stdout/StdoutDriverAdapter.java b/driver-stdout/src/main/java/io/nosqlbench/adapters/stdout/StdoutDriverAdapter.java index 9c5a9b829..94f6793ea 100644 --- a/driver-stdout/src/main/java/io/nosqlbench/adapters/stdout/StdoutDriverAdapter.java +++ b/driver-stdout/src/main/java/io/nosqlbench/adapters/stdout/StdoutDriverAdapter.java @@ -3,8 +3,11 @@ package io.nosqlbench.adapters.stdout; import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate; import io.nosqlbench.engine.api.activityimpl.OpMapper; import io.nosqlbench.engine.api.activityimpl.uniform.BaseDriverAdapter; +import io.nosqlbench.engine.api.activityimpl.uniform.DriverAdapter; import io.nosqlbench.engine.api.activityimpl.uniform.DriverSpaceCache; import io.nosqlbench.engine.api.templating.OpTemplateSupplier; +import io.nosqlbench.nb.annotations.Service; +import io.nosqlbench.nb.api.config.standard.ConfigModel; import io.nosqlbench.nb.api.config.standard.NBConfigModel; import io.nosqlbench.nb.api.config.standard.NBConfiguration; @@ -12,6 +15,7 @@ import java.util.List; import java.util.Optional; import java.util.function.Function; +@Service(value = DriverAdapter.class, selector = "stdoutadapter") public class StdoutDriverAdapter extends BaseDriverAdapter implements OpTemplateSupplier { @Override @@ -27,7 +31,9 @@ public class StdoutDriverAdapter extends BaseDriverAdapter { private final LongFunction ctxfunc; - private final LongFunction objectFunction; + private final LongFunction outFunction; public StdoutOpDispenser(ParsedOp cmd, LongFunction ctxfunc) { super(cmd); - objectFunction = cmd.getAsRequiredFunction("stmt", Object.class); this.ctxfunc = ctxfunc; + LongFunction objectFunction = cmd.getAsRequiredFunction("stmt", Object.class); + LongFunction stringfunc = l -> objectFunction.apply(l).toString(); + cmd.enhance(stringfunc,"suffix",String.class,(a,b) -> a+b); + this.outFunction = stringfunc; } @Override public StdoutOp apply(long value) { StdoutSpace ctx = ctxfunc.apply(value); - String output = objectFunction.apply(value).toString(); + String output = outFunction.apply(value); return new StdoutOp(ctx,output); } }