This is an automated email from the ASF dual-hosted git repository.

rustyrazorblade pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cassandra-easy-stress.git


The following commit(s) were added to refs/heads/main by this push:
     new 81b4f6c  Refactor: Migrate package from 
com.rustyrazorblade.easycassstress to org.apache.cassandra.easystress
81b4f6c is described below

commit 81b4f6ce2522c65ab76fa34b01c3601e29ef2f3c
Author: Jon Haddad <j...@jonhaddad.com>
AuthorDate: Tue Aug 5 20:31:47 2025 -0400

    Refactor: Migrate package from com.rustyrazorblade.easycassstress to 
org.apache.cassandra.easystress
    
    This change aligns the project with Apache Cassandra's namespace 
conventions.
    
    Changes:
    - Updated all package declarations from com.rustyrazorblade.easycassstress 
to org.apache.cassandra.easystress
    - Migrated 61 main source files and 23 test files to new directory structure
    - Updated all import statements throughout the codebase
    - Modified build.gradle to reflect new package name and main class
    - Updated reflection-based class loading in FunctionLoader and Plugin 
classes
    - Fixed log4j2-test.yaml logger configuration
    - Updated documentation with new package references
    
    Closes #50
---
 CLAUDE.md                                          |   2 +-
 build.gradle                                       |   4 +-
 .../cassandra/easystress}/CommandLineParser.kt     |  12 +-
 .../apache/cassandra/easystress}/Either.kt         |   2 +-
 .../apache/cassandra/easystress}/FileReporter.kt   |   2 +-
 .../apache/cassandra/easystress}/Main.kt           |   2 +-
 .../apache/cassandra/easystress}/Metrics.kt        |   2 +-
 .../cassandra/easystress}/OperationCallback.kt     |   6 +-
 .../easystress}/OperationStopException.kt          |   2 +-
 .../apache/cassandra/easystress}/PartitionKey.kt   |   2 +-
 .../cassandra/easystress}/PartitionKeyGenerator.kt |   2 +-
 .../apache/cassandra/easystress}/Plugin.kt         |   6 +-
 .../apache/cassandra/easystress}/PopulateOption.kt |   2 +-
 .../apache/cassandra/easystress}/ProfileRunner.kt  |   6 +-
 .../cassandra/easystress}/RateLimiterOptimizer.kt  |   2 +-
 .../apache/cassandra/easystress}/RequestQueue.kt   |   6 +-
 .../apache/cassandra/easystress}/RequireAccord.kt  |   2 +-
 .../apache/cassandra/easystress}/RequireDSE.kt     |   2 +-
 .../apache/cassandra/easystress}/RequireMVs.kt     |   2 +-
 .../apache/cassandra/easystress}/RowState.kt       |   2 +-
 .../apache/cassandra/easystress}/SchemaBuilder.kt  |   2 +-
 .../easystress}/SingleLineConsoleReporter.kt       |   2 +-
 .../apache/cassandra/easystress}/StressContext.kt  |  10 +-
 .../cassandra/easystress}/ThroughputTracker.kt     |   2 +-
 .../apache/cassandra/easystress}/Util.kt           |   2 +-
 .../apache/cassandra/easystress}/Workload.kt       |   2 +-
 .../cassandra/easystress}/WorkloadParameter.kt     |   2 +-
 .../easystress}/collector/AsyncCollector.kt        |  10 +-
 .../cassandra/easystress}/collector/Collector.kt   |  10 +-
 .../easystress}/collector/CompositeCollector.kt    |  10 +-
 .../easystress}/collector/HdrCollector.kt          |  10 +-
 .../easystress}/collector/ParquetCollector.kt      |   4 +-
 .../cassandra/easystress}/commands/Fields.kt       |   4 +-
 .../easystress}/commands/IStressCommand.kt         |   2 +-
 .../apache/cassandra/easystress}/commands/Info.kt  |   4 +-
 .../cassandra/easystress}/commands/ListCommand.kt  |   4 +-
 .../apache/cassandra/easystress}/commands/Run.kt   |  38 ++---
 .../converters/ConsistencyLevelConverter.kt        |   2 +-
 .../converters/HumanReadableConverter.kt           |   2 +-
 .../converters/HumanReadableTimeConverter.kt       |   2 +-
 .../easystress}/generators/FieldGenerator.kt       |   2 +-
 .../cassandra/easystress}/generators/Function.kt   |   2 +-
 .../easystress}/generators/FunctionLoader.kt       |   4 +-
 .../easystress}/generators/ParsedFieldFunction.kt  |   2 +-
 .../cassandra/easystress}/generators/Registry.kt   |   2 +-
 .../easystress}/generators/functions/Book.kt       |   6 +-
 .../easystress}/generators/functions/FirstName.kt  |   6 +-
 .../easystress}/generators/functions/Gaussian.kt   |   8 +-
 .../easystress}/generators/functions/LastName.kt   |   6 +-
 .../easystress}/generators/functions/Random.kt     |   8 +-
 .../easystress}/generators/functions/USCities.kt   |   6 +-
 .../easystress}/workloads/AllowFiltering.kt        |  16 +-
 .../easystress}/workloads/BasicTimeSeries.kt       |  14 +-
 .../easystress}/workloads/CountersWide.kt          |   8 +-
 .../cassandra/easystress}/workloads/CreateDrop.kt  |  16 +-
 .../cassandra/easystress}/workloads/DSESearch.kt   |  18 +--
 .../easystress}/workloads/IStressProfile.kt        |  16 +-
 .../cassandra/easystress}/workloads/KeyValue.kt    |  14 +-
 .../apache/cassandra/easystress}/workloads/LWT.kt  |   6 +-
 .../cassandra/easystress}/workloads/Locking.kt     |  12 +-
 .../apache/cassandra/easystress}/workloads/Maps.kt |   6 +-
 .../easystress}/workloads/MaterializedViews.kt     |  20 +--
 .../easystress}/workloads/RandomPartitionAccess.kt |  16 +-
 .../cassandra/easystress}/workloads/RangeScan.kt   |   8 +-
 .../apache/cassandra/easystress}/workloads/SAI.kt  |  16 +-
 .../apache/cassandra/easystress}/workloads/Sets.kt |  12 +-
 .../cassandra/easystress}/workloads/TxnCounter.kt  |  10 +-
 .../easystress}/workloads/UdtTimeSeries.kt         |  14 +-
 .../integration/CassandraTestBase.kt               |  77 ---------
 .../cassandra/easystress}/CommandLineParserTest.kt |   6 +-
 .../cassandra/easystress}/MainArgumentsTest.kt     |   4 +-
 .../easystress}/PartitionKeyGeneratorTest.kt       |   2 +-
 .../apache/cassandra/easystress}/PluginTest.kt     |   8 +-
 .../easystress}/RateLimiterOptimizerTest.kt        |   2 +-
 .../easystress}/RequireAnnotationsTest.kt          |   2 +-
 .../cassandra/easystress}/SchemaBuilderTest.kt     |   2 +-
 .../cassandra/easystress}/ThroughputTrackerTest.kt |   2 +-
 .../easystress}/collector/ParquetCollectorTest.kt  |  10 +-
 .../converters/ConsistencyLevelConverterTest.kt    |   2 +-
 .../converters/HumanReadableConverterTest.kt       |   2 +-
 .../converters/HumanReadableTimeConverterTest.kt   |   2 +-
 .../cassandra/easystress}/generators/BookTest.kt   |   4 +-
 .../easystress}/generators/FirstNameTest.kt        |   4 +-
 .../easystress}/generators/FunctionLoaderTest.kt   |   2 +-
 .../easystress}/generators/LastNameTest.kt         |   4 +-
 .../generators/ParsedFieldFunctionTest.kt          |   2 +-
 .../easystress}/generators/RegistryTest.kt         |   6 +-
 .../easystress}/generators/USCitiesTest.kt         |   4 +-
 .../easystress}/integration/AllPluginsBasicTest.kt |   6 +-
 .../easystress/integration/CassandraTestBase.kt    | 174 +++++++++++++++++++++
 .../easystress}/integration/FieldsTest.kt          |   4 +-
 .../cassandra/easystress}/integration/FlagsTest.kt |   4 +-
 src/test/resources/log4j2-test.yaml                |   2 +-
 93 files changed, 450 insertions(+), 353 deletions(-)

diff --git a/CLAUDE.md b/CLAUDE.md
index d053970..b0cc4d0 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -4,7 +4,7 @@
 - Build: `./gradlew shadowJar`
 - Run: `bin/cassandra-easy-stress`
 - Run tests: `./gradlew test`
-- Run single test: `./gradlew test --tests 
"com.rustyrazorblade.easycassstress.MainArgumentsTest"`
+- Run single test: `./gradlew test --tests 
"org.apache.cassandra.easystress.MainArgumentsTest"`
 - Format code: `./gradlew ktlintFormat`
 - Check formatting: `./gradlew ktlintCheck`
 - Generate docs: `./gradlew docs`
diff --git a/build.gradle b/build.gradle
index 6fde2d0..7cf9368 100644
--- a/build.gradle
+++ b/build.gradle
@@ -43,13 +43,13 @@ apply plugin: 'kotlin'
 apply plugin: 'application'
 apply plugin: 'com.github.johnrengelman.shadow'
 
