refactoring complete and integration passing

This commit is contained in:
Jonathan Shook 2020-04-01 22:56:51 -05:00
commit 2e86a5b37d
714 changed files with 2455 additions and 2482 deletions

View File

@ -80,14 +80,14 @@
<!-- test only scope -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core-java8</artifactId>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>

View File

@ -4,7 +4,7 @@ package io.nosqlbench.activitytype.cql.core;
import io.nosqlbench.engine.api.activityapi.core.ActionDispenser;
import io.nosqlbench.engine.api.activityapi.core.ActivityType;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
import java.util.Optional;

View File

@ -1,9 +1,9 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.collectionclobs;
import io.nosqlbench.virtdata.annotations.Categories;
import io.nosqlbench.virtdata.annotations.Category;
import io.nosqlbench.virtdata.annotations.Example;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongFunction;
import java.util.function.LongToIntFunction;

View File

@ -1,9 +1,9 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.collections;
import io.nosqlbench.virtdata.annotations.Example;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.DataMapper;
import io.nosqlbench.virtdata.api.VirtData;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.core.bindings.DataMapper;
import io.nosqlbench.virtdata.core.bindings.VirtData;
import java.util.ArrayList;
import java.util.List;

View File

@ -1,7 +1,7 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.contrib;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.IntUnaryOperator;
@ -20,4 +20,4 @@ public class WrappedClustering implements IntUnaryOperator {
else
return (int) (integerMin - (sign * (longOperandTimes15 % integerMax)));
}
}
}

View File

@ -4,7 +4,7 @@ import com.datastax.driver.core.DataType;
import com.datastax.driver.core.LocalDate;
import com.datastax.driver.core.TupleValue;
import com.datastax.driver.core.UDTValue;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.math.BigDecimal;
import java.math.BigInteger;

View File

@ -1,7 +1,7 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.geometry;
import com.datastax.driver.dse.geometry.Point;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongFunction;
import java.util.function.LongToDoubleFunction;

View File

@ -2,7 +2,7 @@ package io.nosqlbench.activitytype.cql.datamappers.functions.geometry;
//import com.datastax.driver.dse.geometry.Point;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongFunction;
import java.util.function.LongToDoubleFunction;

View File

@ -1,6 +1,6 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.geometry;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongFunction;
import java.util.function.LongToDoubleFunction;

View File

@ -1,7 +1,7 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.geometry;
import com.datastax.driver.dse.geometry.Point;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongFunction;
import java.util.function.LongToDoubleFunction;

View File

@ -2,8 +2,8 @@ package io.nosqlbench.activitytype.cql.datamappers.functions.geometry;
import com.datastax.driver.dse.geometry.Point;
import com.datastax.driver.dse.geometry.Polygon;
import io.nosqlbench.virtdata.annotations.Example;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.library.curves4.discrete.long_int.Uniform;
import java.util.function.LongFunction;

View File

@ -1,8 +1,8 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.long_localdate;
import com.datastax.driver.core.LocalDate;
import io.nosqlbench.virtdata.annotations.Example;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongFunction;

View File

