diff --git a/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4DriverAdapter.java b/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4DriverAdapter.java index 1c05084f9..fedc9eaac 100644 --- a/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4DriverAdapter.java +++ b/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4DriverAdapter.java @@ -3,18 +3,21 @@ package io.nosqlbench.adapter.cqld4; 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.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; import java.util.function.Function; -@Service(value = DriverAdapter.class,selector = "cqld4") -public class Cqld4DriverAdapter extends BaseDriverAdapter { +@Service(value = DriverAdapter.class, selector = "cqld4") +public class Cqld4DriverAdapter extends BaseDriverAdapter { @Override public OpMapper getOpMapper() { - return new Cqld4OpMapper(getSpaceCache()); + DriverSpaceCache spaceCache = getSpaceCache(); + NBConfiguration config = getConfiguration(); + return new Cqld4OpMapper(config, spaceCache); } @Override @@ -24,7 +27,7 @@ public class Cqld4DriverAdapter extends BaseDriverAdapter { @Override public NBConfigModel getConfigModel() { - return ConfigModel.of(Cqld4DriverAdapter.class).asReadOnly(); + return Cqld4Space.getConfigModel(); } diff --git a/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4OpMapper.java b/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4OpMapper.java index 8a6648ca6..6a41c2742 100644 --- a/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4OpMapper.java +++ b/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4OpMapper.java @@ -9,31 +9,34 @@ import io.nosqlbench.engine.api.activityimpl.OpDispenser; import io.nosqlbench.engine.api.activityimpl.OpMapper; import io.nosqlbench.engine.api.activityimpl.uniform.DriverSpaceCache; import io.nosqlbench.engine.api.templating.ParsedCommand; +import io.nosqlbench.nb.api.config.standard.NBConfiguration; public class Cqld4OpMapper implements OpMapper { private final DriverSpaceCache cache; + private final NBConfiguration cfg; - public Cqld4OpMapper(DriverSpaceCache cache) { + public Cqld4OpMapper(NBConfiguration config, DriverSpaceCache cache) { + this.cfg = config; this.cache = cache; } public OpDispenser apply(ParsedCommand cmd) { Cqld4Space cqld4Space = cache.get(cmd.getStaticConfigOr("space", "default")); - boolean prepared = cmd.getStaticConfigOr("prepared",true); - boolean batch = cmd.getStaticConfigOr("boolean",false); + boolean prepared = cmd.getStaticConfigOr("prepared", true); + boolean batch = cmd.getStaticConfigOr("boolean", false); CqlSession session = cqld4Space.getSession(); if (prepared && batch) { - return new CqlD4PreparedBatchOpDispenser(session,cmd); + return new CqlD4PreparedBatchOpDispenser(session, cmd, cfg); } else if (prepared) { - return new Cqld4PreparedOpDispenser(session,cmd); + return new Cqld4PreparedOpDispenser(session, cmd, cfg); } else if (batch) { - return new Cqld4BatchStatementDispenser(session, cmd); + return new Cqld4BatchStatementDispenser(session, cmd, cfg); } else { - return new Cqld4SimpleCqlStatementDispenser(session,cmd); + return new Cqld4SimpleCqlStatementDispenser(session, cmd, cfg); } } diff --git a/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4Space.java b/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4Space.java index 37180e90a..cf27f8d89 100644 --- a/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4Space.java +++ b/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/Cqld4Space.java @@ -4,7 +4,7 @@ import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.CqlSessionBuilder; import com.datastax.oss.driver.api.core.config.DriverConfigLoader; import io.nosqlbench.engine.api.util.SSLKsFactory; -import io.nosqlbench.nb.api.config.standard.NBConfiguration; +import io.nosqlbench.nb.api.config.standard.*; import io.nosqlbench.nb.api.content.Content; import io.nosqlbench.nb.api.content.NBIO; import io.nosqlbench.nb.api.errors.BasicError; @@ -28,7 +28,7 @@ public class Cqld4Space { CqlSession session; public Cqld4Space(Cqld4DriverAdapter adapter) { - session = createSession(adapter.getConfigReader()); + session = createSession(adapter.getConfiguration()); } private CqlSession createSession(NBConfiguration cfg) { @@ -38,7 +38,7 @@ public class Cqld4Space { int port = cfg.getOrDefault("port",9042); - Optional scb = cfg.getOptional(String.class,"secureconnectbundle"); + Optional scb = cfg.getOptional(String.class,"secureconnectbundle","scb"); scb.flatMap(s -> NBIO.all().name(s).first().map(Content::getInputStream)) .map(builder::withCloudSecureConnectBundle); @@ -174,12 +174,14 @@ public class Cqld4Space { } private Optional resolveConfigLoader(NBConfiguration cfg) { - String driverconfig = cfg.param("driverconfig", String.class); + Optional maybeDriverConfig = cfg.getOptional("driverconfig"); - if (driverconfig.isEmpty()) { + if (maybeDriverConfig.isEmpty()) { return Optional.empty(); } + String driverconfig = maybeDriverConfig.get(); + List loaderspecs = splitConfigLoaders(driverconfig); LinkedList loaders = new LinkedList<>(); @@ -234,4 +236,15 @@ public class Cqld4Space { public CqlSession getSession() { return session; } + + public static NBConfigModel getConfigModel() { + return ConfigModel.of(Cqld4DriverAdapter.class) + .add(Param.optional("localdc")) + .add(Param.optional("secureconnectbundle")) + .add(Param.optional("hosts")) + .add(Param.optional("driverconfig")) + .asReadOnly(); + + } + } diff --git a/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/CqlD4PreparedBatchOpDispenser.java b/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/CqlD4PreparedBatchOpDispenser.java index a87bdc67a..da8bd8086 100644 --- a/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/CqlD4PreparedBatchOpDispenser.java +++ b/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/CqlD4PreparedBatchOpDispenser.java @@ -4,15 +4,18 @@ import com.datastax.oss.driver.api.core.CqlSession; import io.nosqlbench.adapter.cqld4.Cqld4Op; import io.nosqlbench.engine.api.activityimpl.OpDispenser; import io.nosqlbench.engine.api.templating.ParsedCommand; +import io.nosqlbench.nb.api.config.standard.NBConfiguration; public class CqlD4PreparedBatchOpDispenser implements OpDispenser { private final CqlSession session; private final ParsedCommand cmd; + private final NBConfiguration cfg; - public CqlD4PreparedBatchOpDispenser(CqlSession session, ParsedCommand cmd) { + public CqlD4PreparedBatchOpDispenser(CqlSession session, ParsedCommand cmd, NBConfiguration cfg) { this.session = session; this.cmd = cmd; + this.cfg = cfg; } @Override diff --git a/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4BatchStatementDispenser.java b/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4BatchStatementDispenser.java index 134a4dd07..983421cb7 100644 --- a/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4BatchStatementDispenser.java +++ b/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4BatchStatementDispenser.java @@ -4,14 +4,17 @@ import com.datastax.oss.driver.api.core.CqlSession; import io.nosqlbench.adapter.cqld4.Cqld4Op; import io.nosqlbench.engine.api.activityimpl.OpDispenser; import io.nosqlbench.engine.api.templating.ParsedCommand; +import io.nosqlbench.nb.api.config.standard.NBConfiguration; public class Cqld4BatchStatementDispenser implements OpDispenser { private final CqlSession session; private final ParsedCommand cmd; + private final NBConfiguration cfg; - public Cqld4BatchStatementDispenser(CqlSession session, ParsedCommand cmd) { + public Cqld4BatchStatementDispenser(CqlSession session, ParsedCommand cmd, NBConfiguration cfg) { this.session = session; this.cmd = cmd; + this.cfg = cfg; } @Override diff --git a/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4PreparedOpDispenser.java b/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4PreparedOpDispenser.java index b584500f7..b5b9953c9 100644 --- a/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4PreparedOpDispenser.java +++ b/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4PreparedOpDispenser.java @@ -4,16 +4,18 @@ import com.datastax.oss.driver.api.core.CqlSession; import io.nosqlbench.adapter.cqld4.Cqld4Op; import io.nosqlbench.engine.api.activityimpl.OpDispenser; import io.nosqlbench.engine.api.templating.ParsedCommand; +import io.nosqlbench.nb.api.config.standard.NBConfiguration; public class Cqld4PreparedOpDispenser implements OpDispenser { private final CqlSession session; private final ParsedCommand cmd; + private final NBConfiguration cfg; - public Cqld4PreparedOpDispenser(CqlSession session, ParsedCommand cmd) { - + public Cqld4PreparedOpDispenser(CqlSession session, ParsedCommand cmd, NBConfiguration cfg) { this.session = session; this.cmd = cmd; + this.cfg = cfg; } @Override diff --git a/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4SimpleCqlStatementDispenser.java b/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4SimpleCqlStatementDispenser.java index d4d21c4a7..bc92c370d 100644 --- a/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4SimpleCqlStatementDispenser.java +++ b/adapter-cqld4/src/main/java/io/nosqlbench/adapter/cqld4/opdispensers/Cqld4SimpleCqlStatementDispenser.java @@ -6,15 +6,18 @@ import io.nosqlbench.adapter.cqld4.Cqld4Op; import io.nosqlbench.adapter.cqld4.optypes.Cqld4SimpleCqlStatement; import io.nosqlbench.engine.api.activityimpl.OpDispenser; import io.nosqlbench.engine.api.templating.ParsedCommand; +import io.nosqlbench.nb.api.config.standard.NBConfiguration; public class Cqld4SimpleCqlStatementDispenser implements OpDispenser { private final CqlSession session; private final ParsedCommand cmd; + private final NBConfiguration cfg; - public Cqld4SimpleCqlStatementDispenser(CqlSession session, ParsedCommand cmd) { + public Cqld4SimpleCqlStatementDispenser(CqlSession session, ParsedCommand cmd, NBConfiguration cfg) { this.session = session; this.cmd = cmd; + this.cfg = cfg; } @Override