-group 'com.rustyrazorblade'
+group 'org.apache.cassandra'
 
 sourceCompatibility = 11
 
 application {
     applicationName = "cassandra-easy-stress"
-    mainClassName = "com.rustyrazorblade.easycassstress.MainKt"
+    mainClassName = "org.apache.cassandra.easystress.MainKt"
 }
 
 repositories {
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/CommandLineParser.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/CommandLineParser.kt
similarity index 87%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/CommandLineParser.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/CommandLineParser.kt
index eef17c8..dd37234 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/CommandLineParser.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/CommandLineParser.kt
@@ -15,15 +15,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import com.beust.jcommander.JCommander
 import com.beust.jcommander.Parameter
-import com.rustyrazorblade.easycassstress.commands.Fields
-import com.rustyrazorblade.easycassstress.commands.IStressCommand
-import com.rustyrazorblade.easycassstress.commands.Info
-import com.rustyrazorblade.easycassstress.commands.ListCommand
-import com.rustyrazorblade.easycassstress.commands.Run
+import org.apache.cassandra.easystress.commands.Fields
+import org.apache.cassandra.easystress.commands.IStressCommand
+import org.apache.cassandra.easystress.commands.Info
+import org.apache.cassandra.easystress.commands.ListCommand
+import org.apache.cassandra.easystress.commands.Run
 
 class MainArgs {
     @Parameter(names = ["--help", "-h"], description = "Shows this help.")
diff --git a/src/main/kotlin/com/rustyrazorblade/easycassstress/Either.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/Either.kt
similarity index 77%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/Either.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/Either.kt
index 75135c3..d27a324 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/Either.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/Either.kt
@@ -1,4 +1,4 @@
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 sealed class Either<out A, out B> {
     class Left<A>(val value: A) : Either<A, Nothing>()
diff --git a/src/main/kotlin/com/rustyrazorblade/easycassstress/FileReporter.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/FileReporter.kt
similarity index 98%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/FileReporter.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/FileReporter.kt
index 5b3833b..cf8dbdb 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/FileReporter.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/FileReporter.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import com.codahale.metrics.Counter
 import com.codahale.metrics.Gauge
diff --git a/src/main/kotlin/com/rustyrazorblade/easycassstress/Main.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/Main.kt
similarity index 96%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/Main.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/Main.kt
index fbacdb7..e4b0300 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/Main.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/Main.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import org.apache.logging.log4j.kotlin.logger
 
diff --git a/src/main/kotlin/com/rustyrazorblade/easycassstress/Metrics.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/Metrics.kt
similarity index 98%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/Metrics.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/Metrics.kt
index b5245f3..37a04c8 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/Metrics.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/Metrics.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import com.codahale.metrics.MetricRegistry
 import com.codahale.metrics.ScheduledReporter
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/OperationCallback.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/OperationCallback.kt
similarity index 94%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/OperationCallback.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/OperationCallback.kt
index f4969c9..c61d5c2 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/OperationCallback.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/OperationCallback.kt
@@ -15,12 +15,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import com.datastax.oss.driver.api.core.cql.AsyncResultSet
 import com.google.common.base.Throwables
-import com.rustyrazorblade.easycassstress.workloads.IStressRunner
-import com.rustyrazorblade.easycassstress.workloads.Operation
+import org.apache.cassandra.easystress.workloads.IStressRunner
+import org.apache.cassandra.easystress.workloads.Operation
 import org.apache.logging.log4j.kotlin.logger
 import java.util.concurrent.TimeUnit
 import java.util.function.BiConsumer
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/OperationStopException.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/OperationStopException.kt
similarity index 95%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/OperationStopException.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/OperationStopException.kt
index e8a5599..5043e90 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/OperationStopException.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/OperationStopException.kt
@@ -15,6 +15,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 class OperationStopException : Throwable()
diff --git a/src/main/kotlin/com/rustyrazorblade/easycassstress/PartitionKey.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/PartitionKey.kt
similarity index 95%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/PartitionKey.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/PartitionKey.kt
index b28fce0..8efd942 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/PartitionKey.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/PartitionKey.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 /**
  * Will replace the current requirement that a PK can only be a text field
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/PartitionKeyGenerator.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/PartitionKeyGenerator.kt
similarity index 98%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/PartitionKeyGenerator.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/PartitionKeyGenerator.kt
index f6f3093..fa5900b 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/PartitionKeyGenerator.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/PartitionKeyGenerator.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import org.apache.commons.math3.random.RandomDataGenerator
 import java.util.concurrent.ThreadLocalRandom
diff --git a/src/main/kotlin/com/rustyrazorblade/easycassstress/Plugin.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/Plugin.kt
similarity index 97%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/Plugin.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/Plugin.kt
index a7de0b3..ea5e4d6 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/Plugin.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/Plugin.kt
@@ -15,9 +15,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
-import com.rustyrazorblade.easycassstress.workloads.IStressProfile
+import org.apache.cassandra.easystress.workloads.IStressProfile
 import org.apache.logging.log4j.kotlin.logger
 import org.reflections.Reflections
 import java.util.Optional
@@ -53,7 +53,7 @@ data class Plugin(
         val log = logger()
 
         fun getPlugins(): Map<String, Plugin> {
-            val r = Reflections("com.rustyrazorblade.easycassstress")
+            val r = Reflections("org.apache.cassandra.easystress")
             val modules = r.getSubTypesOf(IStressProfile::class.java)
 
             var result = sortedMapOf<String, Plugin>()
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/PopulateOption.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/PopulateOption.kt
similarity index 95%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/PopulateOption.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/PopulateOption.kt
index 3480453..b97ef82 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/PopulateOption.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/PopulateOption.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 sealed class PopulateOption {
     class Standard : PopulateOption()
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/ProfileRunner.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/ProfileRunner.kt
similarity index 97%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/ProfileRunner.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/ProfileRunner.kt
index fd0478b..839c710 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/ProfileRunner.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/ProfileRunner.kt
@@ -15,11 +15,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import com.datastax.oss.driver.api.core.cql.SimpleStatement
-import com.rustyrazorblade.easycassstress.workloads.IStressProfile
-import com.rustyrazorblade.easycassstress.workloads.Operation
+import org.apache.cassandra.easystress.workloads.IStressProfile
+import org.apache.cassandra.easystress.workloads.Operation
 import org.apache.logging.log4j.kotlin.logger
 import java.time.Duration
 import java.time.LocalTime
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/RateLimiterOptimizer.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/RateLimiterOptimizer.kt
similarity index 99%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/RateLimiterOptimizer.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/RateLimiterOptimizer.kt
index cd92e07..b12f0f3 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/RateLimiterOptimizer.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/RateLimiterOptimizer.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import com.google.common.util.concurrent.RateLimiter
 import org.apache.logging.log4j.kotlin.logger
diff --git a/src/main/kotlin/com/rustyrazorblade/easycassstress/RequestQueue.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/RequestQueue.kt
similarity index 96%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/RequestQueue.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/RequestQueue.kt
index f57e834..f5e08f0 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/RequestQueue.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/RequestQueue.kt
@@ -15,10 +15,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
-import com.rustyrazorblade.easycassstress.workloads.IStressRunner
-import com.rustyrazorblade.easycassstress.workloads.Operation
+import org.apache.cassandra.easystress.workloads.IStressRunner
+import org.apache.cassandra.easystress.workloads.Operation
 import org.apache.logging.log4j.kotlin.logger
 import java.time.LocalDateTime
 import java.util.concurrent.ArrayBlockingQueue
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/RequireAccord.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/RequireAccord.kt
similarity index 96%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/RequireAccord.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/RequireAccord.kt
index 44707da..3cd312a 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/RequireAccord.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/RequireAccord.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 /**
  * Marks a workload as requiring Accord.
diff --git a/src/main/kotlin/com/rustyrazorblade/easycassstress/RequireDSE.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/RequireDSE.kt
similarity index 96%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/RequireDSE.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/RequireDSE.kt
index b4fa8a9..8e1c7da 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/RequireDSE.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/RequireDSE.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 /**
  * Marks a workload as requiring DataStax Enterprise (DSE).
diff --git a/src/main/kotlin/com/rustyrazorblade/easycassstress/RequireMVs.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/RequireMVs.kt
similarity index 96%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/RequireMVs.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/RequireMVs.kt
index 1dd7f4b..e946cd6 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/RequireMVs.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/RequireMVs.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 /**
  * Marks a workload as requiring Materialized Views.
diff --git a/src/main/kotlin/com/rustyrazorblade/easycassstress/RowState.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/RowState.kt
similarity index 95%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/RowState.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/RowState.kt
index d787b64..64edd33 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/RowState.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/RowState.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 /**
  * The RowState is used to record the relevant state of a row at a given 
moment in time
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/SchemaBuilder.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/SchemaBuilder.kt
similarity index 99%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/SchemaBuilder.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/SchemaBuilder.kt
index 59ab29b..231b604 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/SchemaBuilder.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/SchemaBuilder.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import com.fasterxml.jackson.annotation.JsonInclude
 import com.fasterxml.jackson.databind.ObjectMapper
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/SingleLineConsoleReporter.kt
 b/src/main/kotlin/org/apache/cassandra/easystress/SingleLineConsoleReporter.kt
similarity index 99%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/SingleLineConsoleReporter.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/SingleLineConsoleReporter.kt
index 5c3859d..bd5abeb 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/SingleLineConsoleReporter.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/SingleLineConsoleReporter.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import com.codahale.metrics.Counter
 import com.codahale.metrics.Gauge
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/StressContext.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/StressContext.kt
similarity index 89%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/StressContext.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/StressContext.kt
index bc6d95b..24bb218 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/StressContext.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/StressContext.kt
@@ -15,16 +15,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import com.codahale.metrics.Timer
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.AsyncResultSet
 import com.google.common.util.concurrent.RateLimiter
-import com.rustyrazorblade.easycassstress.collector.Collector
-import com.rustyrazorblade.easycassstress.commands.Run
-import com.rustyrazorblade.easycassstress.generators.Registry
-import com.rustyrazorblade.easycassstress.workloads.Operation
+import org.apache.cassandra.easystress.collector.Collector
+import org.apache.cassandra.easystress.commands.Run
+import org.apache.cassandra.easystress.generators.Registry
+import org.apache.cassandra.easystress.workloads.Operation
 
 data class StressContext(
     val session: CqlSession,
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/ThroughputTracker.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/ThroughputTracker.kt
similarity index 99%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/ThroughputTracker.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/ThroughputTracker.kt
index 3be81c0..4027b8f 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/ThroughputTracker.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/ThroughputTracker.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import com.google.common.annotations.VisibleForTesting
 import org.apache.logging.log4j.kotlin.logger
diff --git a/src/main/kotlin/com/rustyrazorblade/easycassstress/Util.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/Util.kt
similarity index 96%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/Util.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/Util.kt
index e114726..cd39b35 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/Util.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/Util.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import org.apache.commons.text.RandomStringGenerator
 import java.text.DecimalFormat
diff --git a/src/main/kotlin/com/rustyrazorblade/easycassstress/Workload.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/Workload.kt
similarity index 95%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/Workload.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/Workload.kt
index 5bf2836..d6d3e39 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/Workload.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/Workload.kt
@@ -15,6 +15,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 class Workload
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/WorkloadParameter.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/WorkloadParameter.kt
similarity index 95%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/WorkloadParameter.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/WorkloadParameter.kt
index ebb2b66..238ee4e 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/WorkloadParameter.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/WorkloadParameter.kt
@@ -15,6 +15,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 annotation class WorkloadParameter(val description: String)
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/collector/AsyncCollector.kt
 b/src/main/kotlin/org/apache/cassandra/easystress/collector/AsyncCollector.kt
similarity index 90%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/collector/AsyncCollector.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/collector/AsyncCollector.kt
index 2c2e861..cdaa5ea 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/collector/AsyncCollector.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/collector/AsyncCollector.kt
@@ -1,10 +1,10 @@
-package com.rustyrazorblade.easycassstress.collector
+package org.apache.cassandra.easystress.collector
 
 import com.datastax.oss.driver.api.core.cql.AsyncResultSet
-import com.rustyrazorblade.easycassstress.Context
-import com.rustyrazorblade.easycassstress.Either
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.workloads.Operation
+import org.apache.cassandra.easystress.Context
+import org.apache.cassandra.easystress.Either
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.workloads.Operation
 import io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueue
 import org.agrona.concurrent.BackoffIdleStrategy
 import java.io.Closeable
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/collector/Collector.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/collector/Collector.kt
similarity index 68%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/collector/Collector.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/collector/Collector.kt
index 8005305..69ca30d 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/collector/Collector.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/collector/Collector.kt
@@ -1,10 +1,10 @@
-package com.rustyrazorblade.easycassstress.collector
+package org.apache.cassandra.easystress.collector
 
 import com.datastax.oss.driver.api.core.cql.AsyncResultSet
-import com.rustyrazorblade.easycassstress.Context
-import com.rustyrazorblade.easycassstress.Either
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.workloads.Operation
+import org.apache.cassandra.easystress.Context
+import org.apache.cassandra.easystress.Either
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.workloads.Operation
 
 /**
  * When an operation completes (success or failure) this interface is called 
showing the state at that moment.  This
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/collector/CompositeCollector.kt
 
b/src/main/kotlin/org/apache/cassandra/easystress/collector/CompositeCollector.kt
similarity index 70%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/collector/CompositeCollector.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/collector/CompositeCollector.kt
index 5d0b212..9b69eae 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/collector/CompositeCollector.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/collector/CompositeCollector.kt
@@ -1,10 +1,10 @@
-package com.rustyrazorblade.easycassstress.collector
+package org.apache.cassandra.easystress.collector
 
 import com.datastax.oss.driver.api.core.cql.AsyncResultSet
-import com.rustyrazorblade.easycassstress.Context
-import com.rustyrazorblade.easycassstress.Either
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.workloads.Operation
+import org.apache.cassandra.easystress.Context
+import org.apache.cassandra.easystress.Either
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.workloads.Operation
 
 /**
  * Groups a list of collectors together and will call each in the same order.
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/collector/HdrCollector.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/collector/HdrCollector.kt
similarity index 88%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/collector/HdrCollector.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/collector/HdrCollector.kt
index 11d422b..ea066b9 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/collector/HdrCollector.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/collector/HdrCollector.kt
@@ -1,10 +1,10 @@
-package com.rustyrazorblade.easycassstress.collector
+package org.apache.cassandra.easystress.collector
 
 import com.datastax.oss.driver.api.core.cql.AsyncResultSet
-import com.rustyrazorblade.easycassstress.Context
-import com.rustyrazorblade.easycassstress.Either
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.workloads.Operation
+import org.apache.cassandra.easystress.Context
+import org.apache.cassandra.easystress.Either
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.workloads.Operation
 import org.HdrHistogram.SynchronizedHistogram
 import java.io.File
 import java.io.PrintStream
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/collector/ParquetCollector.kt
 b/src/main/kotlin/org/apache/cassandra/easystress/collector/ParquetCollector.kt
similarity index 97%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/collector/ParquetCollector.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/collector/ParquetCollector.kt
index 07732e8..1b54476 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/collector/ParquetCollector.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/collector/ParquetCollector.kt
@@ -1,8 +1,8 @@
-package com.rustyrazorblade.easycassstress.collector
+package org.apache.cassandra.easystress.collector
 
 import com.datastax.oss.driver.api.core.cql.AsyncResultSet
 import com.google.common.base.Throwables
-import com.rustyrazorblade.easycassstress.Either
+import org.apache.cassandra.easystress.Either
 import org.apache.hadoop.fs.Path
 import org.apache.parquet.example.data.Group
 import org.apache.parquet.example.data.simple.SimpleGroupFactory
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/commands/Fields.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/commands/Fields.kt
similarity index 90%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/commands/Fields.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/commands/Fields.kt
index e8fd0cc..2672968 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/commands/Fields.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/commands/Fields.kt
@@ -15,9 +15,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.commands
+package org.apache.cassandra.easystress.commands
 
-import com.rustyrazorblade.easycassstress.generators.Registry
+import org.apache.cassandra.easystress.generators.Registry
 
 class Fields : IStressCommand {
     override fun execute() {
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/commands/IStressCommand.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/commands/IStressCommand.kt
similarity index 94%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/commands/IStressCommand.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/commands/IStressCommand.kt
index 115fdd9..a63fe28 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/commands/IStressCommand.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/commands/IStressCommand.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.commands
+package org.apache.cassandra.easystress.commands
 
 interface IStressCommand {
     fun execute()
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/commands/Info.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/commands/Info.kt
similarity index 96%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/commands/Info.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/commands/Info.kt
index 4000021..14c9187 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/commands/Info.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/commands/Info.kt
@@ -15,12 +15,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.commands
+package org.apache.cassandra.easystress.commands
 
 import com.beust.jcommander.Parameter
 import com.beust.jcommander.Parameters
 import com.github.ajalt.mordant.TermColors
-import com.rustyrazorblade.easycassstress.Plugin
+import org.apache.cassandra.easystress.Plugin
 
 @Parameters(commandDescription = "Get details of a specific workload.")
 class Info : IStressCommand {
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/commands/ListCommand.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/commands/ListCommand.kt
similarity index 92%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/commands/ListCommand.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/commands/ListCommand.kt
index bac2b2a..b7f68d1 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/commands/ListCommand.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/commands/ListCommand.kt
@@ -15,10 +15,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.commands
+package org.apache.cassandra.easystress.commands
 
 import com.beust.jcommander.Parameters
-import com.rustyrazorblade.easycassstress.Plugin
+import org.apache.cassandra.easystress.Plugin
 
 @Parameters(commandDescription = "List all workloads.")
 class ListCommand : IStressCommand {
diff --git a/src/main/kotlin/com/rustyrazorblade/easycassstress/commands/Run.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/commands/Run.kt
similarity index 95%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/commands/Run.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/commands/Run.kt
index 456ce74..a3cdfa3 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/commands/Run.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/commands/Run.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.commands
+package org.apache.cassandra.easystress.commands
 
 import com.beust.jcommander.DynamicParameter
 import com.beust.jcommander.Parameter
@@ -29,24 +29,24 @@ import 
com.datastax.oss.driver.api.core.config.DefaultDriverOption
 import com.datastax.oss.driver.api.core.config.DriverConfigLoader
 import com.google.common.base.Preconditions
 import com.google.common.util.concurrent.RateLimiter
-import com.rustyrazorblade.easycassstress.Context
-import com.rustyrazorblade.easycassstress.FileReporter
-import com.rustyrazorblade.easycassstress.Metrics
-import com.rustyrazorblade.easycassstress.Plugin
-import com.rustyrazorblade.easycassstress.PopulateOption
-import com.rustyrazorblade.easycassstress.ProfileRunner
-import com.rustyrazorblade.easycassstress.RateLimiterOptimizer
-import com.rustyrazorblade.easycassstress.SchemaBuilder
-import com.rustyrazorblade.easycassstress.SingleLineConsoleReporter
-import com.rustyrazorblade.easycassstress.collector.Collector
-import com.rustyrazorblade.easycassstress.collector.CompositeCollector
-import com.rustyrazorblade.easycassstress.collector.HdrCollector
-import com.rustyrazorblade.easycassstress.collector.ParquetCollector
-import com.rustyrazorblade.easycassstress.converters.ConsistencyLevelConverter
-import com.rustyrazorblade.easycassstress.converters.HumanReadableConverter
-import com.rustyrazorblade.easycassstress.converters.HumanReadableTimeConverter
-import com.rustyrazorblade.easycassstress.generators.ParsedFieldFunction
-import com.rustyrazorblade.easycassstress.generators.Registry
+import org.apache.cassandra.easystress.Context
+import org.apache.cassandra.easystress.FileReporter
+import org.apache.cassandra.easystress.Metrics
+import org.apache.cassandra.easystress.Plugin
+import org.apache.cassandra.easystress.PopulateOption
+import org.apache.cassandra.easystress.ProfileRunner
+import org.apache.cassandra.easystress.RateLimiterOptimizer
+import org.apache.cassandra.easystress.SchemaBuilder
+import org.apache.cassandra.easystress.SingleLineConsoleReporter
+import org.apache.cassandra.easystress.collector.Collector
+import org.apache.cassandra.easystress.collector.CompositeCollector
+import org.apache.cassandra.easystress.collector.HdrCollector
+import org.apache.cassandra.easystress.collector.ParquetCollector
+import org.apache.cassandra.easystress.converters.ConsistencyLevelConverter
+import org.apache.cassandra.easystress.converters.HumanReadableConverter
+import org.apache.cassandra.easystress.converters.HumanReadableTimeConverter
+import org.apache.cassandra.easystress.generators.ParsedFieldFunction
+import org.apache.cassandra.easystress.generators.Registry
 import me.tongfei.progressbar.ProgressBar
 import me.tongfei.progressbar.ProgressBarStyle
 import org.apache.logging.log4j.kotlin.logger
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/converters/ConsistencyLevelConverter.kt
 
b/src/main/kotlin/org/apache/cassandra/easystress/converters/ConsistencyLevelConverter.kt
similarity index 97%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/converters/ConsistencyLevelConverter.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/converters/ConsistencyLevelConverter.kt
index 78517dd..a2416c4 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/converters/ConsistencyLevelConverter.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/converters/ConsistencyLevelConverter.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.converters
+package org.apache.cassandra.easystress.converters
 
 import com.beust.jcommander.IStringConverter
 import com.datastax.oss.driver.api.core.ConsistencyLevel
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/converters/HumanReadableConverter.kt
 
b/src/main/kotlin/org/apache/cassandra/easystress/converters/HumanReadableConverter.kt
similarity index 96%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/converters/HumanReadableConverter.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/converters/HumanReadableConverter.kt
index bc08e7f..f8989c4 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/converters/HumanReadableConverter.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/converters/HumanReadableConverter.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.converters
+package org.apache.cassandra.easystress.converters
 
 import com.beust.jcommander.IStringConverter
 
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/converters/HumanReadableTimeConverter.kt
 
b/src/main/kotlin/org/apache/cassandra/easystress/converters/HumanReadableTimeConverter.kt
similarity index 97%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/converters/HumanReadableTimeConverter.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/converters/HumanReadableTimeConverter.kt
index 4793414..4705fe4 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/converters/HumanReadableTimeConverter.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/converters/HumanReadableTimeConverter.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.converters
+package org.apache.cassandra.easystress.converters
 
 import com.beust.jcommander.IStringConverter
 import java.time.Duration
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/FieldGenerator.kt
 b/src/main/kotlin/org/apache/cassandra/easystress/generators/FieldGenerator.kt
similarity index 95%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/generators/FieldGenerator.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/generators/FieldGenerator.kt
index f6d3731..4f9ef17 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/FieldGenerator.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/FieldGenerator.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators
+package org.apache.cassandra.easystress.generators
 
 class UnsupportedTypeException : Exception()
 
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/Function.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/Function.kt
similarity index 94%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/generators/Function.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/generators/Function.kt
index dfbccef..27a4a0b 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/Function.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/generators/Function.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators
+package org.apache.cassandra.easystress.generators
 
 // all functions should be tagged
 annotation class Function(
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/FunctionLoader.kt
 b/src/main/kotlin/org/apache/cassandra/easystress/generators/FunctionLoader.kt
similarity index 95%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/generators/FunctionLoader.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/generators/FunctionLoader.kt
index 247e9af..50c4b8d 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/FunctionLoader.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/FunctionLoader.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators
+package org.apache.cassandra.easystress.generators
 
 import org.apache.logging.log4j.kotlin.logger
 import org.reflections.Reflections
@@ -51,7 +51,7 @@ class FunctionLoader : Iterable<FunctionDescription> {
     val map: MutableMap<String, Class<out FieldGenerator>> = mutableMapOf()
 
     init {
-        val r = Reflections("com.rustyrazorblade.easycassstress")
+        val r = Reflections("org.apache.cassandra.easystress")
         log.debug { "Getting FieldGenerator subtypes" }
         val modules = r.getSubTypesOf(FieldGenerator::class.java)
 
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/ParsedFieldFunction.kt
 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/ParsedFieldFunction.kt
similarity index 96%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/generators/ParsedFieldFunction.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/generators/ParsedFieldFunction.kt
index a5607bb..37073b1 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/ParsedFieldFunction.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/ParsedFieldFunction.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators
+package org.apache.cassandra.easystress.generators
 
 import org.apache.logging.log4j.kotlin.logger
 
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/Registry.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/Registry.kt
similarity index 98%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/generators/Registry.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/generators/Registry.kt
index f33a287..a888d60 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/Registry.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/generators/Registry.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators
+package org.apache.cassandra.easystress.generators
 
 import org.apache.logging.log4j.kotlin.logger
 
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/Book.kt
 b/src/main/kotlin/org/apache/cassandra/easystress/generators/functions/Book.kt
similarity index 91%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/Book.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/generators/functions/Book.kt
index b5ef20b..8427c2c 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/Book.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/functions/Book.kt
@@ -15,10 +15,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators.functions
+package org.apache.cassandra.easystress.generators.functions
 
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.Function
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.Function
 import java.util.concurrent.ThreadLocalRandom
 
 @Function(
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/FirstName.kt
 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/functions/FirstName.kt
similarity index 89%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/FirstName.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/generators/functions/FirstName.kt
index 4e293a1..8d96ac0 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/FirstName.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/functions/FirstName.kt
@@ -15,10 +15,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators.functions
+package org.apache.cassandra.easystress.generators.functions
 
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.Function
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.Function
 import java.util.concurrent.ThreadLocalRandom
 
 @Function(
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/Gaussian.kt
 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/functions/Gaussian.kt
similarity index 83%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/Gaussian.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/generators/functions/Gaussian.kt
index 49fca0c..16e867c 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/Gaussian.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/functions/Gaussian.kt
@@ -15,10 +15,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators.functions
-import com.rustyrazorblade.easycassstress.converters.HumanReadableConverter
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.Function
+package org.apache.cassandra.easystress.generators.functions
+import org.apache.cassandra.easystress.converters.HumanReadableConverter
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.Function
 
 @Function(
     name = "gaussian",
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/LastName.kt
 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/functions/LastName.kt
similarity index 88%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/LastName.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/generators/functions/LastName.kt
index 9475f92..28db324 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/LastName.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/functions/LastName.kt
@@ -15,10 +15,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators.functions
+package org.apache.cassandra.easystress.generators.functions
 
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.Function
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.Function
 import java.util.concurrent.ThreadLocalRandom
 
 @Function(
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/Random.kt
 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/functions/Random.kt
similarity index 88%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/Random.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/generators/functions/Random.kt
index fe9add3..71e6992 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/Random.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/functions/Random.kt
@@ -15,11 +15,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators.functions
+package org.apache.cassandra.easystress.generators.functions
 
-import com.rustyrazorblade.easycassstress.converters.HumanReadableConverter
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.Function
+import org.apache.cassandra.easystress.converters.HumanReadableConverter
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.Function
 import org.apache.commons.text.RandomStringGenerator
 import java.util.concurrent.ThreadLocalRandom
 
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/USCities.kt
 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/functions/USCities.kt
similarity index 90%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/USCities.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/generators/functions/USCities.kt
index ce8b108..e5a4f22 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/generators/functions/USCities.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/generators/functions/USCities.kt
@@ -15,10 +15,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators.functions
+package org.apache.cassandra.easystress.generators.functions
 
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.Function
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.Function
 import java.util.concurrent.ThreadLocalRandom
 import kotlin.streams.toList
 
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/AllowFiltering.kt
 b/src/main/kotlin/org/apache/cassandra/easystress/workloads/AllowFiltering.kt
similarity index 88%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/AllowFiltering.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/workloads/AllowFiltering.kt
index d413a6a..eaafe0a 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/AllowFiltering.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/AllowFiltering.kt
@@ -15,17 +15,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.PreparedStatement
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.WorkloadParameter
-import com.rustyrazorblade.easycassstress.generators.Field
-import com.rustyrazorblade.easycassstress.generators.FieldFactory
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.functions.Random
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.WorkloadParameter
+import org.apache.cassandra.easystress.generators.Field
+import org.apache.cassandra.easystress.generators.FieldFactory
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.functions.Random
 import java.util.concurrent.ThreadLocalRandom
 
 class AllowFiltering : IStressProfile {
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/BasicTimeSeries.kt
 b/src/main/kotlin/org/apache/cassandra/easystress/workloads/BasicTimeSeries.kt
similarity index 91%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/BasicTimeSeries.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/workloads/BasicTimeSeries.kt
index 17bbc06..08a7e00 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/BasicTimeSeries.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/BasicTimeSeries.kt
@@ -15,17 +15,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.PreparedStatement
 import com.datastax.oss.driver.api.core.uuid.Uuids
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.WorkloadParameter
-import com.rustyrazorblade.easycassstress.generators.Field
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.functions.Random
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.WorkloadParameter
+import org.apache.cassandra.easystress.generators.Field
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.functions.Random
 import java.time.LocalDateTime
 
 /**
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/CountersWide.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/CountersWide.kt
similarity index 94%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/CountersWide.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/workloads/CountersWide.kt
index d013957..e5b49ed 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/CountersWide.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/workloads/CountersWide.kt
@@ -15,13 +15,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.PreparedStatement
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.WorkloadParameter
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.WorkloadParameter
 import java.util.concurrent.ThreadLocalRandom
 import kotlin.math.roundToLong
 
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/CreateDrop.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/CreateDrop.kt
similarity index 92%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/CreateDrop.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/workloads/CreateDrop.kt
index 797dd76..2682639 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/CreateDrop.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/workloads/CreateDrop.kt
@@ -15,17 +15,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.PreparedStatement
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.WorkloadParameter
-import com.rustyrazorblade.easycassstress.generators.Field
-import com.rustyrazorblade.easycassstress.generators.FieldFactory
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.functions.Random
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.WorkloadParameter
+import org.apache.cassandra.easystress.generators.Field
+import org.apache.cassandra.easystress.generators.FieldFactory
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.functions.Random
 import org.apache.logging.log4j.kotlin.logger
 import java.util.Timer
 import java.util.concurrent.CountDownLatch
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/DSESearch.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/DSESearch.kt
similarity index 89%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/DSESearch.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/workloads/DSESearch.kt
index 0280a67..38ae4fb 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/DSESearch.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/workloads/DSESearch.kt
@@ -15,20 +15,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.PreparedStatement
 import com.fasterxml.jackson.annotation.JsonInclude
 import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.RequireDSE
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.WorkloadParameter
-import com.rustyrazorblade.easycassstress.generators.Field
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.functions.Book
-import com.rustyrazorblade.easycassstress.generators.functions.Random
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.RequireDSE
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.WorkloadParameter
+import org.apache.cassandra.easystress.generators.Field
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.functions.Book
+import org.apache.cassandra.easystress.generators.functions.Random
 import java.util.concurrent.ThreadLocalRandom
 
 @RequireDSE
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/IStressProfile.kt
 b/src/main/kotlin/org/apache/cassandra/easystress/workloads/IStressProfile.kt
similarity index 91%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/IStressProfile.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/workloads/IStressProfile.kt
index 039bc25..67b8892 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/IStressProfile.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/IStressProfile.kt
@@ -15,18 +15,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.AsyncResultSet
 import com.datastax.oss.driver.api.core.cql.BoundStatement
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.PartitionKeyGenerator
-import com.rustyrazorblade.easycassstress.PopulateOption
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.commands.Run
-import com.rustyrazorblade.easycassstress.generators.Field
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.PartitionKeyGenerator
+import org.apache.cassandra.easystress.PopulateOption
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.commands.Run
+import org.apache.cassandra.easystress.generators.Field
+import org.apache.cassandra.easystress.generators.FieldGenerator
 import java.util.Optional
 
 interface IStressRunner {
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/KeyValue.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/KeyValue.kt
similarity index 87%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/KeyValue.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/workloads/KeyValue.kt
index ae8ce98..d04e139 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/KeyValue.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/workloads/KeyValue.kt
@@ -15,16 +15,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.PreparedStatement
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.generators.Field
-import com.rustyrazorblade.easycassstress.generators.FieldFactory
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.functions.Random
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.generators.Field
+import org.apache.cassandra.easystress.generators.FieldFactory
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.functions.Random
 
 class KeyValue : IStressProfile {
     lateinit var insert: PreparedStatement
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/LWT.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/LWT.kt
similarity index 96%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/LWT.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/workloads/LWT.kt
index 881e278..4172e6a 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/LWT.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/workloads/LWT.kt
@@ -15,13 +15,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.AsyncResultSet
 import com.datastax.oss.driver.api.core.cql.PreparedStatement
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.StressContext
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.StressContext
 
 class LWT : IStressProfile {
     lateinit var insert: PreparedStatement
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/Locking.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/Locking.kt
similarity index 93%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/Locking.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/workloads/Locking.kt
index 1e977a8..0ef2164 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/Locking.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/workloads/Locking.kt
@@ -15,15 +15,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.PreparedStatement
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.PartitionKeyGenerator
-import com.rustyrazorblade.easycassstress.PopulateOption
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.commands.Run
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.PartitionKeyGenerator
+import org.apache.cassandra.easystress.PopulateOption
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.commands.Run
 import org.apache.logging.log4j.kotlin.logger
 import java.util.Optional
 import java.util.concurrent.ConcurrentHashMap
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/Maps.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/Maps.kt
similarity index 93%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/Maps.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/workloads/Maps.kt
index dcde705..8213145 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/Maps.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/workloads/Maps.kt
@@ -15,12 +15,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.PreparedStatement
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.StressContext
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.StressContext
 
 class Maps : IStressProfile {
     lateinit var insert: PreparedStatement
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/MaterializedViews.kt
 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/MaterializedViews.kt
similarity index 87%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/MaterializedViews.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/workloads/MaterializedViews.kt
index bc90b5a..36efea9 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/MaterializedViews.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/MaterializedViews.kt
@@ -15,19 +15,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.PreparedStatement
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.RequireMVs
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.generators.Field
-import com.rustyrazorblade.easycassstress.generators.FieldFactory
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.functions.FirstName
-import com.rustyrazorblade.easycassstress.generators.functions.LastName
-import com.rustyrazorblade.easycassstress.generators.functions.USCities
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.RequireMVs
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.generators.Field
+import org.apache.cassandra.easystress.generators.FieldFactory
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.functions.FirstName
+import org.apache.cassandra.easystress.generators.functions.LastName
+import org.apache.cassandra.easystress.generators.functions.USCities
 import java.util.concurrent.ThreadLocalRandom
 
 @RequireMVs
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/RandomPartitionAccess.kt
 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/RandomPartitionAccess.kt
similarity index 92%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/RandomPartitionAccess.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/workloads/RandomPartitionAccess.kt
index 9210c3d..e260989 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/RandomPartitionAccess.kt
+++ 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/RandomPartitionAccess.kt
@@ -15,17 +15,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.PreparedStatement
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.WorkloadParameter
-import com.rustyrazorblade.easycassstress.generators.Field
-import com.rustyrazorblade.easycassstress.generators.FieldFactory
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.functions.Random
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.WorkloadParameter
+import org.apache.cassandra.easystress.generators.Field
+import org.apache.cassandra.easystress.generators.FieldFactory
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.functions.Random
 import java.util.concurrent.ThreadLocalRandom
 
 class RandomPartitionAccess : IStressProfile {
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/RangeScan.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/RangeScan.kt
similarity index 95%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/RangeScan.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/workloads/RangeScan.kt
index a4eaae2..227fdc7 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/RangeScan.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/workloads/RangeScan.kt
@@ -15,14 +15,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.PreparedStatement
 import com.datastax.oss.driver.api.core.metadata.token.TokenRange
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.WorkloadParameter
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.WorkloadParameter
 import org.apache.logging.log4j.kotlin.logger
 
 /**
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/SAI.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/SAI.kt
similarity index 92%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/SAI.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/workloads/SAI.kt
index 70c99db..b627d89 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/SAI.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/workloads/SAI.kt
@@ -15,17 +15,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.PreparedStatement
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.WorkloadParameter
-import com.rustyrazorblade.easycassstress.generators.Field
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.functions.LastName
-import com.rustyrazorblade.easycassstress.generators.functions.Random
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.WorkloadParameter
+import org.apache.cassandra.easystress.generators.Field
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.functions.LastName
+import org.apache.cassandra.easystress.generators.functions.Random
 import org.apache.logging.log4j.kotlin.logger
 import java.util.concurrent.ThreadLocalRandom
 
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/Sets.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/Sets.kt
similarity index 90%
rename from src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/Sets.kt
rename to src/main/kotlin/org/apache/cassandra/easystress/workloads/Sets.kt
index e158bec..50d465d 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/Sets.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/workloads/Sets.kt
@@ -15,15 +15,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.PreparedStatement
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.generators.Field
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.functions.Random
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.generators.Field
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.functions.Random
 
 class Sets : IStressProfile {
     lateinit var insert: PreparedStatement
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/TxnCounter.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/TxnCounter.kt
similarity index 96%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/TxnCounter.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/workloads/TxnCounter.kt
index 5ff6349..ec3eb03 100644
--- a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/TxnCounter.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/workloads/TxnCounter.kt
@@ -1,10 +1,10 @@
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.RequireAccord
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.WorkloadParameter
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.RequireAccord
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.WorkloadParameter
 
 enum class Impl {
     /**
diff --git 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/UdtTimeSeries.kt 
b/src/main/kotlin/org/apache/cassandra/easystress/workloads/UdtTimeSeries.kt
similarity index 91%
rename from 
src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/UdtTimeSeries.kt
rename to 
src/main/kotlin/org/apache/cassandra/easystress/workloads/UdtTimeSeries.kt
index 374bdfb..6df62e4 100644
--- 
a/src/main/kotlin/com/rustyrazorblade/easycassstress/workloads/UdtTimeSeries.kt
+++ b/src/main/kotlin/org/apache/cassandra/easystress/workloads/UdtTimeSeries.kt
@@ -15,17 +15,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.workloads
+package org.apache.cassandra.easystress.workloads
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.PreparedStatement
 import com.datastax.oss.driver.api.core.uuid.Uuids
-import com.rustyrazorblade.easycassstress.PartitionKey
-import com.rustyrazorblade.easycassstress.StressContext
-import com.rustyrazorblade.easycassstress.WorkloadParameter
-import com.rustyrazorblade.easycassstress.generators.Field
-import com.rustyrazorblade.easycassstress.generators.FieldGenerator
-import com.rustyrazorblade.easycassstress.generators.functions.Random
+import org.apache.cassandra.easystress.PartitionKey
+import org.apache.cassandra.easystress.StressContext
+import org.apache.cassandra.easystress.WorkloadParameter
+import org.apache.cassandra.easystress.generators.Field
+import org.apache.cassandra.easystress.generators.FieldGenerator
+import org.apache.cassandra.easystress.generators.functions.Random
 
 /**
  * Create a simple time series use case with some number of partitions
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/integration/CassandraTestBase.kt
 
b/src/test/kotlin/com/rustyrazorblade/easycassstress/integration/CassandraTestBase.kt
deleted file mode 100644
index 691cfc2..0000000
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/integration/CassandraTestBase.kt
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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 com.rustyrazorblade.easycassstress.integration
-
-import com.datastax.oss.driver.api.core.CqlSession
-import com.datastax.oss.driver.api.core.config.DefaultDriverOption
-import com.datastax.oss.driver.api.core.config.DriverConfigLoader
-import org.junit.jupiter.api.AfterAll
-import org.junit.jupiter.api.BeforeAll
-import org.junit.jupiter.api.TestInstance
-import java.net.InetSocketAddress
-
-/**
- * Base class for Cassandra integration tests
- * Provides common setup logic for connection handling
- */
-@TestInstance(TestInstance.Lifecycle.PER_CLASS)
-abstract class CassandraTestBase {
-    companion object {
-        // Connection parameters with environment variable fallbacks
-        val ip = System.getenv("CASSANDRA_EASY_STRESS_CASSANDRA_IP") ?: 
"127.0.0.1"
-        val localDc = System.getenv("CASSANDRA_EASY_STRESS_DATACENTER") ?: 
"datacenter1"
-
-        // Configure driver with reasonable timeouts for tests
-        val configLoader =
-            DriverConfigLoader.programmaticBuilder()
-                .withString(DefaultDriverOption.REQUEST_TIMEOUT, "30s")
-                .withString(DefaultDriverOption.CONTROL_CONNECTION_TIMEOUT, 
"10s")
-                
.withString(DefaultDriverOption.METADATA_SCHEMA_REQUEST_TIMEOUT, "30s")
-                .withString(DefaultDriverOption.CONNECTION_INIT_QUERY_TIMEOUT, 
"30s")
-                
.withString(DefaultDriverOption.CONNECTION_SET_KEYSPACE_TIMEOUT, "10s")
-                .build()
-    }
-
-    // Instance-level connection for each test class
-    protected lateinit var connection: CqlSession
-
-    @BeforeAll
-    fun setupClass() {
-        // Create connection for this test class
-        println("Connecting to Cassandra at $ip using datacenter $localDc")
-        connection = CqlSession.builder()
-            .addContactPoint(InetSocketAddress(ip, 9042))
-            .withLocalDatacenter(localDc)
-            .withConfigLoader(configLoader)
-            .build()
-
-        // Ensure keyspace doesn't exist before tests
-        connection.execute("DROP KEYSPACE IF EXISTS easy_cass_stress")
-    }
-
-    @AfterAll
-    fun teardownClass() {
-        // Clean up resources after tests
-        connection.close()
-    }
-
-    // Cleanup before each test case
-    fun cleanupKeyspace() {
-        connection.execute("DROP KEYSPACE IF EXISTS easy_cass_stress")
-    }
-}
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/CommandLineParserTest.kt 
b/src/test/kotlin/org/apache/cassandra/easystress/CommandLineParserTest.kt
similarity index 86%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/CommandLineParserTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/CommandLineParserTest.kt
index 867628a..29e777c 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/CommandLineParserTest.kt
+++ b/src/test/kotlin/org/apache/cassandra/easystress/CommandLineParserTest.kt
@@ -15,9 +15,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
-import com.rustyrazorblade.easycassstress.commands.Run
+import org.apache.cassandra.easystress.commands.Run
 import org.assertj.core.api.Assertions.assertThat
 import org.junit.jupiter.api.Test
 
@@ -25,7 +25,7 @@ internal class CommandLineParserTest {
     @Test
     fun testBasicParser() {
         val args = arrayOf("run", "BasicTimeSeries")
-        val result = 
com.rustyrazorblade.easycassstress.CommandLineParser.parse(args)
+        val result = CommandLineParser.parse(args)
         assertThat(result.getParsedCommand()).isEqualToIgnoringCase("run")
         assertThat(result.getCommandInstance()).isInstanceOf(Run::class.java)
     }
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/MainArgumentsTest.kt 
b/src/test/kotlin/org/apache/cassandra/easystress/MainArgumentsTest.kt
similarity index 92%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/MainArgumentsTest.kt
rename to src/test/kotlin/org/apache/cassandra/easystress/MainArgumentsTest.kt
index 1cd6587..dd29615 100644
--- a/src/test/kotlin/com/rustyrazorblade/easycassstress/MainArgumentsTest.kt
+++ b/src/test/kotlin/org/apache/cassandra/easystress/MainArgumentsTest.kt
@@ -15,9 +15,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
-import com.rustyrazorblade.easycassstress.commands.Run
+import org.apache.cassandra.easystress.commands.Run
 import org.assertj.core.api.Assertions.assertThat
 import org.junit.jupiter.api.Test
 
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/PartitionKeyGeneratorTest.kt
 b/src/test/kotlin/org/apache/cassandra/easystress/PartitionKeyGeneratorTest.kt
similarity index 97%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/PartitionKeyGeneratorTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/PartitionKeyGeneratorTest.kt
index 050ee5f..2df7ab0 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/PartitionKeyGeneratorTest.kt
+++ 
b/src/test/kotlin/org/apache/cassandra/easystress/PartitionKeyGeneratorTest.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import org.assertj.core.api.Assertions.assertThat
 import org.junit.jupiter.api.Test
diff --git a/src/test/kotlin/com/rustyrazorblade/easycassstress/PluginTest.kt 
b/src/test/kotlin/org/apache/cassandra/easystress/PluginTest.kt
similarity index 93%
rename from src/test/kotlin/com/rustyrazorblade/easycassstress/PluginTest.kt
rename to src/test/kotlin/org/apache/cassandra/easystress/PluginTest.kt
index 4bb724f..b33f901 100644
--- a/src/test/kotlin/com/rustyrazorblade/easycassstress/PluginTest.kt
+++ b/src/test/kotlin/org/apache/cassandra/easystress/PluginTest.kt
@@ -15,13 +15,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.datastax.oss.driver.api.core.cql.BoundStatement
-import com.rustyrazorblade.easycassstress.workloads.IStressProfile
-import com.rustyrazorblade.easycassstress.workloads.IStressRunner
-import com.rustyrazorblade.easycassstress.workloads.Operation
+import org.apache.cassandra.easystress.workloads.IStressProfile
+import org.apache.cassandra.easystress.workloads.IStressRunner
+import org.apache.cassandra.easystress.workloads.Operation
 import io.mockk.mockk
 import org.assertj.core.api.Assertions.assertThat
 import org.assertj.core.api.Assertions.assertThatExceptionOfType
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/RateLimiterOptimizerTest.kt
 b/src/test/kotlin/org/apache/cassandra/easystress/RateLimiterOptimizerTest.kt
similarity index 98%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/RateLimiterOptimizerTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/RateLimiterOptimizerTest.kt
index 69834a8..53248f2 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/RateLimiterOptimizerTest.kt
+++ 
b/src/test/kotlin/org/apache/cassandra/easystress/RateLimiterOptimizerTest.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import com.google.common.util.concurrent.RateLimiter
 import io.mockk.every
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/RequireAnnotationsTest.kt 
b/src/test/kotlin/org/apache/cassandra/easystress/RequireAnnotationsTest.kt
similarity index 99%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/RequireAnnotationsTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/RequireAnnotationsTest.kt
index ce3170c..a81db97 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/RequireAnnotationsTest.kt
+++ b/src/test/kotlin/org/apache/cassandra/easystress/RequireAnnotationsTest.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import org.assertj.core.api.Assertions.assertThat
 import org.junit.jupiter.api.BeforeEach
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/SchemaBuilderTest.kt 
b/src/test/kotlin/org/apache/cassandra/easystress/SchemaBuilderTest.kt
similarity index 99%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/SchemaBuilderTest.kt
rename to src/test/kotlin/org/apache/cassandra/easystress/SchemaBuilderTest.kt
index a2a92af..057e08d 100644
--- a/src/test/kotlin/com/rustyrazorblade/easycassstress/SchemaBuilderTest.kt
+++ b/src/test/kotlin/org/apache/cassandra/easystress/SchemaBuilderTest.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import org.apache.logging.log4j.kotlin.logger
 import org.assertj.core.api.Assertions.assertThat
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/ThroughputTrackerTest.kt 
b/src/test/kotlin/org/apache/cassandra/easystress/ThroughputTrackerTest.kt
similarity index 99%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/ThroughputTrackerTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/ThroughputTrackerTest.kt
index c526fb1..b87ebfa 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/ThroughputTrackerTest.kt
+++ b/src/test/kotlin/org/apache/cassandra/easystress/ThroughputTrackerTest.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress
+package org.apache.cassandra.easystress
 
 import org.assertj.core.api.Assertions.assertThat
 import org.junit.jupiter.api.AfterEach
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/collector/ParquetCollectorTest.kt
 
b/src/test/kotlin/org/apache/cassandra/easystress/collector/ParquetCollectorTest.kt
similarity index 86%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/collector/ParquetCollectorTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/collector/ParquetCollectorTest.kt
index b9a5f5a..45dfcb9 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/collector/ParquetCollectorTest.kt
+++ 
b/src/test/kotlin/org/apache/cassandra/easystress/collector/ParquetCollectorTest.kt
@@ -1,11 +1,11 @@
-package com.rustyrazorblade.easycassstress.collector
+package org.apache.cassandra.easystress.collector
 
 import com.datastax.oss.driver.api.core.CqlSession
 import com.google.common.io.Files
-import com.rustyrazorblade.easycassstress.Context
-import com.rustyrazorblade.easycassstress.Metrics
-import com.rustyrazorblade.easycassstress.commands.Run
-import com.rustyrazorblade.easycassstress.generators.Registry
+import org.apache.cassandra.easystress.Context
+import org.apache.cassandra.easystress.Metrics
+import org.apache.cassandra.easystress.commands.Run
+import org.apache.cassandra.easystress.generators.Registry
 import io.mockk.mockk
 import org.assertj.core.api.Assertions
 import org.assertj.core.api.Condition
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/converters/ConsistencyLevelConverterTest.kt
 
b/src/test/kotlin/org/apache/cassandra/easystress/converters/ConsistencyLevelConverterTest.kt
similarity index 96%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/converters/ConsistencyLevelConverterTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/converters/ConsistencyLevelConverterTest.kt
index ecc05f6..2c8d521 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/converters/ConsistencyLevelConverterTest.kt
+++ 
b/src/test/kotlin/org/apache/cassandra/easystress/converters/ConsistencyLevelConverterTest.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.converters
+package org.apache.cassandra.easystress.converters
 
 import com.datastax.oss.driver.api.core.ConsistencyLevel
 import org.assertj.core.api.Assertions.assertThat
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/converters/HumanReadableConverterTest.kt
 
b/src/test/kotlin/org/apache/cassandra/easystress/converters/HumanReadableConverterTest.kt
similarity index 96%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/converters/HumanReadableConverterTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/converters/HumanReadableConverterTest.kt
index 868519b..6ee8e48 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/converters/HumanReadableConverterTest.kt
+++ 
b/src/test/kotlin/org/apache/cassandra/easystress/converters/HumanReadableConverterTest.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.converters
+package org.apache.cassandra.easystress.converters
 
 import org.assertj.core.api.Assertions.assertThat
 import org.junit.jupiter.api.BeforeEach
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/converters/HumanReadableTimeConverterTest.kt
 
b/src/test/kotlin/org/apache/cassandra/easystress/converters/HumanReadableTimeConverterTest.kt
similarity index 97%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/converters/HumanReadableTimeConverterTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/converters/HumanReadableTimeConverterTest.kt
index 2a49286..4fe6cd5 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/converters/HumanReadableTimeConverterTest.kt
+++ 
b/src/test/kotlin/org/apache/cassandra/easystress/converters/HumanReadableTimeConverterTest.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.converters
+package org.apache.cassandra.easystress.converters
 
 import org.assertj.core.api.Assertions.assertThat
 import org.junit.jupiter.api.BeforeEach
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/generators/BookTest.kt 
b/src/test/kotlin/org/apache/cassandra/easystress/generators/BookTest.kt
similarity index 90%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/generators/BookTest.kt
rename to src/test/kotlin/org/apache/cassandra/easystress/generators/BookTest.kt
index 57393cf..760f4bb 100644
--- a/src/test/kotlin/com/rustyrazorblade/easycassstress/generators/BookTest.kt
+++ b/src/test/kotlin/org/apache/cassandra/easystress/generators/BookTest.kt
@@ -15,9 +15,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators
+package org.apache.cassandra.easystress.generators
 
-import com.rustyrazorblade.easycassstress.generators.functions.Book
+import org.apache.cassandra.easystress.generators.functions.Book
 import org.assertj.core.api.Assertions.assertThat
 import org.junit.jupiter.api.Test
 
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/generators/FirstNameTest.kt
 b/src/test/kotlin/org/apache/cassandra/easystress/generators/FirstNameTest.kt
similarity index 88%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/generators/FirstNameTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/generators/FirstNameTest.kt
index 60d5c3e..7b358d8 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/generators/FirstNameTest.kt
+++ 
b/src/test/kotlin/org/apache/cassandra/easystress/generators/FirstNameTest.kt
@@ -15,9 +15,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators
+package org.apache.cassandra.easystress.generators
 
-import com.rustyrazorblade.easycassstress.generators.functions.FirstName
+import org.apache.cassandra.easystress.generators.functions.FirstName
 import org.junit.jupiter.api.Test
 
 internal class FirstNameTest {
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/generators/FunctionLoaderTest.kt
 
b/src/test/kotlin/org/apache/cassandra/easystress/generators/FunctionLoaderTest.kt
similarity index 95%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/generators/FunctionLoaderTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/generators/FunctionLoaderTest.kt
index 14f8787..a9ab1c9 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/generators/FunctionLoaderTest.kt
+++ 
b/src/test/kotlin/org/apache/cassandra/easystress/generators/FunctionLoaderTest.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators
+package org.apache.cassandra.easystress.generators
 
 import org.junit.jupiter.api.Test
 
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/generators/LastNameTest.kt 
b/src/test/kotlin/org/apache/cassandra/easystress/generators/LastNameTest.kt
similarity index 89%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/generators/LastNameTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/generators/LastNameTest.kt
index 3b71356..12f47d5 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/generators/LastNameTest.kt
+++ b/src/test/kotlin/org/apache/cassandra/easystress/generators/LastNameTest.kt
@@ -15,9 +15,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators
+package org.apache.cassandra.easystress.generators
 
-import com.rustyrazorblade.easycassstress.generators.functions.LastName
+import org.apache.cassandra.easystress.generators.functions.LastName
 import org.apache.logging.log4j.kotlin.logger
 import org.junit.jupiter.api.Test
 
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/generators/ParsedFieldFunctionTest.kt
 
b/src/test/kotlin/org/apache/cassandra/easystress/generators/ParsedFieldFunctionTest.kt
similarity index 96%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/generators/ParsedFieldFunctionTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/generators/ParsedFieldFunctionTest.kt
index 94cfc56..629cb87 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/generators/ParsedFieldFunctionTest.kt
+++ 
b/src/test/kotlin/org/apache/cassandra/easystress/generators/ParsedFieldFunctionTest.kt
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators
+package org.apache.cassandra.easystress.generators
 
 import org.assertj.core.api.Assertions.assertThat
 import org.junit.jupiter.api.Test
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/generators/RegistryTest.kt 
b/src/test/kotlin/org/apache/cassandra/easystress/generators/RegistryTest.kt
similarity index 90%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/generators/RegistryTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/generators/RegistryTest.kt
index 42f01af..964505e 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/generators/RegistryTest.kt
+++ b/src/test/kotlin/org/apache/cassandra/easystress/generators/RegistryTest.kt
@@ -15,10 +15,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators
+package org.apache.cassandra.easystress.generators
 
-import com.rustyrazorblade.easycassstress.generators.functions.Random
-import com.rustyrazorblade.easycassstress.generators.functions.USCities
+import org.apache.cassandra.easystress.generators.functions.Random
+import org.apache.cassandra.easystress.generators.functions.USCities
 import org.assertj.core.api.Assertions.assertThat
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/generators/USCitiesTest.kt 
b/src/test/kotlin/org/apache/cassandra/easystress/generators/USCitiesTest.kt
similarity index 88%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/generators/USCitiesTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/generators/USCitiesTest.kt
index 449ad1e..9b7027a 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/generators/USCitiesTest.kt
+++ b/src/test/kotlin/org/apache/cassandra/easystress/generators/USCitiesTest.kt
@@ -15,9 +15,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.generators
+package org.apache.cassandra.easystress.generators
 
-import com.rustyrazorblade.easycassstress.generators.functions.USCities
+import org.apache.cassandra.easystress.generators.functions.USCities
 import org.junit.jupiter.api.Test
 
 internal class USCitiesTest {
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/integration/AllPluginsBasicTest.kt
 
b/src/test/kotlin/org/apache/cassandra/easystress/integration/AllPluginsBasicTest.kt
similarity index 93%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/integration/AllPluginsBasicTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/integration/AllPluginsBasicTest.kt
index cc75bf0..0feb393 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/integration/AllPluginsBasicTest.kt
+++ 
b/src/test/kotlin/org/apache/cassandra/easystress/integration/AllPluginsBasicTest.kt
@@ -15,10 +15,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.integration
+package org.apache.cassandra.easystress.integration
 
-import com.rustyrazorblade.easycassstress.Plugin
-import com.rustyrazorblade.easycassstress.commands.Run
+import org.apache.cassandra.easystress.Plugin
+import org.apache.cassandra.easystress.commands.Run
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.params.ParameterizedTest
 import org.junit.jupiter.params.provider.MethodSource
diff --git 
a/src/test/kotlin/org/apache/cassandra/easystress/integration/CassandraTestBase.kt
 
b/src/test/kotlin/org/apache/cassandra/easystress/integration/CassandraTestBase.kt
new file mode 100644
index 0000000..8b2f947
--- /dev/null
+++ 
b/src/test/kotlin/org/apache/cassandra/easystress/integration/CassandraTestBase.kt
@@ -0,0 +1,174 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 org.apache.cassandra.easystress.integration
+
+import com.datastax.oss.driver.api.core.CqlSession
+import com.datastax.oss.driver.api.core.config.DefaultDriverOption
+import com.datastax.oss.driver.api.core.config.DriverConfigLoader
+import org.junit.jupiter.api.AfterAll
+import org.junit.jupiter.api.BeforeAll
+import org.junit.jupiter.api.TestInstance
+import org.slf4j.LoggerFactory
+import java.net.InetSocketAddress
+
+/**
+ * Base class for Cassandra integration tests.
+ *
+ * Provides common setup logic for connection handling, including:
+ * - Automatic connection management with configurable timeouts
+ * - Environment-based configuration for IP and datacenter
+ * - Keyspace cleanup utilities for test isolation
+ *
+ * @property connection The CqlSession instance shared by all tests in the 
class
+ */
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+abstract class CassandraTestBase {
+    companion object {
+        private val logger = 
LoggerFactory.getLogger(CassandraTestBase::class.java)
+
+        // Configuration constants
+        private const val DEFAULT_CASSANDRA_IP = "127.0.0.1"
+        private const val DEFAULT_DATACENTER = "datacenter1"
+        private const val DEFAULT_PORT = 9042
+        private const val TEST_KEYSPACE = "easy_cass_stress"
+
+        // Timeout constants
+        private const val REQUEST_TIMEOUT_SECONDS = 30L
+        private const val CONTROL_CONNECTION_TIMEOUT_SECONDS = 10L
+        private const val METADATA_SCHEMA_TIMEOUT_SECONDS = 30L
+        private const val CONNECTION_INIT_TIMEOUT_SECONDS = 30L
+        private const val KEYSPACE_TIMEOUT_SECONDS = 10L
+
+        // Connection parameters with environment variable fallbacks
+        val ip = System.getenv("CASSANDRA_EASY_STRESS_CASSANDRA_IP") ?: 
DEFAULT_CASSANDRA_IP
+        val localDc = System.getenv("CASSANDRA_EASY_STRESS_DATACENTER") ?: 
DEFAULT_DATACENTER
+
+        init {
+            // Validate configuration on class load
+            require(ip.isNotBlank()) { "Cassandra IP address cannot be blank" }
+            require(localDc.isNotBlank()) { "Datacenter name cannot be blank" }
+            logger.info("Test configuration: IP=$ip, Datacenter=$localDc")
+        }
+
+        /**
+         * Configure driver with timeouts suitable for integration testing.
+         * These values are optimized for test stability over performance.
+         */
+        val configLoader: DriverConfigLoader =
+            DriverConfigLoader.programmaticBuilder()
+                .withString(DefaultDriverOption.REQUEST_TIMEOUT, 
"${REQUEST_TIMEOUT_SECONDS}s")
+                .withString(DefaultDriverOption.CONTROL_CONNECTION_TIMEOUT, 
"${CONTROL_CONNECTION_TIMEOUT_SECONDS}s")
+                
.withString(DefaultDriverOption.METADATA_SCHEMA_REQUEST_TIMEOUT, 
"${METADATA_SCHEMA_TIMEOUT_SECONDS}s")
+                .withString(DefaultDriverOption.CONNECTION_INIT_QUERY_TIMEOUT, 
"${CONNECTION_INIT_TIMEOUT_SECONDS}s")
+                
.withString(DefaultDriverOption.CONNECTION_SET_KEYSPACE_TIMEOUT, 
"${KEYSPACE_TIMEOUT_SECONDS}s")
+                .build()
+    }
+
+    /**
+     * The CQL session used by all tests in this test class.
+     * Initialized in [setupClass] and closed in [teardownClass].
+     */
+    protected lateinit var connection: CqlSession
+
+    /**
+     * Sets up the test class by establishing a connection to Cassandra
+     * and ensuring a clean state.
+     *
+     * @throws Exception if connection cannot be established
+     */
+    @BeforeAll
+    fun setupClass() {
+        logger.info("Setting up test class: connecting to Cassandra at {}:{} 
using datacenter {}", ip, DEFAULT_PORT, localDc)
+
+        try {
+            connection =
+                CqlSession.builder()
+                    .addContactPoint(InetSocketAddress(ip, DEFAULT_PORT))
+                    .withLocalDatacenter(localDc)
+                    .withConfigLoader(configLoader)
+                    .build()
+
+            logger.debug("Connection established successfully")
+
+            // Verify connection is working by executing a simple query
+            connection.execute("SELECT release_version FROM system.local")
+            logger.debug("Connection verified successfully")
+
+            // Ensure keyspace doesn't exist before tests
+            cleanupKeyspace()
+            logger.debug("Test keyspace cleaned up")
+        } catch (e: Exception) {
+            logger.error("Failed to establish connection to Cassandra", e)
+            throw IllegalStateException(
+                "Cannot connect to Cassandra at $ip:$DEFAULT_PORT. " +
+                    "Ensure Cassandra is running and accessible.",
+                e,
+            )
+        }
+    }
+
+    /**
+     * Tears down the test class by closing the Cassandra connection.
+     */
+    @AfterAll
+    fun teardownClass() {
+        logger.info("Tearing down test class: closing Cassandra connection")
+
+        try {
+            if (::connection.isInitialized && !connection.isClosed) {
+                connection.close()
+                logger.debug("Connection closed successfully")
+            }
+        } catch (e: Exception) {
+            logger.warn("Error while closing connection", e)
+        }
+    }
+
+    /**
+     * Removes the test keyspace to ensure test isolation.
+     * This method should be called before each test to ensure a clean state.
+     */
+    protected fun cleanupKeyspace() {
+        logger.debug("Cleaning up test keyspace: {}", TEST_KEYSPACE)
+        connection.execute("DROP KEYSPACE IF EXISTS $TEST_KEYSPACE")
+    }
+
+    /**
+     * Utility method to check if the test keyspace exists.
+     *
+     * @return true if the keyspace exists, false otherwise
+     */
+    protected fun keyspaceExists(): Boolean {
+        val result =
+            connection.execute(
+                "SELECT keyspace_name FROM system_schema.keyspaces WHERE 
keyspace_name = ?",
+                TEST_KEYSPACE,
+            )
+        return result.one() != null
+    }
+
+    /**
+     * Utility method to get the current Cassandra version.
+     *
+     * @return the Cassandra release version string
+     */
+    protected fun getCassandraVersion(): String {
+        val result = connection.execute("SELECT release_version FROM 
system.local")
+        return result.one()?.getString("release_version") ?: "unknown"
+    }
+}
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/integration/FieldsTest.kt 
b/src/test/kotlin/org/apache/cassandra/easystress/integration/FieldsTest.kt
similarity index 89%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/integration/FieldsTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/integration/FieldsTest.kt
index 259fef4..52c0ee7 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/integration/FieldsTest.kt
+++ b/src/test/kotlin/org/apache/cassandra/easystress/integration/FieldsTest.kt
@@ -15,9 +15,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.integration
+package org.apache.cassandra.easystress.integration
 
-import com.rustyrazorblade.easycassstress.commands.Fields
+import org.apache.cassandra.easystress.commands.Fields
 import org.junit.jupiter.api.Test
 
 class FieldsTest {
diff --git 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/integration/FlagsTest.kt 
b/src/test/kotlin/org/apache/cassandra/easystress/integration/FlagsTest.kt
similarity index 93%
rename from 
src/test/kotlin/com/rustyrazorblade/easycassstress/integration/FlagsTest.kt
rename to 
src/test/kotlin/org/apache/cassandra/easystress/integration/FlagsTest.kt
index 00855dd..6cd010b 100644
--- 
a/src/test/kotlin/com/rustyrazorblade/easycassstress/integration/FlagsTest.kt
+++ b/src/test/kotlin/org/apache/cassandra/easystress/integration/FlagsTest.kt
@@ -15,9 +15,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.rustyrazorblade.easycassstress.integration
+package org.apache.cassandra.easystress.integration
 
-import com.rustyrazorblade.easycassstress.commands.Run
+import org.apache.cassandra.easystress.commands.Run
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 
diff --git a/src/test/resources/log4j2-test.yaml 
b/src/test/resources/log4j2-test.yaml
index 01fb003..468ee43 100644
--- a/src/test/resources/log4j2-test.yaml
+++ b/src/test/resources/log4j2-test.yaml
@@ -44,7 +44,7 @@ Configuration:
 
     logger:
       -
-        name: com.rustyrazorblade.easycassstress
+        name: org.apache.cassandra.easystress
         level: debug
         AppenderRef:
           - ref: STDOUT


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to