@ -1,7 +1,7 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.long_localdate;
import io.nosqlbench.virtdata.annotations.Example;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.time.Instant;
import java.time.LocalDate;
@ -18,7 +18,7 @@ import java.util.function.LongFunction;
* Short form ZoneId values like 'CST' can be used, although US Domestic names
* which specify the daylight savings hours are not supported. The full list of
* short Ids at @see <a href="https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/time/ZoneId.html#SHORT_IDS">JavaSE ZoneId Ids</a>
*
*
* Any timezone specifier may be used which can be read by {@link ZoneId#of(String)}
*/
@ThreadSafeMapper

View File

@ -1,7 +1,7 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.long_localdate;
import io.nosqlbench.virtdata.annotations.Example;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.time.Instant;
import java.time.LocalDateTime;

View File

@ -1,8 +1,8 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.long_localdate;
import com.datastax.driver.core.LocalDate;
import io.nosqlbench.virtdata.annotations.Example;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.function.LongFunction;
@ -15,7 +15,7 @@ public class LongToLocalDateDays implements LongFunction<LocalDate> {
public LocalDate apply(long value) {
return LocalDate.fromDaysSinceEpoch((int) value % Integer.MAX_VALUE);
}
@Example({"LongToLocalDateDays()","take the cycle number and turn it into a LocalDate based on days since 1970"})
public LongToLocalDateDays (){
}

View File

@ -19,9 +19,9 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.long_string;
import io.nosqlbench.virtdata.annotations.Example;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.VirtDataResources;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import io.nosqlbench.nb.api.pathutil.NBPaths;
import io.nosqlbench.virtdata.library.basics.shared.from_long.to_string.ModuloLineToString;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
@ -49,7 +49,7 @@ public class ModuloCSVLineToUUID implements LongFunction<UUID> {
@Example({"ModuloCSVLineToUUID('data/myfile.csv','lat')","load values for 'lat' from the CSV file myfile.csv."})
public ModuloCSVLineToUUID(String filename, String fieldname) {
this.filename = filename;
CSVParser csvp = VirtDataResources.readFileCSV(filename);
CSVParser csvp = NBPaths.readFileCSV(filename);
int column = csvp.getHeaderMap().get(fieldname);
for (CSVRecord strings : csvp) {
lines.add(strings.get(column));

View File

@ -1,9 +1,9 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.long_uuid;
import com.datastax.driver.core.utils.UUIDs;
import io.nosqlbench.virtdata.annotations.Categories;
import io.nosqlbench.virtdata.annotations.Category;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.UUID;
import java.util.function.LongFunction;

View File

@ -1,9 +1,9 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.long_uuid;
import com.datastax.driver.core.utils.UUIDs;
import io.nosqlbench.virtdata.annotations.Categories;
import io.nosqlbench.virtdata.annotations.Category;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.UUID;
import java.util.function.LongFunction;

View File

@ -1,6 +1,6 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.rainbow;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ThreadSafeMapper
public class TokenMapFileCycle extends TokenMapFileBaseFunction {

View File

@ -1,6 +1,6 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.rainbow;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ThreadSafeMapper
public class TokenMapFileNextCycle extends TokenMapFileBaseFunction {

View File

@ -1,6 +1,6 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.rainbow;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ThreadSafeMapper
public class TokenMapFileNextToken extends TokenMapFileBaseFunction {

View File

@ -1,6 +1,6 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.rainbow;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
@ThreadSafeMapper
public class TokenMapFileToken extends TokenMapFileBaseFunction {

View File

@ -1,6 +1,6 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.string_string;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import org.xerial.snappy.Snappy;
import java.io.IOException;

View File

@ -1,10 +1,10 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.to_daterange;
import com.datastax.driver.dse.search.DateRange;
import io.nosqlbench.virtdata.annotations.Categories;
import io.nosqlbench.virtdata.annotations.Category;
import io.nosqlbench.virtdata.annotations.Example;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.Date;
import java.util.function.Function;

View File

@ -1,10 +1,10 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.to_daterange;
import com.datastax.driver.dse.search.DateRange;
import io.nosqlbench.virtdata.annotations.Categories;
import io.nosqlbench.virtdata.annotations.Category;
import io.nosqlbench.virtdata.annotations.Example;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.Date;
import java.util.function.Function;

View File

@ -1,10 +1,10 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.to_daterange;
import com.datastax.driver.dse.search.DateRange;
import io.nosqlbench.virtdata.annotations.Categories;
import io.nosqlbench.virtdata.annotations.Category;
import io.nosqlbench.virtdata.annotations.Example;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.Date;
import java.util.function.Function;

View File

@ -1,10 +1,10 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.to_daterange;
import com.datastax.driver.dse.search.DateRange;
import io.nosqlbench.virtdata.annotations.Categories;
import io.nosqlbench.virtdata.annotations.Category;
import io.nosqlbench.virtdata.annotations.Example;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.util.Date;
import java.util.function.Function;

View File

@ -1,10 +1,10 @@
package io.nosqlbench.activitytype.cql.datamappers.functions.to_daterange;
import com.datastax.driver.dse.search.DateRange;
import io.nosqlbench.virtdata.annotations.Categories;
import io.nosqlbench.virtdata.annotations.Category;
import io.nosqlbench.virtdata.annotations.Example;
import io.nosqlbench.virtdata.annotations.ThreadSafeMapper;
import io.nosqlbench.virtdata.api.annotations.Categories;
import io.nosqlbench.virtdata.api.annotations.Category;
import io.nosqlbench.virtdata.api.annotations.Example;
import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
import java.text.ParseException;
import java.util.Date;

View File

@ -7,7 +7,7 @@ import io.nosqlbench.engine.api.activityapi.cyclelog.filters.ResultValueFilterTy
import io.nosqlbench.engine.api.activityapi.cyclelog.filters.tristate.EnumReadableMappingFilter;
import io.nosqlbench.engine.api.activityapi.cyclelog.filters.tristate.TristateFilter;
import io.nosqlbench.engine.api.util.ConfigTuples;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
import java.util.function.Predicate;

View File

@ -3,7 +3,7 @@ package io.nosqlbench.activitytype.cql.statements.binders;
import com.datastax.driver.core.PreparedStatement;
import com.datastax.driver.core.Session;
import com.datastax.driver.core.Statement;
import io.nosqlbench.virtdata.api.ValuesArrayBinder;
import io.nosqlbench.virtdata.core.bindings.ValuesArrayBinder;
public enum CqlBinderTypes {
direct_array,

View File

@ -2,7 +2,7 @@ package io.nosqlbench.activitytype.cql.statements.binders;
import com.datastax.driver.core.*;
import io.nosqlbench.activitytype.cql.core.CQLBindHelper;
import io.nosqlbench.virtdata.api.ValuesArrayBinder;
import io.nosqlbench.virtdata.core.bindings.ValuesArrayBinder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -2,7 +2,7 @@ package io.nosqlbench.activitytype.cql.statements.binders;
import com.datastax.driver.core.PreparedStatement;
import com.datastax.driver.core.Statement;
import io.nosqlbench.virtdata.api.ValuesArrayBinder;
import io.nosqlbench.virtdata.core.bindings.ValuesArrayBinder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -2,7 +2,7 @@ package io.nosqlbench.activitytype.cql.statements.binders;
import com.datastax.driver.core.SimpleStatement;
import com.datastax.driver.core.Statement;
import io.nosqlbench.virtdata.api.ValuesArrayBinder;
import io.nosqlbench.virtdata.core.bindings.ValuesArrayBinder;
/**
* This binder is not meant to be used with anything but DDL or statements

View File

@ -1,8 +1,8 @@
package io.nosqlbench.activitytype.cql.statements.binders;
import com.datastax.driver.core.*;
import io.nosqlbench.virtdata.api.VALUE;
import io.nosqlbench.virtdata.api.ValuesArrayBinder;
import io.nosqlbench.virtdata.api.bindings.VALUE;
import io.nosqlbench.virtdata.core.bindings.ValuesArrayBinder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -7,7 +7,7 @@ import com.datastax.driver.core.SimpleStatement;
import com.datastax.driver.core.Statement;
import io.nosqlbench.activitytype.cql.api.ResultSetCycleOperator;
import io.nosqlbench.activitytype.cql.api.RowCycleOperator;
import io.nosqlbench.virtdata.api.ContextualArrayBindings;
import io.nosqlbench.virtdata.core.bindings.ContextualArrayBindings;
import java.io.IOException;
import java.io.Writer;

View File

@ -12,9 +12,9 @@ import io.nosqlbench.activitytype.cql.core.CqlActivity;
import io.nosqlbench.activitytype.cql.statements.binders.CqlBinderTypes;
import io.nosqlbench.activitytype.cql.statements.binders.SimpleStatementValuesBinder;
import io.nosqlbench.engine.api.metrics.ActivityMetrics;
import io.nosqlbench.virtdata.api.BindingsTemplate;
import io.nosqlbench.virtdata.api.ContextualBindingsArrayTemplate;
import io.nosqlbench.virtdata.api.ValuesArrayBinder;
import io.nosqlbench.virtdata.core.bindings.BindingsTemplate;
import io.nosqlbench.virtdata.core.bindings.ContextualBindingsArrayTemplate;
import io.nosqlbench.virtdata.core.bindings.ValuesArrayBinder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -1,7 +1,7 @@
package io.nosqlbench.activitytype.cql.statements.core;
import io.nosqlbench.engine.api.activityimpl.ActivityInitializationError;
import io.nosqlbench.engine.api.util.NBFiles;
import io.nosqlbench.nb.api.pathutil.NBPaths;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.yaml.snakeyaml.TypeDescription;
@ -32,7 +32,7 @@ public class YamlCQLStatementLoader {
public AvailableCQLStatements load(String fromPath, String... searchPaths) {
InputStream stream = NBFiles.findRequiredStreamOrFile(fromPath,
InputStream stream = NBPaths.findRequiredStreamOrFile(fromPath,
"yaml", searchPaths);
String data = "";
try (BufferedReader buffer = new BufferedReader(new InputStreamReader(stream))) {

View File

@ -1,2 +1,3 @@
io.nosqlbench.virtdata.processors.FunctionDocInfoProcessor
io.nosqlbench.virtdata.processors.ServiceProcessor
io.nosqlbench.virtdata.api.processors.FunctionDocInfoProcessor
io.nosqlbench.nb.api.processors.ServiceProcessor

View File

@ -3,12 +3,13 @@ package com.datastax.ebdrivers.cql;
import io.nosqlbench.activitytype.cql.core.CqlAction;
import io.nosqlbench.activitytype.cql.core.CqlActivity;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import org.testng.annotations.Test;
import org.junit.Ignore;
import org.junit.Test;
@Test
public class CqlActionTest {
@Test(enabled = false)
@Test
@Ignore
public void testCqlAction() {
ActivityDef ad = ActivityDef.parseActivityDef("driver=ebdrivers;alias=foo;yaml=write-telemetry.yaml;");
CqlActivity cac = new CqlActivity(ad);

View File

@ -1,14 +1,13 @@
package com.datastax.ebdrivers.cql.statements;
import io.nosqlbench.activitytype.cql.statements.core.CQLStatementDefParser;
import org.testng.annotations.Test;
import org.junit.Test;
import java.util.HashMap;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@Test
public class CQLCQLStatementDefParserTest {
// TODO: Implment support for default values in yaml
@ -59,4 +58,4 @@ public class CQLCQLStatementDefParserTest {
assertThat(parseResult.getStatement()).isEqualTo("This is a test of ? and ?");
}
}
}

View File

@ -6,11 +6,10 @@ import com.datastax.driver.core.SocketOptions;
import com.datastax.driver.core.policies.LoadBalancingPolicy;
import com.datastax.driver.core.policies.SpeculativeExecutionPolicy;
import io.nosqlbench.activitytype.cql.core.CQLOptions;
import org.testng.annotations.Test;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
@Test
public class CQLOptionsTest {
@Test
@ -68,4 +67,4 @@ public class CQLOptionsTest {
assertThat(po3.getHeartbeatIntervalSeconds()).isEqualTo(100);
}
}
}

View File

@ -3,8 +3,8 @@ package io.nosqlbench.activitytype.cqlverify;
import io.nosqlbench.activitytype.cql.core.CqlActivity;
import io.nosqlbench.activitytype.cql.statements.rsoperators.AssertSingleRowResultSet;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.virtdata.api.Bindings;
import io.nosqlbench.virtdata.api.BindingsTemplate;
import io.nosqlbench.virtdata.core.bindings.Bindings;
import io.nosqlbench.virtdata.core.bindings.BindingsTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -3,7 +3,7 @@ package io.nosqlbench.activitytype.cqlverify;
import io.nosqlbench.engine.api.activityapi.core.ActionDispenser;
import io.nosqlbench.engine.api.activityapi.core.ActivityType;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
@Service(ActivityType.class)
public class CqlVerifyActivityType implements ActivityType<CqlVerifyActivity> {

View File

@ -3,7 +3,7 @@ package io.nosqlbench.activitytype.cqlverify;
import com.datastax.driver.core.*;
import io.nosqlbench.activitytype.cql.api.RowCycleOperator;
import io.nosqlbench.activitytype.cql.errorhandling.exceptions.RowVerificationException;
import io.nosqlbench.virtdata.api.Bindings;
import io.nosqlbench.virtdata.core.bindings.Bindings;
import java.math.BigDecimal;
import java.math.BigInteger;

View File

@ -30,12 +30,6 @@
<!-- test scope only -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<scope>test</scope>
</dependency>
<!--<dependency>-->
<!--<groupId>org.mockito</groupId>-->
<!--<artifactId>mockito-all</artifactId>-->
@ -45,7 +39,13 @@
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core-java8</artifactId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>

View File

@ -24,7 +24,7 @@ import io.nosqlbench.engine.api.activityapi.ratelimits.RateSpec;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.engine.api.activityimpl.SimpleActivity;
import io.nosqlbench.engine.api.metrics.ActivityMetrics;
import io.nosqlbench.virtdata.api.VirtData;
import io.nosqlbench.virtdata.core.bindings.VirtData;
import java.util.function.LongToIntFunction;
import java.util.function.LongUnaryOperator;

View File

@ -18,7 +18,7 @@ package io.nosqlbench.activitytype.diag;
import io.nosqlbench.engine.api.activityapi.core.ActionDispenser;
import io.nosqlbench.engine.api.activityapi.core.ActivityType;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -1,2 +1,3 @@
io.nosqlbench.virtdata.processors.FunctionDocInfoProcessor
io.nosqlbench.virtdata.processors.ServiceProcessor
io.nosqlbench.virtdata.api.processors.FunctionDocInfoProcessor
io.nosqlbench.nb.api.processors.ServiceProcessor

View File

@ -4,7 +4,7 @@ import io.nosqlbench.engine.api.activityapi.core.Action;
import io.nosqlbench.engine.api.activityapi.core.ActionDispenser;
import io.nosqlbench.engine.api.activityapi.core.SyncAction;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import org.testng.annotations.Test;
import org.junit.Test;
/*
* Copyright 2016 jshook

View File

@ -27,14 +27,14 @@
<!-- test scope only -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core-java8</artifactId>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>

View File

@ -4,7 +4,7 @@ import com.codahale.metrics.Timer;
import io.nosqlbench.engine.api.activityapi.core.SyncAction;
import io.nosqlbench.engine.api.activityapi.planning.OpSequence;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.virtdata.api.templates.StringBindings;
import io.nosqlbench.virtdata.core.templates.StringBindings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -122,4 +122,4 @@ public class HttpAction implements SyncAction {
protected HttpActivity getHttpActivity() {
return httpActivity;
}
}
}

View File

@ -15,9 +15,9 @@ import io.nosqlbench.engine.api.activityapi.planning.SequencerType;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.engine.api.activityimpl.SimpleActivity;
import io.nosqlbench.engine.api.metrics.ActivityMetrics;
import io.nosqlbench.virtdata.api.BindingsTemplate;
import io.nosqlbench.virtdata.api.templates.StringBindings;
import io.nosqlbench.virtdata.api.templates.StringBindingsTemplate;
import io.nosqlbench.virtdata.core.bindings.BindingsTemplate;
import io.nosqlbench.virtdata.core.templates.StringBindings;
import io.nosqlbench.virtdata.core.templates.StringBindingsTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -3,7 +3,7 @@ package io.nosqlbench.activitytype.http;
import io.nosqlbench.engine.api.activityapi.core.ActionDispenser;
import io.nosqlbench.engine.api.activityapi.core.ActivityType;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -3,7 +3,7 @@ package io.nosqlbench.activitytype.http;
import io.nosqlbench.engine.api.activityapi.core.Action;
import io.nosqlbench.engine.api.activityapi.core.ActionDispenser;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import org.testng.annotations.Test;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;

View File

@ -27,14 +27,14 @@
<!-- test scope only -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core-java8</artifactId>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>

View File

@ -6,7 +6,7 @@ import io.nosqlbench.engine.api.activityapi.core.ops.fluent.opfacets.StartedOp;
import io.nosqlbench.engine.api.activityapi.core.ops.fluent.opfacets.TrackedOp;
import io.nosqlbench.engine.api.activityapi.planning.OpSequence;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.virtdata.api.templates.StringBindings;
import io.nosqlbench.virtdata.core.templates.StringBindings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -20,7 +20,7 @@ package io.nosqlbench.activitytype.stdout;
import com.codahale.metrics.Timer;
import io.nosqlbench.engine.api.activityapi.core.SyncAction;
import io.nosqlbench.engine.api.activityapi.planning.OpSequence;
import io.nosqlbench.virtdata.api.templates.StringBindings;
import io.nosqlbench.virtdata.core.templates.StringBindings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -65,4 +65,4 @@ public class StdoutAction implements SyncAction {
return 0;
}
}
}

View File

@ -33,9 +33,9 @@ import io.nosqlbench.engine.api.activityimpl.SimpleActivity;
import io.nosqlbench.engine.api.metrics.ActivityMetrics;
import io.nosqlbench.engine.api.metrics.ExceptionMeterMetrics;
import io.nosqlbench.engine.api.util.StrInterpolator;
import io.nosqlbench.virtdata.api.BindingsTemplate;
import io.nosqlbench.virtdata.api.templates.StringBindings;
import io.nosqlbench.virtdata.api.templates.StringBindingsTemplate;
import io.nosqlbench.virtdata.core.bindings.BindingsTemplate;
import io.nosqlbench.virtdata.core.templates.StringBindings;
import io.nosqlbench.virtdata.core.templates.StringBindingsTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -4,7 +4,7 @@ import io.nosqlbench.engine.api.activityapi.core.Action;
import io.nosqlbench.engine.api.activityapi.core.ActionDispenser;
import io.nosqlbench.engine.api.activityapi.core.ActivityType;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
import java.util.Optional;

View File

@ -1,6 +1,6 @@
package io.nosqlbench.activitytype.stdout;
import io.nosqlbench.virtdata.api.templates.StringBindings;
import io.nosqlbench.virtdata.core.templates.StringBindings;
public class StdoutOpContext {
StringBindings stringBindings;

View File

@ -17,13 +17,12 @@
package io.nosqlbench.activitytype.stdout;
import org.testng.annotations.Test;
import org.junit.Test;
import java.util.Arrays;
import static org.assertj.core.api.Assertions.assertThat;
@Test
public class StatementFormattersTest {
@Test
@ -56,4 +55,4 @@ public class StatementFormattersTest {
assertThat(csv).isEqualTo("alpha : {alpha}\n beta : {beta}");
}
}
}

View File

@ -20,7 +20,7 @@ package io.nosqlbench.activitytype.stdout;
import io.nosqlbench.engine.api.activityapi.core.Action;
import io.nosqlbench.engine.api.activityapi.core.ActionDispenser;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import org.testng.annotations.Test;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
@ -28,6 +28,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* Created by sebastianestevez on 5/5/17.
*/
public class StdoutActivityTypeTest {
@Test
public void testDiagActivity() {
StdoutActivityType stdoutAt = new StdoutActivityType();

View File

@ -34,15 +34,9 @@
<!-- test scope only -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core-java8</artifactId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>

View File

@ -23,7 +23,7 @@ import io.nosqlbench.engine.api.activityapi.core.Action;
import io.nosqlbench.engine.api.activityapi.core.ActionDispenser;
import io.nosqlbench.engine.api.activityapi.core.ActivityType;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
@Service(ActivityType.class)
public class TCPClientActivityType implements ActivityType<TCPClientActivity> {

View File

@ -23,7 +23,7 @@ import io.nosqlbench.engine.api.activityapi.core.Action;
import io.nosqlbench.engine.api.activityapi.core.ActionDispenser;
import io.nosqlbench.engine.api.activityapi.core.ActivityType;
import io.nosqlbench.engine.api.activityimpl.ActivityDef;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
@Service(ActivityType.class)
public class TCPServerActivityType implements ActivityType<TCPServerActivity> {

26
docsys/docs/docsys.md Normal file
View File

@ -0,0 +1,26 @@
# DocSys Design
## Future
### Front Matter Everything
- Only markdown files which contain front matter will be considered user-facing docs.
- Front matter will specify the namespace and/or names under which the included file should appear
- Front matter will include search meta and related topics
- Front matter will contain all the meta data that any client app needs to create a basic topic index or menu.
- Front matter will specify whether or not to include the markdown in command line help.
- Front matter will specify whether or not to include the markdown in web help.
- Front matter will specify the topic path for the included.
### Internal APIs
- All markdown sources will be provided uniformly behind a markdown service type with SPI, like _MarkdownProvider_
- Services and Static contexts will be supported equally.
- MarkdownProvider data will have digest level info, which is exactly the frontmatter required above.
### Searching
- A standard search index payload in JSON form will be cachable by clients.
- The initial phase of search will contain only meta and topic level matching.
- A subsequent phase may include a compact or compressed form of FTS searching.

View File

@ -14,27 +14,34 @@
</parent>
<dependencies>
<dependency>
<groupId>io.nosqlbench</groupId>
<artifactId>nb-api</artifactId>
<version>3.12.75-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core-java8</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<!-- test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<!-- jetty -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
@ -102,26 +109,12 @@
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
</dependency>
<dependency>
<groupId>io.nosqlbench</groupId>
<artifactId>virtdata-processors</artifactId>
<version>3.12.75-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>io.nosqlbench</groupId>
<artifactId>virtdata-annotations</artifactId>
<version>3.12.75-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>io.nosqlbench</groupId>
<artifactId>virtdata-api</artifactId>
<version>3.12.75-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>compile</scope>
</dependency>
</dependencies>

View File

@ -1,6 +1,6 @@
package io.nosqlbench.docsys.api;
import io.nosqlbench.virtdata.api.VirtDataResources;
import io.nosqlbench.nb.api.pathutil.NBPaths;
import java.nio.file.Files;
import java.nio.file.Path;
@ -25,7 +25,7 @@ public class Docs implements DocsBinder {
}
public Docs addFirstFoundPath(String... potentials) {
Path pathIn = VirtDataResources.findPathIn(potentials);
Path pathIn = NBPaths.findPathIn(potentials);
if (pathIn == null || !Files.exists(pathIn)) {
throw new RuntimeException("Unable to find a path in one of " + Arrays.stream(potentials).collect(Collectors.joining(",")));
}

View File

@ -43,7 +43,9 @@ import java.util.stream.Collectors;
*/
public class DocServer implements Runnable {
private final static Logger logger = LogManager.getLogger(DocServer.class);private final List<Path> basePaths = new ArrayList<>();
private final static Logger logger = LogManager.getLogger(DocServer.class);
private final List<Path> basePaths = new ArrayList<>();
private final List<Class> servletClasses = new ArrayList<>();
private ServletContextHandler contextHandler;
private ServletHolder servletHolder;

View File

@ -1,6 +1,6 @@
package io.nosqlbench.docsys.core;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
import io.nosqlbench.docsys.api.WebServiceObject;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;

View File

@ -1,6 +1,6 @@
package io.nosqlbench.docsys.core;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
import io.nosqlbench.docsys.api.DocsNameSpace;
import io.nosqlbench.docsys.api.Docs;
import io.nosqlbench.docsys.api.DocsBinder;
@ -22,7 +22,8 @@ import java.util.concurrent.atomic.AtomicLong;
@Singleton
@Path("/services/docs/")
public class DocsysMarkdownEndpoint implements WebServiceObject {
private final static Logger logger = LogManager.getLogger(DocsysMarkdownEndpoint.class);private DocsBinder docsinfo;
private final static Logger logger = LogManager.getLogger(DocsysMarkdownEndpoint.class);
private DocsBinder docsinfo;
private DocsBinder enabled;
private DocsBinder disabled;

View File

@ -12,7 +12,8 @@ import java.util.ArrayList;
import java.util.List;
public class PathWalker {
private final static Logger logger = LogManager.getLogger(PathWalker.class);public static void walk(Path p, PathVisitor v) {
private final static Logger logger = LogManager.getLogger(PathWalker.class);
public static void walk(Path p, PathVisitor v) {
walk(p,v,PathWalker.WALK_ALL);
}

View File

@ -18,7 +18,8 @@ import java.nio.file.Path;
import java.security.InvalidParameterException;
public class FavIconHandler extends AbstractHandler {
private final static Logger logger = LogManager.getLogger(FavIconHandler.class);private final Path faviconPath;
private final static Logger logger = LogManager.getLogger(FavIconHandler.class);
private final Path faviconPath;
byte[] iconData;
private long lastModified = 0L;

View File

@ -1,2 +1 @@
io.nosqlbench.virtdata.processors.FunctionDocInfoProcessor
io.nosqlbench.virtdata.processors.ServiceProcessor
io.nosqlbench.nb.api.processors.ServiceProcessor

View File

@ -2,8 +2,6 @@ package io.nosqlbench.docsys.core;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.*;
public class DocsysMarkdownEndpointTest {
@Test
@ -12,4 +10,4 @@ public class DocsysMarkdownEndpointTest {
String markdownList = ep.getMarkdownList(true);
}
}
}

View File

@ -1,7 +0,0 @@
package io.nosqlbench.docsys.core;
import static org.junit.Assert.*;
public class PathWalkerTest {
}

View File

@ -19,6 +19,12 @@
<dependencies>
<dependency>
<groupId>io.nosqlbench</groupId>
<artifactId>nb-api</artifactId>
<version>3.12.75-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>io.nosqlbench</groupId>
<artifactId>virtdata-userlibs</artifactId>
@ -93,14 +99,13 @@
<!-- test scope only -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core-java8</artifactId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

View File

@ -21,7 +21,7 @@ import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.ResultReada
import io.nosqlbench.engine.api.activityapi.cyclelog.filters.tristate.ResultFilteringSieve;
import io.nosqlbench.engine.api.activityapi.cyclelog.filters.tristate.TristateFilter;
import io.nosqlbench.engine.api.util.ConfigTuples;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
import java.util.function.Predicate;

View File

@ -18,7 +18,7 @@
package io.nosqlbench.engine.api.activityapi.cyclelog.filters;
import io.nosqlbench.engine.api.util.SimpleConfig;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
import java.util.Arrays;
import java.util.function.IntPredicate;

View File

@ -21,7 +21,7 @@ import io.nosqlbench.engine.api.activityapi.core.Activity;
import io.nosqlbench.engine.api.activityapi.input.Input;
import io.nosqlbench.engine.api.activityapi.input.InputDispenser;
import io.nosqlbench.engine.api.activityapi.input.InputType;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
@Service(InputType.class)
public class CycleLogInputType implements InputType {

View File

@ -23,7 +23,7 @@ import io.nosqlbench.engine.api.activityapi.input.Input;
import io.nosqlbench.engine.api.activityapi.output.Output;
import io.nosqlbench.engine.api.activityapi.output.OutputDispenser;
import io.nosqlbench.engine.api.activityapi.output.OutputType;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -20,7 +20,7 @@ package io.nosqlbench.engine.api.activityapi.cyclelog.outputs.logger;
import io.nosqlbench.engine.api.activityapi.core.Activity;
import io.nosqlbench.engine.api.activityapi.output.Output;
import io.nosqlbench.engine.api.activityapi.output.OutputDispenser;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -18,8 +18,8 @@
package io.nosqlbench.engine.api.activityconfig;
import io.nosqlbench.engine.api.activityconfig.yaml.StmtDef;
import io.nosqlbench.virtdata.api.templates.BindPoint;
import io.nosqlbench.virtdata.api.templates.ParsedTemplate;
import io.nosqlbench.virtdata.core.templates.BindPoint;
import io.nosqlbench.virtdata.core.templates.ParsedTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View File

@ -19,7 +19,7 @@ package io.nosqlbench.engine.api.activityconfig.rawyaml;
import io.nosqlbench.engine.api.activityconfig.snakecharmer.SnakeYamlCharmer;
import io.nosqlbench.engine.api.activityimpl.ActivityInitializationError;
import io.nosqlbench.engine.api.util.NBFiles;
import io.nosqlbench.nb.api.pathutil.NBPaths;
import org.slf4j.Logger;
import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Yaml;
@ -55,7 +55,7 @@ public class RawYamlStatementLoader {
}
protected String loadRawFile(Logger logger, String fromPath, String... searchPaths) {
InputStream stream = NBFiles.findRequiredStreamOrFile(fromPath, "yaml", searchPaths);
InputStream stream = NBPaths.findRequiredStreamOrFile(fromPath, "yaml", searchPaths);
try (BufferedReader buffer = new BufferedReader(new InputStreamReader(stream))) {
return buffer.lines().collect(Collectors.joining("\n"));
} catch (Exception e) {

View File

@ -21,7 +21,7 @@ import io.nosqlbench.engine.api.activityapi.core.Activity;
import io.nosqlbench.engine.api.activityapi.input.Input;
import io.nosqlbench.engine.api.activityapi.input.InputDispenser;
import io.nosqlbench.engine.api.activityapi.input.InputType;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
@Service(InputType.class)
public class TargetRateInputType implements InputType {

View File

@ -1,235 +0,0 @@
/*
*
* Copyright 2016 jshook
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* /
*/
package io.nosqlbench.engine.api.util;
import io.nosqlbench.docsys.core.PathWalker;
import io.nosqlbench.engine.api.activityconfig.StatementsLoader;
import io.nosqlbench.engine.api.activityconfig.yaml.Scenarios;
import io.nosqlbench.engine.api.activityconfig.yaml.StmtsDocList;
import io.nosqlbench.virtdata.api.VirtDataResources;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
public class NBFiles {
private final static Logger logger = LoggerFactory.getLogger(NBFiles.class);
private static Pattern templatePattern = Pattern.compile("TEMPLATE\\((.+?)\\)");
private static Pattern templatePattern2 = Pattern.compile("<<(.+?)>>");
public static InputStream findRequiredStreamOrFile(String basename, String extension, String... searchPaths) {
Optional<InputStream> optionalStreamOrFile = findOptionalStreamOrFile(basename, extension, searchPaths);
return optionalStreamOrFile.orElseThrow(() -> new RuntimeException(
"Unable to find " + basename + " with extension " + extension + " in file system or in classpath, with"
+ " search paths: " + Arrays.stream(searchPaths).collect(Collectors.joining(","))
));
}
public static Optional<InputStream> findOptionalStreamOrFile(String basename, String extension, String... searchPaths) {
boolean needsExtension = (extension != null && !extension.isEmpty() && !basename.endsWith("." + extension));
String filename = basename + (needsExtension ? "." + extension : "");
ArrayList<String> paths = new ArrayList<String>() {{
add(filename);
if (!isRemote(basename)) {
addAll(Arrays.stream(searchPaths).map(s -> s + File.separator + filename)
.collect(Collectors.toCollection(ArrayList::new)));
}
}};
for (String path : paths) {
Optional<InputStream> stream = getInputStream(path);
if (stream.isPresent()) {
return stream;
}
}
return Optional.empty();
}
/**
* Search for the path
* @param basename Basename of path, with or without extension
* @param extension The extension of the filename
* @param searchWithin If enabled, all searchPaths are traversed, looking for a matching suffix pattern.
* @param searchPaths Additional places to look for the path suffix
* @return An optional path
*/
public static Optional<Path> findOptionalPath(String basename, String extension, boolean searchWithin, String... searchPaths) {
boolean needsExtension = (extension != null && !extension.isEmpty() && !basename.endsWith("." + extension));
String filename = basename + (needsExtension ? "." + extension : "");
ArrayList<String> paths = new ArrayList<String>() {{
add(filename);
if (!isRemote(basename)) {
addAll(Arrays.stream(searchPaths).map(s -> s + File.separator + filename)
.collect(Collectors.toCollection(ArrayList::new)));
}
}};
for (String path : paths) {
Optional<InputStream> stream = getInputStream(path);
if (stream.isPresent()) {
return Optional.of(Path.of(path));
}
}
if (searchWithin) {
throw new RuntimeException("not implemented");
// for (String searchPath : searchPaths) {
// NBPathWalker.findEndMatching(Path.of(searchPath), Path.of(filename));
// }
}
return Optional.empty();
}
private static boolean isRemote(String path) {
return (path.toLowerCase().startsWith("http:")
|| path.toLowerCase().startsWith("https:"));
}
public static Optional<InputStream> getInputStream(String path) {
// URLs, if http: or https:
if (isRemote(path)) {
URL url;
try {
url = new URL(path);
InputStream inputStream = url.openStream();
if (inputStream!=null) {
return Optional.of(inputStream);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
// Files
try {
InputStream stream = new FileInputStream(path);
return Optional.of(stream);
} catch (FileNotFoundException ignored) {
}
// Classpath
ClassLoader classLoader = NBFiles.class.getClassLoader();
InputStream stream = classLoader.getResourceAsStream(path);
if (stream != null) {
return Optional.of(stream);
}
return Optional.empty();
}
public static String readFile(String basename) {
InputStream requiredStreamOrFile = findRequiredStreamOrFile(basename, "");
try (BufferedReader buffer = new BufferedReader((new InputStreamReader(requiredStreamOrFile)))) {
String filedata = buffer.lines().collect(Collectors.joining("\n"));
return filedata;
} catch (IOException ioe) {
throw new RuntimeException("Error while reading required file to string", ioe);
}
}
public static List<WorkloadDesc> getWorkloadsWithScenarioScripts() {
String dir = "activities/";
Path basePath = VirtDataResources.findPathIn(dir);
List<Path> yamlPathList = PathWalker.findAll(basePath)
.stream()
.filter(f -> f.toString().endsWith(".yaml"))
.filter(f -> f.toString().contains("activities"))
.collect(Collectors.toList());
List<WorkloadDesc> workloadDescriptions = new ArrayList<>();
for (Path yamlPath : yamlPathList) {
String substring = yamlPath.toString().substring(1);
StmtsDocList stmts = StatementsLoader.load(logger, substring);
Set<String> templates = new HashSet<>();
try {
List<String> lines = Files.readAllLines(yamlPath);
for (String line : lines) {
Matcher matcher = templatePattern.matcher(line);
while (matcher.find()) {
templates.add(matcher.group(1));
}
matcher = templatePattern2.matcher(line);
while (matcher.find()) {
templates.add(matcher.group(1));
}
}
} catch (IOException e) {
e.printStackTrace();
}
Scenarios scenarios = stmts.getDocScenarios();
List<String> scenarioNames = scenarios.getScenarioNames();
if (scenarioNames != null && scenarioNames.size() >0){
workloadDescriptions.add(new WorkloadDesc(yamlPath.getFileName().toString(), scenarioNames, templates));
}
}
return workloadDescriptions;
}
public static class WorkloadDesc {
private final String yamlPath;
private final List<String> scenarioNames;
private final Set<String> temlpates;
public WorkloadDesc(String yamlPath, List<String> scenarioNames, Set<String> templates) {
this.yamlPath = yamlPath;
this.scenarioNames = scenarioNames;
this.temlpates = templates;
}
public String getYamlPath() {
return yamlPath;
}
public List<String> getScenarioNames() {
return scenarioNames;
}
public Set<String> getTemlpates() {
return temlpates;
}
}
}

View File

@ -19,7 +19,7 @@ package io.nosqlbench;
import com.codahale.metrics.MetricRegistry;
import io.nosqlbench.engine.api.activityapi.core.MetricRegistryService;
import io.nosqlbench.virtdata.annotations.Service;
import io.nosqlbench.nb.api.annotations.Service;
/**
* Provide a local MetricRegistryService for tests

View File

@ -19,7 +19,7 @@
package io.nosqlbench.engine.api.activityapi;
import io.nosqlbench.engine.api.activityimpl.ParameterMap;
import org.testng.annotations.Test;
import org.junit.Test;
import java.util.Optional;
@ -85,7 +85,7 @@ public class ParameterMapTest {
assertThat(multiNames.get().getOptionalString("delta","gamma").orElse("missing")).isEqualTo("blue");
}
@Test(expectedExceptions = {RuntimeException.class}, expectedExceptionsMessageRegExp = ".*Multiple parameters are specified.*")
@Test(expected = RuntimeException.class)
public void testAmbiguousMultiValueThrowsException() {
Optional<ParameterMap> multiNames = ParameterMap.parseParams("alpha=blue;beta=red;delta=blue");
assertThat(multiNames).isPresent();
@ -118,4 +118,4 @@ public class ParameterMapTest {
public void testQuotedSemis() {
ParameterMap abc = ParameterMap.parseOrException("a=1;b='two;three';");
}
}
}

View File

@ -6,9 +6,8 @@ import io.nosqlbench.engine.api.activityapi.core.ops.fluent.opfacets.SucceededOp
import io.nosqlbench.engine.api.activityapi.core.ops.fluent.opfacets.EventedOpImpl;
import io.nosqlbench.engine.api.activityapi.core.ops.fluent.opfacets.StartedOp;
import io.nosqlbench.engine.api.activityapi.core.ops.fluent.opfacets.TrackedOp;
import org.testng.annotations.Test;
import org.junit.Test;
@Test
public class OpTrackerImplTest {
@Test
@ -20,4 +19,4 @@ public class OpTrackerImplTest {
SucceededOp stop = started.succeed(23);
}
}
}

View File

@ -20,13 +20,12 @@ package io.nosqlbench.engine.api.activityapi.cyclelog;
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.CycleResult;
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.CycleResultsSegment;
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.CycleResultSegmentBuffer;
import org.testng.annotations.Test;
import org.junit.Test;
import java.util.stream.StreamSupport;
import static org.assertj.core.api.Assertions.assertThat;
@Test
public class CycleResultsArraySegmentReadableTest {
@Test
@ -49,4 +48,4 @@ public class CycleResultsArraySegmentReadableTest {
}
}
}

View File

@ -21,7 +21,7 @@ import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.CycleResult
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.CycleResultsSegment;
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results_rle.CycleResultsRLEBufferReadable;
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results_rle.CycleResultsRLEBufferTarget;
import org.testng.annotations.Test;
import org.junit.Test;
import java.nio.ByteBuffer;
import java.util.ArrayList;
@ -30,7 +30,6 @@ import java.util.stream.StreamSupport;
import static org.assertj.core.api.Assertions.assertThat;
@Test(singleThreaded = true)
public class CycleResultsRLEBufferReadableTest {
@Test
@ -112,4 +111,4 @@ public class CycleResultsRLEBufferReadableTest {
//
}
}
}

View File

@ -20,14 +20,13 @@ package io.nosqlbench.engine.api.activityapi.cyclelog.buffers;
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.CycleResult;
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results_rle.CycleResultsRLEBufferReadable;
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results_rle.CycleResultsRLEBufferTarget;
import org.testng.annotations.Test;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Iterator;
import static org.assertj.core.api.Assertions.assertThat;
@Test
public class CycleResultsRLEBufferTargetTest {
@Test
@ -53,6 +52,7 @@ public class CycleResultsRLEBufferTargetTest {
assertThat(resultValues).containsExactly(0,1);
}
@Test
public void testGappedIntervalRLEEncoding() {
CycleResultsRLEBufferTarget tb = new CycleResultsRLEBufferTarget(100000);
@ -102,4 +102,4 @@ public class CycleResultsRLEBufferTargetTest {
}
}
}

View File

@ -17,13 +17,12 @@
package io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results;
import org.testng.annotations.Test;
import org.junit.Test;
import java.util.stream.StreamSupport;
import static org.assertj.core.api.Assertions.assertThat;
@Test
public class CycleResultArraySegmentBufferTest {
@Test
@ -43,4 +42,4 @@ public class CycleResultArraySegmentBufferTest {
}
}
}

View File

@ -18,11 +18,10 @@
package io.nosqlbench.engine.api.activityapi.cyclelog.filters.tristate;
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.ResultReadable;
import org.testng.annotations.Test;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
@Test
public class EnumReadableMappingFilterTest {
@Test
@ -66,4 +65,4 @@ public class EnumReadableMappingFilterTest {
return resultCode;
}
}
}
}

View File

@ -19,21 +19,20 @@ package io.nosqlbench.engine.api.activityapi.cyclelog.inputs.cyclelog;
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.CycleSegment;
import io.nosqlbench.engine.api.activityapi.cyclelog.outputs.cyclelog.CycleLogOutput;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.junit.BeforeClass;
import org.junit.Test;
import java.io.File;
import static org.assertj.core.api.Assertions.assertThat;
@Test
public class CycleLogInputTest {
private final static String filepath="cycle-log-reader-test";
private File cyclefile;
private static File cyclefile;
@BeforeClass
public void createTempFile() {
public static void createTempFile() {
try {
cyclefile = File.createTempFile(filepath, "cyclelog");
System.out.println("tmp file for testing:" + cyclefile.getPath());
@ -73,8 +72,6 @@ public class CycleLogInputTest {
c = i1.nextCycle();
assertThat(c).isEqualTo(5L);
assertThat(i1.isExhausted()).isTrue();
}
}
}

View File

@ -22,13 +22,12 @@ import io.nosqlbench.engine.api.activityapi.cyclelog.filters.CoreResultValueFilt
import io.nosqlbench.engine.api.activityapi.cyclelog.filters.ResultFilterDispenser;
import io.nosqlbench.engine.api.activityapi.cyclelog.filters.ResultValueFilterType;
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.MutableCycleResult;
import org.testng.annotations.Test;
import org.junit.Test;
import java.util.function.Predicate;
import static org.assertj.core.api.Assertions.assertThat;
@Test
public class CoreResultFilterTest {
@Test
@ -47,4 +46,4 @@ public class CoreResultFilterTest {
}
}
}

View File

@ -22,7 +22,7 @@ import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.ResultReada
import io.nosqlbench.engine.api.activityapi.cyclelog.filters.tristate.ResultFilteringSieve;
import io.nosqlbench.engine.api.activityapi.cyclelog.filters.tristate.TristateFilter;
import io.nosqlbench.engine.api.activityapi.cyclelog.buffers.results.MutableCycleResult;
import org.testng.annotations.Test;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
@ -31,7 +31,6 @@ import java.util.stream.Collectors;
import static org.assertj.core.api.Assertions.assertThat;
@Test
public class ResultFilteringSieveTest {
@Test
@ -58,6 +57,7 @@ public class ResultFilteringSieveTest {
assertThat(sieve.apply(new MutableCycleResult(3L,10))).isEqualTo(TristateFilter.Policy.Keep);
}
@Test
public void testPredicateConversions() {
MutableCycleResult c1 = new MutableCycleResult(1,1);
MutableCycleResult c2 = new MutableCycleResult(2,2);
@ -89,4 +89,4 @@ public class ResultFilteringSieveTest {
}
}
}

View File

@ -17,8 +17,8 @@
package io.nosqlbench.engine.api.activityapi.errorhandling;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.junit.Before;
import org.junit.Test;
import java.security.InvalidParameterException;
import java.util.ArrayList;
@ -27,17 +27,16 @@ import java.util.Set;
import static org.assertj.core.api.Assertions.assertThat;
@Test(singleThreaded = true)
public class HashedErrorHandlerTest {
HashedErrorHandler<Throwable, Boolean> handler;
@BeforeMethod
@Before
public void beforeTest() {
handler = new HashedErrorHandler<Throwable,Boolean>();
}
@Test(expectedExceptions = RuntimeException.class, expectedExceptionsMessageRegExp = ".*actually.*")
@Test(expected= RuntimeException.class)
public void testDefaultHandlerThrowsException() {
handler.handleError(1L, new InvalidParameterException("this is an invalid exception, actually"));
}
@ -92,7 +91,7 @@ public class HashedErrorHandlerTest {
assertThat(result).isFalse();
}
@Test(expectedExceptions = RuntimeException.class,expectedExceptionsMessageRegExp = ".*this is an error.*")
@Test(expected = RuntimeException.class)
public void testNamedGroup() {
handler.setGroup("test1",IndexOutOfBoundsException.class,ArrayIndexOutOfBoundsException.class);
handler.setGroup("types",InvalidParameterException.class);
@ -103,20 +102,20 @@ public class HashedErrorHandlerTest {
handler.handleError(5L,new InvalidParameterException("this is an error"));
}
@Test(expectedExceptions = RuntimeException.class,expectedExceptionsMessageRegExp = ".*Found 2.*")
@Test(expected = RuntimeException.class)
public void testFindVagueSingleSubmatchException() {
handler.setGroup("index", IndexOutOfBoundsException.class, ArrayIndexOutOfBoundsException.class);
handler.setHandlerForPattern("Index", CycleErrorHandlers.rethrow("12345 678910 11 12"));
}
@Test(expectedExceptions = RuntimeException.class,expectedExceptionsMessageRegExp = ".*rethrown\\(Journey.*")
@Test(expected = RuntimeException.class)
public void testFindMultipleRegex() {
handler.setGroup("index", IndexOutOfBoundsException.class, ArrayIndexOutOfBoundsException.class);
handler.setHandlerForPattern(".*Index.*", CycleErrorHandlers.rethrow("Journey through the klein bottle."));
Boolean result = handler.handleError(9L, new IndexOutOfBoundsException("9L was out of bounds"));
}
@Test(expectedExceptions = RuntimeException.class, expectedExceptionsMessageRegExp = ".*Found no matching.*")
@Test(expected = RuntimeException.class)
public void testNonMatchingSubstringException() {
handler.setGroup("index", IndexOutOfBoundsException.class, ArrayIndexOutOfBoundsException.class);
Set<Class<? extends Throwable>> groups = handler.getGroup("index");
@ -126,7 +125,7 @@ public class HashedErrorHandlerTest {
handler.setHandlerForPattern("Dyahwemo", CycleErrorHandlers.rethrow("Journey through the klein bottle."));
}
@Test(expectedExceptions=RuntimeException.class,expectedExceptionsMessageRegExp = ".*Group name 'outdex' was not found.*")
@Test(expected=RuntimeException.class)
public void testSetHandlerForMissingGroupException() {
handler.setGroup("index", IndexOutOfBoundsException.class, ArrayIndexOutOfBoundsException.class);
handler.setHandlerForGroup("outdex", CycleErrorHandlers.rethrow("Journey through the klein bottle."));
@ -140,4 +139,4 @@ public class HashedErrorHandlerTest {
handler.resetAllClassHandlers();
assertThat(handler.getHandlers()).hasSize(0);
}
}
}

View File

@ -4,7 +4,6 @@ import org.junit.Test;
import java.util.List;
import static org.junit.Assert.*;
import static org.assertj.core.api.Assertions.assertThat;
public class BucketSequencerTest {

View File

@ -17,7 +17,7 @@
package io.nosqlbench.engine.api.activityapi.planning;
import org.testng.annotations.Test;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;

Some files were not shown because too many files have changed in this diff Show More