diff --git a/driver-cql-shaded/src/main/java/io/nosqlbench/activitytype/cql/core/CqlActivity.java b/driver-cql-shaded/src/main/java/io/nosqlbench/activitytype/cql/core/CqlActivity.java index 0ec919b2f..e4f40e8ad 100644 --- a/driver-cql-shaded/src/main/java/io/nosqlbench/activitytype/cql/core/CqlActivity.java +++ b/driver-cql-shaded/src/main/java/io/nosqlbench/activitytype/cql/core/CqlActivity.java @@ -28,7 +28,6 @@ import io.nosqlbench.engine.api.activityapi.core.ActivityDefObserver; import io.nosqlbench.engine.api.activityapi.planning.OpSequence; import io.nosqlbench.engine.api.activityapi.planning.SequencePlanner; import io.nosqlbench.engine.api.activityapi.planning.SequencerType; -import io.nosqlbench.engine.api.activityconfig.ParsedStmtOp; import io.nosqlbench.engine.api.activityconfig.StatementsLoader; import io.nosqlbench.engine.api.activityconfig.rawyaml.RawStmtDef; import io.nosqlbench.engine.api.activityconfig.rawyaml.RawStmtsBlock; @@ -50,6 +49,7 @@ import io.nosqlbench.engine.api.util.Unit; import io.nosqlbench.nb.api.config.params.Element; import io.nosqlbench.nb.api.errors.BasicError; import io.nosqlbench.virtdata.core.bindings.Bindings; +import io.nosqlbench.virtdata.core.templates.ParsedTemplate; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -182,7 +182,7 @@ public class CqlActivity extends SimpleActivity implements Activity, ActivityDef for (OpTemplate stmtDef : stmts) { - ParsedStmtOp parsed = stmtDef.getParsed(CqlActivity::canonicalizeBindings).orElseThrow(); + ParsedTemplate parsed = stmtDef.getParsed(CqlActivity::canonicalizeBindings).orElseThrow(); boolean prepared = stmtDef.getParamOrDefault("prepared", true); boolean parameterized = stmtDef.getParamOrDefault("parameterized", false); long ratio = stmtDef.getParamOrDefault("ratio", 1); @@ -235,7 +235,7 @@ public class CqlActivity extends SimpleActivity implements Activity, ActivityDef .orElse(CqlBinderTypes.DEFAULT); template = new ReadyCQLStatementTemplate(fconfig, binderType, getSession(), prepare, ratio, - parsed.getName()); + stmtDef.getName()); } else { SimpleStatement simpleStatement = new SimpleStatement(stmtForDriver); cl.ifPresent((conlvl) -> { @@ -251,10 +251,10 @@ public class CqlActivity extends SimpleActivity implements Activity, ActivityDef simpleStatement.setIdempotent(i); }); template = new ReadyCQLStatementTemplate(fconfig, getSession(), simpleStatement, ratio, - parsed.getName(), parameterized, null, null); + stmtDef.getName(), parameterized, null, null); } - Element params = parsed.getParamReader(); + Element params = stmtDef.getParamReader(); params.get("start-timers", String.class) .map(s -> s.split(", *")) @@ -334,13 +334,13 @@ public class CqlActivity extends SimpleActivity implements Activity, ActivityDef if (instrument) { - logger.info("Adding per-statement success and error and resultset-size timers to statement '" + parsed.getName() + "'"); + logger.info("Adding per-statement success and error and resultset-size timers to statement '" + stmtDef.getName() + "'"); template.instrument(this); psummary.append(" instrument=>true"); } if (!logresultcsv.isEmpty()) { - logger.info("Adding per-statement result CSV logging to statement '" + parsed.getName() + "'"); + logger.info("Adding per-statement result CSV logging to statement '" + stmtDef.getName() + "'"); template.logResultCsv(this, logresultcsv); psummary.append(" logresultcsv=>").append(logresultcsv); } diff --git a/driver-cqld3-shaded/src/main/java/io/nosqlbench/activitytype/cql/core/CqlActivity.java b/driver-cqld3-shaded/src/main/java/io/nosqlbench/activitytype/cql/core/CqlActivity.java index abc642de7..fc950cd59 100644 --- a/driver-cqld3-shaded/src/main/java/io/nosqlbench/activitytype/cql/core/CqlActivity.java +++ b/driver-cqld3-shaded/src/main/java/io/nosqlbench/activitytype/cql/core/CqlActivity.java @@ -28,7 +28,6 @@ import io.nosqlbench.engine.api.activityapi.core.ActivityDefObserver; import io.nosqlbench.engine.api.activityapi.planning.OpSequence; import io.nosqlbench.engine.api.activityapi.planning.SequencePlanner; import io.nosqlbench.engine.api.activityapi.planning.SequencerType; -import io.nosqlbench.engine.api.activityconfig.ParsedStmtOp; import io.nosqlbench.engine.api.activityconfig.StatementsLoader; import io.nosqlbench.engine.api.activityconfig.rawyaml.RawStmtDef; import io.nosqlbench.engine.api.activityconfig.rawyaml.RawStmtsBlock; @@ -50,6 +49,7 @@ import io.nosqlbench.engine.api.util.Unit; import io.nosqlbench.nb.api.config.params.Element; import io.nosqlbench.nb.api.errors.BasicError; import io.nosqlbench.virtdata.core.bindings.Bindings; +import io.nosqlbench.virtdata.core.templates.ParsedTemplate; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -181,25 +181,25 @@ public class CqlActivity extends SimpleActivity implements Activity, ActivityDef Pattern questionPattern = Pattern.compile("\\?(?\\w+)"); - for (OpTemplate stmtDef : stmts) { + for (OpTemplate optpl : stmts) { - ParsedStmtOp parsed = stmtDef.getParsed(CqlActivity::canonicalizeBindings).orElseThrow(); - boolean prepared = stmtDef.getParamOrDefault("prepared", true); - boolean parameterized = stmtDef.getParamOrDefault("parameterized", false); - long ratio = stmtDef.getParamOrDefault("ratio", 1); + ParsedTemplate parsed = optpl.getParsed(CqlActivity::canonicalizeBindings).orElseThrow(); + boolean prepared = optpl.getParamOrDefault("prepared", true); + boolean parameterized = optpl.getParamOrDefault("parameterized", false); + long ratio = optpl.getParamOrDefault("ratio", 1); //parsed.applyStmtTransform(this::canonicalizeBindings); - Optional cl = stmtDef.getOptionalStringParam("cl", String.class).map(ConsistencyLevel::valueOf); - Optional serial_cl = stmtDef.getOptionalStringParam("serial_cl").map(ConsistencyLevel::valueOf); - Optional idempotent = stmtDef.getOptionalStringParam("idempotent", Boolean.class); + Optional cl = optpl.getOptionalStringParam("cl", String.class).map(ConsistencyLevel::valueOf); + Optional serial_cl = optpl.getOptionalStringParam("serial_cl").map(ConsistencyLevel::valueOf); + Optional idempotent = optpl.getOptionalStringParam("idempotent", Boolean.class); StringBuilder psummary = new StringBuilder(); - boolean instrument = stmtDef.getOptionalStringParam("instrument", Boolean.class) + boolean instrument = optpl.getOptionalStringParam("instrument", Boolean.class) .or(() -> getParams().getOptionalBoolean("instrument")) .orElse(false); - String logresultcsv = stmtDef.getParamOrDefault("logresultcsv", ""); + String logresultcsv = optpl.getParamOrDefault("logresultcsv", ""); String logresultcsv_act = getParams().getOptionalString("logresultcsv").orElse(""); @@ -207,7 +207,7 @@ public class CqlActivity extends SimpleActivity implements Activity, ActivityDef throw new RuntimeException("At the activity level, only logresultcsv=true is allowed, no other values."); } logresultcsv = !logresultcsv.isEmpty() ? logresultcsv : logresultcsv_act; - logresultcsv = !logresultcsv.equalsIgnoreCase("true") ? logresultcsv : stmtDef.getName() + "--results.csv"; + logresultcsv = !logresultcsv.equalsIgnoreCase("true") ? logresultcsv : optpl.getName() + "--results.csv"; logger.debug("readying statement[" + (prepared ? "" : "un") + "prepared]:" + parsed.getStmt()); @@ -231,12 +231,12 @@ public class CqlActivity extends SimpleActivity implements Activity, ActivityDef prepare.setIdempotent(i); }); - CqlBinderTypes binderType = stmtDef.getOptionalStringParam("binder") + CqlBinderTypes binderType = optpl.getOptionalStringParam("binder") .map(CqlBinderTypes::valueOf) .orElse(CqlBinderTypes.DEFAULT); template = new ReadyCQLStatementTemplate(fconfig, binderType, getSession(), prepare, ratio, - parsed.getName()); + optpl.getName()); } else { SimpleStatement simpleStatement = new SimpleStatement(stmtForDriver); cl.ifPresent((conlvl) -> { @@ -252,10 +252,10 @@ public class CqlActivity extends SimpleActivity implements Activity, ActivityDef simpleStatement.setIdempotent(i); }); template = new ReadyCQLStatementTemplate(fconfig, getSession(), simpleStatement, ratio, - parsed.getName(), parameterized, null, null); + optpl.getName(), parameterized, null, null); } - Element params = parsed.getParamReader(); + Element params = optpl.getParamReader(); params.get("start-timers", String.class) .map(s -> s.split(", *")) @@ -279,7 +279,7 @@ public class CqlActivity extends SimpleActivity implements Activity, ActivityDef }); - stmtDef.getOptionalStringParam("save") + optpl.getOptionalStringParam("save") .map(s -> s.split("[,: ]")) .map(Save::new) .ifPresent(save_op -> { @@ -287,7 +287,7 @@ public class CqlActivity extends SimpleActivity implements Activity, ActivityDef template.addRowCycleOperators(save_op); }); - stmtDef.getOptionalStringParam("rsoperators") + optpl.getOptionalStringParam("rsoperators") .map(s -> s.split(",")) .stream().flatMap(Arrays::stream) .map(ResultSetCycleOperators::newOperator) @@ -296,7 +296,7 @@ public class CqlActivity extends SimpleActivity implements Activity, ActivityDef template.addResultSetOperators(rso); }); - stmtDef.getOptionalStringParam("rowoperators") + optpl.getOptionalStringParam("rowoperators") .map(s -> s.split(",")) .stream().flatMap(Arrays::stream) .map(RowCycleOperators::newOperator) @@ -311,19 +311,19 @@ public class CqlActivity extends SimpleActivity implements Activity, ActivityDef // a verify param if (activityDef.getParams().containsKey("verify") || - stmtDef.getParams().containsKey("verify") || - stmtDef.getParams().containsKey("verify-fields")) { + optpl.getParams().containsKey("verify") || + optpl.getParams().containsKey("verify-fields")) { - String verify = stmtDef.getOptionalStringParam("verify") - .or(() -> stmtDef.getOptionalStringParam("verify-fields")) + String verify = optpl.getOptionalStringParam("verify") + .or(() -> optpl.getOptionalStringParam("verify-fields")) .or(() -> activityDef.getParams().getOptionalString("verify")) .orElse("*"); - DiffType diffType = stmtDef.getOptionalStringParam("compare") + DiffType diffType = optpl.getOptionalStringParam("compare") .or(() -> activityDef.getParams().getOptionalString("compare")) .map(DiffType::valueOf).orElse(DiffType.reffields); - Bindings expected = VerifierBuilder.getExpectedValuesTemplate(stmtDef).resolveBindings(); + Bindings expected = VerifierBuilder.getExpectedValuesTemplate(optpl).resolveBindings(); VerificationMetrics vmetrics = getVerificationMetrics(); RowDifferencer.ThreadLocalWrapper differencer = new RowDifferencer.ThreadLocalWrapper(vmetrics, expected, diffType); @@ -335,21 +335,21 @@ public class CqlActivity extends SimpleActivity implements Activity, ActivityDef if (instrument) { - logger.info("Adding per-statement success and error and resultset-size timers to statement '" + parsed.getName() + "'"); + logger.info("Adding per-statement success and error and resultset-size timers to statement '" + optpl.getName() + "'"); template.instrument(this); psummary.append(" instrument=>true"); } if (!logresultcsv.isEmpty()) { - logger.info("Adding per-statement result CSV logging to statement '" + parsed.getName() + "'"); + logger.info("Adding per-statement result CSV logging to statement '" + optpl.getName() + "'"); template.logResultCsv(this, logresultcsv); psummary.append(" logresultcsv=>").append(logresultcsv); } - template.getContextualBindings().getBindingsTemplate().addFieldBindings(stmtDef.getParsed().orElseThrow().getBindPoints()); + template.getContextualBindings().getBindingsTemplate().addFieldBindings(optpl.getParsed().orElseThrow().getBindPoints()); if (psummary.length() > 0) { - logger.info("statement named '" + stmtDef.getName() + "' has custom settings:" + psummary); + logger.info("statement named '" + optpl.getName() + "' has custom settings:" + psummary); } planner.addOp(template.resolve(), ratio); @@ -392,14 +392,14 @@ public class CqlActivity extends SimpleActivity implements Activity, ActivityDef logger.warn("DEPRECATED-FORMAT: Loaded yaml " + yaml_loc + " with compatibility mode. " + "This will be deprecated in a future release."); logger.warn("DEPRECATED-FORMAT: Please refer to " + - "http://docs.engineblock.io/user-guide/standard_yaml/ for more details."); + "http://docs.nosqlbench.io/ for more details."); } else { throw new BasicError("DEPRECATED-FORMAT: Loaded yaml " + yaml_loc + " with compatibility mode. " + "This has been deprecated for a long time now. You should use the modern yaml format, which is easy" + "to convert to. If you want to ignore this and kick the issue" + " down the road to someone else, then you can add ignore_important_warnings=true. " + "Please refer to " + - "http://docs.engineblock.io/user-guide/standard_yaml/ for more details."); + "http://docs.nosqlbench.io/ for more details."); } break; case "2": @@ -416,7 +416,7 @@ public class CqlActivity extends SimpleActivity implements Activity, ActivityDef logger.warn("DEPRECATED-FORMAT: Loaded yaml " + yaml_loc + " with compatibility mode. This will be deprecated in a future release."); logger.warn("DEPRECATED-FORMAT: Please refer to " + - "http://docs.engineblock.io/user-guide/standard_yaml/ for more details."); + "http://docs.nosqlbench.io/ for more details."); } catch (Exception compatError) { logger.warn("Tried to load yaml in compatibility mode, " + "since it failed to load with the standard format, " + diff --git a/driver-dsegraph-shaded/src/main/java/com/datastax/ebdrivers/dsegraph/GraphActivity.java b/driver-dsegraph-shaded/src/main/java/com/datastax/ebdrivers/dsegraph/GraphActivity.java index 49c682987..76b8e7d4c 100644 --- a/driver-dsegraph-shaded/src/main/java/com/datastax/ebdrivers/dsegraph/GraphActivity.java +++ b/driver-dsegraph-shaded/src/main/java/com/datastax/ebdrivers/dsegraph/GraphActivity.java @@ -14,7 +14,6 @@ import io.nosqlbench.engine.api.activityapi.core.ActivityDefObserver; import io.nosqlbench.engine.api.activityapi.planning.OpSequence; import io.nosqlbench.engine.api.activityapi.planning.SequencePlanner; import io.nosqlbench.engine.api.activityapi.planning.SequencerType; -import io.nosqlbench.engine.api.activityconfig.ParsedStmtOp; import io.nosqlbench.engine.api.activityconfig.StatementsLoader; import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate; import io.nosqlbench.engine.api.activityconfig.yaml.StmtsDocList; @@ -26,6 +25,7 @@ import io.nosqlbench.engine.api.metrics.ExceptionMeterMetrics; import io.nosqlbench.engine.api.scripting.GraalJsEvaluator; import io.nosqlbench.engine.api.templating.StrInterpolator; import io.nosqlbench.engine.api.util.TagFilter; +import io.nosqlbench.virtdata.core.templates.ParsedTemplate; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -102,7 +102,7 @@ public class GraphActivity extends SimpleActivity implements ActivityDefObserver for (OpTemplate stmtDef : stmts) { - ParsedStmtOp parsed = stmtDef.getParsed().orElseThrow(); + ParsedTemplate parsed = stmtDef.getParsed().orElseThrow(); ReadyGraphStatementTemplate readyGraphStatement; long ratio = Long.valueOf(stmtDef.getParams().getOrDefault("ratio", "1").toString()); diff --git a/driver-mongodb/src/main/java/io/nosqlbench/driver/mongodb/MongoActivity.java b/driver-mongodb/src/main/java/io/nosqlbench/driver/mongodb/MongoActivity.java index 9eb5c3e43..4d05e8c22 100644 --- a/driver-mongodb/src/main/java/io/nosqlbench/driver/mongodb/MongoActivity.java +++ b/driver-mongodb/src/main/java/io/nosqlbench/driver/mongodb/MongoActivity.java @@ -11,7 +11,6 @@ import io.nosqlbench.engine.api.activityapi.core.ActivityDefObserver; import io.nosqlbench.engine.api.activityapi.planning.OpSequence; import io.nosqlbench.engine.api.activityapi.planning.SequencePlanner; import io.nosqlbench.engine.api.activityapi.planning.SequencerType; -import io.nosqlbench.engine.api.activityconfig.ParsedStmtOp; import io.nosqlbench.engine.api.activityconfig.StatementsLoader; import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate; import io.nosqlbench.engine.api.activityconfig.yaml.StmtsDocList; @@ -20,6 +19,7 @@ import io.nosqlbench.engine.api.activityimpl.SimpleActivity; import io.nosqlbench.engine.api.metrics.ActivityMetrics; import io.nosqlbench.engine.api.templating.StrInterpolator; import io.nosqlbench.engine.api.util.TagFilter; +import io.nosqlbench.virtdata.core.templates.ParsedTemplate; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.bson.UuidRepresentation; @@ -117,7 +117,7 @@ public class MongoActivity extends SimpleActivity implements ActivityDefObserver logger.error("No statements found for this activity"); } else { for (OpTemplate stmt : stmts) { - ParsedStmtOp parsed = stmt.getParsed().orElseThrow(); + ParsedTemplate parsed = stmt.getParsed().orElseThrow(); String statement = parsed.getPositionalStatement(Function.identity()); Objects.requireNonNull(statement); diff --git a/driver-mongodb/src/test/java/io/nosqlbench/driver/mongodb/ReadyMongoStatementTest.java b/driver-mongodb/src/test/java/io/nosqlbench/driver/mongodb/ReadyMongoStatementTest.java index da03045b4..671b9339c 100644 --- a/driver-mongodb/src/test/java/io/nosqlbench/driver/mongodb/ReadyMongoStatementTest.java +++ b/driver-mongodb/src/test/java/io/nosqlbench/driver/mongodb/ReadyMongoStatementTest.java @@ -1,12 +1,12 @@ package io.nosqlbench.driver.mongodb; -import io.nosqlbench.engine.api.activityconfig.ParsedStmtOp; import io.nosqlbench.engine.api.activityconfig.StatementsLoader; import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate; import io.nosqlbench.engine.api.activityconfig.yaml.StmtsDocList; import io.nosqlbench.engine.api.activityimpl.ActivityDef; import io.nosqlbench.engine.api.templating.StrInterpolator; import io.nosqlbench.virtdata.core.templates.BindPoint; +import io.nosqlbench.virtdata.core.templates.ParsedTemplate; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.bson.conversions.Bson; @@ -43,7 +43,7 @@ public class ReadyMongoStatementTest { List stmts = stmtsDocList.getStmts(tagfilter); assertThat(stmts).hasSize(1); for (OpTemplate stmt : stmts) { - ParsedStmtOp parsed = stmt.getParsed().orElseThrow(); + ParsedTemplate parsed = stmt.getParsed().orElseThrow(); assertThat(parsed.getBindPoints()).hasSize(2); BindPoint seqKey = new BindPoint("seq_key", "Mod(1000000L); ToInt()"); @@ -66,7 +66,7 @@ public class ReadyMongoStatementTest { List stmts = stmtsDocList.getStmts(tagfilter); assertThat(stmts).hasSize(1); for (OpTemplate stmt : stmts) { - ParsedStmtOp parsed = stmt.getParsed().orElseThrow(); + ParsedTemplate parsed = stmt.getParsed().orElseThrow(); assertThat(parsed.getBindPoints()).hasSize(1); BindPoint rwKey = new BindPoint("rw_key", "Uniform(0,1000000)->long; ToInt()"); @@ -88,7 +88,7 @@ public class ReadyMongoStatementTest { List stmts = stmtsDocList.getStmts(tagfilter); assertThat(stmts).hasSize(1); for (OpTemplate stmt : stmts) { - ParsedStmtOp parsed = stmt.getParsed().orElseThrow(); + ParsedTemplate parsed = stmt.getParsed().orElseThrow(); assertThat(parsed.getBindPoints()).hasSize(2); BindPoint rwKey = new BindPoint("rw_key", "Uniform(0,1000000)->long; ToInt()"); diff --git a/driver-stdout/src/main/java/io/nosqlbench/activitytype/stdout/StdoutActivity.java b/driver-stdout/src/main/java/io/nosqlbench/activitytype/stdout/StdoutActivity.java index 355871fce..49b1e3a4e 100644 --- a/driver-stdout/src/main/java/io/nosqlbench/activitytype/stdout/StdoutActivity.java +++ b/driver-stdout/src/main/java/io/nosqlbench/activitytype/stdout/StdoutActivity.java @@ -23,7 +23,6 @@ import io.nosqlbench.engine.api.activityapi.core.ActivityDefObserver; import io.nosqlbench.engine.api.activityapi.planning.OpSequence; import io.nosqlbench.engine.api.activityapi.planning.SequencePlanner; import io.nosqlbench.engine.api.activityapi.planning.SequencerType; -import io.nosqlbench.engine.api.activityconfig.ParsedStmtOp; import io.nosqlbench.engine.api.activityconfig.StatementsLoader; import io.nosqlbench.engine.api.activityconfig.yaml.OpTemplate; import io.nosqlbench.engine.api.activityconfig.yaml.StmtsDocList; @@ -34,10 +33,11 @@ import io.nosqlbench.engine.api.metrics.ActivityMetrics; import io.nosqlbench.engine.api.metrics.ExceptionMeterMetrics; import io.nosqlbench.engine.api.templating.StrInterpolator; import io.nosqlbench.virtdata.core.bindings.BindingsTemplate; +import io.nosqlbench.virtdata.core.templates.ParsedTemplate; import io.nosqlbench.virtdata.core.templates.StringBindings; import io.nosqlbench.virtdata.core.templates.StringBindingsTemplate; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.io.FileNotFoundException; import java.io.PrintWriter; @@ -180,7 +180,7 @@ public class StdoutActivity extends SimpleActivity implements ActivityDefObserve } } else if (stmts.size() > 0) { for (OpTemplate stmt : stmts) { - ParsedStmtOp parsed = stmt.getParsed().orElseThrow(); + ParsedTemplate parsed = stmt.getParsed().orElseThrow(); BindingsTemplate bt = new BindingsTemplate(parsed.getBindPoints()); String statement = parsed.getPositionalStatement(Function.identity()); Objects.requireNonNull(statement); diff --git a/engine-api/src/main/java/io/nosqlbench/engine/api/activityconfig/yaml/OpTemplate.java b/engine-api/src/main/java/io/nosqlbench/engine/api/activityconfig/yaml/OpTemplate.java index 952b457a4..ffc252d04 100644 --- a/engine-api/src/main/java/io/nosqlbench/engine/api/activityconfig/yaml/OpTemplate.java +++ b/engine-api/src/main/java/io/nosqlbench/engine/api/activityconfig/yaml/OpTemplate.java @@ -4,6 +4,9 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import io.nosqlbench.engine.api.activityconfig.ParsedStmtOp; import io.nosqlbench.engine.api.util.Tagged; +import io.nosqlbench.nb.api.config.params.Element; +import io.nosqlbench.nb.api.config.params.NBParams; +import io.nosqlbench.virtdata.core.templates.ParsedTemplate; import java.util.LinkedHashMap; import java.util.Map; @@ -252,7 +255,7 @@ public abstract class OpTemplate implements Tagged { * * @return a new {@link ParsedStmtOp} */ - public Optional getParsed(Function... rewriters) { + public Optional getParsed(Function... rewriters) { Optional os = getStmt(); return os.map(s -> { String result = s; @@ -260,7 +263,11 @@ public abstract class OpTemplate implements Tagged { result = rewriter.apply(result); } return result; - }).map(s -> new ParsedStmtOp(this)); + }).map(s -> new ParsedTemplate(s,getBindings())); + } + + public Optional getParsed() { + return getStmt().map(s -> new ParsedTemplate(s, getBindings())); } public abstract Optional> getOp(); @@ -307,4 +314,7 @@ public abstract class OpTemplate implements Tagged { }); } + public Element getParamReader() { + return NBParams.one(getParams()); + } } diff --git a/engine-api/src/test/java/io/nosqlbench/engine/api/activityconfig/yaml/ParsedStmtOpTest.java b/engine-api/src/test/java/io/nosqlbench/engine/api/activityconfig/yaml/ParsedStmtOpTest.java index 9b9a39c61..db830881c 100644 --- a/engine-api/src/test/java/io/nosqlbench/engine/api/activityconfig/yaml/ParsedStmtOpTest.java +++ b/engine-api/src/test/java/io/nosqlbench/engine/api/activityconfig/yaml/ParsedStmtOpTest.java @@ -18,10 +18,10 @@ package io.nosqlbench.engine.api.activityconfig.yaml; import io.nosqlbench.engine.api.activityconfig.StatementsLoader; -import io.nosqlbench.engine.api.activityconfig.ParsedStmtOp; -import org.junit.jupiter.api.BeforeAll; -import org.apache.logging.log4j.Logger; +import io.nosqlbench.virtdata.core.templates.ParsedTemplate; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; @@ -39,14 +39,14 @@ public class ParsedStmtOpTest { public void testBasicParser() { StmtsBlock block0 = doclist.getStmtDocs().get(0).getBlocks().get(0); OpTemplate stmtDef0 = block0.getOps().get(0); - ParsedStmtOp parsed0 = stmtDef0.getParsed().orElseThrow(); - assertThat(parsed0.getMissingBindings()).containsExactly("delta"); + ParsedTemplate parsed0 = stmtDef0.getParsed().orElseThrow(); + assertThat(parsed0.getMissing()).containsExactly("delta"); assertThat(parsed0.hasError()).isTrue(); StmtsBlock block1 = doclist.getStmtDocs().get(0).getBlocks().get(1); OpTemplate stmtDef1 = block1.getOps().get(0); - ParsedStmtOp parsed1 = stmtDef1.getParsed().orElseThrow(); - assertThat(parsed1.getMissingBindings()).containsExactly(); + ParsedTemplate parsed1 = stmtDef1.getParsed().orElseThrow(); + assertThat(parsed1.getMissing()).containsExactly(); assertThat(parsed1.hasError()).isFalse(); } @@ -55,13 +55,13 @@ public class ParsedStmtOpTest { StmtsBlock block2 = doclist.getStmtDocs().get(0).getBlocks().get(2); OpTemplate stmtDef0 = block2.getOps().get(0); - ParsedStmtOp parsed0 = stmtDef0.getParsed().orElseThrow(); - assertThat(parsed0.getMissingBindings()).isEmpty(); + ParsedTemplate parsed0 = stmtDef0.getParsed().orElseThrow(); + assertThat(parsed0.getMissing()).isEmpty(); assertThat(parsed0.hasError()).isFalse(); OpTemplate stmtDef1 = block2.getOps().get(1); - ParsedStmtOp parsed1 = stmtDef1.getParsed().orElseThrow(); - assertThat(parsed1.getMissingBindings()).isEmpty(); + ParsedTemplate parsed1 = stmtDef1.getParsed().orElseThrow(); + assertThat(parsed1.getMissing()).isEmpty(); assertThat(parsed1.hasError()).isFalse(); }